




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、目錄第一章 緒論-第二章 需求分析- 2.1 程序的功能- 2.2 輸入輸出的要求-第三章 概要設(shè)計- 3.1程序的模塊組成- 3.2學生信息結(jié)構(gòu)數(shù)組- 3.3各個程序的功能介紹-第四章 詳細設(shè)計- 4.1總流程圖- 4.2統(tǒng)計函數(shù)流程圖-第五章 測試- 5.1系統(tǒng)調(diào)試- 5.2結(jié)果分析-第六章 使用說明-第七章 總結(jié)-附錄-評分表-第一章:緒論 一. 成績管理系統(tǒng)的背景分析: 當今時代是飛速發(fā)展的信息時代,在各行各業(yè)中離不開信息處理, 正是計算機被廣泛應用于信息管理系統(tǒng)的環(huán)境.計算機的最大好處在于利用它能夠進行信息管理.使用計算機進行信息控制,不僅提高了工作效率,而且大大的提高了其安全性.尤
2、其對于復雜的信息管理,計算機能夠充分發(fā)揮它的優(yōu)越性. 隨著科學技術(shù)的不斷提高,計算機科學日漸成熟,其強大的功能在人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用. 學生成績管理系統(tǒng)提供了強大的學生成績管理管理功能,方便系統(tǒng)管理員對學生成績等信息的添加,修改,刪除,查詢,留言等操作,同時一樣的方面學生對自己各科成績查詢,學習的交流. 二開發(fā)學生成績管理的必要性 開發(fā)一個學生成績管理系統(tǒng),采用計算機對學生成績進行管理,進一步提高了辦學效益和現(xiàn)代化水平.為廣大教師和學生提高工作效率,實現(xiàn)學生成績信息管理工作流程的系統(tǒng)化,規(guī)范化和自動化.現(xiàn)在我國的大中專院校的學生成績檔案管理水平普遍都不是很高,有的還停留在
3、全用紙介質(zhì)基礎(chǔ)上,這種管理方式已不能適應時代的發(fā)展,社會的需求,因為它浪費了大量的人力物力,也存在著許多不足的因素.在今天信息時代這種傳統(tǒng)的管理方法必然會被計算機為基礎(chǔ)的信息管理系統(tǒng)所代替.一個高效的學生成績管理系統(tǒng)可以存儲歷屆的學生成績檔案,不需要大量的人力,只需要幾名專門錄入員即可操作系統(tǒng),節(jié)省大量人力,可以迅速查到所需信息,高效,安全,學生在能方便的查看自己的成績.三.課程設(shè)計內(nèi)容問題描述:一個有N個學生的班級,每個學生有M門課程。該系統(tǒng)實現(xiàn)對班級成績的錄入、顯示、修改、排序、保存等操作的管理。功能要求:、本系統(tǒng)采用一個結(jié)構(gòu)體數(shù)組,每個數(shù)據(jù)的結(jié)構(gòu)應當包括:學號、姓名、M門課程名稱。、本系
4、統(tǒng)顯示這樣的菜單:請選擇系統(tǒng)功能項:a、 成績錄入b、 成績顯示c、 成績保存d、 成績排序e、 成績修改(要求先輸入密碼)f、 成績統(tǒng)計、顯示每門課程成績最高的學生的基本信息、顯示每門課程的平均成績g、 退出系統(tǒng)、執(zhí)行一個具體的功能之后,程序?qū)⒅匦嘛@示菜單。、將學生成績保存到文件中。算法提示:、數(shù)據(jù)結(jié)構(gòu):結(jié)構(gòu)體類型數(shù)組。、數(shù)據(jù)庫結(jié)構(gòu):下表構(gòu)成該系統(tǒng)的基本數(shù)據(jù)庫。 姓名學號課程名稱1課程名稱2charCharfloatfloat 測試數(shù)據(jù):學生人數(shù)N=10課程門數(shù)M=4課程名:數(shù)學、語文、英語、政治其它該系統(tǒng)有興趣的同學可以在實現(xiàn)上述基本功能后,完善系統(tǒng)的其它功能。四.課程設(shè)計要求及分組安排。
5、 1. 課程設(shè)計要求1)設(shè)計正確,方案合理。2)界面友好,使用方便。3)程序精煉,結(jié)構(gòu)清晰。4)設(shè)計報告5000字以上,含程序設(shè)計說明、用戶使用說明,系統(tǒng)的功能框圖、流程圖、源程序清單等。5)上機演示。6)每個學生在規(guī)定的時間內(nèi)獨自完成相關(guān)課題的C源程序編寫,調(diào)整和運行。源程序及編譯生成各文件均保存在軟盤中;7)實際操作過程中遇到的問題及解決方法:設(shè)計總結(jié)及心得體會.8)按任務(wù)書的要求,按附錄的要求編寫課程設(shè)計報告(Word文檔格式)。并用A4的復印紙打印并裝訂。2.分組及安排所選題目(共8題)根據(jù)學生學號順序選課題號,四個人一道題,相鄰四個學號的同學選同一道題,32號以后的同學按學號每人選一
6、題。如你的學號為15,則所選題目號為:第四題。3成績評定程序設(shè)計方案是否合理;程序設(shè)計是否正確;調(diào)試結(jié)果;設(shè)計說明書的質(zhì)量高低;答辯時回答問題情況;課程設(shè)計周表現(xiàn)情況;總評成績記入“課程設(shè)計成績評分表”。五. 進度安排第 一 周 星期四 :課題講解,查閱資料。第 二 周 星期一 :總體設(shè)計,詳細設(shè)計。 星期二 :編程,上機調(diào)試,修改程序。 星期三:上機調(diào)試,完善程序。星期四:上機調(diào)試,完善程序。星期五:答辯。星期六星期天:撰寫課程設(shè)計報告。第二章:系統(tǒng)需求分析1程序的功能:對一個有N個學生的班級,每個學生有M門課程。該系統(tǒng)實現(xiàn)對班級成績的錄入、顯示、修改、排序、保存等操作的管理。本系統(tǒng)采用一個
7、包含N個結(jié)構(gòu)的數(shù)組,每個數(shù)據(jù)結(jié)構(gòu)應當包括:學號、姓名、M個課程名稱。2. 輸入輸出要求:在菜單選項中1-7,選擇功能項,進行對應選項的函數(shù)調(diào)用.輸入1,輸入學生的基本信息存入磁盤文件中;輸入2,輸出已存盤的學生信息;輸入3,輸出用戶所要選擇科目的提問,輸入科目后輸出該科目一排好的學生成績;輸入4,修改功能,輸入密碼.錯誤輸出是否繼續(xù)輸入密碼.正確則逐個輸出是否想要修改學生信息;輸入5,輸出三項功能的介紹,輸入你的選擇后輸出實現(xiàn)的結(jié)果;每執(zhí)行一個具體的程序后都要重新顯示菜單。第三章:系統(tǒng)概要設(shè)計1程序的模塊組成第一個模塊:先定義好一些必要的全局變量以及調(diào)用的函數(shù)和結(jié)構(gòu)體數(shù)組。第二個模塊:設(shè)計一個
8、菜單函數(shù)menu();實現(xiàn)能供用戶選擇功能項。第三個模塊:用enter()函數(shù)實現(xiàn)成績的輸入。第四個模塊:用save()函數(shù)實現(xiàn)成績的保存。第五個模塊:用print()函數(shù)實現(xiàn)成績輸出。第六個模塊:用cort()函數(shù)實現(xiàn)成績排序功能。第七個模塊:用modify()函數(shù)實現(xiàn)成績修改功能。第八個模塊:用count()函數(shù)實現(xiàn)成績統(tǒng)計功能。2.學生信息結(jié)構(gòu)數(shù)組 struct stuchar name20; int num; int scoreM;3.各個程序的功能介紹1:為便于用戶使用,先定義一個常數(shù)N表示人數(shù),學生信息的結(jié)構(gòu)體數(shù)組,以及調(diào)用功能項的函數(shù)。2:在menu()函數(shù)中,用switch來選
9、擇要執(zhí)行的功能項用dowhile實現(xiàn)每種具體功能后能返回菜單。3:Enter()函數(shù),用scanf依次輸入學生信息,在輸入多門成績成績時,用for循環(huán)來實現(xiàn),結(jié)尾調(diào)用save()函數(shù)保存。4:Print()函數(shù)中為使界面美觀對學生成績用%5d輸出,且用換行實現(xiàn),學生信息整齊排列。5:Save()函數(shù)使用文件保存。6:Cort()函數(shù)先定義choice1,輸出想要排序的 科目的 序號,用選擇排序法實現(xiàn)函數(shù)學生成績的排序。7:Modify()函數(shù),先定義好 一個密碼以及flag=0;如果輸入的密碼錯誤則flag=1,用do .while實現(xiàn)是否重新輸入密碼,密碼準確后調(diào)用modi()函數(shù),實現(xiàn)修改
10、功能。 8:Count()函數(shù)用menu1函數(shù)實現(xiàn)一個菜單功能。用switch實現(xiàn),用戶選擇想執(zhí)行的功能,從而調(diào)用Show1()Show2()Show3();第四章:系統(tǒng)詳細設(shè)計1總流程圖開始Main()enter()print()save()sort()modify ()運行程序count()ChoiceChoice函數(shù)123456退出程序72.統(tǒng)計函數(shù)流程圖開始調(diào)用menu1函數(shù)輸入choice1choice1調(diào)用show1函數(shù)調(diào)用show2函數(shù)輸入選擇的科目J=0I=0I=i+1Isn+1.scoreiTemp=si.scorensn.scorei=sn+1.scoreiSi+1.sco
11、ren=tempJ=j+1I=0;sum=0 I=i+1INSum=sum+si.scorejSum=sum+si.scorej輸出排序成績輸出平均成績返回函數(shù)123結(jié)束結(jié)束第五章:測試1系統(tǒng)調(diào)試1:在enter()函數(shù)中對學生成績的輸入用scanf(“%d”,s);當輸入一門成績后就會跳回,使接下來的程序無法運行,改為for(j=1;j=M;j+) scanf(“%d”,&si.scorej);將錯誤解決.2:在enter函數(shù)中,輸入姓名用scanf(“%s”,&);錯誤,在scanf函數(shù)中的輸入項如果是字符數(shù)組名代表該數(shù)組的起始地址.則應改為scanf(“%d”,si.nam
12、e);3:在運行print()函數(shù)時,第四門課顯示出來的分數(shù)并非輸入項:錯誤,在定義時將j=1,應改為j=0。 4:學生成績定義為浮點型,但與scanf連接不起來。是 由于所使用的系統(tǒng)不支持該項操作。5:在count( )函數(shù)中,show3( );輸出的人數(shù)比 實際的多一人,因為b+:在循環(huán)結(jié)束之后會自增一次,則比 實際的大一。2. 結(jié)果分析1:為了使調(diào)試程序簡便,先定義班級的人數(shù)N為3人,編譯連接后,顯示出菜單桌面,先輸入學生成績保存起來.2:選擇2.在用循環(huán)輸出學生的基本信息的最后加printf(“n”);,則輸出學生的基本信息是每行顯示一位同學的信息.3:選擇5.修改函數(shù)中用getcha
13、r()來覆蓋原有的,則就可輸出修改的信息.4:選擇6.用一個選擇菜單int menu1()int choice1;printf(n*n);printf(1:xian shi mei ke cheng ji zui gao de xue sheng xin xin);printf(2:xian shi mei ke ping jun cheng jin);printf(3:xian shi chao gou ping jun cheng ji de ren shun);printf(4:quitn);printf(*n);選擇.輸入選擇的科目用標記法找出成績最高的的學生則輸出其基本信息.選擇.用
14、for循環(huán),先求出了每門的總成績再除以人數(shù)的到平均成績用一個數(shù)組接收.再用循環(huán)則的到結(jié)果.選擇.先定義了一個數(shù)組bM.用循環(huán)如果出現(xiàn)超過平均成績的人就自增一次,接收到bM中,用循環(huán)輸出bM則得到每門超過平均成績的人數(shù).5:在modify( )函數(shù)中,當輸入一個錯誤的密碼時會出現(xiàn)死循環(huán),因為跳出的 位置錯誤了第六章:該系統(tǒng)使用說明1運行時進入主界面,系統(tǒng)根據(jù)輸入的數(shù)字選項來調(diào)用相應的函數(shù)。主要實現(xiàn)“功能選擇”的界面,在這個界面里有顯示系統(tǒng)的七大功能,根據(jù)每個功能前面的序號進行選擇。以下為該介面;2.當錄入完成輸入顯示學生成績功能時,運行結(jié)果如下圖:3. 當輸入輸入成績統(tǒng)計功能時,運行結(jié)果如下圖:
15、3.成績修改時需要輸入密碼才能進行,密碼錯誤時不能進行該操作,只有輸入正確的密碼才能運行,運行結(jié)果如下圖:第七章:總結(jié) 不經(jīng)一番寒徹骨,哪得梅花撲鼻香。 一周的C語言課程設(shè)計已接近尾聲了,現(xiàn)在回想起來真是五味俱全,從開始的懵懂無知到現(xiàn)在做出一本挺有厚度的資料,我不但實踐了課本的知識,還編出小程序,雖然很多人幫了我的忙,仍舊感覺自己對C語言有了深入的了解,還是有所成長,有所收獲,在實踐中,自己編程常會犯錯誤,并總結(jié)一些克服缺點的方法。深刻體會到程序設(shè)計中最重要的一部分不是編寫源程序,而是調(diào)試過程。只有經(jīng)過調(diào)試程序,我們才能掌握正確的語法知識及把問題的解決方法用程序語言來表達。 在這段時間里,我門
16、匆匆忙忙為了它準備了很多,其中不免有嘆息聲,但是總的來說讓我么學到了很多,也懂得了很多,不僅在知識方面,還在有人的生活態(tài)度,目標上。這次的C語言課程設(shè)計充分展示了C的魅力,用一些小小的實現(xiàn)合成一個系統(tǒng)從而融入到生活中解決實際問題。同時也教會了我應站在用戶的角度去設(shè)計程序。在此次設(shè)計過程中必不可少的出現(xiàn)了 很多問題,整體規(guī)劃,模塊與模塊之間的調(diào)用與劃分,標識符的使用。單詞的拼寫錯誤,結(jié)構(gòu)體數(shù)組的使用,正確的使用循環(huán)的限制條件.。這些問題大多是因為平時上課很少聽講的原因,以至于很多概念混淆不清 。這次的課程設(shè)計讓我看到自己對C語言研究地少之又少。這次的班級成績管理系統(tǒng)仍舊存在著不足。記得開始課設(shè)的
17、第一天,我糊里糊涂地在機房呆了一個上午,對老師要求做的課程設(shè)計束手無策,上網(wǎng)搜了幾個,但覺得沒點意思,最后還是沒有用。但相對于別人的做的系統(tǒng),我的好像簡單多了。但后來還是不得不去看書,因為很多東西還牛毛都不知道。比如,做這個課程設(shè)計時候,最好使用鏈表,而鏈表我們還沒有深入去熟悉它,在說這個課程設(shè)計牽涉到前面我們學過的所有內(nèi)容,如,一些基本函數(shù)的運用,函數(shù)的調(diào)用及指針,結(jié)構(gòu)體。內(nèi)容多而復雜,如果沒有對教材有個很好的了解掌握,是不可能篇好這個程序的。我還在把書本重新溫習了一遍,對照程序一一翻書,試圖找到一中解釋來說明程序當中一些函數(shù)的作用和結(jié)構(gòu)。接下來的一段時間里對這段程序進行了修改,經(jīng)過東湊西湊
18、,拼拼剪剪,終于可以在電腦上運行了,但是它的功能不是很完善,需要進一步完善。后來懷著疑問去詢問老師才發(fā)現(xiàn)其實很多問題都想比較簡單的,比如在運行程序時發(fā)現(xiàn)無論我怎么輸入成績,第四門課的成績都與我輸入的分數(shù)不同,自己也嘗試用很多方法去解決,最終不了了之。同學看過以后告訴我是我在定義的時候把初始值定義錯了。在修該以后,再次運行便沒看見以前的錯誤了。后來有用這種方法把后面的兩個警告解決了一個。 在這個過程中,也試圖自己獨立完成這個課程,偶爾發(fā)現(xiàn)書本上第11章節(jié)里面,有介紹鏈表的使用,而且書本上關(guān)于這個課程的一些基本函數(shù)功能在本章節(jié)都有說明,比如,鏈表的創(chuàng)建,節(jié)點的插入,刪除,一些基本信息的修改都有。
19、最終完成的課程的設(shè)計,馬馬虎虎的,完成的,但是還是受益匪淺。其中老師與同學的教導讓我刻苦銘心。不管其結(jié)果怎么樣,但至少這個過程,讓我們明白了,懂得了很多。雖然有點挫折很艱辛在里面,但是那都是短暫的,美麗的,它教會了我們不經(jīng)過自己的努力,是達不到預期的結(jié)果的,不經(jīng)過自己的實踐操作,是體驗不到其中的美妙的。不僅如此,還給了我們一個警告,對待學習不可馬馬虎虎,否則完成不了應有的任務(wù),得不到理想的結(jié)果,半途而廢是失敗的首要原因,不要什么事情都覺得滿不在乎,踏踏實實的學習,踏踏實實的工作,擁有積極樂觀的態(tài)度去應對一切挫折,最終會讓你走想成功的前沿。因為:“勝利永遠是屬于永不放棄的人!附錄1. 參考文獻C
20、程序設(shè)計(第三版) 譚浩強 著 清華大學出版社C語言程序設(shè)計實用指南 譚浩強 著 清華大學出版社C語言大學實用教程學習指導 蘇小紅 著 電子工業(yè)出版社2. 源代碼#include /*I/O函數(shù)*/#include /*字符串函數(shù)*/#define M 4 /*課程數(shù)*/#define NUM 3 /*人數(shù)*/ #define NULL 0#include#includeint avarM;struct stuchar name20; int num; int scoreM; void enter(struct stu s,int n); /*進入*/ void print(struct st
21、u s,int n); /*輸入文件*/ void save(struct stu s,int n); /*保存文件*/ void sort(struct stu s,int n); /*排序*/ void modify(struct stu s,int n); /*修改*/ void count(struct stu s,int n); /*統(tǒng)計*/ int menu();void main()void clrscr(); struct stu studentNUM; for( ; ; ) switch(menu() case 1:enter(student,NUM);break; case
22、 2:print(student,NUM);break; case 3:save(student,NUM);break; case 4:sort(student,NUM);break; case 5:modify(student,NUM);break; case 6:count(student,NUM);break; case 7:return; int menu()int choice;printf(n*級成績管理*n);printf( 1 成績錄入n);printf( 2 成績顯示n);printf( 3 成績保存n);printf( 4 成績排序n);printf( 5 成績修改n);p
23、rintf( 6 成績統(tǒng)計n);printf( 7 退出系統(tǒng)n);printf( 學生人數(shù)級 NUM 課程 數(shù)學0 語文1 英語2 政治3n);printf(*n);doprintf(nchoice1-7:); scanf(%d,&choice);while(choice7);return choice;void enter(struct stu s,int n) /成績錄入char c;int i=0;int j;do printf(please enter the message:n);getchar(); printf(enter name:n); scanf(%s,);
24、printf(enter num:n); scanf(%d,&si.num);printf(enter score:n); for(j=0;jM;j+)scanf(%d,&si.scorej);printf(按Y繼續(xù)錄入,按N結(jié)束錄入!);getchar();scanf(%c,&c);if(c!=Y&c!=y) /可以選擇是否繼續(xù)錄入break;+i;while(i!=n);void save(struct stu s,int n) /文件存儲數(shù)據(jù)FILE *fp; int i; char save20; printf(enter the file name:); scanf(%s,save)
25、; /*輸入選擇項*/ if(fp=fopen(stu-list,wb)=NULL)printf(can not open filen); return; elsefor (i=0;in;i+) if(fwrite (&si,sizeof(struct stu),1,fp)!=1); printf(file write errorn); fclose(fp); printf(successn);void print (struct stu s,int n) /成績顯示int i,j; for(i=0;in;i+) printf( 數(shù)學 語文 英語 政治n);printf(%s,)
26、; printf(%d,si.num); for(j=0;jM;j+) printf(%5d,si.scorej); printf(n);void sort(struct stu s,int n) /*排序*/int i,j,min,temp,k; printf(please choice subject 1-4:n); scanf(%d,&k); for(i=0;in-1;i+)min=i; for(j=i+1;jsj.scorek)temp=smin.scorek; smin.scorek=sj.scorek; sj.scorek=temp; printf(n The sorted num
27、bers:n); for(i=0;in;i+) printf(%5d,si.scorek); printf(n);void count(struct stu s,int n)void show1(struct stu a,int n1);void show2(struct stu a,int n1);int menu1();for( ; ;) switch(menu1() case 1:show1(s,n);break; case 2:show2(s,n);break; case 3:return;int menu1()int choice1;printf(n*n);printf(1:顯示每科
28、成績最高的學生信息n);printf(2:顯示每科平均成績n);printf(3:退出n);printf(*n);do printf(n Enter tou choice1 (1-3):);scanf(%d,&choice1);while(choice13);return choice1;void show1(struct stu a,int n1)int k,i,j,c=0; printf(please enter the subject num:); scanf(%d,&k); for(i=0;in1;i+) if(ac.scorekai.scorek) c=i; printf(%s,%d,,ac.num); for(j=0;jM;j+) printf(%5d,ac.scorej);void show2(struct stu a,int n1)int i,j,sum; for(j=0;jM;j+)sum=0; for(i=0;in1;i+) sum=sum+ai.scorej; avarj=sum/n1; printf(The %d avarage is:%dn,j,avarj);void modify(str
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年醫(yī)療過失承包合同規(guī)范
- 【正版授權(quán)】 ISO 965-4:2025 EN ISO general purpose metric screw threads - Tolerances - Part 4: Limits of sizes for hot-dip galvanized external threads to mate with internal threads made
- 2025年公司資產(chǎn)擔保合同標準格式
- 2025年建筑領(lǐng)域借款合同模板
- 2025年可持續(xù)產(chǎn)品采購銷售合同樣本
- 2025年住宅建筑防火安全合同
- 2025年養(yǎng)豬場建設(shè)項目施工承包合同
- 城市安防監(jiān)控系統(tǒng)改造項目合同
- 廠商與代理商銷售合同范本
- 2025年個人獨資策劃公司經(jīng)營權(quán)轉(zhuǎn)讓合同協(xié)議
- 物聯(lián)網(wǎng)管理平臺的設(shè)計與實現(xiàn)
- 1例妊娠糖尿病的個案護理
- 《排球正面雙手傳球》課件
- 光伏發(fā)電職業(yè)病危害預評價方案方案
- 財務(wù)報表涉稅分析
- 五官科眼耳鼻咽喉科醫(yī)療常用器械的認識
- 企業(yè)清產(chǎn)核資報表
- 淺談建筑工程機電安裝施工技術(shù)運用論文
- 2023年新改版教科版四年級下冊科學練習題(一課一練+單元+期中+期末)
- 婦產(chǎn)科護理學課程標準
- 《字體設(shè)計》模塊五 裝飾性變化設(shè)計技巧的訓練
評論
0/150
提交評論