ageyjiC語(yǔ)言學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)_第1頁(yè)
ageyjiC語(yǔ)言學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)_第2頁(yè)
ageyjiC語(yǔ)言學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)_第3頁(yè)
ageyjiC語(yǔ)言學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)_第4頁(yè)
ageyjiC語(yǔ)言學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩7頁(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、、| !_一個(gè)人總要走陌生的路,看陌生的風(fēng)景,聽(tīng)陌生的歌,然后在某個(gè)不經(jīng)意的瞬間,你會(huì)發(fā)現(xiàn),原本費(fèi)盡心機(jī)想要忘記的事情真的就這么忘記了. 2009年C語(yǔ)言程序設(shè)計(jì) 探究式自主設(shè)計(jì)報(bào)告 系 部: 電子電氣工程系 專 業(yè): 電氣自動(dòng)化 班 級(jí): 姓 名: 課題名稱: 學(xué)生成績(jī)管理體統(tǒng) 指導(dǎo)老師: * 學(xué) 院 2009年12月12日說(shuō) 明1、設(shè)計(jì)的目的1)復(fù)習(xí)鞏固C語(yǔ)言的基礎(chǔ)知識(shí),進(jìn)一步加深對(duì)C語(yǔ)言編程的理解和掌握;2)利用所學(xué)知識(shí),理論和實(shí)際結(jié)合,利用資源,采用模塊化的結(jié)構(gòu),使用模仿修改自主設(shè)計(jì)相結(jié)合的方法,鍛煉學(xué)生綜合分析解決實(shí)際問(wèn)題的編程能力;3)培養(yǎng)學(xué)生在項(xiàng)目開(kāi)發(fā)中團(tuán)隊(duì)合作精神、創(chuàng)新意識(shí)及實(shí)

2、戰(zhàn)能力。2、設(shè)計(jì)的任務(wù)根據(jù)學(xué)生的實(shí)際情況,進(jìn)行分組選題。主要的課程設(shè)計(jì)題目如下(學(xué)生也可自主選題):1、圖書管理系統(tǒng) 2、學(xué)生信息管理系統(tǒng)3、學(xué)生成績(jī)管理系統(tǒng) 4、學(xué)生通訊錄管理系統(tǒng)5、職工信息管理系統(tǒng) 6、設(shè)計(jì)簡(jiǎn)單的計(jì)算器課程設(shè)計(jì)采用學(xué)生自主設(shè)計(jì)和指導(dǎo)老師輔導(dǎo)相結(jié)合的方式。3、設(shè)計(jì)要求與設(shè)計(jì)報(bào)告 設(shè)計(jì)要求:1、任選上述題目之一,或自選題目。2、模塊化的程序設(shè)計(jì) 3、鋸齒形的程序書寫格式。4、必須通過(guò)編譯連接運(yùn)行設(shè)計(jì)報(bào)告:1、設(shè)計(jì)目的和任務(wù)2、總體設(shè)計(jì):包括程序設(shè)計(jì)組成框圖、流程圖。3、詳細(xì)設(shè)計(jì):包括模塊功能說(shuō)明:函數(shù)功能、入口及出口參數(shù)說(shuō)明,函數(shù)調(diào)用關(guān)系描述等。4、調(diào)試與測(cè)試:包括調(diào)試方法,

