2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  選題2名稱: 同學(xué)錄系統(tǒng)</p><p><b>  目 錄</b></p><p><b>  課題目標(biāo)</b></p><p>  1.1 程序功能簡(jiǎn)介</p><p>  1.2 課程設(shè)計(jì)要求</p><p>  1.3 評(píng)定難易級(jí)別</p

2、><p><b>  具體實(shí)現(xiàn)</b></p><p>  2.1 程序總體方案</p><p><b>  2.1.1開發(fā)平臺(tái)</b></p><p>  2.1.2程序結(jié)構(gòu)或流程圖</p><p>  2.2 關(guān)鍵代碼及注釋</p><p><

3、;b>  程序截圖</b></p><p><b>  調(diào)試報(bào)告</b></p><p> ?。ㄔ谠O(shè)計(jì)和實(shí)現(xiàn)過程所遇到的問題和解決,請(qǐng)如實(shí)填寫)…</p><p><b>  總體小結(jié)</b></p><p> ?。ㄔ谡麄€(gè)設(shè)計(jì)過程中的心得體會(huì))</p><p&g

4、t;<b>  分工介紹</b></p><p> ?。ㄊ仟?dú)立完成還是合作完成,若為合作完成,說明合作者以及之間的具體分工)…</p><p><b>  一、課題目標(biāo)</b></p><p>  1.1 程序功能簡(jiǎn)介</p><p>  此程序是一個(gè)簡(jiǎn)單的同學(xué)錄系統(tǒng),具有導(dǎo)入同學(xué)信息,存儲(chǔ),顯示、

5、新增、刪除、查詢、修改同學(xué)信息等功能,最主要的是,它是用雙向鏈表實(shí)現(xiàn)的,所以新增和刪除的效率非常的高。</p><p>  其菜單分為:顯示所有同學(xué)錄信息、新增一個(gè)同學(xué)錄信息、刪除一個(gè)同學(xué)錄信息、查詢系統(tǒng)、修改同學(xué)錄信息,尋求幫助等。</p><p>  1.2 課程設(shè)計(jì)要求</p><p>  用雙向鏈表完成一個(gè)同學(xué)錄系統(tǒng)</p><p>

6、  實(shí)現(xiàn)同學(xué)錄所該有的功能,并方便用戶的使用!</p><p>  1.3 評(píng)定難易級(jí)別</p><p><b>  A組</b></p><p><b>  二、具體實(shí)現(xiàn)</b></p><p>  2.1 程序總體方案</p><p><b>  2.1.1開

7、發(fā)平臺(tái)</b></p><p>  操作系統(tǒng):Windows 7</p><p>  開發(fā)工具:visual studio 2010</p><p>  2.1.2程序結(jié)構(gòu)或流程圖</p><p><b>  主函數(shù)的流程圖:</b></p><p>  2.2 所做改進(jìn) </

8、p><p><b>  2.2.1改進(jìn)一</b></p><p>  2.2.1.1 改進(jìn)方案</p><p>  基本上這個(gè)程序都是自己寫的,改進(jìn)也只是對(duì)原有要求的添加而已。</p><p>  先說說這個(gè)程序怎么實(shí)現(xiàn)所有功能的吧。</p><p>  2.2.1.2 具體實(shí)現(xiàn)</p>

9、<p>  進(jìn)入程序,首先是讀取txt文件的信息,然后顯示的是菜單。再然后一目了然的有各種功能。</p><p>  總體是用雙向鏈表做的。</p><p>  新增結(jié)點(diǎn)信息:即添加一個(gè)鏈表結(jié)點(diǎn)信息。</p><p>  顯示所有信息:是先根據(jù)學(xué)號(hào)排序,然后從頭至尾分屏顯示所有信息,鏈表依次讀取。</p><p>  刪除操作:

10、 即鏈表操作,刪除一個(gè)結(jié)點(diǎn).</p><p>  查詢操作: 按要求進(jìn)行各種情況查詢,總體思想是線性的比較,如果有匹配的字符串就輸出(這里面用的是string.find函數(shù))。</p><p>  修改同學(xué)錄: 先根據(jù)查找操作找到這個(gè)信息,再修改當(dāng)前結(jié)點(diǎn)信息</p><p>  尋求幫助: 作為一些運(yùn)用該程序的說明而存在。可以對(duì)用戶一些較常見的疑問

11、做出回答。</p><p>  退出程序: 退出前會(huì)保存所有的信息至txt文件。</p><p><b>  2.2.2改進(jìn)二</b></p><p>  2.2.2.1 改進(jìn)方案</p><p>  為了使我的查詢更完善,我的程序做到了部分字符串匹配的查詢方式,即比如在輸入姓名查詢的時(shí)候,如果輸入的是姓名的姓或者

