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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  課程設計(論文)</b></p><p>  2017年 1 月 12 日</p><p> 課程名稱程序設計實踐</p><p> 題 目學生成績管理系統設計與實現實現</p><p> 院 (系)理學院</p><p> 專業班級</p>&

2、lt;p> 姓 名</p><p> 學 號</p><p> 指導教師</p><p>  學生成績管理系統的設計與實現</p><p><b>  摘要</b></p><p>  學生成績管理系統是典型的信息管理系統,是學校教務管理的重要組成部分,其處理信息量很大。<

3、/p><p>  本課程設計是用C++實現對學生的成績管理作一個簡單的模擬,實質是建立學生成績單鏈表,每條記錄由學號、姓名與成績組成,即鏈表中每個結點由4個域組成,分別為:學號、姓名、成績存放下一個結點地址的next域。用菜單選擇操作方式完成6項功能分別寫成六個函數,創建學生成績對應建立學生單鏈表的功能,對全部學生成績的排序,最后保存在文件中,另外四個功能分別對應單鏈表的顯示、查詢、修改與刪除四大基本操作。該系統中的

4、數據采用線性表中的鏈式存儲結構即單鏈表來存儲,用類類型定義每個學生記錄并采用外部文件方式記錄數據簡便數據的讀取與保存。</p><p>  通過對學生成績管理系統的制作,能夠讓使用者迅速地對學生的成績做各項處理和顯示,最終的到想要的信息,方便且易于操作。</p><p>  關鍵詞 學生成績管理系統 , C++, 鏈表 ,文件 </p><p><b&

5、gt;  目錄</b></p><p>  1 總體介紹課程設計內容1</p><p>  1.1 課設內容總體介紹1</p><p>  1.1.1設計內容1</p><p>  1.1.2課程設計的要求1</p><p>  1.2 個人完成部分2</p><p>  

6、2 主要算法與原理3</p><p><b>  2.1 鏈表3</b></p><p>  2.1.1 鏈表的介紹3</p><p>  2.1.2 鏈表的創建與輸出 3</p><p>  2.1.3鏈表結點的訪問 4</p><p>  2.1.4鏈表結點的插入

7、 4</p><p>  2.1.5鏈表結點的刪除 4</p><p>  2.2 文件的使用 4</p><p>  2.2.1.打開文件4</p><p>  2.2.2關閉文件5</p><p>  2.2.3文本文件的讀寫5</p><p>  

8、3 學生成績管理系統的設計與實現6</p><p>  3.1 學生類成員及函數6</p><p>  3.2 學生信息類成員及函數6</p><p>  3.3 主要函數說明7</p><p>  3.4 學生成績管理系統的總結構圖7</p><p>  3.5 模塊的流程圖7</p>&l

9、t;p>  3.6 難點及難點的解決8</p><p>  4 結果分析及改進9</p><p>  5 小結和心得13</p><p><b>  6 參考文獻14</b></p><p><b>  附錄15</b></p><p>  1 總體介紹課程設

10、計內容</p><p>  1.1 課設內容總體介紹</p><p><b>  1.1.1設計內容</b></p><p>  制作學生成績管理系統,實現數據錄入、數據刪除、數據瀏覽以及數據查詢等功能。</p><p>  1.1.2課程設計的要求</p><p>  包括系統設計要求,開發環境

11、要求,技術文檔要求三部分。</p><p> ?。?)系統設計要求:</p><p> ?。╝)學生成績管理系統中不同使用單位(用戶)的學生人數事先無法確定。</p><p> ?。╞) 該學生成績管理系統要求有學生成績錄入,查詢,修改,刪除,排序。</p><p> ?。╟) 系統使用文字菜單,用戶通過選擇菜單項的編號,實現系統對子模塊的調

12、用。</p><p> ?。╠) 每個班級每門課程的成績可以從學生的成績總表提取出子表并存儲成一個文本文件。該文本文件名由班級號和課程名拼音字符串構成。輸入班級號和課程名字符串后自動生成文件名。 </p><p>  (e) 每個學生學習的課程有數學,英語,C++。</p><p>  (f) 學生的成績總表結構約定為(學號,姓名,課程名,總評成績).總評成績等于各