3、測(cè)試結(jié)果分析與討論,測(cè)試過(guò)程中遇到的主要問(wèn)題及采取的解決措施。5、源程序清單和執(zhí)行結(jié)果:清單中應(yīng)有足夠的注釋。 設(shè)計(jì)目的和任務(wù)(主要介紹設(shè)計(jì)的任務(wù),為什么要設(shè)計(jì),設(shè)計(jì)要達(dá)到什么樣的目的。)設(shè)計(jì)目的:(1)基本掌握面向過(guò)程程序設(shè)計(jì)的基本思路和方法; (2)達(dá)到熟練掌握C語(yǔ)言的基本知識(shí)和技能; (3)能夠利用所學(xué)的基本知識(shí)和技能,解決簡(jiǎn)單的程序設(shè)計(jì)問(wèn)題程序功能:(1). 學(xué)生基本信息及成績(jī)所選科目成績(jī)的錄入。 (2). 基本信息的查詢(分系、班級(jí);分科目)與修改。 (3). 對(duì)每系或每班各科成績(jī)進(jìn)行分析(即求單科平均成績(jī)、及格率和優(yōu)秀率); (4). 對(duì)所開(kāi)課程的成績(jī)分析(求其平均成績(jī),最高分和最

4、低分); (5). 對(duì)學(xué)生考試成績(jī)進(jìn)行排名;目 錄一、總體設(shè)計(jì)1二、詳細(xì)設(shè)計(jì)1三、調(diào)試與測(cè)試 1四、源程序清單和執(zhí)行結(jié)果1五、建議和體會(huì)1六、參考文獻(xiàn)1一:總體設(shè)計(jì)設(shè)計(jì)流程圖如下:二、詳細(xì)設(shè)計(jì) 1、輸入初始的學(xué)生信息:其中包括學(xué)生的姓名、學(xué)號(hào)和性別以及學(xué)生的語(yǔ)文、數(shù)學(xué)、英語(yǔ)和計(jì)算機(jī)等相關(guān)信息;可用函數(shù)cin(stu *p1)來(lái)實(shí)現(xiàn)此操作。 2、查詢模塊:可用stu *lookdata(stu *p1) 來(lái)實(shí)現(xiàn)。找到就輸出此學(xué)生全部信息包括學(xué)生的語(yǔ)文、數(shù)學(xué)、英語(yǔ)和計(jì)算機(jī)等的成績(jī)。 3、插入模塊:可用insert( )函數(shù)來(lái)實(shí)現(xiàn)。其中通過(guò)學(xué)號(hào)的大小來(lái)比較的,并且以此來(lái)排序。4、輸出學(xué)生的信息以及成

5、績(jī):通過(guò)學(xué)生的姓名來(lái)查看學(xué)生的語(yǔ)文、數(shù)學(xué)、英語(yǔ)和計(jì)算機(jī)等相關(guān)成績(jī),同時(shí)也可以分別通過(guò)caverage() 、 maverage() 、eaverage() 和comaverage() 來(lái)輸出語(yǔ)文、數(shù)學(xué)、英語(yǔ)和計(jì)算機(jī)等成績(jī)的平均分?jǐn)?shù)、最高和最低分?jǐn)?shù)。 5、退出系統(tǒng):可用一個(gè)函數(shù)exit()來(lái)實(shí)現(xiàn),首先將信息保存到文件中,釋放動(dòng)態(tài)創(chuàng)建的內(nèi)存空間,再退出此程序。 三、調(diào)試與測(cè)試四、源程序設(shè)計(jì)和測(cè)試結(jié)果 五、建議和體會(huì) 六、參考文獻(xiàn)指導(dǎo)教師的評(píng)語(yǔ)及評(píng)分考核小組意見(jiàn)及評(píng)分綜合評(píng)分三:調(diào)試與測(cè)試 問(wèn)題一、學(xué)生初始信息模塊:其中包括學(xué)生的姓名、學(xué)號(hào)和性別以及學(xué)生的語(yǔ)文、數(shù)學(xué)、英語(yǔ)和計(jì)算機(jī)等相關(guān)信息;可用函數(shù)

6、cin(stu *p1)來(lái)實(shí)現(xiàn)此操作。當(dāng)正確輸入存在的學(xué)生學(xué)號(hào),系統(tǒng)進(jìn)行判斷時(shí),提示不存在此學(xué)生。 解決辦法及步驟:1、一個(gè)個(gè)輸出所有的學(xué)生的學(xué)號(hào),檢查文件中是否有此學(xué)生,發(fā)現(xiàn)有。 2、既然有此學(xué)生,那么檢查循環(huán)判斷是否有此學(xué)生的語(yǔ)句發(fā)現(xiàn)沒(méi)有錯(cuò) 3、輸出用于循環(huán)檢查語(yǔ)句中的學(xué)生信息,發(fā)現(xiàn)亂碼 4、仔細(xì)分析亂碼的原因,最后發(fā)現(xiàn)是變量的類型錯(cuò)誤,錯(cuò)將學(xué)生類型的結(jié)構(gòu)體指針變量定義為了其他類型的指針變量。 問(wèn)題二、查詢模塊:可用stu *lookdata(stu *p1) 來(lái)實(shí)現(xiàn)。找到就輸出此學(xué)生全部信息包括學(xué)生的語(yǔ)文、數(shù)學(xué)、英語(yǔ)和計(jì)算機(jī)等的成績(jī)。當(dāng)正確輸入查找信息時(shí),系統(tǒng)卻不能夠得到所要查找的學(xué)生信