12、名,那么與之匹配的所有信息都會(huì)顯示,而不是顯示結(jié)果不存在。</p><p>  同樣的,還可以根據(jù)自己一開始對(duì)該同學(xué)的評(píng)價(jià)做查詢。</p><p>  另外,我設(shè)置了幫助選項(xiàng),可以為用戶解答很多常見的疑問??梢苑奖阌脩?。</p><p>  2.2.2.2 具體實(shí)現(xiàn)</p><p>  運(yùn)用STL string類里面的find( )函數(shù);把我

13、的成員全都定義成string類的,最后再讓用戶輸入所需查找的字符串(也是一個(gè)string類),然后從到之為用find函數(shù)查,如njust[i].name.find(temp)!=string::npos;則加入到輸出。</p><p>  在所有的查詢方式里使用相同的方法,即可實(shí)現(xiàn),所有的查詢都帶有子串查找功能。</p><p><b>  STL確實(shí)方便</b>&l

14、t;/p><p><b>  三、程序運(yùn)行截圖</b></p><p><b>  進(jìn)入程序:</b></p><p><b>  進(jìn)入菜單:</b></p><p><b>  分屏顯示</b></p><p><b>  

15、查詢界面:</b></p><p><b>  修改同學(xué)錄信息:</b></p><p><b>  幫助界面:</b></p><p><b>  四、調(diào)試報(bào)告</b></p><p>  調(diào)試還算順利,只是一開始容錯(cuò)方面做得比較簡(jiǎn)陋。后來改好了。再又就是一開始功

16、能比較少,后來慢慢一步步完善,變成現(xiàn)在這樣,還算可以用用的程序。</p><p><b>  五、總體小結(jié)</b></p><p>  經(jīng)過這么多天的編程,我了解到了要想完成一個(gè)比較大的程序,需要先根據(jù)程序的要求,確定設(shè)計(jì)思路,畫出流程圖,把想要用到的函數(shù)都寫出其函數(shù)原型說明。然后根據(jù)自己已經(jīng)寫好的函數(shù)原型說明。一步步把函數(shù)都實(shí)現(xiàn)。即分別寫出每一個(gè)功能所需要的具體的函

17、數(shù)。</p><p>  這樣,有一個(gè)清晰的思路,就比較有調(diào)理,有了調(diào)理,也不容易忘記一些想要實(shí)現(xiàn)的東西。然后,才會(huì)有一個(gè)層次分明,客戶友好的程序。</p><p>  另外,類的封裝和雙向鏈表弄起來還是比較繁瑣的。但是,把問題一個(gè)個(gè)搞清楚以后,問題就自然而然的被簡(jiǎn)化了。</p><p>  另外編程序還要注重細(xì)節(jié),任意一個(gè)看似細(xì)微的的錯(cuò)誤,都可能會(huì)引起一連串的er

18、ror,所以每次從鍵盤讀入數(shù)據(jù)或者數(shù)據(jù)的處理的環(huán)節(jié)都要注意合法性的檢查。</p><p>  最后不得不提的是,我加入ACM隊(duì),在暑假做了大量的題目聯(lián)系,所以在調(diào)試方面沒有出現(xiàn)什么打問題,都算是比較輕松的過關(guān)了。熟練的寫程序,對(duì)我們著實(shí)是非常重要的!</p><p><b>  六、分工介紹</b></p><p><b>  獨(dú)立完

19、成。</b></p><p>  #pragma once</p><p>  #include"student.h"</p><p>  struct node //鏈表node結(jié)點(diǎn)</p><p><b>  {</b></p><

