C語言課程設(shè)計成績管理系統(tǒng)_第1頁
C語言課程設(shè)計成績管理系統(tǒng)_第2頁
C語言課程設(shè)計成績管理系統(tǒng)_第3頁
C語言課程設(shè)計成績管理系統(tǒng)_第4頁
C語言課程設(shè)計成績管理系統(tǒng)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

重慶科技學(xué)院《C語言程序設(shè)計》

課程設(shè)計報告學(xué) 院,電氣與信息工程學(xué)院—專業(yè)班級:測控1101學(xué)生姓名:郭怡培學(xué)號: 2011444505設(shè)計地點(單位) 計算機自主學(xué)習(xí)中心 —設(shè)計題目: 成績管理系統(tǒng)完成日期:2012年7月6日指導(dǎo)教師評語:____________________________________成績(五級記分制):指導(dǎo)教師(簽字):課程設(shè)計任務(wù)書設(shè)計題目:學(xué)生成績管理系統(tǒng)學(xué)生姓名郭怡培~~課程名稱C語言程序設(shè)計課程設(shè)計專業(yè)班級測控1101地點4Λ I305起止時間2012年6月25日~7月6日內(nèi)3容求現(xiàn)有學(xué)生成績信息,內(nèi)容如下姓名學(xué)號語文數(shù)學(xué)英語張明明01 67 78 82李成友02 78 91 88張輝燦 03 68 82 56王露 04 56 45 77陳東明 05 67 38 47請用C語言編寫一系統(tǒng),實現(xiàn)學(xué)生信息管理,軟件的功能要求如下:(1)信息維護:要求:學(xué)生信息數(shù)據(jù)要以文件的形式保存,能實現(xiàn)學(xué)生信息數(shù)據(jù)的維護。此模塊包括子模塊有:增加學(xué)生信息、刪除學(xué)生信息、修改學(xué)生信息(2)信息查詢:要求:查詢時可實現(xiàn)按姓名查詢、按學(xué)號查詢(3)成績統(tǒng)計:要求:A輸入任意的一個課程名(如數(shù)學(xué))和一個分數(shù)段(如60--70),統(tǒng)計出在此分數(shù)段的學(xué)生情況。(4)排序:能對用戶指定的任意課程名,按成績升序或降序排列學(xué)生數(shù)據(jù)并顯示排序結(jié)果(1)系統(tǒng)分析、設(shè)計正確。(2)結(jié)果以圖表方式顯示。(3)界面簡潔、美觀。(4)報告格式規(guī)范。6月25日第一大節(jié)、第二大節(jié)講解課程設(shè)計任務(wù)6月25日第三大節(jié)、第四大節(jié)閱讀課程設(shè)計指導(dǎo)書,選擇課題6月27日第一大節(jié)、第二大節(jié)講解結(jié)構(gòu)體相關(guān)知識6月27日第三大節(jié)、第四大節(jié)學(xué)生練習(xí)結(jié)構(gòu)體的使用6月28日第一大節(jié)、第二大節(jié)學(xué)生實現(xiàn)第一階段的階段性成果6月28日第三大節(jié)、第四大節(jié)學(xué)生實現(xiàn)第一階段的階段性成果6月29日第一大節(jié)、第二大節(jié)講解文件讀寫的相關(guān)知識6月29日第三大節(jié)、第四大節(jié)學(xué)生學(xué)習(xí)文件讀寫7月2日第一大節(jié)、第二大節(jié)學(xué)生實現(xiàn)第一階段任務(wù)7月2日第三大節(jié)、第四大節(jié)學(xué)生實現(xiàn)第一階段任務(wù)7月3日第一大節(jié)、第二大節(jié)規(guī)劃設(shè)計方案7月3日第三大節(jié)、第四大節(jié)編程實現(xiàn)7月4日第一大節(jié)、第二大節(jié)編程實現(xiàn)7月4日第三大節(jié)、第四大節(jié)編程實現(xiàn)7月5日第一大節(jié)、第二大節(jié)程序測試7月5日第三大節(jié)、第四大節(jié)編寫課程設(shè)計報告7月6日第一大節(jié)、第二大節(jié)課程設(shè)計答辯7月6日第三大節(jié)、第四大節(jié)課程設(shè)計答辯 參考資料[1]何欽銘顏暉.《C語言程序設(shè)計》.高等教育出版社.2008年[2]譚浩強張基溫.《C語言程序設(shè)計教程》.高等教育出版社.2006年?它難點提示:1、首先分析題目的數(shù)據(jù)結(jié)構(gòu),看看要操作那些值(商品數(shù)據(jù),金額數(shù)據(jù),甚至需要保存每一筆用戶的交易);然后根據(jù)題意設(shè)計操作對象的結(jié)構(gòu)??梢允褂媒Y(jié)構(gòu)體來描述其中較為復(fù)雜的對象例如往來帳目;確定結(jié)構(gòu)體的定義;可以使用數(shù)組來保存商品數(shù)據(jù)和已收款,剩余零鈔數(shù)目這樣的數(shù)據(jù),使用結(jié)構(gòu)體數(shù)組來保存往來帳目數(shù)據(jù)。2、找零算法一種簡單的算法是優(yōu)先找給大額的零鈔,用完再找給小額零鈔。但是這種算法充其量只能保證服務(wù)最多的顧客,但是后來的顧客就只能拿1元的硬幣了。因此可以采用動態(tài)最優(yōu)化算法,剩余的零鈔哪個最多,優(yōu)先找哪個。 ?明1.本表應(yīng)在每次實施前一周由負責(zé)教師填寫二份,院系審批后交院系辦備案,一份由負責(zé)教師留用。2.若填寫內(nèi)容較多可另紙附后。3.一題多名學(xué)生共用的,在設(shè)計內(nèi)容、參數(shù)、要求等方面應(yīng)有所區(qū)別。教研室主任: 指導(dǎo)教師:伍建全/焦曉軍/周力2012年6月22日摘要本設(shè)計是用VC++編輯器完成的一個學(xué)生成績管理系統(tǒng),運用所學(xué)C語言知識,通過對菜單項中功能鍵的調(diào)用將學(xué)生成績信息載入數(shù)據(jù)庫,同時可以將學(xué)生信息從文件中讀取出來,從而實現(xiàn)增加、刪除、修改學(xué)生信息,按學(xué)號、姓名查詢學(xué)生信息、成績統(tǒng)計、各科成績按升序、降序排序等功能。以便于對學(xué)生成績更好更方便更高效的管理。關(guān)鍵字:C語言、從文件讀取、學(xué)生成績管理系統(tǒng)(3~5個關(guān)鍵字)目錄\o"CurrentDocument"1設(shè)計內(nèi)容和要求 1\o"CurrentDocument"設(shè)計內(nèi)容 1\o"CurrentDocument"設(shè)計要求 1\o"CurrentDocument"2總體設(shè)計 2\o"CurrentDocument"系統(tǒng)功能 2\o"CurrentDocument"系統(tǒng)模塊 2\o"CurrentDocument"總體程序框圖 2\o"CurrentDocument"3功能模塊的具體設(shè)計 3信息維護功能 3信息查詢功能 5信息統(tǒng)計功能 7排序功能 84功能模塊的調(diào)試及測試 9信息維護測試 9信息查詢測試 10信息統(tǒng)計測試 11排序測試 11退出測試 11文件寫入測試 11總結(jié) 12致謝 13\o"CurrentDocument"參考文獻 14\o"CurrentDocument"源程序 15.設(shè)計內(nèi)容和要求設(shè)計內(nèi)容此次課程設(shè)計是學(xué)生成績管理系統(tǒng),實現(xiàn)學(xué)生成績信息的管理,完成學(xué)生信息的增加、修改、刪除,學(xué)生信息的查詢(按學(xué)號、姓名),成績統(tǒng)計,成績排序(按語文、數(shù)學(xué)或英語進行的升序和降序排序),以及將學(xué)生信息從文件中讀取出來。設(shè)計要求現(xiàn)有學(xué)生成績信息,內(nèi)容如下姓名學(xué)號語文數(shù)學(xué)英語張明明01677882李成友02789188張輝燦03688256王露04564577陳東明05673847請用C語言編寫一系統(tǒng),實現(xiàn)學(xué)生信息管理,軟件的功能要求如下:(1)信息維護:要求:學(xué)生信息數(shù)據(jù)要以文件的形式保存,能實現(xiàn)學(xué)生信息數(shù)據(jù)的維護。此模塊包括子模塊有:增加學(xué)生信息、刪除學(xué)生信息、修改學(xué)生信息(2)信息查詢:要求:查詢時可實現(xiàn)按姓名查詢、按學(xué)號查詢(3)成績統(tǒng)計:要求:人輸入任意的一個課程名(如數(shù)學(xué))和一個分數(shù)段(如60--70),統(tǒng)計出在此分數(shù)段的學(xué)生情況。(4)排序:能對用戶指定的任意課程名,按成績升序或降序排列學(xué)生數(shù)據(jù)并顯示排序結(jié)果.總體設(shè)計系統(tǒng)功能本系統(tǒng)學(xué)生成績管理系統(tǒng),主要對學(xué)生成績信息進行管理,系統(tǒng)可以讓用戶方便快捷地對每個學(xué)生的成績信息進行操作。本系統(tǒng)主要包括五方面的功能,分別是信息維護、信息查詢、信息統(tǒng)計、排序、信息寫入文件。信息維護可以實現(xiàn)增加、刪除、修改學(xué)生信息,信息查詢可以實現(xiàn)按學(xué)號、姓名查詢學(xué)生信息,成績統(tǒng)計可以看到每個分數(shù)段學(xué)生人數(shù)以及占總?cè)藬?shù)的百分比,排序可以實現(xiàn)學(xué)生成績按每個科目進行的升序或者降序排序,以上輸入的學(xué)生信息都將寫入文檔中。系統(tǒng)模塊根據(jù)設(shè)計需求系統(tǒng)包括五個模塊,信息維護模塊,信息查詢模塊,信息統(tǒng)計模塊,排序模塊,退出模塊。總體程序框圖系統(tǒng)的總體功能框圖如下圖所示:升序降序系統(tǒng)總體設(shè)計框圖.功能模塊的具體設(shè)計信息維護模塊本模塊又分為增加學(xué)生信息、刪除學(xué)生信息、修改學(xué)生信息三個小模塊。此模塊主要運用ifelse語句進行選擇執(zhí)行程序。程序流程圖主要功能代碼實現(xiàn)if(option==1){請輸入您的選項(序號):(1)增加學(xué)生信息:(2)刪除學(xué)生信息:(3)修改學(xué)生信息:if(option==1){請輸入要增加的學(xué)生的信息(姓名學(xué)號語文數(shù)學(xué)英語):,&stu[stuNum].math,&stu[stuNum].eng);stuNum++;}elseif(option==2){charnum[10];請輸入要刪除學(xué)生的學(xué)號gets(num);gets(num);for(i=0;i<stuNum;i++){if(strcmp(stu[i].num,num)==0)break;}for(;i<stuNum-1;i++)stu[i]=stu[i+1];stuNum--;}elseif(option==3){charnum[10];請輸入要修改學(xué)生的學(xué)號gets(num);gets(num);for(i=0;i<stuNum;i++){if(strcmp(stu[i].num,num)==0){請輸入要修改的學(xué)生的信息(姓名學(xué)號語文數(shù)學(xué)英語):stu[i].eng);break;}}if(i==stuNum)未找到該學(xué)生}else{輸入錯誤}郭怡培姓名學(xué)號語文數(shù)學(xué)英語for(i=0;i<stuNum;i++){i].math,stu[i].eng);}fclose(f);信息查詢模塊本模塊分按學(xué)號查詢和按姓名查詢兩個小模塊。程序流程圖elseif(option==2){請輸入您的選項(序號):(1)按姓名查詢:(2)按學(xué)號查詢:if(option==1){charname[10];請輸入要查詢學(xué)生的姓名gets(name);gets(name);for(i=0;i<stuNum;i++){if(strcmp(stu[i].name,name)==0){該生的信為:u[i].eng);break;}}if(i==stuNum)未找到該學(xué)生}elseif(option==2){charnum[10];請輸入要查詢學(xué)生的學(xué)號gets(num);gets(num);for(i=0;i<stuNum;i++){if(strcmp(stu[i].num,num)==0){該生的信為:u[i].eng);break;}}if(i==stuNum)未找到該學(xué)生}else輸入錯誤}信息統(tǒng)計程序流程圖息息3.3.2主要功能代碼實現(xiàn)elseif(option==3){intstart,end;chars[10];intcount=0;do{要查詢的科目及分數(shù)段(如:英語英語語文數(shù)學(xué)語文{for(i=0;i<stuNum;i++){if(stu[i].chi>=start&&stu[i].chi<=end)count++;}英語{for(i=0;i<stuNum;i++){if(stu[i].eng>=start&&stu[i].eng<=end)count++;}

}else{for(i=0;i<stuNum;i++){if(stu[i].math>=start&&stu[i].math<=end)count++;}}在%d~%d分數(shù)段的人數(shù)為%d,占全體學(xué)生總數(shù)的}排序程序流程圖主要代碼功能實現(xiàn)elseif(option==4){請輸入您的選項(序號):(1)按升序排序:(2)按降序排序:if(option==1){請輸入您的選項(序號):(1)按語文排序:(2)按英語排序:(3)按數(shù)學(xué)排序:if(option==1)sort(stu,up,findChi);elseif(option==2)sort(stu,up,findEng);elseif(option==3)sort(stu,up,findMath);輸入錯誤}elseif(option==2){請輸入您的選項(序號):(1)按語文排序:(2)按英語排序:(3)按數(shù)學(xué)排序:if(option==1)sort(stu,down,findChi);elseif(option==2)sort(stu,down,findEng);elseif(option==3)sort(stu,down,findMath);輸入錯誤}輸入錯誤}.功能模塊的調(diào)試及測試信息維護調(diào)試增加信息測試從鍵盤輸入1測試結(jié)果:4.1.2刪除信息測試'Ei?MyQdesign?Debug?desigπ.exs"CB■Ei?MyQdesign?Debug?desigπ.exe"學(xué)生成績管理系統(tǒng)4-4--∣--∣--∣-+÷+÷+÷+÷+÷+÷+-F+-F+-F+-F+-F+-F+-F++++++++++++-∣-+-∣-+-∣-+-∣-+-∣-+-∣-+-∣-+÷+÷+÷+÷英語÷I--1-+-1-+++++++++++++++++++++++++++++++++++++++-1-+-1-+-1-+-1-+-1-+-1-+-1-++++++++桀1M修改學(xué)生4.2信息查詢測試4.2.1按姓名查詢4.2.24.3成績統(tǒng)計測試4.4.1升序測試*+"五日,Ei??!蘬yC^design?,Dehug?desigπ.e?!e"統(tǒng)系理管績成生學(xué)+很2"英般*S99S+*+*+*學(xué)8數(shù)71?4+4+4+4+4+4+4號解學(xué)÷*÷*÷437810898?3041iR明怡

?.tff*+*+*+*+*+*+*4+4+4+4+4+4+4÷*÷*÷≡ip=?=?==一里|一品工刖If...1..■...1..■...1..■...1...ri2345選期

m??

望升降您ΛS輸i)2)板文適于

豁語英教

ΛE≡≡莘i23SHBH測試結(jié)果:4.4.2降序測試測試結(jié)果:4.5退出測試*+"五日廿*S92S+*+*+*學(xué)8數(shù)9翳■++■++■++■++■++■++■+號限學(xué)?-n÷*÷*437878761020箱明成

想郭萋1廿*******十+十+十+十+十+十+十++++++++++++■++■++■++■++■++■++■+**************十*十++++++≡ip=旬小輸1)5Pressanykeytocontinuepeipei.txt-記事本文件舊編輯舊格式。查看凹??IW學(xué)號語文數(shù)學(xué)英語李成友67S29S郭怡培890致謝寫出在本次課程設(shè)計及論文完成過程中,為你提供幫助的人,并表達謝意.通過此次課程設(shè)計,讓我充分地學(xué)習(xí)到了C語言的知識,熟練地掌握了循環(huán)、函數(shù)、指針等C語言知識,靈活利用所學(xué)知識編寫對我們有用的程序。在課程設(shè)計中,我學(xué)到了很多知識,三位老師的教導(dǎo)以及同學(xué)們的團隊合作給我留下了深深地印象,特別感謝三位老師兩個星期來辛勤地指導(dǎo)我們,讓我對所學(xué)知識有了更深一步地了解,也激發(fā)了我在編程方面的興趣,希望在今后的學(xué)習(xí)生活中還能保持這兩個星期的積極性。簽名郭怡培日期2012/7/4參考文獻[1]何欽銘顏暉.《c語言程序設(shè)計》.高等教育出版社.2008年[2]譚浩強張基溫.《C語言程序設(shè)計教程》.高等教育出版社.2006年源程序#include<stdio.h>#include<string.h>#include<stdlib.h>#include<limits.h>typedefstruct{charname[10];charnum[15];intchi;intmath;inteng;}student;intup(intx){returnx;}intdown(intx){return-x;}intfindChi(student*s){returns->chi;}intfindEng(student*s){returns->eng;}intfindMath(student*s){returns->math;}intstuNum=0;voidsort(student*s,int(*p)(intx),int(*q)(student*r)){inti,j,k;studenttemp;for(i=0;i<stuNum-1;i++){k=i;for(j=i+1;j<stuNum;j++)if(p(q(&s[j])-q(&s[k]))<0)k=j;if(k!=i){temp=s[i];s[i]=s[k];s[k]=temp;}}}voidoutput(student*s){inti;學(xué)生成績管理系統(tǒng)for(i=0;i<64;i++)姓名 學(xué)號語文數(shù)學(xué)for(i=0;i<stuNum;i++){

