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

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  二○一二~二○一三學(xué)年第二學(xué)期</p><p><b>  信息科學(xué)與工程學(xué)院</b></p><p><b>  C++程序設(shè)計(jì)語(yǔ)言</b></p><p><b>  課程設(shè)計(jì)報(bào)告</b></p><p>  課程名稱:C++程序設(shè)計(jì)語(yǔ)言</p&

2、gt;<p>  班 級(jí):電氣信息類1206班 </p><p><b>  學(xué) 號(hào): </b></p><p><b>  姓 名: </b></p><p><b>  指導(dǎo)教師: </b></p><p><b>  目錄<

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

4、><p>  3.1類的分析與設(shè)計(jì)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.主要模塊的算法說(shuō)明7</p><p>  4.1信息的保存

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

6、序8</p><p>  5.程序運(yùn)行結(jié)果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 輸出不及格學(xué)生信息12</p><p>  5.10 退出系統(tǒng)13</p><p>  6.課程設(shè)計(jì)總結(jié)13</p><p><b>  7.參考文獻(xiàn)13</b>

8、;</p><p>  8.附錄(源代碼)14</p><p><b>  1.課程設(shè)計(jì)目的</b></p><p>  1.1使學(xué)生進(jìn)一步理解和掌握課堂上所學(xué)各種基本抽象數(shù)據(jù)類型的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)和操作實(shí)現(xiàn)算法,以及它們?cè)诔绦蛑械氖褂梅椒ā?lt;/p><p>  1.2使學(xué)生掌握軟件設(shè)計(jì)的基本內(nèi)容和設(shè)計(jì)方法,并培養(yǎng)學(xué)

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

10、;p>  學(xué)生選修課程的基本信息:課程編號(hào)、課程名稱、考試成績(jī)、平時(shí)成績(jī)、綜合成績(jī)、學(xué)分、</p><p><b>  重修否等。</b></p><p>  2.2系統(tǒng)的基本功能</p><p>  數(shù)據(jù)的錄入:如錄入學(xué)生的基本信息,以及該學(xué)生選修課程的基本信息;</p><p>  數(shù)據(jù)的修改:如修改指定學(xué)號(hào)、

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

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

13、,該系統(tǒng)要求處理一些學(xué)生成績(jī)的基本數(shù)據(jù),包括兩個(gè)方面:學(xué)生身份信息和學(xué)生成績(jī)信息。具體可以考慮創(chuàng)建兩個(gè)類,一個(gè)學(xué)生基本信息類,一個(gè)學(xué)科基本信息類。這樣既可以保持二者的獨(dú)立性,也可以使之相關(guān)聯(lián)。</p><p>  2.3.2該系統(tǒng)不僅要求能錄入一些基本數(shù)據(jù)外,還要能對(duì)這些數(shù)據(jù)進(jìn)行處理,比如修改,刪除,插入,查詢等。對(duì)這些操作的實(shí)現(xiàn)可以暫時(shí)放開面向?qū)ο?,而采用面向過(guò)程的方法。另外,因?yàn)閷?duì)數(shù)據(jù)庫(kù)了解不多,可以考慮用文

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

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

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

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

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

19、<p>  上面已經(jīng)主要分開介紹了兩個(gè)獨(dú)立的類及其內(nèi)部成員,現(xiàn)在來(lái)介紹整個(gè)學(xué)生系統(tǒng)功能實(shí)現(xiàn)的流程。</p><p>  4.主要模塊的算法說(shuō)明</p><p>  4.1信息的保存和讀取</p><p>  在本次課程設(shè)計(jì)中,因?yàn)檫€沒(méi)有接觸到數(shù)據(jù)庫(kù)的有關(guān)知識(shí),故采用文件流來(lái)寫入和讀取信息。主要涉及到fstream類。在系統(tǒng)運(yùn)行過(guò)程中,會(huì)利用該類將學(xué)生的基本

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

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

22、詢,就是把存放在文檔中的學(xué)生數(shù)據(jù)讀取出來(lái)并加以輸出。</p><p>  當(dāng)只針對(duì)某個(gè)人的查詢時(shí),需要輸入學(xué)號(hào)或姓名,再調(diào)用read()函數(shù)將相關(guān)的數(shù)據(jù)讀取出來(lái),至于需要輸出哪些,可以自己控制。</p><p>  當(dāng)要輸出所有學(xué)生的數(shù)據(jù)是時(shí),首先調(diào)用read()函數(shù)返回?cái)?shù)據(jù)的個(gè)數(shù)count,即學(xué)生的個(gè)數(shù)。最后采用for循環(huán)控制依次輸出每一個(gè)學(xué)生的信息。</p><p&