13、科成績之和。</p><p>  (g)學號是一個9位整數構成的字符串, 學號的編碼規則:入學年份+在讀年級+在讀班級+班內編號;入學年份用4位整數構成字符串,如2014年入學則表示為:”2014”;在讀年級用1位整數構成字符串,如正在1年級讀書則表示為:”1”;在讀班級用2位整數構成字符串,如正在1班讀書則表示為:”01”;班內編號用2位整數構成字符串,如在班內編號為23號則表示為:”23”。</p>

14、;<p><b> ?。?)開發環境要求</b></p><p>  軟件環境:windows XP/windows 7,Visual C++</p><p>  硬件環境:計算機(Pen4 CPU, 512MRAM,60G以上硬盤,輸入輸出設備)</p><p> ?。?)技術文檔要求:</p><p>

15、  按軟件工程技術文檔要求。要求流程圖繪制規范,模塊功能描述清晰</p><p>  1.2 個人完成部分</p><p>  第一階段:學習鏈表相關知識來動態分配存儲空間,并作出鏈表的程序及學習文件在C++中的應用;</p><p>  第二階段:錄入學生成績、顯示學生成績、查詢學生成績并畫出相關流程圖,并與隊友共同把所有的程序進行整理并調試成功;</p&g

16、t;<p>  第三階段:獨立完成論文的書寫。</p><p><b>  2 主要算法與原理</b></p><p><b>  2.1 鏈表</b></p><p>  2.1.1 鏈表的介紹</p><p>  數組式計算機根據事先定義好的數組類型與長度自動為其分配一連續的存儲單

17、元,相同數組的位置和距離都是固定的,也就是說,任何一個數組元素的地址都可一個簡單的公式計算出來,因此這種結構可以有效的對數組元素進行隨機訪問。但若對數組元素進行插入和刪除操作,則會引起大量數據的移動,從而使簡單的數據處理變得非常復雜,低效。鏈表是一種動態數據結構,用一組任意的存儲單元(可以是連續的,也可以是不連續的)存放數據元素。 鏈表中每一個元素成為“結點”,每一個結點都是由數據域和指針域組成的,每個結點中的指針域指向下一個結點。He

18、ad是“頭指針”,表示鏈表的開始,用來指向第一個結點,而最后一個指針的指針域為NULL(空地址),表示鏈表的結束??梢钥闯鲦湵斫Y構必須利用指針才能實現,即一個結點中必須包含一個指針變量,用來存放下一個結點的地址。實際上,鏈表中的每個結點可以用若干個數據和若干個指針。結點中只有一個指針的鏈表稱為單鏈表,這是最簡單的鏈表結構。</p><p>  2.1.2 鏈表的創建與輸出 </p><

19、;p>  圖1 動態鏈表創建 圖 2 鏈表輸出</p><p>  2.1.3鏈表結點的訪問  </p><p>  由于鏈表中的各個結點是由指針鏈接在一起的,其存儲單元文筆是連續的,因此,對其中任意結點的地址無法向數組一樣,用一個簡單的公式計算出來,進行隨機訪問。只能從鏈表的頭指針(即head)開始,用一個指針p先指向第

20、一個結點,然后根據結點p找到下一個結點。以此類推,直至找到所要訪問的結點或到最后一個結點(指針為空)為止。</p><p>  2.1.4鏈表結點的插入  </p><p>  如果要在鏈表中的結點a之前插入結點b,則需要考慮下面幾點情況。(1)插入前鏈表是一個空表,這時插入新結點b后。(2)若a是鏈表的第一個結點,則插入后,結點b為第一個結點。(3)若鏈表中存在a,且不是第一個

21、結點,則首先要找出a的上一個結點a_k,然后使a_k的指針域指向b,在令b的指針域指向a,即可完成插入。(4)如鏈表中不存在a,則插在最后。先找到鏈表的最后一個結點a_n,然后使a_n的指針域指向結點b,而b指針的指針為空。</p><p>  2.1.5鏈表結點的刪除  </p><p>  如果要在鏈表中刪除結點a并釋放被刪除的結點所占的存儲空間,則需要考慮下列幾種情況。(1

22、)若要刪除的結點a是第一個結點,則把head指向a的下一個結點。(2)若要刪除的結點a存在于鏈表中,但不是第一個結點,則應使a得上一個結點a_k-1的指針域指向的下一個結點a_k+1。(3)空表或要刪除的結點a不存在,則不做任何改變。</p><p>  2.2 文件的使用 </p><p>  2.2.1.打開文件</p><p>  在ofstream

