

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 課 程 設(shè) 計(jì) 報(bào) 告</p><p> 課程名稱 C語言程序設(shè)計(jì) </p><p> 課題名稱 班級成績管理系統(tǒng) </p><p> 專 業(yè) 機(jī)械設(shè)計(jì)制造及其自動(dòng)化 </p><p> 班 級 </
2、p><p> 學(xué) 號(hào) </p><p> 姓 名 </p><p> 指導(dǎo)教師 </p><p> 2010年6月30日</p><p> 課 程 設(shè) 計(jì) 任 務(wù) 書</p>
3、<p> 課程名稱 C語言程序設(shè)計(jì) </p><p> 課 題 班級成績管理系統(tǒng) </p><p> 專業(yè)班級 機(jī)械設(shè)計(jì)0983 </p><p> 學(xué)生姓名 </p><p> 學(xué) 號(hào) </p><p> 指導(dǎo)
4、老師 </p><p> 審 批 </p><p> 任務(wù)書下達(dá)日期 年 月 日</p><p> 任務(wù)完成日期 年 月 日</p><p><b> 目錄</b></p><p&g
5、t; 第一章 緒論--------------------------------------------------------</p><p> 第二章 需求分析--------------------------------------------------</p><p> 2.1 程序的功能-------------------------------------
6、-----</p><p> 2.2 輸入輸出的要求------------------------------------</p><p> 第三章 概要設(shè)計(jì)--------------------------------------------------</p><p> 3.1程序的模塊組成-----------------------------
7、--------</p><p> 3.2學(xué)生信息結(jié)構(gòu)數(shù)組----------------------------------</p><p> 3.3各個(gè)程序的功能介紹-------------------------------</p><p> 第四章 詳細(xì)設(shè)計(jì)---------------------------------------------
8、-----</p><p> 4.1總流程圖----------------------------------------------</p><p> 4.2統(tǒng)計(jì)函數(shù)流程圖-------------------------------------</p><p> 第五章 測試--------------------------------------
9、------------------</p><p> 5.1系統(tǒng)調(diào)試----------------------------------------------</p><p> 5.2結(jié)果分析----------------------------------------------</p><p> 第六章 使用說明-----------------
10、---------------------------------</p><p> 第七章 總結(jié)--------------------------------------------------------</p><p> 附錄---------------------------------------------------------------------</p
11、><p> 評分表------------------------------------------------------------------</p><p><b> 第一章:緒論</b></p><p> 一. 成績管理系統(tǒng)的背景分析:</p><p> 當(dāng)今時(shí)代是飛速發(fā)展的信息時(shí)代,在各行各業(yè)中離不開信
12、息處理, 正是計(jì)算機(jī)被廣泛應(yīng)用于信息管理系統(tǒng)的環(huán)境.計(jì)算機(jī)的最大好處在于利用它能夠進(jìn)行信息管理.使用計(jì)算機(jī)進(jìn)行信息控制,不僅提高了工作效率,而且大大的提高了其安全性.尤其對于復(fù)雜的信息管理,計(jì)算機(jī)能夠充分發(fā)揮它的優(yōu)越性.</p><p> 隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能在人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來越重要的作用. 學(xué)生成績管理系統(tǒng)提供了強(qiáng)大的學(xué)生成績管理管理功能,方便系統(tǒng)管理員對學(xué)生
13、成績等信息的添加,修改,刪除,查詢,留言等操作,同時(shí)一樣的方面學(xué)生對自己各科成績查詢,學(xué)習(xí)的交流.</p><p> 二.開發(fā)學(xué)生成績管理的必要性</p><p> 開發(fā)一個(gè)學(xué)生成績管理系統(tǒng),采用計(jì)算機(jī)對學(xué)生成績進(jìn)行管理,進(jìn)一步提高了辦學(xué)效益和現(xiàn)代化水平.為廣大教師和學(xué)生提高工作效率,實(shí)現(xiàn)學(xué)生成績信息管理工作流程的系統(tǒng)化,規(guī)范化和自動(dòng)化.現(xiàn)在我國的大中專院校的學(xué)生成績檔案管理水平普遍都
14、不是很高,有的還停留在全用紙介質(zhì)基礎(chǔ)上,這種管理方式已不能適應(yīng)時(shí)代的發(fā)展,社會(huì)的需求,因?yàn)樗速M(fèi)了大量的人力物力,也存在著許多不足的因素.在今天信息時(shí)代這種傳統(tǒng)的管理方法必然會(huì)被計(jì)算機(jī)為基礎(chǔ)的信息管理系統(tǒng)所代替.一個(gè)高效的學(xué)生成績管理系統(tǒng)可以存儲(chǔ)歷屆的學(xué)生成績檔案,不需要大量的人力,只需要幾名專門錄入員即可操作系統(tǒng),節(jié)省大量人力,可以迅速查到所需信息,高效,安全,學(xué)生在能方便的查看自己的成績.</p><p>&
15、lt;b> 三.課程設(shè)計(jì)內(nèi)容</b></p><p><b> ⑴問題描述:</b></p><p> 一個(gè)有N個(gè)學(xué)生的班級,每個(gè)學(xué)生有M門課程。該系統(tǒng)實(shí)現(xiàn)對班級成績的錄入、顯示、修改、排序、保存等操作的管理。</p><p><b> ?、乒δ芤螅?lt;/b></p><p>
16、; ?、佟⒈鞠到y(tǒng)采用一個(gè)結(jié)構(gòu)體數(shù)組,每個(gè)數(shù)據(jù)的結(jié)構(gòu)應(yīng)當(dāng)包括:學(xué)號(hào)、姓名、M門課程名稱。</p><p> ?、?、本系統(tǒng)顯示這樣的菜單:</p><p><b> 請選擇系統(tǒng)功能項(xiàng):</b></p><p><b> 成績錄入</b></p><p><b> 成績顯示</b&g
17、t;</p><p><b> 成績保存</b></p><p><b> 成績排序</b></p><p> 成績修改(要求先輸入密碼)</p><p><b> 成績統(tǒng)計(jì)</b></p><p> ?、?、顯示每門課程成績最高的學(xué)生的基本信息&
18、lt;/p><p> ?、颉@示每門課程的平均成績</p><p><b> 退出系統(tǒng)</b></p><p> ?、?、執(zhí)行一個(gè)具體的功能之后,程序?qū)⒅匦嘛@示菜單。</p><p> ?、?、將學(xué)生成績保存到文件中。</p><p><b> ?、撬惴ㄌ崾荆?lt;/b></p&
19、gt;<p> ?、佟?shù)據(jù)結(jié)構(gòu):結(jié)構(gòu)體類型數(shù)組。</p><p> ?、凇?shù)據(jù)庫結(jié)構(gòu):下表構(gòu)成該系統(tǒng)的基本數(shù)據(jù)庫。</p><p><b> ⑷測試數(shù)據(jù):</b></p><p><b> 學(xué)生人數(shù)N=10</b></p><p><b> 課程門數(shù)M=4</b&
20、gt;</p><p> 課程名:數(shù)學(xué)、語文、英語、政治</p><p><b> ?、善渌?lt;/b></p><p> 該系統(tǒng)有興趣的同學(xué)可以在實(shí)現(xiàn)上述基本功能后,完善系統(tǒng)的其它功能。</p><p> 四.課程設(shè)計(jì)要求及分組安排。</p><p><b> 1. 課程設(shè)計(jì)要求&
21、lt;/b></p><p> 1).設(shè)計(jì)正確,方案合理。</p><p> 2).界面友好,使用方便。</p><p> 3).程序精煉,結(jié)構(gòu)清晰。</p><p> 4).設(shè)計(jì)報(bào)告5000字以上,含程序設(shè)計(jì)說明、用戶使用說明,系統(tǒng)的功能框圖、流程圖、源程序清單等。</p><p><b>
22、 5).上機(jī)演示。</b></p><p> 6).每個(gè)學(xué)生在規(guī)定的時(shí)間內(nèi)獨(dú)自完成相關(guān)課題的C源程序編寫,調(diào)整和運(yùn)行。源程序及編譯生成各文件均保存在軟盤中;</p><p> 7).實(shí)際操作過程中遇到的問題及解決方法:設(shè)計(jì)總結(jié)及心得體會(huì).</p><p> 8).按任務(wù)書的要求,按附錄的要求編寫《課程設(shè)計(jì)報(bào)告》(Word文檔格式)。并用A4的復(fù)印紙
23、打印并裝訂。</p><p><b> 2.分組及安排</b></p><p> 所選題目(共8題)根據(jù)學(xué)生學(xué)號(hào)順序選課題號(hào),四個(gè)人一道題,相鄰四個(gè)學(xué)號(hào)的同學(xué)選同一道題,32號(hào)以后的同學(xué)按學(xué)號(hào)每人選一題。如你的學(xué)號(hào)為15,則所選題目號(hào)為:第四題。</p><p><b> 3.成績評定</b></p>
24、<p> 程序設(shè)計(jì)方案是否合理;程序設(shè)計(jì)是否正確;調(diào)試結(jié)果;設(shè)計(jì)說明書的質(zhì)量高低;答辯時(shí)回答問題情況;課程設(shè)計(jì)周表現(xiàn)情況;總評成績記入“課程設(shè)計(jì)成績評分表”。</p><p><b> 五. 進(jìn)度安排</b></p><p> 第 一 周 星期四 :課題講解,查閱資料。</p><p> 第 二 周 星期一 :總體設(shè)計(jì),詳細(xì)設(shè)
25、計(jì)。</p><p> 星期二 :編程,上機(jī)調(diào)試,修改程序。</p><p> 星期三:上機(jī)調(diào)試,完善程序。</p><p> 星期四:上機(jī)調(diào)試,完善程序。</p><p><b> 星期五:答辯。</b></p><p> 星期六—星期天:撰寫課程設(shè)計(jì)報(bào)告。</p>&l
26、t;p> 第二章:系統(tǒng)需求分析</p><p><b> 1.程序的功能:</b></p><p> 對一個(gè)有N個(gè)學(xué)生的班級,每個(gè)學(xué)生有M門課程。該系統(tǒng)實(shí)現(xiàn)對班級成績的錄入、顯示、修改、排序、保存等操作的管理。本系統(tǒng)采用一個(gè)包含N個(gè)結(jié)構(gòu)的數(shù)組,每個(gè)數(shù)據(jù)結(jié)構(gòu)應(yīng)當(dāng)包括:學(xué)號(hào)、姓名、M個(gè)課程名稱。</p><p> 2. 輸入輸出要求:
27、</p><p> 在菜單選項(xiàng)中1-7,選擇功能項(xiàng),進(jìn)行對應(yīng)選項(xiàng)的函數(shù)調(diào)用.</p><p> 輸入1,輸入學(xué)生的基本信息存入磁盤文件中;</p><p> 輸入2,輸出已存盤的學(xué)生信息;</p><p> 輸入3,輸出用戶所要選擇科目的提問,輸入科目后輸出該科目一排好的學(xué)生成績;</p><p> 輸入4,
28、修改功能,輸入密碼.錯(cuò)誤輸出是否繼續(xù)輸入密碼.正確則逐個(gè)輸出是否想要修改學(xué)生信息;</p><p> 輸入5,輸出三項(xiàng)功能的介紹,輸入你的選擇后輸出實(shí)現(xiàn)的結(jié)果;</p><p> 每執(zhí)行一個(gè)具體的程序后都要重新顯示菜單。</p><p> 第三章:系統(tǒng)概要設(shè)計(jì)</p><p><b> 1.程序的模塊組成</b>
29、</p><p> 第一個(gè)模塊:先定義好一些必要的全局變量以及調(diào)用的函數(shù)和結(jié)構(gòu)體數(shù)組。</p><p> 第二個(gè)模塊:設(shè)計(jì)一個(gè)菜單函數(shù)menu();實(shí)現(xiàn)能供用戶選擇功能項(xiàng)。</p><p> 第三個(gè)模塊:用enter()函數(shù)實(shí)現(xiàn)成績的輸入。</p><p> 第四個(gè)模塊:用save()函數(shù)實(shí)現(xiàn)成績的保存。</p><
30、;p> 第五個(gè)模塊:用print()函數(shù)實(shí)現(xiàn)成績輸出。</p><p> 第六個(gè)模塊:用cort()函數(shù)實(shí)現(xiàn)成績排序功能。</p><p> 第七個(gè)模塊:用modify()函數(shù)實(shí)現(xiàn)成績修改功能。</p><p> 第八個(gè)模塊:用count()函數(shù)實(shí)現(xiàn)成績統(tǒng)計(jì)功能。</p><p> 2.學(xué)生信息結(jié)構(gòu)數(shù)組</p>
31、<p> struct stu</p><p><b> {</b></p><p> char name[20];</p><p><b> int num;</b></p><p> int score[M];</p><p><b> }
32、;</b></p><p> 3.各個(gè)程序的功能介紹</p><p> 1:為便于用戶使用,先定義一個(gè)常數(shù)N表示人數(shù),學(xué)生信息的結(jié)構(gòu)體數(shù)組,以及調(diào)用功能項(xiàng)的函數(shù)。</p><p> 2:在menu()函數(shù)中,用switch來選擇要執(zhí)行的功能項(xiàng)用do…while實(shí)現(xiàn)每種具體功能后能返回菜單。</p><p> 3:Enter
33、()函數(shù),用scanf依次輸入學(xué)生信息,在輸入多門成績成績時(shí),用for循環(huán)來實(shí)現(xiàn),結(jié)尾調(diào)用save()函數(shù)保存。</p><p> 4:Print()函數(shù)中為使界面美觀對學(xué)生成績用%5d輸出,且用換行實(shí)現(xiàn),學(xué)生信息整齊排列。</p><p> 5:Save()函數(shù)使用文件保存。</p><p> 6:Cort()函數(shù)先定義choice1,輸出想要排序的 科目的
34、 序號(hào),用選擇排序法實(shí)現(xiàn)函數(shù)學(xué)生成績的排序。</p><p> 7:Modify()函數(shù),先定義好 一個(gè)密碼以及flag=0;如果輸入的密碼錯(cuò)誤則flag=1,用do ..while實(shí)現(xiàn)是否重新輸入密碼,密碼準(zhǔn)確后調(diào)用modi()函數(shù),實(shí)現(xiàn)修改功能。 </p><p> 8:Count()函數(shù)用menu1函數(shù)實(shí)現(xiàn)一個(gè)菜單功能。用switch實(shí)現(xiàn),用戶選擇想執(zhí)行的功能,從而調(diào)用Show1
35、()Show2()Show3();</p><p> 第四章:系統(tǒng)詳細(xì)設(shè)計(jì)</p><p><b> 1.總流程圖</b></p><p><b> 2.統(tǒng)計(jì)函數(shù)流程圖</b></p><p><b> 第五章:測試</b></p><p>&l
36、t;b> 1.系統(tǒng)調(diào)試</b></p><p> 1:在enter()函數(shù)中對學(xué)生成績的輸入用scanf(“%d”,s);當(dāng)輸入一門成績后就會(huì)跳回,使接下來的程序無法運(yùn)行,改為for(j=1;j<=M;j++) scanf(“%d”,&s[i].score[j]);將錯(cuò)誤解決.</p><p> 2:在enter函數(shù)中,輸入姓名用scanf(“%s”,
37、&s[i].name);錯(cuò)誤,在scanf函數(shù)中的輸入項(xiàng)如果是字符數(shù)組名代表該數(shù)組的起始地址.則應(yīng)改為scanf(“%d”,s[i].name);</p><p> 3:在運(yùn)行print()函數(shù)時(shí),第四門課顯示出來的分?jǐn)?shù)并非輸入項(xiàng):錯(cuò)誤,在定義時(shí)將j=1,應(yīng)改為j=0。 </p><p> 4:學(xué)生成績定義為浮點(diǎn)型,但與scanf連接不起來。是 由于所使用的系統(tǒng)不支持該項(xiàng)操作。
38、</p><p> 5:在count( )函數(shù)中,show3( );輸出的人數(shù)比 實(shí)際的多一人,因?yàn)閎++:在循環(huán)結(jié)束之后會(huì)自增一次,則比 實(shí)際的大一。</p><p><b> 2. 結(jié)果分析</b></p><p> 1:為了使調(diào)試程序簡便,先定義班級的人數(shù)N為3人,編譯連接后,顯示出菜單桌面,先輸入學(xué)生成績保存起來.</p&g
39、t;<p> 2:選擇2.在用循環(huán)輸出學(xué)生的基本信息的最后加printf(“\n”);,則輸出學(xué)生的基本信息是每行顯示一位同學(xué)的信息.</p><p> 3:選擇5.修改函數(shù)中用getchar()來覆蓋原有的,則就可輸出修改的信息.</p><p> 4:選擇6.用一個(gè)選擇菜單</p><p> int menu1()</p>&
40、lt;p><b> {</b></p><p> int choice1;</p><p> printf("\n*******\n");</p><p> printf("1:xian shi mei ke cheng ji zui gao de xue sheng xin xi\n");
41、</p><p> printf("2:xian shi mei ke ping jun cheng ji\n");</p><p> printf("3:xian shi chao gou ping jun cheng ji de ren shu\n");</p><p> printf("4:quit\n&
42、quot;);</p><p> printf("********\n");</p><p><b> }</b></p><p> 選擇<1>.輸入選擇的科目用標(biāo)記法找出成績最高的的學(xué)生則輸出其基本信息.</p><p> 選擇<2>.用for循環(huán),先求出了每門的總成
43、績再除以人數(shù)的到平均成績用一個(gè)數(shù)組接收.再用循環(huán)則的到結(jié)果.</p><p> 選擇<3>.先定義了一個(gè)數(shù)組b[M].用循環(huán)如果出現(xiàn)超過平均成績的人就自增一次,接收到b[M]中,用循環(huán)輸出b[M]則得到每門超過平均成績的人數(shù).</p><p> 5:在modify( )函數(shù)中,當(dāng)輸入一個(gè)錯(cuò)誤的密碼時(shí)會(huì)出現(xiàn)死循環(huán),因?yàn)樘龅?位置錯(cuò)誤了</p><p>
44、; 第六章:該系統(tǒng)使用說明</p><p> 1.運(yùn)行時(shí)進(jìn)入主界面,系統(tǒng)根據(jù)輸入的數(shù)字選項(xiàng)來調(diào)用相應(yīng)的函數(shù)。主要實(shí)現(xiàn)“功能選擇”的界面,在這個(gè)界面里有顯示系統(tǒng)的七大功能,根據(jù)每個(gè)功能前面的序號(hào)進(jìn)行選擇。以下為該介面;</p><p> 2.當(dāng)錄入完成輸入顯示學(xué)生成績功能時(shí),運(yùn)行結(jié)果如下圖:</p><p> 3. 當(dāng)輸入輸入成績統(tǒng)計(jì)功能時(shí),運(yùn)行結(jié)果如下圖:&
45、lt;/p><p> 3.成績修改時(shí)需要輸入密碼才能進(jìn)行,密碼錯(cuò)誤時(shí)不能進(jìn)行該操作,只有輸入正確的密碼才能運(yùn)行,運(yùn)行結(jié)果如下圖:</p><p><b> 第七章:總結(jié)</b></p><p> 不經(jīng)一番寒徹骨,哪得梅花撲鼻香。</p><p> 一周的C語言課程設(shè)計(jì)已接近尾聲了,現(xiàn)在回想起來真是五味俱全,從開<
46、;/p><p> 始的懵懂無知到現(xiàn)在做出一本挺有厚度的資料,我不但實(shí)踐了課本的知識(shí),還編出小程序,雖然很多人幫了我的忙,仍舊感覺自己對C語言有了深入的了解,還是有所成長,有所收獲,在實(shí)踐中,自己編程常會(huì)犯錯(cuò)誤,并總結(jié)一些克服缺點(diǎn)的方法。深刻體會(huì)到程序設(shè)計(jì)中最重要的一部分不是編寫源程序,而是調(diào)試過程。只有經(jīng)過調(diào)試程序,我們才能掌握正確的語法知識(shí)及把問題的解決方法用程序語言來表達(dá)。 在這段時(shí)間里,我門匆匆忙忙為了它準(zhǔn)
47、備了很多,其中不免有嘆息聲,但是總的來說讓我么學(xué)到了很多,也懂得了很多,不僅在知識(shí)方面,還在有人的生活態(tài)度,目標(biāo)上。這次的C語言課程設(shè)計(jì)充分展示了C的魅力,用一些小小的實(shí)現(xiàn)合成一個(gè)系統(tǒng)從而融入到生活中解決實(shí)際問題。同時(shí)也教會(huì)了我應(yīng)站在用戶的角度去設(shè)計(jì)程序。在此次設(shè)計(jì)過程中必不可少的出現(xiàn)了 很多問題,整體規(guī)劃,模塊與模塊之間的調(diào)用與劃分,標(biāo)識(shí)符的使用。單詞的拼寫錯(cuò)誤,結(jié)構(gòu)體數(shù)組的使用,正確的使用循環(huán)的限制條件….。</p>
48、<p> 這些問題大多是因?yàn)槠綍r(shí)上課很少聽講的原因,以至于很多概念混淆不清 。這次的課程設(shè)計(jì)讓我看到自己對C語言研究地少之又少。這次的班級成績管理系統(tǒng)仍舊存在著不足。</p><p> 記得開始課設(shè)的第一天,我糊里糊涂地在機(jī)房呆了一個(gè)上午,對老師要求做的課程設(shè)計(jì)束手無策,上網(wǎng)搜了幾個(gè),但覺得沒點(diǎn)意思,最后還是沒有用。但相對于別人的做的系統(tǒng),我的好像簡單多了。但后來還是不得不去看書,因?yàn)楹芏鄸|西還牛毛
49、都不知道。比如,做這個(gè)課程設(shè)計(jì)時(shí)候,最好使用鏈表,而鏈表我們還沒有深入去熟悉它,在說這個(gè)課程設(shè)計(jì)牽涉到前面我們學(xué)過的所有內(nèi)容,如,一些基本函數(shù)的運(yùn)用,函數(shù)的調(diào)用及指針,結(jié)構(gòu)體。內(nèi)容多而復(fù)雜,如果沒有對教材有個(gè)很好的了解掌握,是不可能篇好這個(gè)程序的。我還在把書本重新溫習(xí)了一遍,對照程序一一翻書,試圖找到一中解釋來說明程序當(dāng)中一些函數(shù)的作用和結(jié)構(gòu)。</p><p> 接下來的一段時(shí)間里對這段程序進(jìn)行了修改,經(jīng)過東湊
50、西湊,拼拼剪剪,終于可以在電腦上運(yùn)行了,但是它的功能不是很完善,需要進(jìn)一步完善。后來懷著疑問去詢問老師才發(fā)現(xiàn)其實(shí)很多問題都想比較簡單的,比如在運(yùn)行程序時(shí)發(fā)現(xiàn)無論我怎么輸入成績,第四門課的成績都與我輸入的分?jǐn)?shù)不同,自己也嘗試用很多方法去解決,最終不了了之。同學(xué)看過以后告訴我是我在定義的時(shí)候把初始值定義錯(cuò)了。在修該以后,再次運(yùn)行便沒看見以前的錯(cuò)誤了。后來有用這種方法把后面的兩個(gè)警告解決了一個(gè)。</p><p> 在
51、這個(gè)過程中,也試圖自己獨(dú)立完成這個(gè)課程,偶爾發(fā)現(xiàn)書本上第11章節(jié)里面,有介紹鏈表的使用,而且書本上關(guān)于這個(gè)課程的一些基本函數(shù)功能在本章節(jié)都有說明,比如,鏈表的創(chuàng)建,節(jié)點(diǎn)的插入,刪除,一些基本信息的修改都有。</p><p> 最終完成的課程的設(shè)計(jì),馬馬虎虎的,完成的,但是還是受益匪淺。其中老</p><p> 師與同學(xué)的教導(dǎo)讓我刻苦銘心。不管其結(jié)果怎么樣,但至少這個(gè)過程,讓我們明白了,
52、懂得了很多。雖然有點(diǎn)挫折很艱辛在里面,但是那都是短暫的,美麗的,它教會(huì)了我們不經(jīng)過自己的努力,是達(dá)不到預(yù)期的結(jié)果的,不經(jīng)過自己的實(shí)踐操作,是體驗(yàn)不到其中的美妙的。不僅如此,還給了我們一個(gè)警告,對待學(xué)習(xí)不可馬馬虎虎,否則完成不了應(yīng)有的任務(wù),得不到理想的結(jié)果,半途而廢是失敗的首要原因,不要什么事情都覺得滿不在乎,踏踏實(shí)實(shí)的學(xué)習(xí),踏踏實(shí)實(shí)的工作,擁有積極樂觀的態(tài)度去應(yīng)對一切挫折,最終會(huì)讓你走想成功的前沿。因?yàn)椋骸皠倮肋h(yuǎn)是屬于永不放棄的人!&
53、lt;/p><p><b> 附錄</b></p><p><b> 1. 參考文獻(xiàn)</b></p><p> 《C程序設(shè)計(jì)(第三版)》 譚浩強(qiáng) 著 清華大學(xué)出版社</p><p> 《C語言程序設(shè)計(jì)實(shí)用指南》 譚浩強(qiáng) 著 清華大學(xué)出版社</
54、p><p> 《C語言大學(xué)實(shí)用教程學(xué)習(xí)指導(dǎo)》 蘇小紅 著 電子工業(yè)出版社</p><p><b> 源代碼</b></p><p> #include <stdio.h> /*I/O函數(shù)*/</p><p> #include <string.h> /*字符串函
55、數(shù)*/</p><p> #define M 4 /*課程數(shù)*/</p><p> #define NUM 3 /*人數(shù)*/ </p><p> #define NULL 0</p><p> #include<stdio.h></p><p> #include<string.h&g
56、t;</p><p> int avar[M];</p><p> struct stu</p><p><b> {</b></p><p> char name[20];</p><p><b> int num;</b></p><p>
57、; int score[M];</p><p><b> };</b></p><p> void enter(struct stu s[],int n); /*進(jìn)入*/</p><p> void print(struct stu s[],int n); /*輸入文件*/</p><p> void s
58、ave(struct stu s[],int n); /*保存文件*/</p><p> void sort(struct stu s[],int n); /*排序*/</p><p> void modify(struct stu s[],int n); /*修改*/</p><p> void count(struct stu s[],int n);
59、 /*統(tǒng)計(jì)*/</p><p> int menu();</p><p> void main()</p><p><b> {</b></p><p> void clrscr();</p><p> struct stu student[NUM];</p><p
60、> for( ; ; )</p><p> switch(menu())</p><p><b> {</b></p><p> case 1:enter(student,NUM);break;</p><p> case 2:print(student,NUM);break;</p>&l
61、t;p> case 3:save(student,NUM);break;</p><p> case 4:sort(student,NUM);break;</p><p> case 5:modify(student,NUM);break;</p><p> case 6:count(student,NUM);break;</p><
62、;p> case 7:return;</p><p><b> }</b></p><p><b> }</b></p><p> int menu()</p><p><b> {</b></p><p> int choice;&l
63、t;/p><p> printf("\n**************************級成績管理***************************\n");</p><p> printf(" 1 成績錄入\n");</p><p> printf("
64、 2 成績顯示\n");</p><p> printf(" 3 成績保存\n");</p><p> printf(" 4 成績排序\n");</p><p>
65、; printf(" 5 成績修改\n");</p><p> printf(" 6 成績統(tǒng)計(jì)\n");</p><p> printf(" 7 退出系統(tǒng)\n");<
66、;/p><p> printf(" 學(xué)生人數(shù)級 NUM 課程 數(shù)學(xué)0 語文1 英語2 政治3\n");</p><p> printf("***************************************************************\n");</p><p><
67、;b> do</b></p><p><b> {</b></p><p> printf("\nchoice1-7:");</p><p> scanf("%d",&choice);</p><p><b> }</b>&
68、lt;/p><p> while(choice<1||choice>7);</p><p> return choice;</p><p><b> }</b></p><p> void enter(struct stu s[],int n) //成績錄入</p><p
69、><b> {</b></p><p><b> char c;</b></p><p><b> int i=0;</b></p><p><b> int j;</b></p><p><b> do </b>&l
70、t;/p><p><b> {</b></p><p> printf("please enter the message:\n");</p><p> getchar();</p><p> printf("enter name:\n");</p><p&
71、gt; scanf("%s",s[i].name);</p><p> printf("enter num:\n");</p><p> scanf("%d",&s[i].num);</p><p> printf("enter score:\n");</p>
72、<p> for(j=0;j<M;j++)</p><p> scanf("%d",&s[i].score[j]);</p><p> printf("按Y繼續(xù)錄入,按N結(jié)束錄入!");</p><p> getchar();</p><p> scanf(&quo
73、t;%c",&c);</p><p> if(c!='Y'&&c!='y') //可以選擇是否繼續(xù)錄入</p><p><b> break;</b></p><p><b> ++i;</b></p>&l
74、t;p> }while(i!=n);</p><p><b> }</b></p><p> void save(struct stu s[],int n) //文件存儲(chǔ)數(shù)據(jù)</p><p><b> {</b></p><p>&l
75、t;b> FILE *fp;</b></p><p><b> int i;</b></p><p> char save[20];</p><p> printf("enter the file name:");</p><p> scanf("%s"
76、,save); /*輸入選擇項(xiàng)*/</p><p> if((fp=fopen("stu-list","wb"))==NULL)</p><p><b> {</b></p><p> printf("can not o
77、pen file\n");</p><p><b> return;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p>
78、 for (i=0;i<n;i++)</p><p> if(fwrite (&s[i],sizeof(struct stu),1,fp)!=1);</p><p> printf("file write error\n");</p><p> fclose(fp);</p><p> printf
79、("success\n");</p><p><b> }</b></p><p><b> }</b></p><p> void print (struct stu s[],int n) //成績顯示</p><p>
80、<b> {</b></p><p><b> int i,j;</b></p><p> for(i=0;i<n;i++)</p><p><b> { </b></p><p> printf(" 數(shù)學(xué) 語文 英語 政治\n"
81、);</p><p> printf("%s",s[i].name);</p><p> printf("%d",s[i].num);</p><p> for(j=0;j<M;j++)</p><p> printf("%5d",s[i].score[j]);<
82、/p><p> printf("\n");</p><p><b> }</b></p><p><b> }</b></p><p> void sort(struct stu s[],int n) /*排序*/</p><p><b>
83、; {</b></p><p> int i,j,min,temp,k; </p><p> printf("please choice subject 1-4:\n");</p><p> scanf("%d",&k);</p><p> for(i=0;i<n-
84、1;i++)</p><p><b> {</b></p><p><b> min=i;</b></p><p> for(j=i+1;j<n;j++)</p><p> if(s[min].score[k]>s[j].score[k])</p><p>
85、;<b> {</b></p><p> temp=s[min].score[k];</p><p> s[min].score[k]=s[j].score[k];</p><p> s[j].score[k]=temp;</p><p><b> }</b></p><
86、;p><b> }</b></p><p> printf("\n The sorted numbers:\n");</p><p> for(i=0;i<n;i++)</p><p> printf("%5d",s[i].score[k]);</p><p>
87、 printf("\n");</p><p><b> }</b></p><p> void count(struct stu s[],int n)</p><p><b> {</b></p><p> void show1(struct stu a[],int n
88、1);</p><p> void show2(struct stu a[],int n1);</p><p> int menu1();</p><p> for( ; ;) </p><p> switch(menu1())</p><p><b> {</b></p>
89、<p> case 1:show1(s,n);break;</p><p> case 2:show2(s,n);break;</p><p> case 3:return;</p><p><b> }</b></p><p><b> }</b></p>&
90、lt;p> int menu1()</p><p> {int choice1;</p><p> printf("\n**********************************\n");</p><p> printf("1:顯示每科成績最高的學(xué)生信息\n");</p><p>
91、; printf("2:顯示每科平均成績\n");</p><p> printf("3:退出\n");</p><p> printf("**********************************\n");</p><p> do {printf("\n Enter tou c
92、hoice1 (1-3):");</p><p> scanf("%d",&choice1);}while(choice1<1||choice1>3);</p><p> return choice1;</p><p><b> }</b></p><p> vo
93、id show1(struct stu a[],int n1)</p><p><b> {</b></p><p> int k,i,j,c=0;</p><p> printf("please enter the subject num:");</p><p> scanf("%
94、d",&k);</p><p> for(i=0;i<n1;i++)</p><p> if(a[c].score[k]<a[i].score[k])</p><p><b> c=i;</b></p><p> printf("%s,%d",a[c].name,
95、a[c].num);</p><p> for(j=0;j<M;j++)</p><p> printf("%5d",a[c].score[j]);</p><p><b> }</b></p><p> void show2(struct stu a[],int n1)</p&g
96、t;<p><b> {</b></p><p> int i,j,sum;</p><p> for(j=0;j<M;j++)</p><p><b> {</b></p><p><b> sum=0;</b></p><p
97、> for(i=0;i<n1;i++)</p><p> sum=sum+a[i].score[j];</p><p> avar[j]=sum/n1;</p><p> printf("The %d avarage is:%d\n",j,avar[j]);</p><p><b> }&l
98、t;/b></p><p><b> }</b></p><p> void modify(struct stu s[],int n)</p><p><b> {</b></p><p> void modi(struct stu c[],int n1);</p>&l
99、t;p> int flag=0;</p><p> char a[10],c,code[10]="1234a";/*密碼*/</p><p><b> do</b></p><p><b> {</b></p><p> printf("please e
100、nter you code:\n");</p><p> scanf("%s",&a);</p><p> if(strcmp(code,a)==0)break;</p><p><b> else</b></p><p><b> {</b></
101、p><p> printf("You code is wrong,enter again?y\n\n");</p><p> scanf("%c\n",&c);</p><p> if(c=='n'||c=='N')</p><p><b> {&l
102、t;/b></p><p> flag=1;break;</p><p><b> }</b></p><p><b> }</b></p><p> }while(1);</p><p> if(flag==0)</p><p>
103、modi(s,n);</p><p><b> }</b></p><p> void modi (struct stu c[],int n1)</p><p><b> {</b></p><p> int num,ch;</p><p><b> in
104、t i,j;</b></p><p> printf("please input modify No:");</p><p> scanf("%d",&num );</p><p> getchar();</p><p> for(i=0;i<n1;i++)</p
105、><p> if(c[i].num==num)</p><p><b> break;</b></p><p><b> if(i>=n1)</b></p><p> printf("\n list No %d student\n",c[i].num);</p&g
106、t;<p><b> else</b></p><p><b> {</b></p><p> printf("modify(y/n)?\n");</p><p> ch=getchar();getchar();</p><p> if(ch=='
107、y'||ch=='Y')</p><p><b> {</b></p><p> printf("enter num\n");</p><p> scanf("%d",&c[i].num);</p><p> getchar();</p
108、><p><b> }</b></p><p> printf("modify name(y/n)?\n");</p><p> // ch=getchar();getchar();</p><p> if(ch=='y'||ch=='Y')</p>
109、<p><b> {</b></p><p> printf("enter name:\n");</p><p> scanf("%s",c[i].name);</p><p> getchar();</p><p><b> }</b>&
110、lt;/p><p> printf("modify record(y/n)?\n");</p><p> ch=getchar();getchar();</p><p> if(ch=='y'||ch=='Y')</p><p><b> {</b></p&g
111、t;<p> printf("enter record:\n");</p><p> for(j=0;j<M;j++)</p><p><b> {</b></p><p> scanf("%d",&c[i].score[j]);</p><p>
112、; getchar();</p><p><b> }</b></p><p><b> }return;</b></p><p><b> }</b></p><p><b> }</b></p><p> 應(yīng)用技術(shù)學(xué)
113、院課程設(shè)計(jì)評分表</p><p> 課題名稱: </p><p> 教師簽名: </p><p> 日 期: </p><p> ?。ㄗⅲ?.此頁附在課程設(shè)計(jì)報(bào)告最后一頁;2.綜合成績按優(yōu)、良、中、及格和不及格五級評定。)<
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計(jì)---班級成績管理系統(tǒng)
- c語言課程設(shè)計(jì)—班級成績管理系統(tǒng)
- 《班級成績管理系統(tǒng)》c語言課程設(shè)計(jì)
- 班級成績管理系統(tǒng)--通信工程課程設(shè)計(jì)
- c語言課程設(shè)計(jì)---班級成績管理系統(tǒng) (2)
- vfp課程設(shè)計(jì)報(bào)告--- 班級學(xué)生成績管理系統(tǒng)
- 班級管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)--成績管理系統(tǒng)
- c語言課程設(shè)計(jì)--班級成績分析系統(tǒng)
- 成績管理系統(tǒng)課程設(shè)計(jì)
- 成績管理系統(tǒng)課程設(shè)計(jì)
- java課程設(shè)計(jì)(班級管理系統(tǒng))
- java課程設(shè)計(jì)(班級管理系統(tǒng))
- 管理信息系統(tǒng)課程設(shè)計(jì)報(bào)告---班級學(xué)生成績查詢系統(tǒng)
- 課程設(shè)計(jì)---考務(wù)成績管理系統(tǒng)
- java班級管理課程設(shè)計(jì)報(bào)告--班級管理系統(tǒng)
- 成績管理分析系統(tǒng)課程設(shè)計(jì)
- java課程設(shè)計(jì)(班級管理系統(tǒng)).doc
- 學(xué)生成績管理系統(tǒng)課程設(shè)計(jì)
- php成績管理系統(tǒng)課程設(shè)計(jì)報(bào)告
評論
0/150
提交評論