c++課程設(shè)計(jì)--同學(xué)錄的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
已閱讀1頁,還剩24頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

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>  專業(yè)班級:計(jì)算機(jī)科學(xué)與技術(shù)1班&l

2、t;/p><p>  姓 名: </p><p>  學(xué) 號: </p><p>  指導(dǎo)教師: </p><p>  成 績: </p><p><b>  摘要</b&

3、gt;</p><p>  通過設(shè)計(jì)一個《同學(xué)錄管理系統(tǒng)》,進(jìn)一步熟悉C++中類的概念、基本知識和技能,類的封裝、繼承的實(shí)現(xiàn)方式。掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思路和方法,并利用所學(xué)的基本知識和技能解決簡單的面向?qū)ο蟮某绦蛟O(shè)計(jì)問題。了解系統(tǒng)開發(fā)的需求分析、類層次設(shè)計(jì)、模塊分解、編碼測試、模塊組裝與整體調(diào)試的全過程,加深對C++的理解與Visual C++環(huán)境的使用:逐步熟悉程序設(shè)計(jì)的方法,并養(yǎng)成良好的編程習(xí)慣。<

4、;/p><p>  關(guān)鍵字:C++;添加;查詢;修改;刪除</p><p><b>  目 錄</b></p><p><b>  一、需求分析4</b></p><p><b>  二、總體設(shè)計(jì)5</b></p><p>  1.設(shè)計(jì)類,對象及基本

5、數(shù)據(jù)類型:5</p><p>  2.實(shí)現(xiàn)各模塊功能的相應(yīng)程序:6</p><p><b>  三、詳細(xì)設(shè)計(jì)8</b></p><p><b>  四、測試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ì)一個本班同學(xué)同學(xué)錄,要求

7、如下:</p><p>  (1) 錄入信息,必須包括:姓名,性別,電話,家庭地址,郵編,E-mail等基本信息;</p><p> ?。?)修改信息,包括插入一條或多條信息,修改或者刪除某人的信息;</p><p> ?。?)查詢信息,可以按姓名,家庭住址,性別等多種方式查詢;</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ì)類,對象及基本數(shù)據(jù)類型:</p><

9、p>  創(chuàng)建一個Classmates類,它有五個私有數(shù)據(jù)成員:</p><p>  string name;姓名</p><p>  string address;地址</p><p>  string number;電話號碼</p><p>  string post; 郵編</p&

10、gt;<p>  string email E-mail</p><p>  包含七個公有成員函數(shù):</p><p><b>  功能如下:</b></p><p>  char diaplay();首頁</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();查詢同學(xué)</p><p>  void sav

12、e_new();保存新增加的同學(xué)</p><p>  在主函數(shù)main()之中,</p><p>  .Classmates obj; 創(chuàng)建名為obj的對象</p><p><b>  結(jié)構(gòu)體:</b></p><p>  struct record</p><p><b> 

13、?。?lt;/b></p><p>  Classmates object; object對象作為結(jié)構(gòu)體record的一個成員</p><p>  record *prior;定義一個指向前驅(qū)的結(jié)構(gòu)體指針</p><p>  record *next;定義一個指向后繼的結(jié)構(gòu)體指針</p><p><b>  }

14、;</b></p><p>  該結(jié)構(gòu)體是在alter()修改函數(shù)中用來處理相關(guān)信息的修改.</p><p>  字符串變量: str,record;</p><p>  字符變量: choose;</p><p>  布爾型變量: flag;</p><p>  數(shù)據(jù)保存方式以及格式:</p>

