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

下載本文檔

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

文檔簡介

1、<p>  二○一二~二○一三學年第二學期</p><p><b>  信息科學與工程學院</b></p><p><b>  C++程序設計語言</b></p><p><b>  課程設計報告</b></p><p>  課程名稱:C++程序設計語言</p&

2、gt;<p>  班 級:電氣信息類1206班 </p><p><b>  學 號: </b></p><p><b>  姓 名: </b></p><p><b>  指導教師: </b></p><p><b>  目錄<

3、/b></p><p>  1.課程設計目的3</p><p>  2.系統描述(需求分析)3</p><p>  2.1需要處理的基礎數據3</p><p>  2.2系統的基本功能3</p><p>  2.3可行性分析4</p><p>  3.功能模塊設計4</p

4、><p>  3.1類的分析與設計4</p><p>  3.1.1 Course類4</p><p>  3.1.2 Stu類5</p><p><b>  3.2整體流程6</b></p><p>  4.主要模塊的算法說明7</p><p>  4.1信息的保存

5、和讀取7</p><p>  4.2 對信息的處理7</p><p>  4.2.1 數據的錄入和插入7</p><p>  4.2.2 數據的查詢7</p><p>  4.2.3 數據的修改7</p><p>  4.2.4 數據的刪除7</p><p>  4.2.5 數據的排

6、序8</p><p>  5.程序運行結果8</p><p>  5.1 菜單歡迎界面8</p><p>  5.3信息的顯示9</p><p>  5.4 信息的查詢9</p><p>  5.5 信息的修改10</p><p>  5.6 信息的刪除11</p>

7、<p>  5.7 按平均分降序排列11</p><p>  5.8 查看全部信息12</p><p>  5.9 輸出不及格學生信息12</p><p>  5.10 退出系統13</p><p>  6.課程設計總結13</p><p><b>  7.參考文獻13</b>

8、;</p><p>  8.附錄(源代碼)14</p><p><b>  1.課程設計目的</b></p><p>  1.1使學生進一步理解和掌握課堂上所學各種基本抽象數據類型的邏輯結構、存儲結構和操作實現算法,以及它們在程序中的使用方法。</p><p>  1.2使學生掌握軟件設計的基本內容和設計方法,并培養學

9、生進行規范化軟件設計的能力。</p><p>  1.3使學生掌握使用各種計算機資料和有關參考資料,提高學生進行程序設計的基本能力。</p><p>  2.系統描述(需求分析)</p><p>  2.1需要處理的基礎數據</p><p>  學生基本信息:如班級、學號、姓名、性別、年齡、宿舍號碼、電話號碼等。</p><

10、;p>  學生選修課程的基本信息:課程編號、課程名稱、考試成績、平時成績、綜合成績、學分、</p><p><b>  重修否等。</b></p><p>  2.2系統的基本功能</p><p>  數據的錄入:如錄入學生的基本信息,以及該學生選修課程的基本信息;</p><p>  數據的修改:如修改指定學號、

11、或者指定姓名的學生信息,或者修改其選修課程信息;</p><p>  數據的插入:插入某個學生信息</p><p>  數據的查詢:如按學號查詢、按姓名查詢等;</p><p>  數據的刪除:如刪除指定學號、或者指定姓名的學生及其選修課的信息;</p><p>  平均成績的計算:計算每個學生各門功課的平均成績,并按平均成績從高到低的次序輸

12、出</p><p><b>  學生信息;</b></p><p>  列出不及格學生清單(學號、姓名、不及格的課程和成績)。</p><p>  考慮用文件把數據保存起來(可選)。</p><p><b>  2.3可行性分析</b></p><p>  2.3.1如上所示

13、,該系統要求處理一些學生成績的基本數據,包括兩個方面:學生身份信息和學生成績信息。具體可以考慮創建兩個類,一個學生基本信息類,一個學科基本信息類。這樣既可以保持二者的獨立性,也可以使之相關聯。</p><p>  2.3.2該系統不僅要求能錄入一些基本數據外,還要能對這些數據進行處理,比如修改,刪除,插入,查詢等。對這些操作的實現可以暫時放開面向對象,而采用面向過程的方法。另外,因為對數據庫了解不多,可以考慮用文

14、件保存的形式將數據保存起來,最后在查找的時候采用文件讀取。</p><p><b>  3.功能模塊設計</b></p><p>  3.1類的分析與設計</p><p>  由上面的需求分析可以知道,在本程序中,需要處理兩大類數據:一個是學生的身份基本信息,另一個是該同學的課程基本信息。而且要求二者既要相互聯系,又不能太相互制約。于是可以考慮

