論文數據結構課程設計畢業(yè)設計《學生信息管理系統(tǒng)設計》
《論文數據結構課程設計畢業(yè)設計《學生信息管理系統(tǒng)設計》》由會員分享,可在線閱讀,更多相關《論文數據結構課程設計畢業(yè)設計《學生信息管理系統(tǒng)設計》(27頁珍藏版)》請在裝配圖網上搜索。
1、 1 需求分析 設計任務要求 通訊錄系統(tǒng)主要包含以下要求: (1)設計一個學生通訊錄管理系統(tǒng),每個學生數據信息包括:姓名、 號碼、qq、 和地址; (2)創(chuàng)立學生數據類型為結構體并以磁盤文件保存; (3)能讀取磁盤文件并顯示輸出學生的相關信息; (4)能按姓名或 等多種方式進行學生信息查詢; (5)能查詢、添加、修改和刪除學生通訊錄。 1.2 系統(tǒng)功能需求分析 系統(tǒng)主要包含以下主要功能: (1)查詢通訊錄記錄; (2)添加通訊錄記錄; (3)修改通訊錄記錄; (4)刪除通訊錄記錄; (5)關閉通訊錄。 2 概要
2、設計 數據類型 本系統(tǒng)中所有變量都定義為字符串型,學生通訊錄數據類型定義為結構體類型。然而為了更加方便,添加了抽象數據類型類book,再私有繼承了以結構體存儲的學生數據。 2.2 主程序及各程序層次關系 以下是系統(tǒng)功能模塊關系圖,主要包含查詢、添加、修改、刪除聯(lián)系人和關閉系統(tǒng)等功能。另外還提供了鍵盤式選擇菜單實現功能選擇。 圖2.1 系統(tǒng)功能模塊關系圖 查詢聯(lián)系人:可以選擇用姓名和 兩種方式查詢 添加聯(lián)系人:可以添加通訊錄記錄,依次輸入姓名、 、qq、 和地址 修改聯(lián)系人:輸入欲修改聯(lián)系人姓名后,再依次輸入修改姓名、 、qq、 和地址即可完成修改
3、 刪除聯(lián)系人:輸入欲刪除聯(lián)系人的姓名后,會自動刪除該聯(lián)系人的記錄內容 關閉系統(tǒng):選擇相關操作進行系統(tǒng)正常關閉,保存有效數據記錄 3 詳細設計 實現數據類型 (1)以字符串類型定義通訊錄中學生數據信息變量: string name;//姓名 string number;// 號碼 string qq;//QQ號 string post;// string address;//地址 (2)學生通訊錄數據類型定義為結構體存儲: struct inf{ string name;//姓名 string
4、address;//地址 string number;// 號碼 string post;// string qq;//QQ號 }datatype; (3)實現類book私有繼承結構體inf: class book:private inf {public: book(){};//默認構造函數 int face();//首頁 void add_person();//添加聯(lián)系人 void del_person();//刪除聯(lián)系人 void fix();//修改信息 void find();/
5、/查詢聯(lián)系人 void save_new();//保存新增加的聯(lián)系人 }; 實現各操作模塊的功能 (1)主函數的實現: int main() { int choose; book b; while (choose = b.face()) { switch (choose) {case 1: b.find();////查詢聯(lián)系人 break; case 2: b.add_person();////添加聯(lián)系人
6、break;
case 3:
b.fix();////修改信息
break;
case 4:
b.del_person();////刪除聯(lián)系人
break;
case 5:
cout < 7、 }
}
return 0;
}
(2)各操作模塊函數的實現:
void book::add_person()//添加聯(lián)系人
{ cout < 8、
cout < 9、 system("pause"); return;
}
string s;
cout < 10、 setiosflags(ios::left) << setw(17) << "姓名"
<<" " << setw(16) << " 號碼" <<" "
<< setw(18) << "QQ" <<" "<< setw(14) << " " <<" "
<< setw(20) << "地址 "< 11、 flag = false; break;
}
outData < 12、ine(inData, str))
{ outData < 13、se");return;
}
while (getline(in, str))
{ out < 14、Data("pbook.txt", ios::in); //
if (!outData || !inData)
{ cout < 15、inData, str);
if ((s==name) || (s==number))
{
cout < 16、
cout < 17、 :";cin >>post;
cout <<"地址 :";cin >>address; save_new();
flag = false; break;
}
outData < 18、
}
else
{ while (getline(inData, str))
{ outData < 19、endl < 20、book.txt",ios::in);
if (!inData)
{ cout < 21、 if ((name==s) || (number==s))
{
cout < 22、left) < 23、!翻開文件失敗!" < 24、相關書籍后,根據調試提示錯誤,解決了所有錯誤。通過文件存儲學生數據信息,使得讀取信息操作更加方便、省事;
2.在執(zhí)行操作時,是根據文件搜索算法,去獲取學生數據信息。使得在時間和空間上讀取數據都要更加快捷、省事。其時間復雜度為O〔〕;
3.經過這一次的系統(tǒng)設計,使我認識到了實踐的重要性,只有實踐多了才能把知識學得好,學得牢。同時讓我對數據結構得到了進一步的學習,以及對C++語言的學習得以提高,最后也大局部掌握了文件存儲數據的相關操作。
5 用戶使用手冊
1.本程序的運行環(huán)境為WINDOWS操作系統(tǒng),運行軟件為M 25、icrosoft Visual C++;
2.運行程序后即輸出提示信息,由于在定義變量時已將需要輸入的定義為string型變量,所以輸入時需根據提示信息按要求輸入;
3.運行程序后屏幕上會出現通訊錄主菜單,然后根據需要選擇1-5序號的操作,輸入選定序號后,按Enter鍵,程序就會執(zhí)行相關操作。比方輸入序號1,再按Enter鍵,程序就會運行查詢聯(lián)系人的代碼操作,然后再根據提示進行查詢工作即可;
4.當以上操作完成后,程序將輸出“按任意鍵繼續(xù)...〞此時,查詢聯(lián)系人工作的程序運行完畢。
6 測試數據和數據結果
(1) 26、輸入操作序號:2
依次輸入:湖南長沙
輸出結果如下所示:
(2)輸入操作序號:1
輸入姓名:wen;〔或 號碼:〕
輸出結果如下所示:
(3)輸入操作序號:3
輸入姓名:wen
重新依次輸入要修改信息:海南萬寧
輸出結果如下所示:
(4)輸入操作序號:4
輸入姓名:wen
輸出結果如下所示:
(5)輸入操作序號:5
輸出結果如下所示:
參考文獻
[1] 嚴蔚敏,吳偉民. 數據結構(C語言版). 北京:清華大學出版社,1997.04
[2] 張曉莉,羅文劼,劉振鵬等。數據結構與算法。北京:機械工業(yè)出版社,
[3] 王宏生,宋繼紅 27、。數據結構。北京:國防工業(yè)出版社,
[4] 孫淑霞,肖陽春,魏琴等.C/C++程序設計教程〔第2版〕。北京:電子工業(yè)出版社,
[5] 譚浩強。C++程序設計。北京:清華大學出版社,2004,06
附錄 源程序清單
#include 28、me;//姓名
string address;//地址
string number;// 號碼
string post;//
string qq;//QQ號
}datatype;
class book:private inf
{
public:
book(){};//默認構造函數
int face();//首頁
void add_person();//添加聯(lián)系人
void del_person();//刪除聯(lián)系人
void fix();//修改信息
void find();// 29、查詢聯(lián)系人
void save_new();//保存新增加的聯(lián)系人
};
//首頁
int book::face()
{
system("cls");//清楚屏幕
cout < 30、 迅 錄 #" < 31、 < 32、 # #" < 33、請選擇您要操作的序號〔1-5〕 :" ;
int choose;
cin >>choose;
return choose;
}
//添加聯(lián)系人
void book::add_person()
{
cout < 34、
cin >>post;
cout <<"地址 : ";
cin >>address;
save_new();
cout < 35、;
if (!outData || !inData)
{
cout < 36、nData, str);
if ((s==name) || (s==number))
{
cout < 37、20) << "地址 "< 38、 39、 ofstream out("pbook.txt", ios::out);
ifstream in("temp.txt", ios::in);
if (!out || !in)
{
cout < 40、 41、inData)
{
cout < 42、 if ((s==name) || (s==number))
{
cout < 43、dl;
cout < 44、 cin >>qq;
cout <<" :";
cin >>post;
cout <<"地址 :";
cin >>address;
save_new();
flag = false;
break;
}
outData < 45、ber < 46、pbook.txt", ios::out);
ifstream in("temp.txt", ios::in);
if (!out || !in)
{
cout < 47、 }
out.close();//
in.close();
cout < 48、m("pause");
return;
}
string s;
cout < 49、<"你要查找的聯(lián)系人是: " < 50、 <<" "< 51、件失敗!" < 52、in()
{
int choose;
book b;
while (choose = b.face())
{
switch (choose)
{
case 1:
b.find();////查詢聯(lián)系人
break;
case 2:
b.add_person();////添加聯(lián)系人
break;
case 3:
b.fix();////修改 53、信息
break;
case 4:
b.del_person();////刪除聯(lián)系人
break;
case 5:
cout < 54、0個習慣 在行動前設定目標 有目標未必能夠成功,但沒有目標的肯定不能成功。著名的效率提升大師博思.崔西説:“成功就是目標的達成,其他都是這句話的注釋。〞現實中那些頂尖的成功人士不是成功了才設定目標,而是設定了目標才成功。 一次做好一件事 著名的效率提升大師博思.崔西有一個著名的論斷:“一次做好一件事的人比同時涉獵多個領域的人要好得多。〞富蘭克林將自己一生的成就歸功于對“在一定時期內不遺余力地做一件事〞這一信條的實踐。 培養(yǎng)重點思維 從重點問題突破,是高效能人士思考的一項重要習慣。如果一個人沒有重點地思考,就等于無主要目標,做事的效率必然會十分低下。相反,如果他抓住了主要矛盾,解決問題就變得 55、容易多了。 發(fā)現問題關鍵 在許多領導者看來,高效能人士應當具備的最重要的能力就是發(fā)現問題關鍵能力,因為這是通向問題解決的必經之路。正如微軟總裁兼首席軟件設計師比爾。蓋茨所説:“通向最高管理層的最迅捷的途徑,是主動承當別人都不愿意接手的工作,并在其中展示你出眾的創(chuàng)造力和解決問題的能力。〞 把問題想透徹 把問題想透徹,是一種很好的思維品質。只要把問題想透徹了,才能找到問題到底是什么,才能找到解決問題最有效的手段。 不找借口 美國成功學家格蘭特納說過這樣的話:“如果你有為自己系鞋帶的能力,你就有上天摘星星的時機!〞一個人對待生活和工作是否負責是決定他能否成功的關鍵。一名高效能人士不會到處為自己找 56、借口,開脫責任;相反,無倫出現什么情況,他都會自覺主動地將自己的任務執(zhí)行到底。 要事第一 創(chuàng)設普及全美的事務公司的亨瑞。杜哈提說,不管他出多小兩種能力是:第一,能思想;第二,能按事情的重要程度來做事。因此,在工作中,如果我們不能選擇正確的事情去做,那么唯一正確的事情就是停止手頭上的事情,直到發(fā)現正確的事情為止。 運假公濟私,那么你要嘗試學習如何與不同的人相處,提高自己化
能人士的50個習慣 在行動前設定目標 有目標未必能夠成功,但沒有目標的肯定不能成功。著名的效率提升大師博思.崔西説:“成功就是目標的達成,其他都是這句話的注釋。〞現實中那些頂尖的成功人士不是成功了才設定目標,而是設定了 57、目標才成功。 一次做好一件事 著名的效率提升大師博思.崔西有一個著名的論斷:“一次做好一件事的人比同時涉獵多個領域的人要好得多。〞富蘭克林將自己一生的成就歸功于對“在一定時期內不遺余力地做一件事〞這一信條的實踐。 培養(yǎng)重點思維 從重點問題突破,是高效能人士思考的一項重要習慣。如果一個人沒有重點地思考,就等于無主要目標,做事的效率必然會十分低下。相反,如果他抓住了主要矛盾,解決問題就變得容易多了。 發(fā)現問題關鍵 在許多領導者看來,高效能人士應當具備的最重要的能力就是發(fā)現問題關鍵能力,因為這是通向問題解決的必經之路。正如微軟總裁兼首席軟件設計師比爾。蓋茨所説:“通向最高管理層的最迅捷的途徑, 58、是主動承當別人都不愿意接手的工作,并在其中展示你出眾的創(chuàng)造力和解決問題的能力。〞 把問題想透徹 把問題想透徹,是一種很好的思維品質。只要把問題想透徹了,才能找到問題到底是什么,才能找到解決問題最有效的手段。 不找借口 美國成功學家格蘭特納說過這樣的話:“如果你有為自己系鞋帶的能力,你就有上天摘星星的時機!〞一個人對待生活和工作是否負責是決定他能否成功的關鍵。一名高效能人士不會到處為自己找借口,開脫責任;相反,無倫出現什么情況,他都會自覺主動地將自己的任務執(zhí)行到底。 要事第一 創(chuàng)設普及全美的事務公司的亨瑞。杜哈提說,不管他出多小兩種能力是:第一,能思想;第二,能按事情的重要程度來做事。因此, 59、在工作中,如果我們不能選擇正確的事情去做,那么唯一正確的事情就是停止手頭上的事情,直到發(fā)現正確的事情為止。 運假公濟私,那么你要嘗試學習如何與不同的人相處,提高自己化
能人士的50個習慣 在行動前設定目標 有目標未必能夠成功,但沒有目標的肯定不能成功。著名的效率提升大師博思.崔西説:“成功就是目標的達成,其他都是這句話的注釋。〞現實中那些頂尖的成功人士不是成功了才設定目標,而是設定了目標才成功。 一次做好一件事 著名的效率提升大師博思.崔西有一個著名的論斷:“一次做好一件事的人比同時涉獵多個領域的人要好得多。〞富蘭克林將自己一生的成就歸功于對“在一定時期內不遺余力地做一件事〞這一信條的 60、實踐。 培養(yǎng)重點思維 從重點問題突破,是高效能人士思考的一項重要習慣。如果一個人沒有重點地思考,就等于無主要目標,做事的效率必然會十分低下。相反,如果他抓住了主要矛盾,解決問題就變得容易多了。 發(fā)現問題關鍵 在許多領導者看來,高效能人士應當具備的最重要的能力就是發(fā)現問題關鍵能力,因為這是通向問題解決的必經之路。正如微軟總裁兼首席軟件設計師比爾。蓋茨所説:“通向最高管理層的最迅捷的途徑,是主動承當別人都不愿意接手的工作,并在其中展示你出眾的創(chuàng)造力和解決問題的能力。〞 把問題想透徹 把問題想透徹,是一種很好的思維品質。只要把問題想透徹了,才能找到問題到底是什么,才能找到解決問題最有效的手段。 不找借口 美國成功學家格蘭特納說過這樣的話:“如果你有為自己系鞋帶的能力,你就有上天摘星星的時機!〞一個人對待生活和工作是否負責是決定他能否成功的關鍵。一名高效能人士不會到處為自己找借口,開脫責任;相反,無倫出現什么情況,他都會自覺主動地將自己的任務執(zhí)行到底。 要事第一 創(chuàng)設普及全美的事務公司的亨瑞。杜哈提說,不管他出多小兩種能力是:第一,能思想;第二,能按事情的重要程度來做事。因此,在工作中,如果我們不能選擇正確的事情去做,那么唯一正確的事情就是停止手頭上的事情,直到發(fā)現正確的事情為止。 運假公濟私,那么你要嘗試學習如何與不同的人相處,提高自己化
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。