15、;<p>  該同學(xué)錄管理系統(tǒng)將把輸入的人員信息保存為pClassmates.txt 文本文件,在文件讀取時系統(tǒng)將會把該文件中相關(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<<"這個人的信息已經(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)全部顯示出來!!!"<<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>  查詢同學(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)將提示用戶輸入新添加人員信息,輸入到文件中,人員信息數(shù)據(jù)包括姓名,電話號碼 ,郵箱,郵編,地址.</p><p><b>  B,刪除:</b></p><p>  首先由用戶輸入要刪除的人員的姓名或者電話號碼,然后調(diào)用刪除函數(shù),刪除該人員的所有相關(guān)資料.</p><p> 

31、 C,顯示所有人員信息:</p><p>  該功能將顯示已經(jīng)保存的所有人員的姓名,電話, ,郵編及地址.</p><p><b>  D,修改:</b></p><p>  首先由用戶輸入要修改的人員姓名或者電話號碼,然后系統(tǒng)用修改函數(shù)查找,顯示該名同學(xué)的資料,然后系統(tǒng)提示用戶輸入需要修改的人員的相關(guān)信息.并用雙向鏈表來實(shí)現(xiàn)修改功能</

32、p><p><b>  E,查詢:</b></p><p>  可由用戶輸入要查找的人員姓名或電話號碼,然后系統(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: 查詢同學(xué); </p><p><b>  .f:關(guān)閉同學(xué)錄.</b></p><p>  采用面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,a,b,c,d,e,這五項(xiàng)菜單都調(diào)用一個函數(shù)來實(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>  //打開文件pClassmates.txt,進(jìn)行讀操作</p><p>  if(!inData)//判斷文件打開是否成功</p><p><b

36、>  {</b></p><p>  cout<<endl<<"對不起不能打開文件!!!"<<endl<<endl;</p><p>  //如果打開失敗,輸出 “對不起不能打開文件!!!”</p><p>  system("pause");//屏幕暫停<

37、;/p><p><b>  return;</b></p><p><b>  } </b></p><p>  string sign;//定義字符串變量sign</p><p>  cout<<endl<<"請輸入你想要修改的同學(xué)</p><

38、;p>  的姓名或電話號碼:";</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>  //讀取文件中一個人的信息</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不為空時</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<<"請根據(jù)下面提示修改信息 : "<<endl;</p><p>  cout<<&qu

48、ot;姓名 :" ;</p><p>  cin>>p->object.name;</p><p>  fflush(stdin);</p><p>  cout<<"電話號:";</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é)錄中沒有你找的聯(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>  //打開文件pClassmates.txt,進(jìn)行寫操作 </p><p>  if (!out)//判斷文件打開是否成功打開</p><p><b>  {</b></p><

55、;p>  cout <<endl <<"對不起!!!不能打開文件!!!!" <<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í)行以下語句</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>  將修改后的信息保存到原來位置</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>  四、測試</b></p><p><b>  進(jìn)入主頁如圖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>  信息查詢?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>  通過這三周的課程設(shè)計(jì),我學(xué)到了在理論課中學(xué)不到的內(nèi)容,同時發(fā)現(xiàn)候動手實(shí)踐比學(xué)習(xí)理論知識重要得多??蠢碚摰臇|西貌似很有道理,但一上機(jī)實(shí)踐,發(fā)現(xiàn)完全不是那么回事。書看得再多,以上機(jī)你還是會發(fā)現(xiàn)一些很小的但又很重要的錯誤,而程序是容

64、不得半點(diǎn)錯的,這也是我最近實(shí)踐所學(xué)到的。</p><p>  勇于向老師,同學(xué)請教,也是得以完成課程設(shè)計(jì)的重要因素,還有,圖書館豐富的參考書也給了我很大幫助。</p><p>  在此次的課程設(shè)計(jì)中,搞清楚了一些以前不明白的問題,同時發(fā)現(xiàn)面向?qū)ο蟪绦蛟O(shè)計(jì)還有太多的東西值得學(xué)習(xí)。在以后的學(xué)習(xí)與實(shí)踐中,定會要嚴(yán)格要求自己,學(xué)習(xí)到更多的知識。扎實(shí)的學(xué)習(xí)基礎(chǔ)知識,提高解決問題和調(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ù)庫管理系統(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]戴志誠,趙國峰.JSP信息化系統(tǒng)建設(shè)案例[M].北京:人民郵電出版社,2006.12</p><p>  [6]成曉靜,畢靖.網(wǎng)頁設(shè)計(jì)三劍客完全學(xué)習(xí)手冊[M].北京:中國電力出版社,2004.11&

67、lt;/p><p>  [7]趙強(qiáng).精通JSP編程[M].北京:電子工業(yè)出版社,2006.3</p><p>  [8]薩師煊,王珊.數(shù)據(jù)庫系統(tǒng)概論[M].北京:高等教育出版社,2002.2</p><p>  [9]張海藩,李勁,謝兆陽.SQL Server2000數(shù)據(jù)庫設(shè)計(jì)與系統(tǒng)管理[M].北京:清華大學(xué)出版社,2000.9</p><p>

68、  [10]劉禾,蔡鋒.Web數(shù)據(jù)庫假設(shè)技巧[M].北京:科技技術(shù)出版社,1999.4</p><p>  [11]徐建波. Internet與Web設(shè)計(jì)教程[M].北京:中國礦業(yè)大學(xué)出版社,2000.12</p><p>  [12]于書舉,許向眾.數(shù)據(jù)庫設(shè)計(jì)與開發(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>  對于這樣一個編程,要付出很多的勞動,在此我向在此次課程設(shè)計(jì)時對我伸出援助之手的周小健老師,還有幫助我的同學(xué)們。這個軟件的實(shí)現(xiàn)固然需要自身的努力,當(dāng)然也離不開同學(xué)們與老師的幫助與講解。缺少了這些也許我的程序就無法調(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對字符串的操作更直接。如: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]; // 自動申請內(nèi)存空間,用完自動釋放內(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 //定義類</p><p><b>  { </b></p><p><b>  public: </b></p>&l

77、t;p>  void add(); //添加錄入函數(shù)</p><p>  void display(); // 申明一個名為display 的顯示輸出函數(shù)</p><p>  void inquiry(); //查詢信息函數(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(); //提示用戶下一步操作函數(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>  //對同學(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 文件,用于存儲錄入的內(nèi)容,并以二進(jìn)制的方式進(jìn)行存儲</p><p>  if(!outfile) //如果目錄不存在</p><p><b>  { </b

82、></p><p>  cerr<<"對不起,文件打開失敗!"<<endl; //報錯</p><p>  abort(); //程序異常終止進(jìn)程</p><p><b>  } <

83、;/b></p><p>  cout<<"請輸入你們班人數(shù):"; </p><p>  cin>>renshu;</p><p>  cout<<endl<<endl;</p><p>  for(i=0;i<renshu;i++) </p>

84、<p>  //用for循環(huán)語句實(shí)現(xiàn)對同學(xué)姓名,年齡,性別,出生年月,地址,電話等添加錄入</p><p><b>  { </b></p><p>  cout<<"這是第"<<(i+1)<<"個同學(xué)的信息:"<<endl; </p><p>

85、;  cout<<"學(xué)號:"; </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<<"電話:"; </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)個字節(jié)</p><p><b>  } </b></p><p>  outfile.close(); //輸出文件關(guān)閉</p><p><b> 