15、創建兩個類: Stu 類(學生信息類)和 Course 類(課程信息類)。為了使二者相互關聯,可以讓 Course 的一個類對象作為Stu 對象的一個基本數據成員。具體如下:</p><p>  3.1.1 Course類</p><p>  由于學生只需要一些課程信息,故在該類中只有一些基本的成員數據,不涉及成員函數之類的對數據進行操作的函數。把對學生信息進行處理的函數放在Stu類中。&

16、lt;/p><p>  由于這些數據信息是作為Stu類的一個信息的,為了使stu類中的函數可以訪問這些成員數據,故要將訪問類型定義為public型。</p><p>  3.1.2 Stu類</p><p>  正如上面所述,Course類的一個對象作為Stu類的一個數據成員,但是正常情況下,一個同學是不只一門科目的,所以要定義一個Course類的數組來存放同一學生的不

17、同科目信息Course course[20]。為了其信息的隱蔽性,我們把所有的數據成員都聲明為private。</p><p>  接下來,要處理的就是函數了。有兩種處理方式,但到底是采用成員函數還是采用友元函數呢?在本例中,我采用的是友元函數。原因如下:</p><p> ?。?)采用友元函數,可以使類的結構變得更加簡單,有助于整個設計過程的思考。</p><p&g

18、t; ?。?)使用友元函數,將函數獨立于類的結構之外而采用類對象傳參的方式,可以使該函數的獨立性大大提高,有助于在其他地方的使用。</p><p><b>  具體如下:</b></p><p><b>  友元函數:</b></p><p><b>  3.2整體流程</b></p>

19、<p>  上面已經主要分開介紹了兩個獨立的類及其內部成員,現在來介紹整個學生系統功能實現的流程。</p><p>  4.主要模塊的算法說明</p><p>  4.1信息的保存和讀取</p><p>  在本次課程設計中,因為還沒有接觸到數據庫的有關知識,故采用文件流來寫入和讀取信息。主要涉及到fstream類。在系統運行過程中,會利用該類將學生的基本

20、身份信息和基本課程信息全部存到自定義的一個文件中,當需要使用這些數據時,例如查詢,修改,顯示等,再將需要的讀取出來進行相關的操作。</p><p>  4.2 對信息的處理</p><p>  4.2.1 數據的錄入和插入</p><p>  數據的錄入和插入基本一樣,這里只介紹錄入。</p><p>  當在主菜單里選擇信息錄入時,會跳出錄

21、入頁面,只需依次輸入提示的信息即可。在整個大體框架上,采用一個while語句判斷是否繼續錄入。注意在錄入學生成績信息時。需要輸入要登記的課程數目。其中成績信息的各科綜合成績和是否重修不需要手動錄入,它會在登記完平時成績和末考成績后自動生成。當所有信息錄入完成后,該生所有科目的平均成績average也會自動計算。</p><p>  4.2.2 數據的查詢</p><p>  所謂數據的查

22、詢,就是把存放在文檔中的學生數據讀取出來并加以輸出。</p><p>  當只針對某個人的查詢時,需要輸入學號或姓名,再調用read()函數將相關的數據讀取出來,至于需要輸出哪些,可以自己控制。</p><p>  當要輸出所有學生的數據是時,首先調用read()函數返回數據的個數count,即學生的個數。最后采用for循環控制依次輸出每一個學生的信息。</p><p&

23、gt;  4.2.3 數據的修改</p><p>  當修改數據時,只需輸入需要修改學生的學號即可。首先會將該生的相關信息輸出出來。然后再提示重新輸入信息。執行到這里時基本就和前面的數據錄入,插入一樣了。</p><p>  4.2.4 數據的刪除</p><p>  本例中,對數據的刪除比較簡單。只需輸入學號或姓名,當查找到該生的相關信息后。將后面一個學生的信息賦

24、值給他,相當于該生的信息被覆蓋,也就是刪除。</p><p>  4.2.5 數據的排序</p><p>  在需求分析中,有一項功能,按學生成績平均分降序排列。此功能還是比較好實現的。</p><p>  在輸入學生數據時,當所有課程分數輸入完畢,會自動生成一個平均分,該數值就是學生類Stu中的average數據成員。然后采用冒泡法比較大小,把這些學生的數據重新排