23、gt;  4.2.3 數(shù)據(jù)的修改</p><p>  當(dāng)修改數(shù)據(jù)時(shí),只需輸入需要修改學(xué)生的學(xué)號(hào)即可。首先會(huì)將該生的相關(guān)信息輸出出來(lái)。然后再提示重新輸入信息。執(zhí)行到這里時(shí)基本就和前面的數(shù)據(jù)錄入,插入一樣了。</p><p>  4.2.4 數(shù)據(jù)的刪除</p><p>  本例中,對(duì)數(shù)據(jù)的刪除比較簡(jiǎn)單。只需輸入學(xué)號(hào)或姓名,當(dāng)查找到該生的相關(guān)信息后。將后面一個(gè)學(xué)生的信息賦

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

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

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

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

28、t;</p><p>  當(dāng)輸入需要修改的學(xué)生學(xué)號(hào)時(shí),會(huì)首先輸出該同學(xué)現(xiàn)在的已經(jīng)存在的信息:</p><p><b>  然后提示重新輸入:</b></p><p>  輸入完成后,會(huì)提示是否保存:</p><p><b>  5.6 信息的刪除</b></p><p>  

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

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

31、生信息</p><p>  當(dāng)選擇該功能時(shí),首先會(huì)輸出該同學(xué)的學(xué)號(hào),姓名和班級(jí),然后再輸出他的不及格科目以及分?jǐn)?shù),如下所示。</p><p><b>  5.10 退出系統(tǒng)</b></p><p><b>  6.課程設(shè)計(jì)總結(jié)</b></p><p> ?。?)回顧此次課程設(shè)計(jì),感慨良多,從剛拿到題

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

33、<p> ?。?)在這次的課程設(shè)計(jì)過(guò)程中,通過(guò)查書的學(xué)習(xí),對(duì)C++的了解又加深了不少,包括類的結(jié)構(gòu),以及怎樣在類外訪問(wèn)類類的私有成員等,我想下次再寫基于對(duì)象的程序時(shí),一定會(huì)得心應(yīng)手。</p><p> ?。?)還有比較重要的收獲就是類的相互嵌套使用,就拿本例來(lái)說(shuō),在一個(gè)類中設(shè)置一個(gè)數(shù)據(jù)成員,而該數(shù)據(jù)成員確是另一個(gè)類的對(duì)象。這對(duì)理解數(shù)據(jù)類型起到了不少的作用。</p><p>  

34、(5) 總的來(lái)說(shuō),這次程序設(shè)計(jì)讓我獲益匪淺,對(duì)C++語(yǔ)言也有了進(jìn)一步的認(rèn)識(shí):語(yǔ)言功能高、表達(dá)能力強(qiáng)、使用靈活方便、目標(biāo)程序效率高等等。C++語(yǔ)言是在國(guó)內(nèi)外廣泛使用的一種計(jì)算機(jī)語(yǔ)言,相信除了以上優(yōu)點(diǎn),還有許多我們還未發(fā)現(xiàn),希望能在以后的學(xué)習(xí)中有更深入的認(rèn)識(shí)。</p><p><b>  7.參考文獻(xiàn)</b></p><p> ?。?)C++程序設(shè)計(jì)(第二版)

35、 譚浩強(qiáng) 編著</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函數(shù)和syetem函數(shù)要用</p><p>  #include <string></p><p>  using namespace std;</p><p&g

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

38、稱</p><p>  float regular_score;//平時(shí)成績(jī)</p><p>  float final_score;//末考成績(jī)</p><p>  float average_score;//綜合成績(jī)</p><p>  float study_score;//學(xué)分</p><p>  string

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

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

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

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

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

44、um;//學(xué)號(hào)</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;//課程數(shù)目</p><p>  int order;//名次</p><p>  Course course[20];//課程信息數(shù)組</p><p><b>  };</b></p><p>  vo

46、id Write(Stu stud[],int n) //文件寫入函數(shù)</p><p><b>  {</b></p><p>  fstream myFile; //定義一個(gè)文件輸入輸出類</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[]) //文件讀取函數(shù)</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 ; //函數(shù)返回一個(gè)查詢出來(lái)的數(shù)值</p><p><b>  }</b></p><p>  void Input(Stu stud[])

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

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

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

65、t<<"學(xué)號(hào):";</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<<" 你輸入的學(xué)號(hào)已經(jīng)存在!請(qǐng)重新輸入。"<<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<<"請(qǐng)輸入需要登記的學(xué)科數(shù)目:";</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<<"請(qǐng)登記第"<<j+1<<"門課的信息:"<<endl;</p><p>  cout<<"課程編號(hào):";</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<<"平時(shí)成績(jī):";</p><p>  cin>>stud[i

73、].course[j].regular_score;</p><p>  cout<<"末考成績(jī):";</p><p>  cin>>stud[i].course[j].final_score;</p><p>  cout<<"學(xué)分:";</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<<"該門課的綜合成績(jī)是:"

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<<" 該學(xué)生這幾門課的平均分為:"<<stud[i].average<<endl;</p

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

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

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