7、息以及學(xué)生的語(yǔ)文、數(shù)學(xué)、英語(yǔ)和計(jì)算機(jī)的成績(jī)。解決辦法及步驟:1、檢查所編寫的程序代碼是否完全正確,若不是,則改之,然后再繼續(xù)正確輸入查找信息看能否得到所要查找的學(xué)生信息以及學(xué)生的語(yǔ)文、數(shù)學(xué)、英語(yǔ)和計(jì)算機(jī)的成績(jī)。 2、檢查當(dāng)我們?cè)谳斎氩檎倚畔r(shí),看是否我們輸入的信息有誤,若是這樣的話,我們應(yīng)當(dāng)仔細(xì)輸入查找信息。四:源程序清單和執(zhí)行結(jié)果 源程序如下: #include stdio.h #include math.h #define N 30 struct student long int num; char name10; char sex3; int Chinese,Math,English,t

8、otal,average; stuN=4001,lks,m,100,100,100,4002,lyt,w,99,63,89,4003,asd,w,60,70,80,4004,fgh,m,41,100,98, 4005,asd,m,74,74,87,4006,yt,m,85,58,78,4007,qwe,w,74,100,87,4008,dcs,w,74,85,96, 4009,qfg,m,74,78,36,4010,gft,m,45,85,98,4011,mn,m,60,77,17,4012,yer,w,78,78,100,4013,lsd,m,100,89,85,s; int M=13; v

9、oid modify(struct student stu) int t;long num;char z; t=search(stu)-400; printf(input num:); scanf(%ld,&stut.num); printf(input name:); scanf(%s,); printf(input sex:); scanf(%s,stut.sex); printf(input score of Chinese:); scanf(%d,&stut.Chinese); printf(input score of Math:); scanf(%d,&stut.

10、Math); printf(input score of English:); scanf(%d,&stut.English); stut.average=(stut.English+stut.Math+stut.Chinese)/3; stut.total=stut.English+stut.Math+stut.Chinese; printf(tNUMtNAMEtSEXtCHINESEtMATHtENGLISHtTOTALtAVERAGEn); printf(t%4ldt,stut.num); printf( %st,); printf(%st,stut.sex); pri

11、ntf(%4dt%4dt%4dt%4d%8dn,stut.Chinese,stut.Math,stut.English,stut.total,stut.average); printf(Next?y/n?); scanf(%s,&z);if(z=y) modify(stu); void output(struct student stu) int i; printf(tNUMtNAMEtSEXtCHINESEtMATHtENGLISHtTOTALtAVERAGEn); for(i=0;iM;i+) printf(t%4ldt,stui.num); printf( %st,);

12、 printf(%st,stui.sex); printf(%4dt%4dt%4dt%4d%8dn,stui.Chinese,stui.Math,stui.English,stui.total,stui.average); void sort(struct student stu) int i,j,t; printf(1.an yingyu chengcheji paixun2.an yuwen chengji paixun3.an shuxue chengji paixun4.an pingjue chengji paixun5.an zongfen paixun); scanf(%d,&t

13、); switch(t) case 1: for(i=0;iM-1;i+) for(j=0;jM-i-1;j+) if(stuj.Englishstuj+1.English) s=stuj; stuj=stuj+1; stuj+1=s; output(stu); getch(); break; case 2: for(i=0;iM-1;i+) for(j=0;jM-i-1;j+) if(stuj.Chinesestuj+1.Chinese) s=stuj; stuj=stuj+1; stuj+1=s; output(stu); getch(); break; case 3: for(i=0;i

14、M-1;i+) for(j=0;jM-i-1;j+) if(stuj.Mathstuj+1.Math) s=stuj; stuj=stuj+1; stuj+1=s; output(stu); getch(); break; case 4: for(i=0;iM-1;i+) for(j=0;jM-i-1;j+) if(stuj.averagestuj+1.average) s=stuj; stuj=stuj+1; stuj+1=s; output(stu); getch(); break; case 5: for(i=0;iM-1;i+) for(j=0;jM-i-1;j+) if(stuj.t

15、otalstuj+1.total) s=stuj; stuj=stuj+1; stuj+1=s; output(stu); getch(); break; int search(struct student stu) long t,i,z,K=y;char name20; printf(1.an xuehao chazhaon2.an xingming chazhaon); scanf(%d,&z); switch(z) case 1: printf(qing shuru xuehao:n); scanf(%ld,&t); for(i=0;iM;i+) if(stui.num=t) K=x;