25、列,最后再依次輸出。</p><p><b>  5.程序運行結果</b></p><p>  5.1 菜單歡迎界面</p><p><b>  5.2 信息的錄入</b></p><p>  如上所示,依次輸入需要填寫的信息,其中“該門課的綜合成績”和“是否重修”是不需要輸入,系統自動執行的。最后

26、還會提示是否繼續填寫(Y\N)。</p><p><b>  5.3信息的顯示</b></p><p>  在這個功能里面主要顯示全部同學的身份信息和平均分:</p><p><b>  5.4 信息的查詢</b></p><p>  信息的查詢分兩種方式:</p><p>

27、  當你選擇1 時,表示按學號查詢,</p><p>  當你選擇2 時,表示按姓名查詢。</p><p>  下面介紹的是按學號查詢。。。</p><p>  如上所示,當輸入需要查詢的同學的學號時,會輸出該同學的身份信息以及每一門課的綜合成績,還有這些課的平均成績。</p><p><b>  5.5 信息的修改</b&g

28、t;</p><p>  當輸入需要修改的學生學號時,會首先輸出該同學現在的已經存在的信息:</p><p><b>  然后提示重新輸入:</b></p><p>  輸入完成后,會提示是否保存:</p><p><b>  5.6 信息的刪除</b></p><p>  

29、信息的刪除也分兩種類型:</p><p>  選擇不同的方式,進入不同的界面</p><p><b>  按姓名刪除</b></p><p><b>  按學號刪除</b></p><p>  5.7 按平均分降序排列</p><p>  會輸出學生的一些基本信息和平均分與名

30、次。</p><p>  5.8 查看全部信息</p><p>  由于一個同學的全部信息較多,于是分成兩部分輸出:身份信息和成績信息</p><p>  在身份信息中,主要包括班級,學號,姓名,年齡,性別,宿舍,電話等。在成績信息中,包括該同學的各科成績,是否重修,獲得的學分,以及所有科目的平均分。</p><p>  5.9 輸出不及格學

31、生信息</p><p>  當選擇該功能時,首先會輸出該同學的學號,姓名和班級,然后再輸出他的不及格科目以及分數,如下所示。</p><p><b>  5.10 退出系統</b></p><p><b>  6.課程設計總結</b></p><p> ?。?)回顧此次課程設計,感慨良多,從剛拿到題

32、目時的一臉茫然,到最后能成功解決,覺得此次課程設計我又學到了好多知識。首先在這里要感謝一下王磊指導老師,經過他的細心講解,我才有了一個完整的設計思路。</p><p> ?。?)在這次課程設計的過程中,最大的感覺就是對知識的不熟悉,一些C++基礎知識似懂非懂,結果總要去查書才能寫出不出錯誤的代碼,結構就是耗費了大量的時間,事倍功半。經歷這次教訓,我想會對我以后的計算機語言學習起到一定的幫助。</p>

33、<p> ?。?)在這次的課程設計過程中,通過查書的學習,對C++的了解又加深了不少,包括類的結構,以及怎樣在類外訪問類類的私有成員等,我想下次再寫基于對象的程序時,一定會得心應手。</p><p> ?。?)還有比較重要的收獲就是類的相互嵌套使用,就拿本例來說,在一個類中設置一個數據成員,而該數據成員確是另一個類的對象。這對理解數據類型起到了不少的作用。</p><p>  

34、(5) 總的來說,這次程序設計讓我獲益匪淺,對C++語言也有了進一步的認識:語言功能高、表達能力強、使用靈活方便、目標程序效率高等等。C++語言是在國內外廣泛使用的一種計算機語言,相信除了以上優點,還有許多我們還未發現,希望能在以后的學習中有更深入的認識。</p><p><b>  7.參考文獻</b></p><p> ?。?)C++程序設計(第二版)

35、 譚浩強 編著</p><p> ?。?)visual C++從入門到精通 明日科技 編著</p><p> ?。?)C++編程思想 (美)??藸?編著 劉宗田 譯</p><p><b>  8.附錄(源代碼)</b></p><p>  #include <iostream></

36、p><p>  #include <fstream></p><p>  #include <stdlib.h>//后面的exit函數和syetem函數要用</p><p>  #include <string></p><p>  using namespace std;</p><p&g

37、t;  class Course //定義一個課程信息類</p><p><b>  {</b></p><p><b>  public:</b></p><p>  int course_num; //課程編號</p><p>  string course_name;//課程名

38、稱</p><p>  float regular_score;//平時成績</p><p>  float final_score;//末考成績</p><p>  float average_score;//綜合成績</p><p>  float study_score;//學分</p><p>  string

