學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)_第1頁(yè)
學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)_第2頁(yè)
學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)_第3頁(yè)
學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)_第4頁(yè)
學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

PAGE課程設(shè)計(jì)報(bào)告(本科)課程:數(shù)據(jù)結(jié)構(gòu)學(xué)號(hào):1310441019/1310441031/1310441064姓名:程徐/章燕芳/江淑芬班級(jí):2013級(jí)計(jì)算機(jī)科學(xué)與技術(shù)(嵌入式)教師:史君華時(shí)間:2014.12.1—2014.12.30計(jì)算機(jī)科學(xué)與技術(shù)系PAGE7

設(shè)計(jì)名稱:成績(jī)分析問題設(shè)計(jì)內(nèi)容、目的與要求:1.設(shè)計(jì)內(nèi)容:錄入并保存一個(gè)班級(jí)學(xué)生多門課程的成績(jī),并對(duì)成績(jī)進(jìn)行分析。2.目的與要求:a)通過鍵盤輸入各學(xué)生的多門課程的成績(jī),建立相應(yīng)的文件input.dat。b)對(duì)文件input.dat中的數(shù)據(jù)進(jìn)行處理,要求具有如下功能:按各門課程成績(jī)排序,并生成相應(yīng)的文件輸出;計(jì)算每個(gè)人的平均成績(jī),按平均成績(jī)排序,并生成文件;求出各門課程的平均成績(jī)、最高分、最低分、不及格人數(shù)、60~69分人數(shù)、70~79分人數(shù)、80~89分人數(shù)、90分以上人數(shù);根據(jù)姓名或?qū)W號(hào)查詢某人的各門課成績(jī)。c)使用VisualC++6.0控制臺(tái)應(yīng)用程序開發(fā),界面美觀。計(jì)劃與進(jìn)度安排:計(jì)劃:1.首先明確設(shè)計(jì)要求和理論知識(shí),了解題目的大致思路。2.上網(wǎng)或者去圖書館搜集資料,對(duì)題目進(jìn)行編寫。3.對(duì)程序進(jìn)行調(diào)試和修改,并分析運(yùn)行結(jié)果。進(jìn)度安排:1.12月1日-12月10日:程徐從圖書館借閱了有關(guān)數(shù)據(jù)結(jié)構(gòu)方面的書,研究所給條件,分析該系統(tǒng)應(yīng)該達(dá)到的目標(biāo);章燕芳復(fù)習(xí)結(jié)構(gòu)體,數(shù)組等相關(guān)知識(shí),江淑芬上網(wǎng)搜索類似題目的解題思想。2.12月11日-12月20日:大家共同討論算法思路,編寫程序并進(jìn)行上機(jī)調(diào)試程序,并分析該程序?qū)崿F(xiàn)的功能。,3.12月21日-12月25日:大家根據(jù)運(yùn)行的結(jié)果,完善程序,填寫課程設(shè)計(jì)報(bào)告冊(cè),準(zhǔn)備驗(yàn)收。設(shè)計(jì)過程、步驟:設(shè)計(jì)過程:程序結(jié)構(gòu)的分析:mainmain函數(shù)分析某個(gè)學(xué)科分析個(gè)人平均成績(jī)按條件查找存儲(chǔ)和讀取數(shù)據(jù)cunchu()函數(shù)duqu()函數(shù)nosearch()函數(shù)namesearch()函數(shù)subject()函數(shù)studentave()函數(shù)函數(shù)功能的描述:subject()函數(shù):選擇某個(gè)學(xué)科,分析與他有關(guān)的所有數(shù)據(jù)。例如本題的各科的平均成績(jī)、最高分、最低分等studentave()函數(shù):求每個(gè)學(xué)的平均成績(jī)并且按平均成績(jī)排序。nosearch()函數(shù):按學(xué)號(hào)查找某個(gè)學(xué)生。namesearch()函數(shù):按姓名查找某個(gè)學(xué)生。cunchu()函數(shù):把數(shù)據(jù)存到C盤RJ下的input.dat中。duqu()函數(shù):從C盤RJ下的input.dat中讀取數(shù)據(jù)。步驟:首先定義student結(jié)構(gòu)體,再定義結(jié)構(gòu)體成員,其中字符型數(shù)組name[20]和no[10]分別來存實(shí)驗(yàn)數(shù)據(jù)中的姓名和學(xué)號(hào),另外定義整型變量math、english、computer分別存儲(chǔ)各科成績(jī)。再定義存儲(chǔ)函數(shù)cunchu()和讀取函數(shù)duqu()這兩個(gè)函數(shù)分別通過運(yùn)用文件存儲(chǔ)函數(shù)fwrite和文件讀取函數(shù)fread來實(shí)現(xiàn)將數(shù)據(jù)存入指定路徑,以及從指定路徑讀取數(shù)據(jù),并顯示在顯示屏上。通過構(gòu)造函數(shù)subject()來實(shí)現(xiàn)對(duì)各科成績(jī)的分析,studentave()來對(duì)個(gè)人成績(jī)進(jìn)行分析,nosearch()和namesearch()來實(shí)現(xiàn)按條件查找不同的學(xué)生信息。最后在主函數(shù)中輸入實(shí)驗(yàn)數(shù)據(jù),并通過調(diào)用各個(gè)函數(shù)來實(shí)現(xiàn)實(shí)驗(yàn)要求。結(jié)果與分析:選擇運(yùn)行后出現(xiàn)如下界面:輸入1即為對(duì)數(shù)學(xué)成績(jī)的分析輸入2即為對(duì)英語(yǔ)成績(jī)的分析:輸入3即為對(duì)計(jì)算機(jī)成績(jī)的分析:個(gè)人平均成績(jī)的分析:輸入要找的學(xué)號(hào)和姓名之后:7.輸入不存在的學(xué)號(hào)的分析:設(shè)計(jì)體會(huì)與建議:程徐:接近一個(gè)月的課程設(shè)計(jì)在緊張而忙碌的氛圍中度過了。在這段時(shí)間里,我不但對(duì)課本上的知識(shí)有了更深刻的理解,還學(xué)到了平時(shí)課堂上學(xué)不到的知識(shí),使我對(duì)計(jì)算機(jī)有了更深刻的認(rèn)識(shí)。首先,我掌握了成績(jī)分析程序的判斷和設(shè)計(jì),使自己的主動(dòng)學(xué)習(xí)能力得到提高。雖然在剛開始設(shè)計(jì)程序的過程中沒有太多的思路,但是通過圖書館,上網(wǎng)查閱資料也是自己得到了解決問題的辦法。在調(diào)試程序的過程中盡管存在一些錯(cuò)誤,但是通過翻閱課本,熟識(shí)課本上的相關(guān)知識(shí),使得設(shè)計(jì)方案中發(fā)現(xiàn)的問題得到解決并成功實(shí)現(xiàn)系統(tǒng)所需要的功能,那種成就感使我忘記了這些天的辛苦。我學(xué)到了很多知識(shí),熟識(shí)了很多程序代碼,也認(rèn)識(shí)到自己的基礎(chǔ)知識(shí)不是很豐富。時(shí)間雖短,我卻收獲豐富,不單單是對(duì)于知識(shí)的收獲,還夾雜著同學(xué)們互幫互助的精神和合作的精神??傊?,這次課程設(shè)計(jì)給了我們一次應(yīng)用自己所學(xué)知識(shí)的機(jī)會(huì),使我們對(duì)數(shù)據(jù)結(jié)構(gòu)這門課程有了更深刻的認(rèn)識(shí)。對(duì)于我們而言,知識(shí)上的收獲是喜悅的,但是更重要的是要互幫互助,多請(qǐng)教別人,虛心求問是我們今后在學(xué)習(xí)過程中需要注意的地方。通過本次實(shí)驗(yàn),我學(xué)會(huì)了利用綜合學(xué)過的知識(shí)對(duì)于問題進(jìn)行編程,是一次很好的實(shí)踐,也為今后的學(xué)習(xí)奠定了良好的基礎(chǔ),是對(duì)自己綜合能力的一種提高。章燕芳:在這次課程設(shè)計(jì)報(bào)告的完成過程中,我充分地體會(huì)到合作的必要性。我們都在盡自己最大的能力去完成這次課程設(shè)計(jì)報(bào)告,過程難免艱苦,特別是編譯時(shí),出現(xiàn)錯(cuò)誤時(shí),當(dāng)時(shí)真的是手足無措,三個(gè)人在機(jī)房討論再修改,錯(cuò)誤克服了,到運(yùn)行時(shí)又不能達(dá)到預(yù)期的效果,就是查找時(shí)不能按照要求來實(shí)現(xiàn),然后又一起研究了好久,問問老師,問問學(xué)長(zhǎng),熱心的他們幫我們解決了最大的問題,程序成功運(yùn)行了,很有成就感。在面對(duì)困難的時(shí)候,我們還是一如既往的去專研,上網(wǎng)搜索,在圖書館查詢資料??梢哉f這次實(shí)踐是一個(gè)很鍛煉人的機(jī)會(huì),結(jié)果或好或壞,過程更加珍貴。江淑芬:本次的數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)針對(duì)具體的實(shí)際項(xiàng)目來進(jìn)行需求分析,從中我收獲了很多。經(jīng)過一周的課程設(shè)計(jì),有很多的心得體會(huì)。首先,在編寫函數(shù)之前要充分利用圖書資源和網(wǎng)絡(luò)資源,應(yīng)該更詳細(xì)的考慮實(shí)際情況,才能使程序更切合實(shí)際,更具有實(shí)用性;更多的我想應(yīng)該是組員之間的合作精神吧!通過這次課程設(shè)計(jì)練習(xí),使我更深刻地理解了數(shù)據(jù)結(jié)構(gòu)重要存儲(chǔ)結(jié)構(gòu)的的精髓。完成整個(gè)程序設(shè)計(jì),我加深了對(duì)數(shù)據(jù)結(jié)構(gòu)的理解和認(rèn)識(shí),并在完成課程設(shè)計(jì)的過程作主動(dòng)查閱了相關(guān)資料,學(xué)到了不少課本上沒有的技術(shù)知識(shí)。經(jīng)過這次課程設(shè)計(jì),我深刻認(rèn)識(shí)到算法在程序設(shè)計(jì)中的重要性,特別是怎樣將理論與實(shí)踐相結(jié)合,把書本上的的內(nèi)容應(yīng)用到我們做的程序上。其次我熟悉了數(shù)據(jù)結(jié)構(gòu)的知識(shí)學(xué)會(huì)了很多關(guān)于程序設(shè)計(jì)的經(jīng)驗(yàn)和技巧。知道如何在困難重重時(shí)一步一步細(xì)心發(fā)現(xiàn)問題,解決問題。我們從中學(xué)到很多在課本上學(xué)不到或者無法在課堂上掌握的知識(shí),同時(shí)也能從中感受到編程的樂趣。興趣是可以培養(yǎng)的,只要堅(jiān)持下去,面對(duì)困難我們總能夠找到解決法。通過小組的分工與合作,使我充分認(rèn)識(shí)到在項(xiàng)目團(tuán)隊(duì)開發(fā)過程中合作的重要性,也更加理解了溝通協(xié)作能力在行業(yè)中的重要性。建議:由于一個(gè)人的力量是有限的,我們應(yīng)該虛心求教,多多利用可利用的資源,不懂的地方可以去圖書館查閱資料,或者上網(wǎng)搜索自己有困擾的地方。附錄:程序源代碼:#include<stdio.h>#include<string.h>#include<stdlib.h>#defineN7structstudent{ charno[10];//學(xué)號(hào)charname[20];//姓名 intmath;//數(shù)學(xué)分?jǐn)?shù) intenglish;//英語(yǔ)分?jǐn)?shù) intcomputer;//計(jì)算機(jī)分?jǐn)?shù) intscore;//交換用分?jǐn)?shù) inteveave;//個(gè)人平均分};structstudentst[N];//定義學(xué)生結(jié)構(gòu)體voidsubject(studentst[],intn)//選定某個(gè)學(xué)科進(jìn)行分析{ intnumber; inttemp; printf("請(qǐng)選擇要分析的學(xué)科:"); scanf("%d",&number); inti=0; switch(number) { case1: printf("★★★★★★★★★以下是關(guān)于數(shù)學(xué)的成績(jī)分析:★★★★★★★★★★\n"); for(i=0;i<n;i++) st[i].score=st[i].math; break; case2: printf("★★★★★★★★★以下是關(guān)于英語(yǔ)的成績(jī)分析:★★★★★★★★★★\n"); for(i=0;i<n;i++) st[i].score=st[i].english; break; case3: printf("★★★★★★★★★以下是關(guān)于計(jì)算機(jī)成績(jī)分析:★★★★★★★★★★\n"); for(i=0;i<n;i++) st[i].score=st[i].computer; break; } intj; printf("按學(xué)號(hào)每個(gè)人的原始數(shù)據(jù)為:\n"); for(i=0;i<n;i++) printf("%d\n",st[i].score); printf("排序后的數(shù)據(jù)為\n"); for(i=0;i<n-1;i++) { for(j=0;j<n-i;j++) if(st[j+1].score<st[j].score) { temp=st[j].score; st[j].score=st[j+1].score; st[j+1].score=temp; } } for(i=0;i<n;i++) printf("%d\n",st[i].score); printf("該門課的平均成績(jī)?yōu)椋篭n"); floatsum=0; floatcourseave; for(i=0;i<n;i++) { sum=sum+st[i].score; } courseave=sum/7; printf("%f\n",courseave); printf("該門課的最高分為:\n"); intmax=st[0].score; for(i=0;i<n;i++) { if(st[i].score>max) { max=st[i].score; } } printf("%d\n",max);//最高分 printf("該門課的最低分為:\n"); intmin=st[0].score; for(i=0;i<n;i++) { if(st[i].score<min) { min=st[i].score; } } printf("%d\n",min);//最低分 intbjg=0; intjg=0; intzd=0; intlh=0; intyx=0; for(i=0;i<n;i++) { if(st[i].score<60)//計(jì)算不及格人數(shù) { bjg++; } if(st[i].score>=60&&st[i].score<70)//計(jì)算60~69人數(shù) { jg++; } if(st[i].score>=70&&st[i].score<80)//計(jì)算70~79人數(shù) { zd++; } if(st[i].score>=80&&st[i].score<90)//計(jì)算80~89人數(shù) { lh++; } if(st[i].score>=90)//計(jì)算90分以上人數(shù) { yx++; } } printf("該門課的不及格人數(shù)為:\n%d\n60~69人數(shù):\n%d\n70~79人數(shù):\n%d\n80~89人數(shù):\n%d\n90分以上人數(shù):\n%d\n",bjg,jg,zd,lh,yx); }voidstudentave(studentst[],intn)//計(jì)算每個(gè)人的平均成績(jī)并排序{ inti; inttemp; for(i=0;i<n;i++) { st[i].eveave=(st[i].math+st[i].english+st[i].computer)/4; } printf("每個(gè)人平均成績(jī)?yōu)椋篭n"); for(i=0;i<n;i++) printf("%d\n",st[i].eveave); for(i=0;i<n-1;i++) { for(intj=0;j<n-1-i;j++) if(st[j].eveave>st[j+1].eveave) { temp=st[j].eveave; st[j].eveave=st[j+1].eveave; st[j+1].eveave=temp; } } printf("平均成績(jī)排序?yàn)椋篭n"); for(i=0;i<n;i++) printf("%d\n",st[i].eveave);}voidnosearch(studentst[],intn)//按學(xué)號(hào)查找學(xué)生的各門成績(jī){ inti=0; n=7; charno[10]; printf("請(qǐng)輸入要查找的學(xué)生號(hào):"); scanf("%s",&no); while(strcmp(no,st[i].no)!=0&&i<n) i++; if(i==n) { printf("meizhaodao\n"); } else printf("%s\t%s\t%d\t%d\t%d\n",st[i].no,st[i].name,st[i].math,st[i].english,st[i].computer);}voidnamesearch(studentst[],intn)//按姓名查找學(xué)生的各門成績(jī){ inti=0; n=7; charname[20]; printf("請(qǐng)輸入要查找的姓名:"); scanf("%s",&name); while(strcmp(name,st[i].name)!=0&&i<7) i++; if(i==n) { printf("meizhaodao\n"); } else printf("%s\t%s\t%d\t%d\t%d\n",st[i].no,st[i].name,st[i].math,st[i].english,st[i].computer);}voidcunchu(studentst[],intn)//存盤{ inti; FILE*fp; fp=fopen("C:\\RJ\\input.dat","wb");//以"寫"方式打開一個(gè)二進(jìn)制文件 if(fp==NULL) { printf("Can'topen!\n"); exit(0); } for(i=0;i<n;i++) { fwrite(&st[i],sizeof(structstudent),1,fp);//一次寫入一個(gè)學(xué)生的成績(jī) } fclose(fp);}voidduqu(studentst[],intn)//讀取數(shù)據(jù){ inti; FILE*fp; fp=fopen("C:\\RJ\\input.dat","rb");//以"讀"方式打開一個(gè)二進(jìn)制文件 if(fp==NULL) { printf("Can'topen!\n"); exit(0); } for(i=0;i<7;i++) { fread(&st[0],sizeof(structstudent),1,fp);//一次讀取一個(gè)學(xué)生的成績(jī) printf("%s\t%s\t%d\t%d\t%d\n",st[i].no,st[i].name,st[i].math,st[i].english,st[i].computer); } fclose(fp);}voidmain(){ structstudentst[7]={{"001","

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論