23、類中,成員函數open()實現打開文件的操作,從而將數據流和文件進行關聯,通過ofstream,ifstream,fstream對象進行對文件的讀寫操作</p><p><b>  函數:open()</b></p><p>  參數: filename   操作文件名</p><p>  mode  &

24、#160;     打開文件的方式</p><p>  prot        打開文件的屬性</p><p><b>  2.2.2關閉文件</b></p><p>  當文件讀寫操作完成之后,我們必須將文件關閉以使文件重新變為可訪問

25、的。成員函數close(),它負責將緩存中的數據排放出來并關閉文件。這個函數一旦被調用,原先的流對象就可以被用來打開其它的文件了,這個文件也就可以重新被其它的進程所訪問了。為防止流對象被銷毀時還聯系著打開的文件,析構函數將會自動調用關閉函數close()。</p><p>  2.2.3文本文件的讀寫</p><p>  Read成員函數從一個文件讀字節到一個指定的存儲器區域,由長度參數確

26、定要讀的字節數。如果給出長度參數,當遇到文件結束或者在文本模式文件中遇到文件結束標記字符時結束。</p><p>  3 學生成績管理系統的設計與實現</p><p>  3.1 學生類成員及函數</p><p><b>  表一 學生類</b></p><p>  3.2 學生信息類成員及函數</p>&

27、lt;p><b>  表二 學生信息類</b></p><p>  3.3 主要函數說明</p><p>  首先在創建菜單時,應包括創建學生成績錄入,顯示,查詢,修改,刪除,排序這六個功能,然后通過調用創建信息函數完成學生成績的錄入,顯示函數實現學生信息的全部顯示,通過修改可以改變輸入錯的信息,針對有的學生如果轉學什么的可以對其信息進行刪除,利用姓名來調用查詢

28、函數能夠得到所想要的學生信息;最后,通過調用排序函數后在,可以在所見的文件夾里打開所有錄入的學生信息及最終排序結果。</p><p>  3.4 學生成績管理系統的總結構圖</p><p>  通過總結構圖能夠直觀地看出所制作的成績管理系統的各項功能,總結構圖如下圖3.</p><p>  圖3 學生成績管理系統的總結構</p><p>  

29、3.5 模塊的流程圖</p><p>  根據系統提示,選擇1創建學生信息,根據系統提示可以一次輸入姓名,學號,成績,如果要對成績顯示則繼續選擇2,可以對成績顯示,當創建的信息大于等于2時可以繼續選擇3,進行排序,最終的結果可以在當前所建的記事本里顯示各項成績及排序,要對信息查詢選擇4來查詢你想要的信息,也可以對信息修改等,最終可以選擇0安全退出系統。 </p><p>  進入系統根據系

30、統提示來選擇想要進行的操作,從而完成各項的功能,利用信息查詢也可以來判斷所操作的刪除是否刪除成功的測試,查詢流程如下,圖4.</p><p>  圖4 信息查詢流程圖</p><p>  3.6 難點及難點的解決</p><p>  難點:通過構造兩個類來實現各種功能,使用鏈表來對各項功能的實現及使用文件來保存所得到的成績排序結果的連接中相對較難。</p>

31、;<p>  解決:通過自己認真學習課本所學過的鏈表及文件相關的知識,并通過上網查找類似的鏈表和文件在C++中的應用來完成。</p><p><b>  4 結果分析及改進</b></p><p>  首先進入系統界面后,會有時間,日期的顯示,并提示密碼的輸入,如下圖5.</p><p><b>  圖5 首界面<

32、/b></p><p>  根據界面提示進入菜單界面,可以對想要的操作進行選擇,如圖6.</p><p><b>  圖6 菜單界面</b></p><p>  選擇1,創建學生信息,創建學生的姓名、學號,各科成績,最后會顯示添加成功,結果如下圖7.</p><p><b>  圖7 創建學生信息<

33、/b></p><p>  根據剛才創建更多的學生信息后,選擇3,可以顯示創建的所有學生的信息,如圖8.</p><p><b>  圖8 顯示學生信息</b></p><p>  根據剛才創建的所有信息可以進行查詢自己所想要的學生信息,如下圖9.</p><p><b>  圖9 查詢學生信息</