39、 rebulid;//是否重修</p><p><b>  };</b></p><p>  class Stu</p><p><b>  {</b></p><p>  //把對類的私有成員的處理函數全部定義為友元函數</p><p><b>  public

40、:</b></p><p>  friend void Input(Stu stud[]) ; //學生成績錄入函數</p><p>  friend void Statistic(Stu stud[]);//學生信息輸出函數</p><p>  friend void Lookup(Stu stud[]) ; //學生成績查找函數</p&g

41、t;<p>  friend void Modify(Stu stud[]) ; //學生成績修改函數</p><p>  friend void Delete(Stu stud[]) ; //學生信息刪除函數</p><p>  friend void Output(Stu stud[]) ; //學生全部信息輸出函數</p><p>  fr

42、iend void Sort(Stu stud[]) ; //學生成績排序函數</p><p>  friend void Insert(Stu stud[]) ; //學生成績插入函數</p><p>  friend void Write(Stu stud[],int n);//學生成績寫入檔案函數</p><p>  friend int Read(S

43、tu stud[]); //學生成績信息讀取函數</p><p>  friend void Showfail(Stu stud[]); //查找不及格學生</p><p><b>  private:</b></p><p>  int class_num; //班級號碼</p><p>  int n

44、um;//學號</p><p>  string name;//姓名</p><p>  int age;//年齡</p><p>  char sex;//性別</p><p>  int room;//宿舍</p><p>  string tel;//電話</p><p>  float

45、 average;//所有課程平均分</p><p>  int num_of_course;//課程數目</p><p>  int order;//名次</p><p>  Course course[20];//課程信息數組</p><p><b>  };</b></p><p>  vo

46、id Write(Stu stud[],int n) //文件寫入函數</p><p><b>  {</b></p><p>  fstream myFile; //定義一個文件輸入輸出類</p><p>  myFile.open("D:\\student.dat.txt",ios::

47、out|ios::binary);</p><p>  if(!myFile)</p><p><b>  {</b></p><p>  cout<<"D:\\student.dat.txt can't open!"<<endl;</p><p><b> 

48、 exit(1);</b></p><p><b>  }</b></p><p>  int count=n;</p><p>  myFile<<count<<endl<<endl;</p><p>  for(int i=0; i<count; i++)<

49、/p><p><b>  {</b></p><p>  myFile<<stud[i].class_num<<" "<<stud[i].num<<" "<<stud[i].name<<" "<<stud[i].age<&l

50、t;" "</p><p>  <<stud[i].sex<<" "<<stud[i].room<<" "<<stud[i].tel<<" "<<stud[i].num_of_course<<" "<<stu

51、d[i].average<<" "<<endl;</p><p>  for(int j=0; j<stud[i].num_of_course; j++)</p><p><b>  {</b></p><p>  myFile<<stud[i].course[j].course_n

52、um<<" "<<stud[i].course[j].course_name<<" "<<stud[i].course[j].regular_score</p><p>  <<" "<<stud[i].course[j].final_score<<" &quo

53、t;<<stud[i].course[j].average_score<<" "<<stud[i].course[j].study_score</p><p>  <<" "<<stud[i].course[j].rebulid<<endl;</p><p><b> 

54、 }</b></p><p><b>  }</b></p><p>  myFile.close();</p><p><b>  }</b></p><p>  int Read(Stu stud[]) //文件讀取函數</p><p&g