20、;p>  student &stu;</p><p>  node *next;</p><p>  node *prev;</p><p>  node(student & s)</p><p><b>  :stu(s)</b></p><p><b>  {&

21、lt;/b></p><p><b>  }</b></p><p><b>  };</b></p><p>  class guanli</p><p><b>  {</b></p><p><b>  public:</b&

22、gt;</p><p>  node * head_ptr;</p><p>  node *tail_ptr;</p><p>  node * current_ptr;</p><p>  guanli(void);</p><p>  ~guanli(void);</p><p>  vo

23、id UserChoice(int);//用戶選擇</p><p>  void InsertRecord();//插入信息</p><p>  void InsertNode(node *);//插入新結(jié)點(diǎn)</p><p>  void InsertNodeAtHead(node*);//插入頭結(jié)點(diǎn)</p><p>  void Inser

24、tNodeAtEnd(node*);//插入尾結(jié)點(diǎn)</p><p>  void ShowList();//顯示所有信息</p><p>  void ShowSortedList1();//顯示排序后鏈表1</p><p>  void ShowSortedList2();//顯示排序后鏈表2</p><p>  void DeleteRe

25、cord();//刪除某條記錄</p><p>  void DeleteNodeAtHead();//刪除頭結(jié)點(diǎn)</p><p>  void DeleteNodeAtEnd();//刪除尾結(jié)點(diǎn)</p><p>  void DeleteNodeAtMiddle();//在中間刪除</p><p>  void DeleteNode();/

26、/刪除某個(gè)節(jié)點(diǎn)</p><p>  void ChangeMes();//修改信息函數(shù)</p><p>  bool VerifyDelete();//確認(rèn)刪除</p><p>  void DeleteList();//釋放鏈表,保存至文件</p><p>  void SearchChoice();//選擇查找方式</p>

27、<p>  void ASearchByName();//A方式中的名字查找</p><p>  void ASearchByStuNum();//A方式中的學(xué)號(hào)查找</p><p>  void ASearchByDormNum();//A方式中的整個(gè)宿舍查找</p><p>  void BSearchByStuNum();//B方式,按學(xué)號(hào)顯示個(gè)人詳

28、細(xì)信息</p><p>  void LoadFile();//讀取文件</p><p>  void SaveFile();//存至文件</p><p>  void Help();//幫助提示函數(shù)</p><p>  void UserInput();//用戶輸入備用</p><p><b>  };&l

29、t;/b></p><p>  #include "guanli.h"</p><p>  #include<iostream></p><p>  using namespace std;</p><p>  guanli::guanli(void)</p><p><b&

30、gt;  {</b></p><p><b>  }</b></p><p>  guanli::~guanli(void)</p><p><b>  {</b></p><p><b>  }</b></p><p>  void gua

31、nli::UserChoice(int t)</p><p><b>  {</b></p><p><b>  switch(t)</b></p><p><b>  {</b></p><p><b>  case 0:</b></p>

32、<p>  InsertRecord();//添加結(jié)點(diǎn)(OK)</p><p><b>  break;</b></p><p><b>  case 1:</b></p><p>  ShowList();//顯示所有結(jié)點(diǎn)信息(OK)</p><p><b>  break;&

33、lt;/b></p><p><b>  case 2:</b></p><p>  DeleteRecord();//刪除記錄 (OK)</p><p><b>  break;</b></p><p><b>  case 3:</b></p><

34、p>  SearchChoice();//查找記錄(OK)</p><p><b>  break;</b></p><p><b>  case 4:</b></p><p>  ChangeMes();</p><p><b>  break;</b></p&g

35、t;<p><b>  case 5:</b></p><p>  Help();//幫助文件</p><p><b>  break;</b></p><p><b>  case 6:</b></p><p>  SaveFile();</p>

36、<p>  if(head_ptr!=NULL)</p><p>  DeleteList();</p><p><b>  break;</b></p><p><b>  default :</b></p><p>  cout<<"選擇無效,請(qǐng)重新輸入: &qu

37、ot;;</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void guanli::InsertRecord()</p><p><b>  

38、{</b></p><p>  char tt[15];</p><p>  char temp_memory[300];</p><p>  student *s=new student;</p><p>  node * new_ptr=new node(*s);</p><p>  if(new_pt

39、r!=NULL)</p><p><b>  {</b></p><p>  system("cls");</p><p>  cout<<"同學(xué)姓名: ";</p><p>  cin>>new_ptr->stu.fri_name;</p>

40、;<p>  cout<<"郵箱:";</p><p>  cin>>new_ptr->stu.e_mail;</p><p>  cout<<"性別:";</p><p>  cin>>new_ptr->stu.sex;</p><

41、p>  cout<<"電話號(hào)碼:";</p><p>  cin>>new_ptr->stu.phone_num;</p><p>  cout<<"珍貴回憶有(請(qǐng)輸入一句話,不含空格,可用逗號(hào)分隔):";</p><p>  cin>>new_ptr->stu

42、.memory;</p><p>  InsertNode(new_ptr);</p><p>  cin.ignore(20,'\n');</p><p>  cout<<"是否繼續(xù)添加?Y/N"<<endl;</p><p>  char te[30];</p>

43、<p>  cin.getline(te,30);</p><p>  if(!strcmp(te,"Y")||!strcmp(te,"y"))InsertRecord();</p><p><b>  }</b></p><p><b>  else</b></p

44、><p>  cout<<"申請(qǐng)內(nèi)存空間失敗,不能創(chuàng)建新結(jié)點(diǎn)??!\n";</p><p>  //system("cls");</p><p><b>  }</b></p><p>  void guanli::InsertNode(node *new_ptr)<

45、/p><p><b>  {</b></p><p>  //system("cls");</p><p>  node * temp_ptr;</p><p><b>  //若鏈表為空</b></p><p>  if(head_ptr==NULL)<

46、;/p><p><b>  {</b></p><p>  new_ptr->next=new_ptr;</p><p>  new_ptr->prev=new_ptr;</p><p>  head_ptr=new_ptr;</p><p>  tail_ptr=new_ptr;<

47、/p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  //只有一個(gè)節(jié)點(diǎn)</b></p><p>  if(head_ptr->next==head_ptr)</p><p><b&g

48、t;  {</b></p><p>  if(new_ptr->stu.fri_name<head_ptr->stu.fri_name)</p><p>  InsertNodeAtHead(new_ptr);</p><p><b>  else </b></p><p>  Insert

49、NodeAtEnd(new_ptr);</p><p><b>  return ;</b></p><p><b>  }</b></p><p>  //多個(gè)節(jié)點(diǎn),自動(dòng)按姓名排序插入</p><p>  if(head_ptr->next!=head_ptr)</p><

50、;p><b>  {</b></p><p>  current_ptr=head_ptr->next;</p><p>  while((new_ptr->stu.fri_name>current_ptr->stu.fri_name)//比較姓名進(jìn)行排序</p><p>  &&(current_

51、ptr!=head_ptr))//并且當(dāng)前結(jié)點(diǎn)不是頭結(jié)點(diǎn)(雙向鏈表的頭尾是相連的)</p><p>  current_ptr=current_ptr->next;//繼續(xù)向后拓展結(jié)點(diǎn)</p><p>  if(current_ptr==head_ptr)</p><p>  InsertNodeAtEnd(new_ptr);//插入在鏈表尾</p>

52、;<p><b>  else</b></p><p><b>  {</b></p><p>  temp_ptr=current_ptr->prev;//此時(shí),插入的結(jié)點(diǎn)在current結(jié)點(diǎn)和temp結(jié)點(diǎn)之間</p><p>  temp_ptr->next=new_ptr;</p>

53、;<p>  new_ptr->prev=temp_ptr;</p><p>  current_ptr->prev=new_ptr;</p><p>  new_ptr->next=current_ptr;</p><p><b>  }</b></p><p><b>  }

54、</b></p><p><b>  }</b></p><p>  void guanli::InsertNodeAtEnd(node*new_ptr)</p><p><b>  {</b></p><p>  new_ptr->next=head_ptr;</p>

55、<p>  tail_ptr->next=new_ptr;</p><p>  new_ptr->prev=tail_ptr;</p><p>  head_ptr->prev=new_ptr;</p><p>  tail_ptr=new_ptr;</p><p><b>  }</b>

56、</p><p>  void guanli::InsertNodeAtHead(node *new_ptr)</p><p><b>  {</b></p><p>  new_ptr->next=head_ptr;</p><p>  new_ptr->prev=tail_ptr;</p>

57、<p>  head_ptr->prev=new_ptr;</p><p>  tail_ptr->next=new_ptr;</p><p>  tail_ptr=new_ptr;</p><p><b>  }</b></p><p>  #include "guanli.h&quo

58、t;</p><p>  #include<iostream></p><p>  #include<iomanip></p><p>  using namespace std;</p><p>  void guanli::ShowList()</p><p><b>  {<

59、;/b></p><p>  system("cls");</p><p><b>  int n;</b></p><p>  cout<<"\t\t\t下面將顯示所有同學(xué)錄信息\n\n\t\t\t請(qǐng)輸入每屏幕顯示學(xué)生的個(gè)數(shù)\n\n\t\t\t每顯示一屏幕暫停一次\n\n\t\t\t輸入的數(shù)不大

60、于20:\n";</p><p><b>  cin>>n;</b></p><p>  system("cls");</p><p><b>  int i;</b></p><p>  current_ptr=head_ptr;</p>&

61、lt;p>  if(current_ptr!=NULL)</p><p><b>  do</b></p><p><b>  { </b></p><p><b>  i=1;</b></p><p>  cout<<setw(14)<<&quo

62、t;姓名"<<setw(8)<<"性別"<<setw(30)<<"郵箱"<<setw(20)<<"電話號(hào)碼"<<endl<<endl;</p><p><b>  do</b></p><p><b

63、>  {</b></p><p>  cout<<setw(14)<<current_ptr->stu.fri_name<<setw(8)<<current_ptr->stu.sex;</p><p>  cout<<setw(30)<<current_ptr->stu.e_mail

64、<<setw(20)<<current_ptr->stu.phone_num<<endl;</p><p>  current_ptr=current_ptr->next;</p><p><b>  i++;</b></p><p>  }while(current_ptr!=head_ptr&

65、amp;&i<=n);</p><p>  cout<<endl<<endl;</p><p>  if(current_ptr!=head_ptr)</p><p><b>  {</b></p><p>  system("pause");</p>

66、<p>  system("cls");</p><p><b>  }</b></p><p>  else cout<<"文件結(jié)束!"<<endl;</p><p>  }while(current_ptr!=head_ptr);</p><p

67、><b>  else</b></p><p><b>  {</b></p><p>  cout<<"同學(xué)錄為空!"<<endl;</p><p><b>  }</b></p><p>  system("pau

68、se");</p><p>  system("cls");</p><p><b>  }</b></p><p>  void guanli::SearchChoice()</p><p><b>  {</b></p><p><b&

69、gt;  char n;</b></p><p>  cout<<endl<<"輸入數(shù)字鍵選擇你所要進(jìn)行的操作:"<<endl<<endl;</p><p>  cout<<"\t\t\t1:姓名查詢"<<endl<<endl;</p>&l

70、t;p>  cout<<"\t\t\t2:姓名缺省查詢(姓氏,名字部分查詢)"<<endl<<endl;</p><p>  cout<<"\t\t\t3:記憶片段查詢"<<endl<<endl;</p><p>  cout<<"\t\t\t4:退出

71、查詢"<<endl<<endl;</p><p>  cout<<"輸入你的選擇:"<<endl;</p><p><b>  cin>>n;</b></p><p>  while(n!='4')</p><p&g

72、t;<b>  {</b></p><p><b>  switch(n)</b></p><p><b>  {</b></p><p>  case '1':</p><p>  ASearchByStuNum();</p><

73、p><b>  break;</b></p><p><b>  case '2':</b></p><p>  ASearchByName();</p><p><b>  break;</b></p><p><b>  case '

74、3':</b></p><p>  ASearchByDormNum();</p><p><b>  break;</b></p><p><b>  default :</b></p><p>  cout<<"對(duì)不起,您輸入的查詢方式尚未做出,請(qǐng)重新輸

75、入: ";</p><p><b>  break;</b></p><p><b>  }</b></p><p>  cout<<"輸入0顯示菜單,輸入5退出查詢,其他任意鍵繼續(xù)查詢:"<<endl;</p><p><b> 

76、 char pp;</b></p><p><b>  cin>>pp;</b></p><p>  if(pp=='0')</p><p><b>  {</b></p><p>  cout<<endl<<"輸入數(shù)字鍵選擇

77、你所要進(jìn)行的操作:"<<endl<<endl;</p><p>  cout<<"\t\t\t1:姓名查詢"<<endl<<endl;</p><p>  cout<<"\t\t\t2:姓名缺省查詢(姓氏,名字部分查詢)"<<endl<<endl

78、;</p><p>  cout<<"\t\t\t3:記憶片段查詢"<<endl<<endl;</p><p>  cout<<"\t\t\t4:退出查詢"<<endl<<endl;</p><p>  cout<<"輸入你的選擇:&

79、quot;<<endl;</p><p><b>  cin>>n;</b></p><p><b>  }</b></p><p>  else if(pp=='4')n='4';</p><p>  system("cls&qu

80、ot;);</p><p><b>  }</b></p><p><b>  }</b></p><p>  void guanli::ASearchByStuNum()</p><p><b>  {</b></p><p>  system(&qu

81、ot;cls");</p><p>  bool nFlag=0;</p><p>  string search_str;</p><p>  current_ptr=head_ptr;</p><p>  if(current_ptr==NULL)</p><p>  cout<<"

82、;學(xué)生記錄為空"<<endl;</p><p><b>  else</b></p><p><b>  {</b></p><p>  cin.ignore(20,'\n');</p><p>  cout<<"\n輸入你要搜索的同學(xué)姓名

83、:";</p><p>  cin>>search_str;</p><p>  if(current_ptr->stu.fri_name==search_str)</p><p><b>  {</b></p><p><b>  nFlag=1;</b></p&

84、gt;<p>  cout<<"姓名:"<<current_ptr->stu.fri_name<<"\t性別:"<<current_ptr->stu.sex;</p><p>  cout<<"\t電話:"<<current_ptr->stu.phon

85、e_num<<"\t郵箱:"<<current_ptr->stu.e_mail<<endl;</p><p>  cout<<"珍貴回憶:\n"<<current_ptr->stu.memory<<endl;</p><p><b>  }</b>

86、;</p><p><b>  else</b></p><p><b>  {</b></p><p>  current_ptr=current_ptr->next;</p><p>  while(current_ptr!=head_ptr)</p><p>&l

87、t;b>  {</b></p><p>  if(current_ptr->stu.fri_name==search_str)</p><p><b>  {</b></p><p><b>  nFlag=1;</b></p><p>  cout<<"

88、;姓名:"<<current_ptr->stu.fri_name<<"\t性別:"<<current_ptr->stu.sex;</p><p>  cout<<"\t電話:"<<current_ptr->stu.phone_num<<"\t郵箱:"<

89、;<current_ptr->stu.e_mail<<endl;</p><p>  cout<<"珍貴回憶:\n"<<current_ptr->stu.memory<<endl;</p><p><b>  break;</b></p><p><b&

90、gt;  }</b></p><p>  current_ptr=current_ptr->next;</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(!nFlag)//搜索完所有結(jié)點(diǎn)都沒發(fā)現(xiàn)</p><

91、p><b>  {</b></p><p>  cout<<"無記錄!"<<endl;</p><p>  system("pause");</p><p>  system("cls");</p><p><b>  

92、}</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void guanli::ASearchByName()</p><p><b>  {</b></p><p>  system

93、("cls");</p><p>  bool nFlag=0;</p><p>  string search_str;</p><p>  current_ptr=head_ptr;</p><p>  if(current_ptr==NULL)</p><p>  cout<<&

94、quot;同學(xué)錄為空"<<endl;</p><p><b>  else</b></p><p><b>  {</b></p><p>  cin.ignore(20,'\n');</p><p>  cout<<"\n輸入你要搜索的同

95、學(xué)的姓或名或其中的一部分:";</p><p>  cin>>search_str;</p><p>  if(current_ptr->stu.fri_name.find(search_str)!=string::npos)</p><p><b>  {</b></p><p>  if(

96、!nFlag)cout<<"找到記錄\n";</p><p><b>  nFlag=1;</b></p><p>  cout<<"姓名:"<<current_ptr->stu.fri_name<<"\t性別:"<<current_ptr-&

97、gt;stu.sex;</p><p>  cout<<"\t電話:"<<current_ptr->stu.phone_num<<"\t郵箱:"<<current_ptr->stu.e_mail<<endl;</p><p>  cout<<"珍貴回憶:\n

98、"<<current_ptr->stu.memory<<endl<<endl;</p><p><b>  }</b></p><p>  current_ptr=current_ptr->next;</p><p>  while(current_ptr!=head_ptr)</

99、p><p><b>  {</b></p><p>  if(current_ptr->stu.fri_name.find(search_str)!=string::npos)</p><p><b>  {</b></p><p>  if(!nFlag)cout<<"找到

100、記錄\n";</p><p><b>  nFlag=1;</b></p><p>  cout<<"姓名:"<<current_ptr->stu.fri_name<<"\t性別:"<<current_ptr->stu.sex;</p><

101、p>  cout<<"\t電話:"<<current_ptr->stu.phone_num<<"\t郵箱:"<<current_ptr->stu.e_mail<<endl;</p><p>  cout<<"珍貴回憶:\n"<<current_ptr-&

102、gt;stu.memory<<endl<<endl;</p><p><b>  }</b></p><p>  current_ptr=current_ptr->next;</p><p><b>  }</b></p><p>  if(!nFlag)//搜索完所有

103、結(jié)點(diǎn)都沒發(fā)現(xiàn)</p><p><b>  {</b></p><p>  cout<<"無記錄!"<<endl;</p><p>  system("pause");</p><p>  system("cls");</p>

104、<p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void guanli::ASearchByDormNum()</p><p><b>  {</b><

105、/p><p>  system("cls");</p><p>  bool nFlag=0;</p><p>  string search_str;</p><p>  current_ptr=head_ptr;</p><p>  if(current_ptr==NULL)</p>

106、<p>  cout<<"學(xué)生記錄為空"<<endl;</p><p><b>  else</b></p><p><b>  {</b></p><p>  cin.ignore(20,'\n');</p><p>  co

107、ut<<"\n輸入你對(duì)那個(gè)同學(xué)的記憶(即你當(dāng)初輸入的一句話里面的幾個(gè)詞語):";</p><p>  cin>>search_str;</p><p>  if(current_ptr->stu.memory.find(search_str)!=string::npos)</p><p><b>  {&l

108、t;/b></p><p>  if(!nFlag)cout<<"找到記錄\n";</p><p><b>  nFlag=1;</b></p><p>  cout<<"姓名:"<<current_ptr->stu.fri_name<<&quo

109、t;\t性別:"<<current_ptr->stu.sex;</p><p>  cout<<"\t電話:"<<current_ptr->stu.phone_num<<"\t郵箱:"<<current_ptr->stu.e_mail<<endl;</p>&l

110、t;p>  cout<<"珍貴回憶:\n"<<current_ptr->stu.memory<<endl<<endl;</p><p><b>  }</b></p><p>  current_ptr=current_ptr->next;</p><p> 

111、 while(current_ptr!=head_ptr)</p><p><b>  {</b></p><p>  if(current_ptr->stu.memory.find(search_str)!=string::npos)</p><p><b>  {</b></p><p>

112、  if(!nFlag)cout<<"找到記錄\n";</p><p><b>  nFlag=1;</b></p><p>  cout<<"姓名:"<<current_ptr->stu.fri_name<<"\t性別:"<<current_

113、ptr->stu.sex;</p><p>  cout<<"\t電話:"<<current_ptr->stu.phone_num<<"\t郵箱:"<<current_ptr->stu.e_mail<<endl;</p><p>  cout<<"珍貴

114、回憶:\n"<<current_ptr->stu.memory<<endl<<endl;</p><p><b>  }</b></p><p>  current_ptr=current_ptr->next;</p><p><b>  }</b></p&g

115、t;<p>  if(!nFlag)//搜索完所有結(jié)點(diǎn)都沒發(fā)現(xiàn)</p><p><b>  {</b></p><p>  cout<<"無記錄!"<<endl;</p><p>  system("pause");</p><p>  sy

116、stem("cls");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  #include "guanli.h"</p><p

117、>  #include<iostream></p><p>  #include<iomanip></p><p>  using namespace std;</p><p>  void guanli::DeleteRecord()</p><p><b>  {</b></p&g

118、t;<p>  system("cls");</p><p>  string search_string;</p><p>  node *previous_ptr=NULL;</p><p>  current_ptr=head_ptr;</p><p>  if(current_ptr==NULL)&l

119、t;/p><p><b>  {</b></p><p>  cout<<"沒有你要?jiǎng)h除的記錄!"<<endl;</p><p><b>  return;</b></p><p><b>  }</b></p><p

120、>  cin.ignore(20,'\n');</p><p>  int nFlag=0;</p><p>  bool ask=0;</p><p>  char n[30];</p><p>  cout<<"\t\t是否需要先根據(jù)查找來查看所要?jiǎng)h除的同學(xué)完整姓名?Y/N"<&

121、lt;endl;</p><p>  cin.getline(n,30);</p><p>  if(!strcmp(n,"y")||!strcmp(n,"Y"))SearchChoice();</p><p>  cout<<"\n輸入你要?jiǎng)h除的同學(xué)完整姓名:\n";</p>&

122、lt;p>  cin>>search_string;</p><p>  while((current_ptr->stu.fri_name==search_string)&&head_ptr!=NULL)</p><p><b>  {</b></p><p><b>  nFlag=1;<

123、;/b></p><p>  cout<<"\n找到記錄\n";</p><p>  cout<<"姓名:"<<current_ptr->stu.fri_name<<"\t性別:"<<current_ptr->stu.sex;</p>&l

124、t;p>  cout<<"\t郵箱:"<<current_ptr->stu.e_mail<<"\t電話:"<<current_ptr->stu.phone_num<<endl;</p><p>  cout<<"珍貴回憶:\n"<<current_ptr

125、->stu.memory<<endl;</p><p>  if(VerifyDelete()) //向用戶詢問是否真的要?jiǎng)h除</p><p><b>  {</b></p><p>  DeleteNode();</p><p>  cout<<"\n記錄已刪除!\n&quo

126、t;;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  cout<<"姓名為:"<<current_ptr->stu.fri_na

127、me<<"\t的記錄沒有刪除"<<endl;</p><p>  current_ptr=current_ptr->next;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  do

128、</b></p><p><b>  {</b></p><p>  if(current_ptr->stu.fri_name==search_string)</p><p><b>  {</b></p><p><b>  nFlag=1;</b><

129、/p><p>  cout<<"\n找到記錄\n";</p><p>  cout<<"姓名:"<<current_ptr->stu.fri_name<<"\t性別:"<<current_ptr->stu.sex;</p><p>  co

130、ut<<"\t郵箱:"<<current_ptr->stu.e_mail<<"\t電話:"<<current_ptr->stu.phone_num<<endl;</p><p>  cout<<"珍貴回憶:\n"<<current_ptr->stu.me

131、mory<<endl;</p><p>  if(VerifyDelete()) //向用戶詢問是否真的要?jiǎng)h除</p><p><b>  {</b></p><p>  DeleteNode();</p><p>  cout<<"\n記錄已刪除!\n";</p&g

132、t;<p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  cout<<"姓名為:"<<current_ptr->stu.fri_name<<&

133、quot;\t的記錄沒有刪除"<<endl;</p><p><b>  }</b></p><p><b>  }</b></p><p>  current_ptr=current_ptr->next;</p><p>  }while(current_ptr!=he

134、ad_ptr||head_ptr==NULL);</p><p>  if(!nFlag)cout<<"\n沒有找到相符的記錄也沒有刪除記錄。\n";</p><p>  cin.get();</p><p>  system("cls");</p><p><b>  }<

135、/b></p><p>  void guanli::Help()</p><p><b>  {</b></p><p><b>  help:</b></p><p>  char choice2;</p><p>  system("cls")

136、;</p><p>  cout<<"歡迎使用“幫助”,請(qǐng)輸入幫助類型:\n";</p><p>  cout<<"1:此程序有哪些功能?"<<endl;</p><p>  cout<<"2:如何一次性刪除所有記錄?"<<endl;</p&

137、gt;<p>  cout<<"3:此程序關(guān)閉后我的記錄存在哪里?為什么我修改的記錄沒有被保存?"<<endl;</p><p>  cout<<"4:為什么有時(shí)候我的程序會(huì)突然死掉?"<<endl;</p><p>  cout<<"5:何時(shí)會(huì)有更完善的版本出現(xiàn)?&

138、quot;<<endl;</p><p>  cout<<"6:此程序的作者信息?"<<endl;</p><p>  cout<<"7:退出幫助。"<<endl;</p><p>  cin>>choice2;</p><p> 

139、 switch(choice2)</p><p><b>  {</b></p><p><b>  case '1':</b></p><p>  cout<<"此程序?yàn)橐粋€(gè)同學(xué)錄系統(tǒng),由雙向鏈表實(shí)現(xiàn)。"<<endl;</p><p> 

140、 cout<<"具體的話可以查看菜單。"<<endl;</p><p>  cout<<"謝謝您使用本程序!"<<endl;</p><p>  system("pause");</p><p>  system("cls");</p

141、><p>  goto help;</p><p><b>  break;</b></p><p><b>  case '2':</b></p><p>  cout<<"請(qǐng)退出本程序后手動(dòng)刪除一個(gè)名為xuejiguanli.txt的文件,謝謝~"&l

142、t;<endl;</p><p>  system("pause");</p><p>  system("cls");</p><p>  goto help;</p><p><b>  break;</b></p><p><b>  

143、case '3':</b></p><p>  cout<<"在一個(gè)名為xuejiguanli.txt的文件里面"<<endl;</p><p>  cout<<"只有正常關(guān)閉才會(huì)保存,在運(yùn)行途中強(qiáng)行關(guān)閉,程序?qū)⒉粚?duì)原有文件做任何修改"<<endl;</p>&

144、lt;p>  system("pause");</p><p>  system("cls");</p><p>  goto help;</p><p><b>  break;</b></p><p><b>  case '4':</b&

145、gt;</p><p>  cout<<"目前本程序在輸入有誤方面的容錯(cuò)處理可能還不夠完善,有時(shí)輸入太多非法數(shù)據(jù)可能導(dǎo)致程序死機(jī)";</p><p>  cout<<"所以,請(qǐng)規(guī)范您的操作,并注意輸入的正確,謝謝您的配合。"<<endl;</p><p>  system("pau

146、se");</p><p>  system("cls");</p><p>  goto help;</p><p><b>  break;</b></p><p><b>  case '5':</b></p><p>  

147、cout<<"下一屆課程設(shè)計(jì)必然有更強(qiáng)大的學(xué)弟學(xué)妹來完善它。"<<endl;</p><p>  system("pause");</p><p>  system("cls");</p><p>  goto help;</p><p><b> 

148、 break;</b></p><p><b>  case '6':</b></p><p>  cout<<"Author:計(jì)科三班,孫健波。\n學(xué)號(hào):0906840330\n";</p><p>  cout<<"謝謝您的使用~~"<<

149、endl;</p><p>  system("pause");</p><p>  system("cls");</p><p>  goto help;</p><p><b>  break;</b></p><p><b>  defaul

150、t:</b></p><p>  system("pause");</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  bo

151、ol guanli::VerifyDelete()</p><p><b>  {</b></p><p>  char v[100];</p><p>  cout<<"\n確認(rèn)?(Y/N)";</p><p>  scanf("%s",v);</p>

152、<p>  cin.ignore(20,'\n');</p><p>  if(!strcmp(v,"y")||!strcmp(v,"Y"))return true;</p><p>  else return false;</p><p><b>  }</b></p&g

153、t;<p>  void guanli::DeleteNode()</p><p><b>  {</b></p><p>  if(current_ptr==head_ptr)</p><p>  DeleteNodeAtHead();</p><p><b>  else</b>&

154、lt;/p><p>  if(current_ptr->next==head_ptr)</p><p>  DeleteNodeAtEnd();</p><p><b>  else</b></p><p>  DeleteNodeAtMiddle();</p><p><b>  }

155、</b></p><p>  void guanli::DeleteNodeAtHead()</p><p><b>  {</b></p><p>  if(head_ptr->next!=head_ptr)</p><p><b>  {</b></p><

溫馨提示

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

評(píng)論

0/150

提交評(píng)論