34、b></p><p>  如果有的同學轉學或其他什么的,該信息已經無意義,可以對該信息進行刪除,如圖9.</p><p>  圖10 刪除學生信息</p><p>  如果第一次創建信息過程中出現錯誤或輸入的姓名與學號不對應,則可以通過修改學生的信息,如圖10.</p><p><b>  圖11 修改信息</b>

35、</p><p>  最后完成所有輸入的成績排序,得到最終的結果顯示,如圖11.</p><p><b>  圖12 排序結果</b></p><p>  所有的操作完成后,選擇0,可以安全退出系統。如下圖12.</p><p>  圖13 系統安全退出系統</p><p><b>  

36、5 小結和心得</b></p><p>  對于我們所選的學生成績管理系統的設計與實現,我是根據我們所做的ssrt 的項目有啟發而做的,經過查閱資料發現利用文件和鏈表來實現,所以自己又把我們學過的鏈表和文件進行學習,查閱相關的實例練習鏈表的應用,但剛開始我們想的比較簡單是依據C語言而實現的,到后來經老師的點撥,發現我們做的應該是基于C++ 的程序,雖然僅剩一天半左右的時間,我和隊友能夠更根據自己前期準

37、備的基礎上,進一步查閱資料并對自己原有的程序進行修改,最終的以完成。</p><p>  通過這次C++的課程設計的學習,讓我體會到我們所學的C++課程的實用性,以前我認為計算機方面的課程僅僅是我所要必修的,沒有什么的實際價值,但是經過這次課程設計,看到同學們所做的小游戲后,我發現其實我們所學的都是非常有用的,只是在以前我們缺乏思考和鍛煉,僅僅把游戲當作一種娛樂,并沒有發現用我們所學的知識也是可以制作的,所以啟發

38、我們以后需要多思考,多進行實際操作。</p><p>  利用這次訓練,我發現自己能夠掌握更多的知識,通過兩個人的合作,能夠相互取長補短,對我后期的學習也有很大的幫助,讓我不再對計算機課程感到頭疼,同時也增加了我對編程的興趣與愛好,希望以后的學習、生活中,我能夠和做這次課程設計一樣,勤于動手,動腦,努力來彌補不足之處。</p><p><b>  6 參考文獻</b>

39、</p><p>  [1] 譚浩強.C++程序設計[M].北京.清華大學出版社,2004.6.</p><p>  [2] 譚浩強.C++程序設計解題與上機指導[M].北京.清華大學出版社.2005.3.[3] 錢新賢,楊猛,程兆煒,張少東.Visual C++編程疑難詳解[M].北京.人民郵電出版社,2000.5</p><p>  [4]http:

40、//wenku.baidu.com/link?url=H3Fwag-V9gQ5Xp2l7eH-pfvTUjUciMMvcY14V </p><p>  [5] http://blog.csdn.net/kevin_zhai/article/details/50494020</p><p><b>  附錄</b></p><p>  #incl

41、ude <fstream> </p><p>  #include <string> </p><p>  #include<iostream></p><p>  #include <conio.h></p><p>  #include<ctime>//用getch();

42、</p><p>  using namespace std; </p><p>  //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Student類﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ </p><p>  class Student </p><p><b>  { </b></p><p><b>  publ

43、ic: </b></p><p>  char name[20]; </p><p>  char Id[20]; </p><p>  int Cnum; //C++課程得分 </p><p>  int Mnum; //數學課程得分 </p><p>  int Enum;

44、 //英語課程得分 </p><p>  int sum; //總分 </p><p>  Student * Next; </p><p>  void Input() </p><p><b>  { </b></p><p>  cout<

45、<"\t\t請輸入學生的姓名:"; </p><p>  cin>>name; </p><p>  cout<<"\t\t請輸入學生的學號(九位):"; </p><p><b>  cin>>Id;</b></p><p>  co

46、ut<<"\t\t請輸入C++課程的期末成績:"; </p><p>  cin>>Cnum; </p><p>  cout<<"\t\t請輸入數學課程的期末成績:"; </p><p>  cin>>Mnum; </p><p>  cout<

47、;<"\t\t請輸入英語課程的成績:"; </p><p>  cin>>Enum; </p><p>  sum=Cnum+Mnum+Enum; </p><p><b>  } </b></p><p>  void ReadFile(istream & in) &