55、t;<b>  {</b></p><p>  fstream myFile;</p><p>  myFile.open("D:\\student.dat.txt",ios::in|ios::binary);</p><p>  if(!myFile)</p><p><b>  {<

56、;/b></p><p>  cout<<"D:\\student.dat.txt can't open!"<<endl;</p><p><b>  exit(1);</b></p><p><b>  }</b></p><p>  in

57、t count;</p><p>  myFile.seekg(0);</p><p>  myFile>>count;</p><p>  for(int i=0; i<count; i++)</p><p><b>  {</b></p><p>  myFile>&g

58、t;stud[i].class_num>>stud[i].num>>stud[i].name>>stud[i].age>>stud[i].sex>>stud[i].room>>stud[i].tel>>stud[i].num_of_course>>stud[i].average;</p><p>  for(int j

59、=0; j<stud[i].num_of_course; j++)</p><p><b>  {</b></p><p>  myFile>>stud[i].course[j].course_num>>stud[i].course[j].course_name>>stud[i].course[j].regular_score

60、>></p><p>  stud[i].course[j].final_score>>stud[i].course[j].average_score>>stud[i].course[j].study_score>>stud[i].course[j].rebulid;</p><p><b>  }</b></p&

61、gt;<p><b>  }</b></p><p>  myFile.close();</p><p>  return count ; //函數返回一個查詢出來的數值</p><p><b>  }</b></p><p>  void Input(Stu stud[])

62、 //學生成績錄入函授</p><p><b>  {</b></p><p>  system("cls"); //調用系統命令cls,清除屏幕</p><p><b>  int i=0;</b></p><p>  // int num;</p&g

63、t;<p>  char sign;</p><p>  cout<<endl<<"====>> 請輸入學生成績 <<===="<<endl;</p><p>  while(sign!='n'&&sign!='N')</p><

64、p><b>  {</b></p><p>  cout<<"班級:";</p><p>  cin>>stud[i].class_num;</p><p>  loop: //loop循環,VB中的循環</p><p>  cou

65、t<<"學號:";</p><p>  cin>>stud[i].num;</p><p><b>  int c=0;</b></p><p>  while(c<i)</p><p><b>  {</b></p><p>

66、;<b>  c++;</b></p><p>  if(stud[i].num==stud[i-c].num)</p><p><b>  {</b></p><p>  cout<<" 你輸入的學號已經存在!請重新輸入。"<<endl;</p><p>

67、;  goto loop;</p><p><b>  }</b></p><p><b>  }</b></p><p>  cout<<"姓名:";</p><p>  cin>>stud[i].name;</p><p>  

68、cout<<"年齡:";</p><p>  cin>>stud[i].age;</p><p>  cout<<"性別:";</p><p>  cin>>stud[i].sex;</p><p>  cout<<"宿舍:"

69、;;</p><p>  cin>>stud[i].room;</p><p>  cout<<"電話:";</p><p>  cin>>stud[i].tel;</p><p>  cout<<"請輸入需要登記的學科數目:";</p>&

70、lt;p>  cin>>stud[i].num_of_course;</p><p><b>  int j;</b></p><p>  float sum=0;</p><p>  for(j=0; j<stud[i].num_of_course; j++)</p><p><b>

71、  {</b></p><p>  cout<<"請登記第"<<j+1<<"門課的信息:"<<endl;</p><p>  cout<<"課程編號:";</p><p>  cin>>stud[i].course[j].c

72、ourse_num;</p><p>  cout<<"課程名稱:";</p><p>  cin>>stud[i].course[j].course_name;</p><p>  cout<<"平時成績:";</p><p>  cin>>stud[i

73、].course[j].regular_score;</p><p>  cout<<"末考成績:";</p><p>  cin>>stud[i].course[j].final_score;</p><p>  cout<<"學分:";</p><p>  cin

74、>>stud[i].course[j].study_score;</p><p>  stud[i].course[j].average_score=stud[i].course[j].regular_score*0.3+stud[i].course[j].final_score*0.7;</p><p>  cout<<"該門課的綜合成績是:"

75、<<stud[i].course[j].average_score<<endl;</p><p>  if(stud[i].course[j].average_score<60)</p><p>  stud[i].course[j].rebulid="是";</p><p><b>  else</

76、b></p><p>  stud[i].course[j].rebulid="否";</p><p>  cout<<"是否重修:"<<stud[i].course[j].rebulid<<endl;</p><p>  sum=sum+stud[i].course[j].avera

77、ge_score;</p><p><b>  }</b></p><p>  stud[i].average=sum/stud[i].num_of_course;</p><p>  cout<<" 該學生這幾門課的平均分為:"<<stud[i].average<<endl;</p

78、><p>  cout<<"====>提示:是否繼續寫入學生成績?(Y/N)";</p><p>  cin>>sign;</p><p><b>  i++;</b></p><p><b>  }</b></p><p>  

79、Write(stud,i); //調用文件寫入函數,把信息寫入文件</p><p><b>  }</b></p><p>  void Statistic(Stu stud[]) //學生成績數據輸出函數</p><p><b>  {</b></p><p> 

80、 system("cls");</p><p>  int n=Read(stud);</p><p>  cout<<"班級"<<"\t"<<"學號"<<"\t"<<"姓名"<<"\t&q

81、uot;<<"年齡"<<"\t"<<"性別"<<"\t"<<"宿舍"<<"\t"<<"電話"<<"\t\t"<<"平均成績"<<endl;&

82、lt;/p><p>  for(int i=0; i<n; i++)</p><p>  cout<<stud[i].class_num<<"\t"<<stud[i].num<<"\t"<<stud[i].name<<"\t"<<stud[i].

83、age<<"\t"<<stud[i].sex<<"\t"<<stud[i].room<<"\t"<<stud[i].tel<<"\t"<<stud[i].average<<endl;</p><p>  system("

84、;pause");</p><p><b>  }</b></p><p>  void Lookup(Stu stud[]) //學生成績查找函數</p><p><b>  {</b></p><p>  system("cls");</p>

85、<p>  int n=Read(stud);</p><p><b>  int s1;</b></p><p>  string s2;</p><p><b>  int i=0;</b></p><p>  int choose;</p><p>  cou

86、t<<"請輸入查詢方式:"<<endl<<endl;</p><p>  cout<<"----->按學號查詢: 1 <-------"<<endl;</p><p>  cout<<"----->按姓名查詢: 2 <-------"

87、;<<endl;</p><p><b>  do</b></p><p><b>  {</b></p><p>  cout<<"請輸入您的選擇:";</p><p>  cin>>choose;</p><p> 

88、 }while((choose!=1)&&(choose!=2));</p><p>  switch(choose)</p><p><b>  {</b></p><p><b>  case 1:</b></p><p>  system("cls");&l

89、t;/p><p>  cout<<endl<<"====>> 查找學生成績 <<===="<<endl;</p><p>  cout<<"請輸入需要查找學生的學號:"<<endl;</p><p><b>  cin>>s1

90、;</b></p><p>  while((stud[i].num-s1)!=0&&i<n) i++;</p><p><b>  if(i==n)</b></p><p><b>  {</b></p><p>  cout<<"=====

91、>提示:對不起,無法找到該學生的信息!"<<endl;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  cout<<"------

92、---------------------"<<endl;</p><p>  cout<<"班級:"<<stud[i].class_num<<endl;</p><p>  cout<<"學號:"<<stud[i].num<<endl;</p>

93、<p>  cout<<"姓名:"<<stud[i].name<<endl;</p><p>  cout<<"年齡:"<<stud[i].age<<endl;</p><p>  cout<<"性別:"<<stud[i]

94、.sex<<endl;</p><p>  cout<<"宿舍:"<<stud[i].room<<endl;</p><p>  cout<<"電話:"<<stud[i].tel<<endl;</p><p>  for(int j=0; j&

95、lt;stud[i].num_of_course; j++)</p><p><b>  {</b></p><p>  cout<<stud[i].course[j].course_name<<":";</p><p>  cout<<stud[i].course[j].average_

96、score<<endl;</p><p><b>  }</b></p><p>  cout<<"平均分:"<<stud[i].average<<endl;</p><p><b>  }</b></p><p><b>

97、;  break;</b></p><p><b>  case 2:</b></p><p>  system("cls");</p><p>  cout<<endl<<"====>> 查找學生成績 <<===="<<endl;&

98、lt;/p><p>  cout<<"請輸入需要查找學生的姓名:"<<endl;</p><p><b>  cin>>s2;</b></p><p>  int flag=0;</p><p>  for(i=0; i<n; i++)</p>&l

99、t;p><b>  {</b></p><p>  if(stud[i].name==s2)</p><p><b>  {</b></p><p>  cout<<"---------------------------"<<endl;</p><p&

100、gt;  cout<<"班級:"<<stud[i].class_num<<endl;</p><p>  cout<<"學號:"<<stud[i].num<<endl;</p><p>  cout<<"姓名:"<<stud[i].na

101、me<<endl;</p><p>  cout<<"年齡:"<<stud[i].age<<endl;</p><p>  cout<<"性別:"<<stud[i].sex<<endl;</p><p>  cout<<"

102、宿舍:"<<stud[i].room<<endl;</p><p>  cout<<"電話:"<<stud[i].tel<<endl;</p><p>  for(int j=0; j<stud[i].num_of_course; j++)</p><p><b&g

103、t;  {</b></p><p>  cout<<stud[i].course[j].course_name<<":";</p><p>  cout<<stud[i].course[j].average_score<<endl;</p><p><b>  }</b&

104、gt;</p><p>  cout<<"平均分:"<<stud[i].average<<endl;</p><p><b>  flag=1;</b></p><p><b>  break;</b></p><p><b>  }

105、</b></p><p><b>  }</b></p><p>  if(flag==0)</p><p>  cout<<"=====>提示:對不起,無法找到該學生的信息!"<<endl;</p><p><b>  }</b><

106、;/p><p><b>  }</b></p><p>  void Modify(Stu stud[]) //學生成績修改函數</p><p><b>  {</b></p><p>  system("cls");</p><p> 

107、 int n=Read(stud);</p><p><b>  int s;</b></p><p><b>  int i=0;</b></p><p>  cout<<endl<<"====>> 修改學生成績 <<===="<<endl;

108、</p><p>  cout<<"請輸入需要修改成績學生的學號:"<<endl;</p><p><b>  cin>>s;</b></p><p>  while((stud[i].num-s)!=0&&i<n) i++;</p><p>

109、<b>  if(i==n)</b></p><p><b>  {</b></p><p>  cout<<"=====>提示:對不起,無該學生的成績……"<<endl;</p><p><b>  }</b></p><p>

110、;<b>  else</b></p><p><b>  {</b></p><p>  cout<<"----------該學生的信息----------"<<endl;</p><p>  cout<<"班級"<<"\t

111、"<<"學號"<<"\t"<<"姓名"<<"\t"<<"年齡"<<"\t"<<"性別"<<"\t"<<"宿舍"<<"\t

112、"<<"電話"<<endl;</p><p>  cout<<"---------------------------------"<<endl;</p><p>  cout<<stud[i].class_num<<"\t"<<stud

113、[i].num<<"\t"<<stud[i].name<<"\t"<<stud[i].age<<"\t"<<stud[i].sex<<"\t"<<stud[i].room<<"\t"<<stud[i].tel<&l

114、t;endl;</p><p>  for(int j=0; j<stud[i].num_of_course; j++)</p><p><b>  {</b></p><p>  cout<<stud[i].course[j].course_name<<":";</p><

115、p>  cout<<stud[i].course[j].average_score<<endl;</p><p><b>  }</b></p><p>  cout<<"平均分:"<<stud[i].average<<endl;</p><p>  cout

116、<<"請重新輸入該學生的信息"<<endl;</p><p>  cout<<"班級:"<<endl;</p><p>  cin>>stud[i].class_num;</p><p>  cout<<"學號:"<<end

117、l;</p><p>  cin>>stud[i].num;</p><p>  cout<<"姓名:"<<endl;</p><p>  cin>>stud[i].name;</p><p>  cout<<"年齡:"<<endl

118、;</p><p>  cin>>stud[i].age;</p><p>  cout<<"性別:"<<endl;</p><p>  cin>>stud[i].sex;</p><p>  cout<<"宿舍:"<<endl;&

119、lt;/p><p>  cin>>stud[i].room;</p><p>  cout<<"電話:"<<endl;</p><p>  cin>>stud[i].tel;</p><p>  cout<<" 請輸入需要登記的學科數目:";<

120、;/p><p>  cin>>stud[i].num_of_course;</p><p><b>  int j;</b></p><p>  float sum=0;</p><p>  for(j=0; j<stud[i].num_of_course; j++)</p><p>

121、;<b>  {</b></p><p>  cout<<"請登記第"<<j+1<<"門課的信息:"<<endl;</p><p>  cout<<"課程編號:";</p><p>  cin>>stud[i].c

122、ourse[j].course_num;</p><p>  cout<<"課程名稱:";</p><p>  cin>>stud[i].course[j].course_name;</p><p>  cout<<"平時成績:";</p><p>  cin>

123、>stud[i].course[j].regular_score;</p><p>  cout<<"末考成績:";</p><p>  cin>>stud[i].course[j].final_score;</p><p>  cout<<"學分:";</p><

124、p>  cin>>stud[i].course[j].study_score;</p><p>  stud[i].course[j].average_score=stud[i].course[j].regular_score*0.3+stud[i].course[j].final_score*0.7;</p><p>  cout<<"該門課的綜合

125、成績是:"<<stud[i].course[j].average_score<<endl;</p><p>  if(stud[i].course[j].average_score<60)</p><p>  stud[i].course[j].rebulid="是";</p><p><b> 

126、 else</b></p><p>  stud[i].course[j].rebulid="否";</p><p>  cout<<"是否重修:"<<stud[i].course[j].rebulid<<endl;</p><p>  sum=sum+stud[i].cours

127、e[j].average_score;</p><p><b>  }</b></p><p>  stud[i].average=sum/stud[i].num_of_course;</p><p>  cout<<" 該學生這幾門課的平均分為:"<<stud[i].average<<e

128、ndl;</p><p><b>  char c;</b></p><p>  cout<<"是否保存數據?(y/n)"<<endl;</p><p><b>  cin>>c;</b></p><p>  if(c!='n'

129、&&c!='N')</p><p>  Write(stud,n);</p><p><b>  }</b></p><p><b>  }</b></p><p>  void Delete(Stu stud[]) //刪除學生信息函數<

