版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 計(jì)算機(jī)與通信學(xué)院</b></p><p><b> 2011年秋季學(xué)期</b></p><p><b> 面向?qū)ο笳n程設(shè)計(jì)</b></p><p> 題 目:同學(xué)錄的設(shè)計(jì)與實(shí)現(xiàn) </p><p> 專(zhuān)業(yè)班級(jí):計(jì)算機(jī)科學(xué)與技術(shù)1班&l
2、t;/p><p> 姓 名: </p><p> 學(xué) 號(hào): </p><p> 指導(dǎo)教師: </p><p> 成 績(jī): </p><p><b> 摘要</b&
3、gt;</p><p> 通過(guò)設(shè)計(jì)一個(gè)《同學(xué)錄管理系統(tǒng)》,進(jìn)一步熟悉C++中類(lèi)的概念、基本知識(shí)和技能,類(lèi)的封裝、繼承的實(shí)現(xiàn)方式。掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思路和方法,并利用所學(xué)的基本知識(shí)和技能解決簡(jiǎn)單的面向?qū)ο蟮某绦蛟O(shè)計(jì)問(wèn)題。了解系統(tǒng)開(kāi)發(fā)的需求分析、類(lèi)層次設(shè)計(jì)、模塊分解、編碼測(cè)試、模塊組裝與整體調(diào)試的全過(guò)程,加深對(duì)C++的理解與Visual C++環(huán)境的使用:逐步熟悉程序設(shè)計(jì)的方法,并養(yǎng)成良好的編程習(xí)慣。<
4、;/p><p> 關(guān)鍵字:C++;添加;查詢(xún);修改;刪除</p><p><b> 目 錄</b></p><p><b> 一、需求分析4</b></p><p><b> 二、總體設(shè)計(jì)5</b></p><p> 1.設(shè)計(jì)類(lèi),對(duì)象及基本
5、數(shù)據(jù)類(lèi)型:5</p><p> 2.實(shí)現(xiàn)各模塊功能的相應(yīng)程序:6</p><p><b> 三、詳細(xì)設(shè)計(jì)8</b></p><p><b> 四、測(cè)試12</b></p><p><b> 五、設(shè)計(jì)總結(jié)15</b></p><p>&l
6、t;b> 參考文獻(xiàn)15</b></p><p><b> 致謝16</b></p><p><b> 附錄17</b></p><p><b> 一、需求分析</b></p><p> 以本班的同學(xué)的具體數(shù)據(jù)為背景,設(shè)計(jì)一個(gè)本班同學(xué)同學(xué)錄,要求
7、如下:</p><p> (1) 錄入信息,必須包括:姓名,性別,電話(huà),家庭地址,郵編,E-mail等基本信息;</p><p> ?。?)修改信息,包括插入一條或多條信息,修改或者刪除某人的信息;</p><p> ?。?)查詢(xún)信息,可以按姓名,家庭住址,性別等多種方式查詢(xún);</p><p> ?。?)顯示所有信息 ;</p>
8、<p><b> 二、總體設(shè)計(jì)</b></p><p><b> 同學(xué)錄管理系統(tǒng)</b></p><p><b> 圖1</b></p><p> 數(shù)據(jù)結(jié)構(gòu)及各模塊分析:</p><p> 1.設(shè)計(jì)類(lèi),對(duì)象及基本數(shù)據(jù)類(lèi)型:</p><
9、p> 創(chuàng)建一個(gè)Classmates類(lèi),它有五個(gè)私有數(shù)據(jù)成員:</p><p> string name;姓名</p><p> string address;地址</p><p> string number;電話(huà)號(hào)碼</p><p> string post; 郵編</p&
10、gt;<p> string email E-mail</p><p> 包含七個(gè)公有成員函數(shù):</p><p><b> 功能如下:</b></p><p> char diaplay();首頁(yè)</p><p> void add_person();添加同學(xué)<
11、;/p><p> void del_person();刪除同學(xué)</p><p> void show_all(); 顯示所有同學(xué)</p><p> void alter();修改信息</p><p> void inquiry();查詢(xún)同學(xué)</p><p> void sav
12、e_new();保存新增加的同學(xué)</p><p> 在主函數(shù)main()之中,</p><p> .Classmates obj; 創(chuàng)建名為obj的對(duì)象</p><p><b> 結(jié)構(gòu)體:</b></p><p> struct record</p><p><b>
13、?。?lt;/b></p><p> Classmates object; object對(duì)象作為結(jié)構(gòu)體record的一個(gè)成員</p><p> record *prior;定義一個(gè)指向前驅(qū)的結(jié)構(gòu)體指針</p><p> record *next;定義一個(gè)指向后繼的結(jié)構(gòu)體指針</p><p><b> }
14、;</b></p><p> 該結(jié)構(gòu)體是在alter()修改函數(shù)中用來(lái)處理相關(guān)信息的修改.</p><p> 字符串變量: str,record;</p><p> 字符變量: choose;</p><p> 布爾型變量: flag;</p><p> 數(shù)據(jù)保存方式以及格式:</p>
15、;<p> 該同學(xué)錄管理系統(tǒng)將把輸入的人員信息保存為pClassmates.txt 文本文件,在文件讀取時(shí)系統(tǒng)將會(huì)把該文件中相關(guān)信息讀出,并在屏幕上顯示出相關(guān)信息.</p><p> 2.實(shí)現(xiàn)各模塊功能的相應(yīng)程序:</p><p><b> 1.界面:</b></p><p><b> display()<
16、/b></p><p><b> {</b></p><p> system("cls");</p><p> cout<<endl;</p><p> cout<<"\t\t------------------------------</p>
17、;<p><b> ….. ……</b></p><p> fflush(stdin);</p><p> return choose;</p><p><b> }</b></p><p><b> 添加同學(xué):</b></p><p
18、> add_person()</p><p><b> {</b></p><p> cout<<endl<<"根據(jù)下面</p><p><b> … …. … …</b></p><p> .save_new()</p><p&
19、gt;<b> {</b></p><p> ofstream outData("pClassmates.txt", ios::app);</p><p> if(!outData)</p><p><b> … …</b></p><p> outData.close
20、();</p><p><b> }</b></p><p> cout<<endl<<"新同學(xué)信息已經(jīng)保存好!!!"<<endl<<endl;</p><p> system("pause");</p><p><b&g
21、t; }</b></p><p><b> 刪除同學(xué)信息</b></p><p> del_person()</p><p><b> {</b></p><p> ofstream outData("temp.txt", ios::out);</p&
22、gt;<p><b> … …</b></p><p> cout<<endl<<"這個(gè)人的信息已經(jīng)從你的同學(xué)錄中刪除!!!"<<endl<<endl;</p><p><b> }</b></p><p> system("
23、;pause");</p><p><b> }</b></p><p><b> 顯示所有同學(xué)信息:</b></p><p> show_all()</p><p><b> {</b></p><p> ifstream inDa
24、ta("pClassmates.txt",ios::in);</p><p><b> … …</b></p><p> cout<<"所有同學(xué)信息已經(jīng)全部顯示出來(lái)!!!"<<endl;</p><p><b> }</b></p><
25、;p> system("pause");</p><p><b> }</b></p><p><b> 修改同學(xué)信息</b></p><p><b> alter()</b></p><p><b> {</b><
26、;/p><p> ifstream inData("pClassmates.txt", ios::in);</p><p><b> … …</b></p><p> cout<<endl<<"信息已經(jīng)修改完成!!!"<<endl<<endl;</p
27、><p> system("pause");</p><p><b> }</b></p><p><b> }</b></p><p><b> 查詢(xún)同學(xué)信息</b></p><p><b> select()<
28、;/b></p><p><b> {</b></p><p> ifstream inData("pClassmates.txt",ios::in);</p><p><b> … …</b></p><p><b> }</b></p
29、><p> system("pause");</p><p><b> }</b></p><p><b> 三、詳細(xì)設(shè)計(jì)</b></p><p><b> 詳細(xì)功能如下:</b></p><p><b> A,添加:
30、</b></p><p> 系統(tǒng)將提示用戶(hù)輸入新添加人員信息,輸入到文件中,人員信息數(shù)據(jù)包括姓名,電話(huà)號(hào)碼 ,郵箱,郵編,地址.</p><p><b> B,刪除:</b></p><p> 首先由用戶(hù)輸入要?jiǎng)h除的人員的姓名或者電話(huà)號(hào)碼,然后調(diào)用刪除函數(shù),刪除該人員的所有相關(guān)資料.</p><p>
31、 C,顯示所有人員信息:</p><p> 該功能將顯示已經(jīng)保存的所有人員的姓名,電話(huà), ,郵編及地址.</p><p><b> D,修改:</b></p><p> 首先由用戶(hù)輸入要修改的人員姓名或者電話(huà)號(hào)碼,然后系統(tǒng)用修改函數(shù)查找,顯示該名同學(xué)的資料,然后系統(tǒng)提示用戶(hù)輸入需要修改的人員的相關(guān)信息.并用雙向鏈表來(lái)實(shí)現(xiàn)修改功能</
32、p><p><b> E,查詢(xún):</b></p><p> 可由用戶(hù)輸入要查找的人員姓名或電話(huà)號(hào)碼,然后系統(tǒng)用查找函數(shù)查找,接著系統(tǒng)使用相關(guān)文件命令輸出所查找的人員的全部信息.</p><p><b> F,退出系統(tǒng)</b></p><p> 關(guān)閉同學(xué)錄管理系統(tǒng).</p><
33、p> 菜單用于選擇各項(xiàng)功能:</p><p><b> 其中包括:</b></p><p> .a:添加新同學(xué); </p><p><b> .b:刪除同學(xué);</b></p><p> .c:顯示所有人員信息;</p><p> .d:修改人員信息;<
34、/p><p> .e: 查詢(xún)同學(xué); </p><p><b> .f:關(guān)閉同學(xué)錄.</b></p><p> 采用面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,a,b,c,d,e,這五項(xiàng)菜單都調(diào)用一個(gè)函數(shù)來(lái)實(shí)現(xiàn).</p><p> void Classmates::alter()</p><p>&l
35、t;b> {</b></p><p> ifstream inData("pClassmates.txt", ios::in); </p><p> //打開(kāi)文件pClassmates.txt,進(jìn)行讀操作</p><p> if(!inData)//判斷文件打開(kāi)是否成功</p><p><b
36、> {</b></p><p> cout<<endl<<"對(duì)不起不能打開(kāi)文件!!!"<<endl<<endl;</p><p> //如果打開(kāi)失敗,輸出 “對(duì)不起不能打開(kāi)文件!!!”</p><p> system("pause");//屏幕暫停<
37、;/p><p><b> return;</b></p><p><b> } </b></p><p> string sign;//定義字符串變量sign</p><p> cout<<endl<<"請(qǐng)輸入你想要修改的同學(xué)</p><
38、;p> 的姓名或電話(huà)號(hào)碼:";</p><p> cin>>sign;//輸入變量sign</p><p> fflush(stdin);//清空緩沖區(qū)</p><p> record *H=new record;</p><p> //新建結(jié)構(gòu)體指針變量H,并為其分配空間</p&
39、gt;<p> record *p=H;//使p指針指向指針H</p><p> record *q=H;//使q指針也指向指針H</p><p> bool flag=true;//定義布爾型變量flag.</p><p> while(inData>>p->object.name>>p->object.n
40、umber>></p><p> p->object.qq >>p->object.post>>p->object.address)</p><p> //讀取文件中一個(gè)人的信息</p><p><b> {</b></p><p> p->next=n
41、ew record; //建立雙向鏈表</p><p> p=p->next;</p><p> p->prior=q;</p><p> q->next=p;</p><p><b> q=p;</b></p><p><b> }</
42、b></p><p> p->next=NULL;//使p的next成員指向NULL.</p><p> inData.close();//關(guān)閉pClassmates.txt文件</p><p> p=H;//使指針變量P指向結(jié)構(gòu)指針H的頭節(jié)點(diǎn)</p><p> while(p)//當(dāng)p不為空時(shí)</p>&l
43、t;p><b> {</b></p><p> if((p->object.name==sign)||(p->object.number==sign))</p><p> //判斷輸入是否為空.</p><p><b> {</b></p><p><b> i
44、f(flag)</b></p><p><b> {</b></p><p> cout<<endl<<"你想修改你同學(xué)的信息如下:"<<endl<<endl; </p><p> cout<<setiosflags(ios::
45、left)<<setw(17)</p><p> <<p->object.name<<""<<setw(16)</p><p> <<p->object.number<<" "<<setw(18)</p><p> <&
46、lt;p->object.qq <<" "<<setw(14)</p><p> <<p->object.post<<""<<setw(20)</p><p> <<p->object.address<<endl;</p><
47、p> //輸出要修改的人的信息</p><p> flag=false;</p><p><b> }</b></p><p> cout<<endl<<"請(qǐng)根據(jù)下面提示修改信息 : "<<endl;</p><p> cout<<&qu
48、ot;姓名 :" ;</p><p> cin>>p->object.name;</p><p> fflush(stdin);</p><p> cout<<"電話(huà)號(hào):";</p><p> cin>>p->object.number;</p>
49、;<p> fflush(stdin);</p><p> cin>>p->object.qq;</p><p> fflush(stdin);</p><p> cout<<"郵編 :";</p><p> cin>>p->object.post;
50、</p><p> fflush(stdin);</p><p> cout<<"地址 :";</p><p> cin>>p->object.address;</p><p> fflush(stdin);</p><p><b> break;
51、</b></p><p> //根據(jù)提示進(jìn)行修改</p><p><b> } </b></p><p> p=p->next;//使結(jié)構(gòu)體指針p指向該指針的末尾</p><p><b> } </b></p><p><b
52、> if(flag)</b></p><p><b> {</b></p><p> cout<<endl<<"你的同學(xué)錄中沒(méi)有你找的聯(lián)人!!!";</p><p> cout<<endl<<endl;</p><p> sy
53、stem("pause");</p><p><b> return;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><
54、;p> ofstream out("pClassmates.txt",ios::out);</p><p> //打開(kāi)文件pClassmates.txt,進(jìn)行寫(xiě)操作 </p><p> if (!out)//判斷文件打開(kāi)是否成功打開(kāi)</p><p><b> {</b></p><
55、;p> cout <<endl <<"對(duì)不起!!!不能打開(kāi)文件!!!!" <<endl;</p><p> system("pause");</p><p><b> return;</b></p><p> } </p>
56、;<p> p=H; //使結(jié)構(gòu)體指針p指向被修改的人的記錄的首地址.</p><p> while(p)//如果p不為空,則執(zhí)行以下語(yǔ)句</p><p><b> {</b></p><p> out<<setiosflags(ios::left)<<setw(17)<<p->o
57、bject.name </p><p> <<" "<<setw(16)<<p->object.number </p><p> <<" "<<setw(18)<<p->object.qq</p><p> <<"
58、"<<setw(14)<<p->object.post</p><p> <<" "<<setw(20)<<p->object.address<<endl;</p><p> 將修改后的信息保存到原來(lái)位置</p><p> p=p->next
59、;//使用p指針指向其本身的末尾</p><p><b> }</b></p><p> out.close();//關(guān)閉pClassmates.txt文件</p><p> cout<<endl<<"信息已經(jīng)修改完成!!!"<<endl<<endl;</p>
60、<p> system("pause");//屏幕暫停</p><p><b> }</b></p><p><b> }</b></p><p><b> 四、測(cè)試</b></p><p><b> 進(jìn)入主頁(yè)如圖2所示&l
61、t;/b></p><p><b> 圖2</b></p><p><b> 信息添加如圖3所示</b></p><p><b> 圖3</b></p><p><b> 信息瀏覽如圖4所示</b></p><p>&
62、lt;b> 圖4</b></p><p><b> 信息查詢(xún)?nèi)鐖D5所示</b></p><p><b> 圖5</b></p><p><b> 圖6</b></p><p><b> 信息修改如圖7所示</b></p&g
63、t;<p><b> 圖7</b></p><p><b> 五、設(shè)計(jì)總結(jié)</b></p><p> 通過(guò)這三周的課程設(shè)計(jì),我學(xué)到了在理論課中學(xué)不到的內(nèi)容,同時(shí)發(fā)現(xiàn)候動(dòng)手實(shí)踐比學(xué)習(xí)理論知識(shí)重要得多??蠢碚摰臇|西貌似很有道理,但一上機(jī)實(shí)踐,發(fā)現(xiàn)完全不是那么回事。書(shū)看得再多,以上機(jī)你還是會(huì)發(fā)現(xiàn)一些很小的但又很重要的錯(cuò)誤,而程序是容
64、不得半點(diǎn)錯(cuò)的,這也是我最近實(shí)踐所學(xué)到的。</p><p> 勇于向老師,同學(xué)請(qǐng)教,也是得以完成課程設(shè)計(jì)的重要因素,還有,圖書(shū)館豐富的參考書(shū)也給了我很大幫助。</p><p> 在此次的課程設(shè)計(jì)中,搞清楚了一些以前不明白的問(wèn)題,同時(shí)發(fā)現(xiàn)面向?qū)ο蟪绦蛟O(shè)計(jì)還有太多的東西值得學(xué)習(xí)。在以后的學(xué)習(xí)與實(shí)踐中,定會(huì)要嚴(yán)格要求自己,學(xué)習(xí)到更多的知識(shí)。扎實(shí)的學(xué)習(xí)基礎(chǔ)知識(shí),提高解決問(wèn)題和調(diào)試程序的能力。&l
65、t;/p><p><b> 參考文獻(xiàn)</b></p><p> [1]初小璐.完全掌握SQL Server 2000 [M] 機(jī)械工業(yè)出版社,2004</p><p> [2]Jeraod V.Post.數(shù)據(jù)庫(kù)管理系統(tǒng)(英文版.第三版)[美]清華大學(xué)出版社,2006.1</p><p> [3]張海藩.軟件工程導(dǎo)
66、論[M].北京:清華大學(xué)出版社,1998.</p><p> [4]謝希仁.計(jì)算機(jī)網(wǎng)絡(luò)(第二版)[M].北京:電子工業(yè)出版社,2003.6 </p><p> [5]戴志誠(chéng),趙國(guó)峰.JSP信息化系統(tǒng)建設(shè)案例[M].北京:人民郵電出版社,2006.12</p><p> [6]成曉靜,畢靖.網(wǎng)頁(yè)設(shè)計(jì)三劍客完全學(xué)習(xí)手冊(cè)[M].北京:中國(guó)電力出版社,2004.11&
67、lt;/p><p> [7]趙強(qiáng).精通JSP編程[M].北京:電子工業(yè)出版社,2006.3</p><p> [8]薩師煊,王珊.數(shù)據(jù)庫(kù)系統(tǒng)概論[M].北京:高等教育出版社,2002.2</p><p> [9]張海藩,李勁,謝兆陽(yáng).SQL Server2000數(shù)據(jù)庫(kù)設(shè)計(jì)與系統(tǒng)管理[M].北京:清華大學(xué)出版社,2000.9</p><p>
68、 [10]劉禾,蔡鋒.Web數(shù)據(jù)庫(kù)假設(shè)技巧[M].北京:科技技術(shù)出版社,1999.4</p><p> [11]徐建波. Internet與Web設(shè)計(jì)教程[M].北京:中國(guó)礦業(yè)大學(xué)出版社,2000.12</p><p> [12]于書(shū)舉,許向眾.數(shù)據(jù)庫(kù)設(shè)計(jì)與開(kāi)發(fā)教程[M].北京:電子工業(yè)出版社,2003.11</p><p> [13]安海忠,李文斌,林旭新
69、.商業(yè)網(wǎng)站建設(shè)與管理[M].北京:人民交通出版社,2006.8</p><p> [14]T.Umeda and S.Hagiwara.web-based database for EPR centers in semiconductors[J].BPhysica B:Condensed Matter,3(7),249-252,2006.3</p><p> [15]Yih-Ling
70、Hedley,Muhammad Younas.Sampling,information extraction and summarisation of Hidden Web databases[J].Data & Knowledge Engineering,In Press,Uncorrected Proof,Available online 10 March 2006.2</p><p><b&g
71、t; 致謝</b></p><p> 對(duì)于這樣一個(gè)編程,要付出很多的勞動(dòng),在此我向在此次課程設(shè)計(jì)時(shí)對(duì)我伸出援助之手的周小健老師,還有幫助我的同學(xué)們。這個(gè)軟件的實(shí)現(xiàn)固然需要自身的努力,當(dāng)然也離不開(kāi)同學(xué)們與老師的幫助與講解。缺少了這些也許我的程序就無(wú)法調(diào)試完成。謝謝老師和同學(xué)們的幫助與講解。</p><p><b> 附錄</b></p>
72、<p><b> 源代碼</b></p><p> #include <iostream> </p><p> #include<string></p><p> #include <cstring> //使用CString對(duì)字符串的操作更直接。如:CString型轉(zhuǎn)化成int型<
73、;/p><p> #include <fstream> //文件流,主要提供操作文件函數(shù)</p><p> using namespace std; </p><p> const int m=100;</p><p><b> int i; </b></p><p> st
74、ruct student1 </p><p><b> { </b></p><p> long num; </p><p> char name[20]; // 自動(dòng)申請(qǐng)內(nèi)存空間,用完自動(dòng)釋放內(nèi)存空間,下同</p><p><b> int age; </b>&
75、lt;/p><p> char sex[10]; </p><p> long year; </p><p> int month; </p><p> char address[20]; </p><p> string phonenumber; </p><p> char emai
76、l[100]; </p><p><b> }; </b></p><p> class student2 //定義類(lèi)</p><p><b> { </b></p><p><b> public: </b></p>&l
77、t;p> void add(); //添加錄入函數(shù)</p><p> void display(); // 申明一個(gè)名為display 的顯示輸出函數(shù)</p><p> void inquiry(); //查詢(xún)信息函數(shù)</p><p> void sort();
78、 //排序信息函數(shù)</p><p> void del(); //刪除信息函數(shù)</p><p> void update(); //修改信息函數(shù)</p><p> void face(); //界面瀏覽函數(shù)</p><p> v
79、oid tishi(); //提示用戶(hù)下一步操作函數(shù)</p><p> void quit(); //退出操作函數(shù)</p><p> protected: </p><p> student1 stud[m]; </p><p> int renshu; </p>
80、;<p><b> }; </b></p><p> //對(duì)同學(xué)信息的錄入</p><p> void student2::add() </p><p><b> { </b></p><p> ofstream outfile("C:\\classmates.tx
81、t",ios::binary); </p><p> //建立classmates.txt 文件,用于存儲(chǔ)錄入的內(nèi)容,并以二進(jìn)制的方式進(jìn)行存儲(chǔ)</p><p> if(!outfile) //如果目錄不存在</p><p><b> { </b
82、></p><p> cerr<<"對(duì)不起,文件打開(kāi)失敗!"<<endl; //報(bào)錯(cuò)</p><p> abort(); //程序異常終止進(jìn)程</p><p><b> } <
83、;/b></p><p> cout<<"請(qǐng)輸入你們班人數(shù):"; </p><p> cin>>renshu;</p><p> cout<<endl<<endl;</p><p> for(i=0;i<renshu;i++) </p>
84、<p> //用for循環(huán)語(yǔ)句實(shí)現(xiàn)對(duì)同學(xué)姓名,年齡,性別,出生年月,地址,電話(huà)等添加錄入</p><p><b> { </b></p><p> cout<<"這是第"<<(i+1)<<"個(gè)同學(xué)的信息:"<<endl; </p><p>
85、; cout<<"學(xué)號(hào):"; </p><p> cin>>stud[i].num; </p><p> cout<<"姓名:"; </p><p> cin>>stud[i].name; </p><p> cout<<"
86、年齡:"; </p><p> cin>>stud[i].age; </p><p> cout<<"性別:"; </p><p> cin>>stud[i].sex; </p><p> cout<<"出生年月:"<<end
87、l; </p><p> cout<<"年:"; </p><p> cin>>stud[i].year; </p><p> cout<<"月:"; </p><p> cin>>stud[i].month; </p><p&
88、gt; cout<<"地址:"; </p><p> cin>>stud[i].address; </p><p> cout<<"電話(huà):"; </p><p> cin>>stud[i].phonenumber; </p><p> cout&
89、lt;<"email:"; </p><p> cin>>stud[i].email; </p><p> cout<<endl<<endl; </p><p> outfile.write((char*)&stud[i],sizeof(student1)); </p>&
90、lt;p> //將&stud[i]指針?biāo)赶虻膬?nèi)容輸出,每次輸出的數(shù)據(jù)單元占sizeof(student1)個(gè)字節(jié)</p><p><b> } </b></p><p> outfile.close(); //輸出文件關(guān)閉</p><p><b>
91、 } </b></p><p> //對(duì)同學(xué)信息的顯示</p><p> void student2::display() </p><p><b> { </b></p><p> student1 s[m]; </p><p> ifstream infile("
92、;C:\\classmates.txt",ios::binary); //將信息從硬盤(pán)中調(diào)到內(nèi)存中</p><p> if(!infile) </p><p><b> { </b></p><p> cerr<<"對(duì)不起,打開(kāi)失敗!"<<endl; </p>
93、<p> abort(); //終止</p><p><b> } </b></p><p> for(i=0;i<renshu;i++) </p><p> infile.read((char*)&s[i],sizeof(stude
94、nt1)); </p><p> //一旦讀取成功,循環(huán)讀取&s[i]指針?biāo)傅膬?nèi)容,輸出的數(shù)據(jù)占sizeof(student1))字節(jié)</p><p> infile.close(); </p><p> for(i=0;i<renshu;i++) //循環(huán)輸出</
95、p><p><b> { </b></p><p> cout<<"第"<<(i+1)<<"個(gè)同學(xué)的信息:"<<endl; </p><p> cout<<"學(xué)號(hào):"<<s[i].num<<endl;
96、 </p><p> cout<<"姓名:"<<s[i].name<<endl; </p><p> cout<<"年齡:"<<s[i].age<<endl; </p><p> cout<<"性別:"<<
97、s[i].sex<<endl; </p><p> cout<<"出生年月:"<<endl; </p><p> cout<<"年:"<<s[i].year<<endl; </p><p> cout<<"月:"<
98、;<s[i].month<<endl; </p><p> cout<<"地址:"<<s[i].address<<endl; </p><p> cout<<"電話(huà):"<<s[i].phonenumber<<endl; </p><p&g
99、t; cout<<"Email:"<<s[i].email<<endl; </p><p> cout<<endl<<endl; </p><p><b> } </b></p><p><b> } </b></p>&
100、lt;p> //對(duì)同學(xué)信息的查詢(xún)</p><p> void student2::inquiry() </p><p><b> { </b></p><p> int m,flag=0; </p><p><b> long n; </b></p><p>
101、 char xm[20]; </p><p> cout<<"1.按學(xué)號(hào)查詢(xún);2.按姓名查詢(xún).請(qǐng)選擇!"<<endl; </p><p><b> cin>>m; </b></p><p><b> if(m==1) </b></p><p
102、><b> { </b></p><p> cout<<"請(qǐng)輸入學(xué)號(hào):"; </p><p><b> cin>>n; </b></p><p> cout<<endl<<endl; </p><p> for(i=
103、0;i<renshu;i++) </p><p><b> { </b></p><p> if(stud[i].num==n) </p><p><b> { </b></p><p> cout<<"這是第"<<(i+1)<<
104、"個(gè)同學(xué)的信息"<<endl; </p><p> cout<<"學(xué)號(hào):"<<stud[i].num<<endl; </p><p> cout<<"姓名:"<<stud[i].name<<endl; </p><p>
105、 cout<<"年齡:"<<stud[i].age<<endl; </p><p> cout<<"性別:"<<stud[i].sex<<endl; </p><p> cout<<"出生年月:"<<endl; </p>
106、;<p> cout<<"年:"<<stud[i].year<<endl; </p><p> cout<<"月:"<<stud[i].month<<endl; </p><p> cout<<"地址:"<<stud
107、[i].address<<endl; </p><p> cout<<"電話(huà):"<<stud[i].phonenumber<<endl; </p><p> cout<<"Email:"<<stud[i].email<<endl; </p><
108、p> flag=1; //用flag提示用戶(hù)是否查到信息</p><p><b> } </b></p><p><b> } </b></p><p> if(flag==0) //0表示沒(méi)有查到</p><p> cout<
109、<"沒(méi)有您要查詢(xún)的信息!"<<endl; </p><p><b> } </b></p><p><b> if(m==2) </b></p><p><b> { </b></p><p> cout<<"
110、請(qǐng)輸入姓名:"<<endl; </p><p> cin>>xm; //輸入姓名</p><p> for(i=0;i<renshu;i++) </p><p><b> { </b></p><p> if(strcmp(stud[i].n
111、ame,xm)==0) //strcmp用來(lái)比較字符串name和xm </p><p><b> { </b></p><p> cout<<"這是第"<<(i+1)<<"個(gè)同學(xué)的信息"<<endl; </p><p> cout<<
112、;"學(xué)號(hào):"<<stud[i].num<<endl; </p><p> cout<<"姓名:"<<stud[i].name<<endl; </p><p> cout<<"年齡:"<<stud[i].age<<endl; <
113、/p><p> cout<<"性別:"<<stud[i].sex<<endl; </p><p> cout<<"出生年月:"<<endl; </p><p> cout<<"年:"<<stud[i].year<&l
114、t;endl; </p><p> cout<<"月:"<<stud[i].month<<endl; </p><p> cout<<"地址:"<<stud[i].address<<endl; </p><p> cout<<"
115、電話(huà):"<<stud[i].phonenumber<<endl; </p><p> cout<<"Email:"<<stud[i].email<<endl; </p><p><b> flag=1; </b></p><p><b>
116、} </b></p><p><b> } </b></p><p> if(flag==0) </p><p> cout<<"沒(méi)有您要查詢(xún)的信息!"<<endl; </p><p><b> } </b></p>&l
117、t;p><b> } </b></p><p> //對(duì)同學(xué)信息的排序</p><p> void student2::sort() </p><p><b> { </b></p><p> int a[m],j,t; //利用冒泡法進(jìn)行排序</p
118、><p> for(i=0;i<renshu;i++) </p><p><b> a[i]=i; </b></p><p> for(i=0;i<renshu;i++) </p><p><b> { </b></p><p> for(j=0;j<
119、renshu-1-i;j++) </p><p><b> { </b></p><p> if(stud[a[j]].num>stud[a[j+ 1]].num) //若前面學(xué)號(hào)比后面大,則交換</p><p><b> { </b></p><p><b> t=a[j
120、]; </b></p><p> a[j]=a[j+ 1]; </p><p> a[j+ 1]=t; </p><p><b> } </b></p><p><b> } </b></p><p><b> } </b><
121、/p><p> cout<<"這是排序后的信息:"<<endl; </p><p> for(i=0;i<renshu;i++) </p><p><b> { </b></p><p> cout<<"這是第"<<(i+1
122、)<<"個(gè)同學(xué)的信息"<<endl; </p><p> cout<<"學(xué)號(hào):"<<stud[a[i]].num<<endl; </p><p> cout<<"姓名:"<<stud[a[i]].name<<endl; </p
123、><p> cout<<"年齡:"<<stud[a[i]].age<<endl; </p><p> cout<<"性別:"<<stud[a[i]].sex<<endl; </p><p> cout<<"出生年月:"&l
124、t;<endl; </p><p> cout<<"年:"<<stud[a[i]].year<<endl; </p><p> cout<<"月:"<<stud[a[i]].month<<endl; </p><p> cout<<
125、"地址:"<<stud[a[i]].address<<endl; </p><p> cout<<"電話(huà):"<<stud[a[i]].phonenumber<<endl; </p><p> cout<<"Email:"<<stud[a[i]]
126、.email<<endl; </p><p> cout<<endl<<endl; </p><p><b> } </b></p><p><b> } </b></p><p> //對(duì)同學(xué)信息的刪除</p><p> voi
127、d student2::del() </p><p><b> { </b></p><p> int j,a[m],t,flag=0; </p><p><b> long n; </b></p><p> char na[20]; </p><p> for(i
128、=0;i<renshu;i++) </p><p> {a[i]=i;} </p><p> cout<<"1.按學(xué)號(hào)刪除;2.按姓名刪除."; </p><p> cout<<"請(qǐng)您做出選擇!"<<endl; </p><p><b> ci
129、n>>j; </b></p><p><b> if(j==1) </b></p><p><b> { </b></p><p> cout<<"輸入您要?jiǎng)h除的學(xué)號(hào):"; </p><p><b> cin>>n
130、; </b></p><p> for(i=0;i<renshu;i++) </p><p><b> { </b></p><p> if(stud[i].num==n) </p><p><b> { </b></p><p><b>
131、 t=i; </b></p><p><b> flag=1; </b></p><p> cout<<"查到您要?jiǎng)h除的同學(xué)信息!"<<endl; </p><p> cout<<endl<<endl; </p><p> cout
132、<<"刪除后的同學(xué)信息為:"<<endl; </p><p> for( ;t<renshu;t++) </p><p><b> { </b></p><p> a[t]=t+1; </p><p><b> } </b></p>
133、;<p> for(i=0;i<renshu-1;i++) </p><p><b> { </b></p><p> cout<<"這是第"<<(i+1)<<"個(gè)同學(xué)的信息"<<endl; </p><p> cout<&
134、lt;"學(xué)號(hào):"<<stud[a[i]].num<<endl; </p><p> cout<<"姓名:"<<stud[a[i]].name<<endl; </p><p> cout<<"年齡:"<<stud[a[i]].age<<
135、;endl; </p><p> cout<<"性別:"<<stud[a[i]].sex<<endl; </p><p> cout<<"出生年月:"<<endl; </p><p> cout<<"年:"<<stud
136、[a[i]].year<<endl; </p><p> cout<<"月:"<<stud[a[i]].month<<endl; </p><p> cout<<"地址:"<<stud[a[i]].address<<endl; </p><p&
137、gt; cout<<"電話(huà):"<<stud[a[i]].phonenumber<<endl; </p><p> cout<<"Email:"<<stud[a[i]].email<<endl; </p><p> cout<<endl<<endl;
138、</p><p><b> } </b></p><p><b> } </b></p><p><b> } </b></p><p> if(flag==0) </p><p><b> { </b></p>
139、;<p> cout<<"沒(méi)有查到您要?jiǎng)h除的信息!"<<endl; </p><p><b> } </b></p><p><b> } </b></p><p><b> if(j==2) </b></p><p
140、><b> { </b></p><p> cout<<"輸入您要?jiǎng)h除的姓名:"; </p><p><b> cin>>na; </b></p><p> for(i=0;i<renshu;i++) </p><p><b>
141、; { </b></p><p> if(strcmp(stud[i].name,na)==0) //strcmp用來(lái)比較字符串</p><p><b> { </b></p><p><b> t=i; </b></p><p><b> flag=1; &l
142、t;/b></p><p> cout<<"查到您刪除的同學(xué)信息!"<<endl; </p><p> cout<<endl<<endl; </p><p> cout<<"刪除后的同學(xué)信息為:"<<endl; </p><
143、p> for( ;t<renshu;t++) </p><p><b> { </b></p><p> a[t]=t+1; </p><p><b> } </b></p><p> for(i=0;i<renshu-1;i++) </p><p&g
144、t;<b> { </b></p><p> cout<<"這是第"<<(i+1)<<"個(gè)同學(xué)的信息"<<endl; </p><p> cout<<"學(xué)號(hào):"<<stud[a[i]].num<<endl; </p
145、><p> cout<<"姓名:"<<stud[a[i]].name<<endl; </p><p> cout<<"年齡:"<<stud[a[i]].age<<endl; </p><p> cout<<"性別:"<
146、;<stud[a[i]].sex<<endl; </p><p> cout<<"出生年月:"<<endl; </p><p> cout<<"年:"<<stud[a[i]].year<<endl; </p><p> cout<<
147、"月:"<<stud[a[i]].month<<endl; </p><p> cout<<"地址:"<<stud[a[i]].address<<endl; </p><p> cout<<"電話(huà):"<<stud[a[i]].phonenumb
148、er<<endl; </p><p> cout<<"Email:"<<stud[a[i]].email<<endl; </p><p> cout<<endl<<endl; </p><p><b> } </b></p><
149、p><b> } </b></p><p><b> } </b></p><p> if(flag==0) </p><p><b> { </b></p><p> cout<<"沒(méi)有查到您要?jiǎng)h除同學(xué)的信息!"<<
150、endl; </p><p><b> } </b></p><p><b> } </b></p><p><b> } </b></p><p> //對(duì)同學(xué)信息的修改</p><p> void student2::update() &l
151、t;/p><p><b> { </b></p><p> int n,flag=0; </p><p> char na[20]; </p><p><b> int a; </b></p><p> char s[10]; </p><p>
152、<b> long y; </b></p><p><b> int m; </b></p><p> char add[30]; </p><p> long phn; </p><p> char e[100]; </p><p> cout<<&
153、quot;輸入您要修改的同學(xué)學(xué)號(hào):"; </p><p><b> cin>>n; </b></p><p> for(i=0;i<renshu;i++) </p><p><b> { </b></p><p> if(stud[i].num==n) </
154、p><p><b> { </b></p><p> cout<<"新的姓名:"; </p><p><b> cin>>na; </b></p><p> strcpy(stud[i].name,na); </p><p>
155、 cout<<"新的年齡:"; </p><p><b> cin>>a; </b></p><p> stud[i].age=a; </p><p> cout<<"新的性別:"; </p><p><b> cin>&
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 同學(xué)錄系統(tǒng)vc++課程設(shè)計(jì)
- 同學(xué)錄設(shè)計(jì)與實(shí)現(xiàn)開(kāi)題報(bào)告
- 同學(xué)錄系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 畢業(yè)論文--- 同學(xué)錄的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)論文--- 同學(xué)錄的設(shè)計(jì)與實(shí)現(xiàn)
- 基于.net技術(shù)的同學(xué)錄系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 同學(xué)錄畢業(yè)設(shè)計(jì)
- 同學(xué)錄
- 畢業(yè)論文——同學(xué)錄設(shè)計(jì)
- 畢業(yè)論文——同學(xué)錄設(shè)計(jì)
- 畢業(yè)論文——同學(xué)錄設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---同學(xué)錄網(wǎng)站設(shè)計(jì)
- asp+sql同學(xué)錄設(shè)計(jì)與實(shí)現(xiàn)(源代碼+論文)
- 同學(xué)錄.doc
- 基于.net的同學(xué)錄系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- asp+sql同學(xué)錄設(shè)計(jì)與實(shí)現(xiàn)(源代碼+論文)
- asp+sql同學(xué)錄設(shè)計(jì)與實(shí)現(xiàn)(源代碼+論文)
- c++課程設(shè)計(jì)--gui小游戲的設(shè)計(jì)與實(shí)現(xiàn)
- 同學(xué)錄.doc
- 同學(xué)錄.doc
評(píng)論
0/150
提交評(píng)論