48、lt;/p><p><b>  { </b></p><p>  in>>name>>Id>>Cnum>>Mnum>>Enum>>sum; </p><p><b>  } </b></p><p>  void Show()

49、 </p><p><b>  { </b></p><p>  cout<<" 姓名 " <<"學號 "<<" C++ " <<" 數學 " <<" 英語 "<<"

50、 總成績 "<<endl; </p><p>  cout<< name<<" "<<Id<<" "<<Cnum<<" "<<Mnum<<" "<<Enum<<"

51、 "<<sum<<endl;</p><p><b>  } </b></p><p><b>  }; </b></p><p>  //﹌﹌﹌﹌﹌﹌﹌﹌﹌Studentmassage類﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ </p><p>  class St

52、udentmassage </p><p><b>  { </b></p><p><b>  public: </b></p><p>  Studentmassage(); </p><p>  ~Studentmassage(); </p><p>  vo

53、id ShowMenu(); </p><p>  void Find(); </p><p>  void Save(); </p><p>  void ModifyItem(); </p><p>  void RemoveItem(); </p><p>  void Swap(Student *,S

54、tudent *); </p><p>  void Sort(); //void Unpass(); </p><p>  int ListCount(); //void Average(); </p><p>  void Display() </p><p><b>  { </b></p

55、><p>  for(Student * p=Head->Next;p!=End;p=p->Next) </p><p>  p->Show(); </p><p>  cout<<"輸入任意字符!繼續……"; </p><p>  getch(); </p><p&g

56、t;<b>  } </b></p><p>  void AddItem() </p><p><b>  { </b></p><p>  End->Input(); </p><p>  End->Next=new Student; </p><p&g

57、t;  End=End->Next; </p><p>  cout<<"添加成功!"<<endl; </p><p>  cout<<"輸入任意字符!繼續……"; </p><p>  getch(); </p><p><b>  } &

58、lt;/b></p><p>  private: </p><p>  Student * Head,* End; </p><p>  ifstream in; </p><p>  ofstream out; </p><p>  Student *FindItem(char * name) &l

59、t;/p><p><b>  { </b></p><p>  for(Student * p=Head;p->Next!=End;p=p->Next)//匹配成功則返回上一個指針,不成功就返回空 </p><p>  if(!strcmp(p->Next->name,name))return p; </p>

60、;<p>  return NULL; </p><p><b>  } </b></p><p>  Student *FindID(char * Id) </p><p><b>  { </b></p><p>  for(Student * p=Head;p->N

61、ext!=End;p=p->Next)//匹配成功則返回上一個指針,不成功就返回空 </p><p>  if(!strcmp(p->Next->Id,Id))return p; </p><p>  return NULL; </p><p><b>  } </b></p><p><

62、b>  }; </b></p><p>  //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌構造函數﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ </p><p>  Studentmassage::Studentmassage() </p><p><b>  { </b></p><p>  Head=new Student;

63、</p><p>  Head->Next=new Student; </p><p>  End=Head->Next; </p><p>  in.open("sort.txt"); </p><p><b>  if(!in) </b></p><p>

64、;  cout<<"這是一個新系統,無學生信息。請先輸入。"<<endl; </p><p><b>  else </b></p><p><b>  { </b></p><p>  while(!in.eof()) </p><p><

65、b>  { </b></p><p>  End->ReadFile(in); </p><p>  if(End->name[0]=='\0')break; </p><p>  End->Next=new Student; </p><p>  End=End->Next;

66、 </p><p><b>  } </b></p><p>  in.close(); </p><p>  cout<<"\t\t讀取學生信息成功!"<<endl; </p><p><b>  } </b></p><p

67、><b>  } </b></p><p>  //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌析構函數﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ </p><p>  Studentmassage::~Studentmassage() </p><p><b>  { </b></p><p><b>  Sa

68、ve(); </b></p><p>  for(Student * temp;Head->Next!=End;) </p><p><b>  { </b></p><p>  temp=Head->Next; </p><p>  Head->Next=Head->Next

69、->Next; </p><p>  delete temp; </p><p><b>  } </b></p><p>  delete Head,End; </p><p><b>  } </b></p><p>  //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌菜單﹌