130、/p><p><b>  {</b></p><p>  system("cls");</p><p><b>  int s1;</b></p><p>  string s2;</p><p>  int n=Read(stud);</p>

131、<p>  int i=0,j;</p><p>  char sign;</p><p>  cout<<"請選擇刪除學生信息的方式"<<endl<<endl;</p><p>  cout<<"---->按學號刪除 1 <-----"<<

132、;endl;</p><p>  cout<<"---->按姓名刪除 2 <-----"<<endl;</p><p>  int choose;</p><p><b>  do</b></p><p><b>  {</b></

133、p><p>  cout<<"請輸入您的選擇:";</p><p>  cin>>choose;</p><p>  }while((choose!=1)&&(choose!=2));</p><p>  switch(choose)</p><p><b&

134、gt;  {</b></p><p><b>  case 1:</b></p><p>  system("cls");</p><p>  cout<<endl<<"====>> 刪除學生成績 <<===="<<endl;<

135、/p><p>  while(sign!='n'&&sign!='N')</p><p><b>  {</b></p><p>  cout<<"請輸入需要刪除學生的學號:"<<endl;</p><p><b>  ci

136、n>>s1;</b></p><p>  while((stud[i].num-s1)!=0&&i<n) i++;//這種結構形式決定一次只能刪除一個學生</p><p><b>  if(i==n)</b></p><p><b>  {</b></p><

137、;p>  cout<<"====>提示:對不起,無法找到該學生……"<<endl;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p&g

138、t;  for(j=i; j<n-1; j++)</p><p><b>  {</b></p><p>  stud[j]=stud[j+1];</p><p><b>  }</b></p><p>  cout<<"====>提示:已成功刪除!"&l

139、t;<endl;</p><p><b>  }</b></p><p><b>  n--;</b></p><p>  cout<<"====>提示:是否繼續刪除學生信息?(Y/N)";</p><p>  cin>>sign;</p

140、><p><b>  }</b></p><p>  Write(stud,n);</p><p><b>  break;</b></p><p><b>  case 2:</b></p><p>  system("cls");&l

141、t;/p><p>  int flag=0;</p><p>  cout<<endl<<"====>> 刪除學生成績 <<===="<<endl;</p><p>  while(sign!='n'&&sign!='N')</p>

142、<p><b>  {</b></p><p>  cout<<"請輸入需要刪除學生的姓名:"<<endl;</p><p><b>  cin>>s2;</b></p><p>  for(i; i<n; i++)</p><

143、p><b>  {</b></p><p>  if(stud[i].name==s2)</p><p><b>  {</b></p><p>  // stud[i]=stud[i+1];</p><p>  for(j=i;j<n-1;j++)</p><p&g

144、t;<b>  {</b></p><p>  stud[j]=stud[j+1];</p><p><b>  }</b></p><p>  cout<<"====>提示:已成功刪除!"<<endl;</p><p><b>  fla

145、g=1;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(flag==0)</p><p><b>  {</

146、b></p><p>  cout<<"====>提示:對不起,無法找到該學生……"<<endl;</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  n--;<

147、/b></p><p>  cout<<"====>提示:是否繼續刪除學生信息?(Y/N)";</p><p>  cin>>sign;</p><p><b>  }</b></p><p>  Write(stud,n);</p><p>

148、;<b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void Insert(Stu stud[]) //學生信息插入函數</p><p><b>  {</b&

149、gt;</p><p>  system("cls");</p><p><b>  int flag;</b></p><p>  int n=Read(stud);</p><p><b>  char s;</b></p><p>  cout<

150、;<endl<<"====>> 增加學生成績<<===="<<endl;</p><p>  while(s!='n'&&s!='N')</p><p><b>  {</b></p><p>  cout<<&

151、quot;班級:";</p><p>  cin>>stud[n].class_num;</p><p>  cout<<"學號:";</p><p>  cin>>stud[n].num;</p><p>  cout<<"姓名:";</

152、p><p>  cin>>stud[n].name;</p><p>  cout<<"年齡:";</p><p>  cin>>stud[n].age;</p><p>  cout<<"性別:";</p><p>  cin>

溫馨提示

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

評論

0/150

提交評論