16、printf(tNUMtNAMEtSEXtCHINESEtMATHtENGLISHtTOTALtAVERAGEn); printf(t%4ldt,stui.num); printf( %st,); printf( %st,stui.sex); printf(%4dt%4dt%4dt%4d%6dn,stui.Chinese,stui.Math,stui.English,stui.total,stui.average); return(stui.num); getche(); break; if(K=y) printf(No find); getchar(); break; ca

17、se 2: printf(qing shuru xingming:); scanf(%s,name); for(i=0;iM;i+) if(strcmp(,name)=0) K=x; printf(tNUMtNAMEtSEXtCHINESEtMATHtENGLISHtTOTALtAVERAGEn); printf(t%4ldt,stui.num); printf( %st,); printf( %st,stui.sex); printf(%4dt%4dt%4dt%4d%6dn,stui.Chinese,stui.Math,stui.English,stui.

18、total,stui.average); getche(); break; if(K=y) printf(No find); getchar(); break; void insert(struct student stu) int i;char z=y; for(i=M;i=N&z=y;i+) printf(input num:); scanf(%ld,&stui.num); printf(input name:); scanf(%s,); printf(input name:); scanf(%s,stui.sex); printf(input score of Chin

19、ese:); scanf(%d,&stui.Chinese); printf(input score of Math:); scanf(%d,&stui.Math); printf(input score of English:); scanf(%d,&stui.English); stui.average=(stui.English+stui.Math+stui.Chinese)/3; stui.total=stui.English+stui.Math+stui.Chinese; printf(Next?y/n?); z=getche(); if(z!=y) M=i+1; sort(stu)

20、; output(stu); void delete(struct student stu) long t,i,z;char l,name20; printf(1.an xuehao shanchu/n2.an xingming chanchu); scanf(%d,&z); switch(z) case 1: printf(qing shuru xuehao:); scanf(%ld,&t); for(i=0;iM;i+) if(stui.num=t) printf(tNUMtNAMEtSEXtCHINESEtMATHtENGLISHtTOTALtAVERAGEn); printf(t%4l

21、dt,stui.num); printf( %st,); printf(%st,stui.sex); printf(%4dt%4dt%4dt%4d%8dn,stui.Chinese,stui.Math,stui.English,stui.total,stui.average); break; printf(Go on?y/n?); scanf(%s,&l); if(l=y) for(;iM;i+) stui=stui+1; stuM-1.num=0; output(stu); else break; case 2: printf(qing shuru xingming:);

22、scanf(%s,name); for(i=0;iM;i+) if(strcmp(,name)=0) printf(tNUMtNAMEtSEXtCHINESEtMATHtENGLISHtTOTALtAVERAGEn); printf(t%4ldt,stui.num); printf( %st,); printf(%st,stui.sex); printf(%4dt%4dt%4dt%4d%8dn,stui.Chinese,stui.Math,stui.English,stui.total,stui.average); break; printf(Go on?y

23、/n?); scanf(%s,&l); if(l=y) for(;iM;i+) stui=stui+1; stuM-1.num=0; output(stu); else break; main() int choice,i; clrscr(); for(i=0;iM;i+) stui.average=(stui.English+stui.Math+stui.Chinese)/3; ; stui.total=stui.English+stui.Math+stui.Chinese; for(;) printf(n- xuesheng chengji guanli xitong-n); printf

24、(1.modify xuesheng jilu n); printf(2.output xuesheng jilun); printf(3.sort xuesheng jilun); printf(4.search xuesheng jilun); printf(5.insert xuesheng jilun); printf(6.delete xuesheng jilun); printf(7. exitn); printf(pllease input(1-7):n); scanf(%d,&choice); switch(choice) case 1: modify(stu); break; case 2: output(stu); break; case 3: sort(stu); break; case 4: search(stu); break; case 5: insert(stu); break; case 6: delete(stu); break; case 7: exit(); break; getch();五:建議和體會(huì)本學(xué)期我們的C語(yǔ)言程序設(shè)計(jì)課程的考試題目是讓學(xué)生自主設(shè)計(jì)。全班共分了6個(gè)小組,我們3組需要完成的題目是設(shè)計(jì)學(xué)

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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)論