81、uot;<<"年齡"<<"\t"<<"性別"<<"\t"<<"宿舍"<<"\t"<<"電話"<<"\t\t"<<"平均成績(jī)"<<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[]) //學(xué)生成績(jī)查找函數(shù)</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<<"請(qǐng)輸入查詢方式:"<<endl<<endl;</p><p>  cout<<"----->按學(xué)號(hào)查詢: 1 <-------"<<endl;</p><p>  cout<<"----->按姓名查詢: 2 <-------"

87、;<<endl;</p><p><b>  do</b></p><p><b>  {</b></p><p>  cout<<"請(qǐng)輸入您的選擇:";</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<<"====>> 查找學(xué)生成績(jī) <<===="<<endl;</p><p>  cout<<"請(qǐng)輸入需要查找學(xué)生的學(xué)號(hào):"<<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、>提示:對(duì)不起,無(wú)法找到該學(xué)生的信息!"<<endl;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  cout<<"------

92、---------------------"<<endl;</p><p>  cout<<"班級(jí):"<<stud[i].class_num<<endl;</p><p>  cout<<"學(xué)號(hào):"<<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<<"====>> 查找學(xué)生成績(jī) <<===="<<endl;&

98、lt;/p><p>  cout<<"請(qǐng)輸入需要查找學(xué)生的姓名:"<<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<<"班級(jí):"<<stud[i].class_num<<endl;</p><p>  cout<<"學(xué)號(hào):"<<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<<"=====>提示:對(duì)不起,無(wú)法找到該學(xué)生的信息!"<<endl;</p><p><b>  }</b><

106、;/p><p><b>  }</b></p><p>  void Modify(Stu stud[]) //學(xué)生成績(jī)修改函數(shù)</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<<"====>> 修改學(xué)生成績(jī) <<===="<<endl;

108、</p><p>  cout<<"請(qǐng)輸入需要修改成績(jī)學(xué)生的學(xué)號(hào):"<<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<<"=====>提示:對(duì)不起,無(wú)該學(xué)生的成績(jī)……"<<endl;</p><p><b>  }</b></p><p>

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

111、"<<"學(xué)號(hào)"<<"\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、<<"請(qǐng)重新輸入該學(xué)生的信息"<<endl;</p><p>  cout<<"班級(jí):"<<endl;</p><p>  cin>>stud[i].class_num;</p><p>  cout<<"學(xué)號(hào):"<<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<<" 請(qǐng)輸入需要登記的學(xué)科數(shù)目:";<

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<<"請(qǐng)登記第"<<j+1<<"門課的信息:"<<endl;</p><p>  cout<<"課程編號(hào):";</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<<"平時(shí)成績(jī):";</p><p>  cin>

123、>stud[i].course[j].regular_score;</p><p>  cout<<"末考成績(jī):";</p><p>  cin>>stud[i].course[j].final_score;</p><p>  cout<<"學(xué)分:";</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、成績(jī)是:"<<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<<" 該學(xué)生這幾門課的平均分為:"<<stud[i].average<<e

128、ndl;</p><p><b>  char c;</b></p><p>  cout<<"是否保存數(shù)據(jù)?(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[]) //刪除學(xué)生信息函數(shù)<

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<<"請(qǐng)選擇刪除學(xué)生信息的方式"<<endl<<endl;</p><p>  cout<<"---->按學(xué)號(hào)刪除 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<<"請(qǐng)輸入您的選擇:";</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<<"====>> 刪除學(xué)生成績(jī) <<===="<<endl;<

135、/p><p>  while(sign!='n'&&sign!='N')</p><p><b>  {</b></p><p>  cout<<"請(qǐng)輸入需要?jiǎng)h除學(xué)生的學(xué)號(hào):"<<endl;</p><p><b>  ci

136、n>>s1;</b></p><p>  while((stud[i].num-s1)!=0&&i<n) i++;//這種結(jié)構(gòu)形式?jīng)Q定一次只能刪除一個(gè)學(xué)生</p><p><b>  if(i==n)</b></p><p><b>  {</b></p><

137、;p>  cout<<"====>提示:對(duì)不起,無(wú)法找到該學(xué)生……"<<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<<"====>提示:是否繼續(xù)刪除學(xué)生信息?(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<<"====>> 刪除學(xué)生成績(jī) <<===="<<endl;</p><p>  while(sign!='n'&&sign!='N')</p>

142、<p><b>  {</b></p><p>  cout<<"請(qǐng)輸入需要?jiǎng)h除學(xué)生的姓名:"<<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<<"====>提示:對(duì)不起,無(wú)法找到該學(xué)生……"<<endl;</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  n--;<

147、/b></p><p>  cout<<"====>提示:是否繼續(xù)刪除學(xué)生信息?(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[]) //學(xué)生信息插入函數(shù)</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<<"====>> 增加學(xué)生成績(jī)<<===="<<endl;</p><p>  while(s!='n'&&s!='N')</p><p><b>  {</b></p><p>  cout<<&

151、quot;班級(jí):";</p><p>  cin>>stud[n].class_num;</p><p>  cout<<"學(xué)號(hào):";</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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論