%5s %8s %4d %4d}for(i=0;i<64;i++)}intmain(intargc,char*argv[]){studentstu[100];inti;FILE*f;do{intoption;output(stu);請輸入您的選項(序號):(1)信息維護:(2)信息查詢:(3)成績統(tǒng)計:英語%4d(4)排序:(5)退出:if(option==1){請輸入您的選項(序號):(1)增加學(xué)生信息:(2)刪除學(xué)生信息:(3)修改學(xué)生信息:if(option==1){請輸入要增加的學(xué)生的信息(姓名學(xué)號語文數(shù)學(xué)英語):,&stu[stuNum].math,&stu[stuNum].eng);stuNum++;}elseif(option==2){charnum[10];請輸入要刪除學(xué)生的學(xué)號gets(num);gets(num);for(i=0;i<stuNum;i++){if(strcmp(stu[i].num,num)==0)break;}for(;i<stuNum-1;i++)stu[i]=stu[i+1];stuNum--;}elseif(option==3){charnum[10];請輸入要修改學(xué)生的學(xué)號gets(num);gets(num);for(i=0;i<stuNum;i++){if(strcmp(stu[i].num,num)==0){請輸入要修改的學(xué)生的信息(姓名學(xué)號語文數(shù)學(xué)英語):stu[i].eng);break;}}if(i==stuNum)未找到該學(xué)生}else{輸入錯誤}郭怡培姓名學(xué)號語文數(shù)學(xué)英語for(i=0;i<stuNum;i++){i].math,stu[i].eng);}fclose(f);}elseif(option==2){請輸入您的選項(序號):(1)按姓名查詢:(2)按學(xué)號查詢:if(option==1){charname[10];請輸入要查詢學(xué)生的姓名gets(name);gets(name);for(i=0;i<stuNum;i++){if(strcmp(stu[i].name,name)==0){該生的信為:u[i].eng);break;}}if(i==stuNum)未找到該學(xué)生}elseif(option==2){charnum[10];息請輸入要查詢學(xué)生的學(xué)號gets(num);gets(num);for(i=0;i<stuNu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論