70、﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ </p><p>  void Studentmassage::ShowMenu() </p><p><b>  { </b></p><p>  cout<<"***********************************************

71、***************"<<endl; </p><p>  cout<<"********制作人:西安建筑科技大學 張丹莉 周春燕***********"<<endl; </p><p>  cout<<"********* 歡迎來到學生成績管理系統 *********

72、**"<<endl; </p><p>  cout<<"********* 1 創建學生信息 ***********"<<endl; </p><p>  cout<<"********* 2 顯示學生信息 *********

73、**"<<endl; </p><p>  cout<<"********* 3 排序學生信息 ***********"<<endl; </p><p>  cout<<"********* 4 查詢學生信息 *********

74、**"<<endl; </p><p>  cout<<"********* 5 刪除學生信息 ***********"<<endl; </p><p>  cout<<"********* 6 修改學生信息 *********

75、**"<<endl; </p><p>  cout<<"********* 0 成功退出系統 ***********"<<endl; </p><p>  cout<<"***********************************************

76、***************"<<endl; </p><p>  cout<<"**************************************************************"<<endl; </p><p>  cout<<"請輸入您想完成的操作:"; &l

77、t;/p><p><b>  }</b></p><p>  //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌查找函數﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ </p><p>  void Studentmassage::Find() </p><p><b>  { </b></p><p>  char

78、 name[20] ,Id[10]; </p><p><b>  int x; </b></p><p>  Student * p=NULL; </p><p>  cout<<"\n\t\t*********************************\n"; </p><p

79、>  cout<<"\t\t※ 1.按學生的姓名查找\n\t\t※ 2.按學生學號查找"; </p><p>  cout<<"\n\t\t*********************************\n請選擇:"; </p><p><b>  cin>>x; </b>&l

80、t;/p><p>  switch(x) </p><p><b>  { </b></p><p>  case 1:{cout<<"\t\t請輸入要查找的學生的姓名:";cin>>name; </p><p>  if(p=FindItem(name)) </p&

81、gt;<p><b>  { </b></p><p>  p->Next->Show(); </p><p>  cout<<"輸入任意字符!繼續……"; </p><p>  getch(); </p><p><b>  } </b

82、></p><p><b>  else </b></p><p><b>  { </b></p><p>  cout<<"\t\t沒有找到該姓名的學生!"<<'\n'<<endl; </p><p>  cou

83、t<<"輸入任意字符!繼續……"; </p><p>  getch(); </p><p><b>  } </b></p><p><b>  }break; </b></p><p><b>  case 2: </b></

84、p><p><b>  { </b></p><p>  cout<<"\t\t請輸入要查找的學生的學號:";cin>>Id; </p><p>  if(p=FindID(Id)) </p><p><b>  { </b></p>&

85、lt;p>  p->Next->Show(); </p><p>  cout<<"輸入任意字符!繼續……"; </p><p>  getch(); </p><p><b>  } </b></p><p><b>  else </b>

86、;</p><p><b>  { </b></p><p>  cout<<"\t\t沒有找到該學好的學生!"<<'\n'<<endl; </p><p>  cout<<"輸入任意字符!繼續……"; </p><

87、p>  getch(); </p><p><b>  } </b></p><p><b>  }break; </b></p><p><b>  } </b></p><p><b>  } </b></p><p

88、>  //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌修改信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ </p><p>  void Studentmassage::ModifyItem() //修改信息 </p><p><b>  { </b></p><p>  char name[20]; </p><p>  Studen