91、 } </b></p><p>  //對同學(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); //將信息從硬盤中調(diào)到內(nèi)存中</p><p>  if(!infile) </p><p><b>  { </b></p><p>  cerr<<"對不起,打開失敗!"<<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)<<"個同學(xué)的信息:"<<endl; </p><p>  cout<<"學(xué)號:"<<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<<"電話:"<<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>  //對同學(xué)信息的查詢</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é)號查詢;2.按姓名查詢.請選擇!"<<endl; </p><p><b>  cin>>m; </b></p><p><b>  if(m==1) </b></p><p

102、><b>  { </b></p><p>  cout<<"請輸入學(xué)號:"; </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、"個同學(xué)的信息"<<endl; </p><p>  cout<<"學(xué)號:"<<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<<"電話:"<<stud[i].phonenumber<<endl; </p><p>  cout<<"Email:"<<stud[i].email<<endl; </p><

108、p>  flag=1; //用flag提示用戶是否查到信息</p><p><b>  } </b></p><p><b>  } </b></p><p>  if(flag==0) //0表示沒有查到</p><p>  cout<

109、<"沒有您要查詢的信息!"<<endl; </p><p><b>  } </b></p><p><b>  if(m==2) </b></p><p><b>  { </b></p><p>  cout<<"

110、請輸入姓名:"<<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用來比較字符串name和xm </p><p><b>  { </b></p><p>  cout<<"這是第"<<(i+1)<<"個同學(xué)的信息"<<endl; </p><p>  cout<<

112、;"學(xué)號:"<<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、電話:"<<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<<"沒有您要查詢的信息!"<<endl; </p><p><b>  } </b></p>&l

117、t;p><b>  } </b></p><p>  //對同學(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é)號比后面大,則交換</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、)<<"個同學(xué)的信息"<<endl; </p><p>  cout<<"學(xué)號:"<<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<<"電話:"<<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>  //對同學(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é)號刪除;2.按姓名刪除."; </p><p>  cout<<"請您做出選擇!"<<endl; </p><p><b>  ci

129、n>>j; </b></p><p><b>  if(j==1) </b></p><p><b>  { </b></p><p>  cout<<"輸入您要刪除的學(xué)號:"; </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<<"查到您要刪除的同學(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)<<"個同學(xué)的信息"<<endl; </p><p>  cout<&

134、lt;"學(xué)號:"<<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<<"電話:"<<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<<"沒有查到您要刪除的信息!"<<endl; </p><p><b>  } </b></p><p><b>  } </b></p><p><b>  if(j==2) </b></p><p

140、><b>  { </b></p><p>  cout<<"輸入您要刪除的姓名:"; </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用來比較字符串</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)<<"個同學(xué)的信息"<<endl; </p><p>  cout<<"學(xué)號:"<<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<<"電話:"<<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<<"沒有查到您要刪除同學(xué)的信息!"<<

150、endl; </p><p><b>  } </b></p><p><b>  } </b></p><p><b>  } </b></p><p>  //對同學(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é)號:"; </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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論