

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