89、t * p=NULL; </p><p>  cout<<"\t\t請輸入要修改的人的姓名:";cin>>name; </p><p>  if(p=FindItem(name)) </p><p><b>  { </b></p><p>  cout<<

90、"\t\t已找到學生的信息,請輸入新的信息!"<<endl; </p><p>  p->Next->Input(); </p><p>  cout<<"修改成功!"<<endl; </p><p>  cout<<"輸入任意字符!繼續……"

91、;; </p><p>  getch(); </p><p><b>  } </b></p><p><b>  else </b></p><p><b>  { </b></p><p>  cout<<"\t\t

92、沒有找到!"<<endl; </p><p>  cout<<"輸入任意字符!繼續……"; </p><p>  getch(); </p><p><b>  } </b></p><p><b>  } </b></p>

93、<p>  //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌刪除信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ </p><p>  void Studentmassage::RemoveItem() // 刪除信息 </p><p><b>  { </b></p><p>  char name[20]; </p><p

94、>  Student * p=NULL,*temp=NULL; </p><p>  cout<<"\t\t請輸入要刪除的學生的姓名:"<<endl;cin>>name; </p><p>  if(p=FindItem(name)) </p><p><b>  { </b>

95、;</p><p>  temp=p->Next; </p><p>  p->Next=p->Next->Next; </p><p>  delete temp; </p><p>  cout<<"\t\t刪除成功!"<<endl; </p>&

96、lt;p>  cout<<"輸入任意字符!繼續……"; </p><p>  getch(); </p><p><b>  } </b></p><p><b>  else </b></p><p><b>  { </b>&

97、lt;/p><p>  cout<<"\t\t沒有找到!"<<endl; </p><p>  cout<<"輸入任意字符!繼續……"; </p><p>  getch(); </p><p><b>  } </b></p>

98、<p><b>  } </b></p><p>  //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ </p><p>  void Studentmassage::Swap(Student *p1, Student *p2)//交換兩個combox變量的數據域 </p><p><b>  { </b

99、></p><p>  Student *temp=new Student; </p><p>  strcpy(temp->name,p1->name); </p><p>  strcpy(temp->Id,p1->Id); </p><p>  temp->Cnum=p1->Cnum;

100、 </p><p>  temp->Mnum=p1->Mnum; </p><p>  temp->Enum=p1->Enum; </p><p>  temp->sum=p1->sum; </p><p>  strcpy(p1->name,p2->name); </p>

101、<p>  strcpy(p1->Id,p2->Id); </p><p>  p1->Cnum=p2->Cnum; </p><p>  p1->Mnum=p2->Mnum; </p><p>  p1->Enum=p2->Enum; </p><p>  p1->s

102、um=p2->sum; </p><p>  strcpy(p2->name,temp->name); </p><p>  strcpy(p2->Id,temp->Id); </p><p>  p2->Cnum=temp->Cnum; </p><p>  p2->Mnum=temp

103、->Mnum; </p><p>  p2->Enum=temp->Enum; </p><p>  p2->sum=temp->sum; </p><p><b>  } </b></p><p>  //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ </p>

104、<p>  int Studentmassage::ListCount()//統計當前鏈表的記錄總數,返回一個整數 </p><p><b>  { </b></p><p>  if(! Head) </p><p>  return 0; </p><p>  int n=0; </p>

105、;<p>  for(Student * p=Head->Next;p!=End;p=p->Next) </p><p><b>  { </b></p><p><b>  n++; </b></p><p><b>  } </b></p><

106、p>  return n; </p><p><b>  } </b></p><p>  //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ </p><p>  void Studentmassage::Sort()//對當前鏈表進行排序 </p><p><b>  { </b&

107、gt;</p><p>  cout <<"Sorting..."<<endl; </p><p>  Student *p=NULL,*p1=NULL,*k=NULL; </p><p>  int n=Studentmassage::ListCount(); </p><p>  if(n

108、<2) </p><p><b>  return; </b></p><p>  for(p=Head->Next;p!=End;p=p->Next) </p><p>  for(k=p->Next;k!=End;k=k->Next) </p><p><b>  {

109、 </b></p><p>  if(p->sum>k->sum) </p><p><b>  { </b></p><p>  Studentmassage::Swap(p,k); </p><p><b>  } </b></p><

110、p><b>  }</b></p><p>  cout <<"排序完成!"<<endl; </p><p><b>  getch(); </b></p><p><b>  return; </b></p><p>&l

111、t;b>  } </b></p><p>  //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌保存函數﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ </p><p>  void Studentmassage::Save() </p><p><b>  { </b></p><p>  out.open("sort.txt

112、"); </p><p>  for(Student *p=Head->Next;p!=End;p=p->Next) </p><p>  out<<p->name<<"\t"<<p->Id<<"\t"<<p->Cnum<<"

113、\t" </p><p>  <<p->Mnum<<"\t"<<p->Enum<<"\t"<<p->sum<<'\n'; </p><p>  out.close(); </p><p><b>

114、  } </b></p><p>  //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌主函數﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ </p><p>  int main() </p><p><b>  { </b></p><p><b>  int x; </b></p><p>

115、  bool quit=false; </p><p>  system("cls"); </p><p>  time_t t; </p><p>  time(&t); </p><p>  cout <<"***********歡迎進入西安建筑科技大學學生管理系統*********

