c語(yǔ)言課程設(shè)計(jì)---班級(jí)成績(jī)管理系統(tǒng)_第1頁(yè)
已閱讀1頁(yè),還剩23頁(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><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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論