116、*******\n"<<endl </p><p>  << " ^ 當前系統時間是: " << ctime(&t)<<endl; //密碼設置 </p><p>  cout<<" ^ 進入該系統設有密碼,只有2次

117、機會! \n"<<endl; </p><p>  cout<<" ^ 溫馨向您提示,登錄密碼為 123456 \n"<<endl; </p><p>  cout<<" ^ 請您輸入密碼: ";</p><p>  string s

118、tr; </p><p>  cin>>str; </p><p>  if(str=="123456") </p><p>  { cin.get();</p><p>  Studentmassage Grade; </p><p>  cout<<"按任意鍵

119、開始……";</p><p><b>  getch();</b></p><p>  while(!quit) </p><p><b>  { </b></p><p>  system("cls"); </p><p>  Grade

120、.ShowMenu(); </p><p><b>  cin>>x; </b></p><p>  switch(x) </p><p><b>  { </b></p><p>  case 0:quit=true;</p><p>  cout<

121、;<"----------------------------------------------------------------------------------"<<endl;</p><p>  cout<<"======>> 西安建筑科技大學學生成績管理系統 <<====="<<endl; /*

122、結束程序*/ </p><p>  cout<<" ★************ 西安建筑科技大學**************★"<<endl;</p><p>  cout<<" ★************ 理 學 院 **************★"<<endl;</p>

123、<p>  cout<<" ★************ 應 數 1401 班 **************★"<<endl;</p><p>  cout<<" ★************ 141003133 ****************★"<<endl;</p>

124、<p>  cout<<"==========>> 歡迎使用西安建筑科技大學生成績管理系統 <<==========="<<endl; </p><p>  cout<<"-------------------------------------------------------

125、-----------------------------"<<endl;</p><p><b>  break; </b></p><p>  case 1:Grade.AddItem();break; </p><p>  case 2:Grade.Display();break; </p>&l

126、t;p>  case 3:Grade.Sort();break; </p><p>  case 4:Grade.Find();break; </p><p>  case 5:Grade.RemoveItem();break; </p><p>  case 6:Grade.ModifyItem();break; </p><p&

127、gt;<b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else </b></p><p><b>  { </b></p><

128、p>  cout<<"第一次密碼錯誤,請重新輸入密碼!"<<endl; </p><p>  cin>>str; </p><p>  if(str=="123456") </p><p><b>  {</b></p><p>  { c

129、in.get();} </p><p>  Studentmassage Grade; </p><p>  cout<<"按任意鍵開始……";</p><p><b>  getch();</b></p><p>  while(!quit) </p><p>

130、;<b>  { </b></p><p>  system("cls"); </p><p>  Grade.ShowMenu(); </p><p><b>  cin>>x; </b></p><p>  switch(x) </p>&

131、lt;p><b>  { </b></p><p>  case 0:quit=true;</p><p>  cout<<"----------------------------------------------------------------------------------"<<endl;</p

132、><p>  cout<<"======>> 西安建筑科技大學學生成績管理系統 <<====="<<endl; /*結束程序*/ </p><p>  cout<<" ★************ 西安建筑科技大學**************★"<<endl;</p>

133、<p>  cout<<" ★************ 理 學 院 **************★"<<endl;</p><p>  cout<<" ★************ 應 數 1401 班 **************★"<<endl;</p><p&g

134、t;  cout<<" ★************ 141003133 ****************★"<<endl;</p><p>  cout<<"==========>> 歡迎使用西安建筑科技大學生成績管理系統 <<==========="<<endl;

135、 </p><p>  cout<<"------------------------------------------------------------------------------------"<<endl;</p><p><b>  break; </b></p><p>

136、;  case 1:Grade.AddItem();break; </p><p>  case 2:Grade.Display();break; </p><p>  case 3:Grade.Sort();break; </p><p>  case 4:Grade.Find();break; </p><p>  case 5:

137、Grade.RemoveItem();break; </p><p>  case 6:Grade.ModifyItem();break; </p><p><b>  } </b></p><p><b>  }</b></p><p><b>  }</b></

138、p><p><b>  else </b></p><p>  cout<<"您無權使用本系統!"<<endl; </p><p><b>  }</b></p><p>  return 0; </p><p><b> 

溫馨提示

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

評論

0/150

提交評論