C語言程序設(shè)計學(xué)生成績管理系統(tǒng)課程設(shè)計報告_第1頁
C語言程序設(shè)計學(xué)生成績管理系統(tǒng)課程設(shè)計報告_第2頁
C語言程序設(shè)計學(xué)生成績管理系統(tǒng)課程設(shè)計報告_第3頁
C語言程序設(shè)計學(xué)生成績管理系統(tǒng)課程設(shè)計報告_第4頁
C語言程序設(shè)計學(xué)生成績管理系統(tǒng)課程設(shè)計報告_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、重慶科技學(xué)院C語言程序設(shè)計課程設(shè)計報告學(xué) 院:電氣與信息工程學(xué)院專業(yè)班級:自動化2013-03, ,學(xué)生姓名:高躍躍 學(xué)號:2013443321設(shè)計地點(diǎn)(單位) 計算機(jī)基礎(chǔ)自主學(xué)習(xí)中心設(shè)計題目:學(xué)生成績管理系統(tǒng)的設(shè)計與實(shí)現(xiàn)完成日期:2014 年09月25日指導(dǎo)教師評語:i重慶科技學(xué)院C語言課程設(shè)計課程設(shè)計報告成績(五級記分制):指導(dǎo)教師(簽字):II重慶科技學(xué)院C語言課程設(shè)計課程設(shè)計報告課程設(shè)計任務(wù)書設(shè)計題目:學(xué)生成績管理系統(tǒng)的設(shè)計與實(shí)現(xiàn)學(xué)生姓名 課程名稱 地 點(diǎn)高躍躍C語言課程設(shè)計計算機(jī)基礎(chǔ)自主學(xué)習(xí)中心專業(yè)班級起止時間自動化20132014.9.9-2014.9.26內(nèi)容強(qiáng)化C語言中有關(guān)結(jié)構(gòu)

2、體數(shù)組及外部文件的內(nèi)容,獨(dú)立設(shè)計學(xué)生成績管理系統(tǒng),設(shè) 計 內(nèi) 容 及 要 求并編程實(shí)現(xiàn)以下功能:1、整個系統(tǒng)均用cm言實(shí)現(xiàn);2、利用結(jié)構(gòu)體數(shù)組來實(shí)現(xiàn)學(xué)生成績的數(shù)據(jù)結(jié)構(gòu)設(shè)計;3、系統(tǒng)具有輸入、顯示、查詢、刪除、排序、插入、保存、讀取等基本功能;4、系統(tǒng)的各個功能模塊都用函數(shù)的形式來實(shí)現(xiàn);5、要求能將學(xué)生成績信息保存在文件中;6、要求能從文件中讀取學(xué)生信息并進(jìn)行相關(guān)處理。1、每一條記錄包括一個學(xué)生的學(xué)號、姓名、3門成績、平均成績。2、輸入功能3、顯示功能4、查找功能5、排序功能6、插入功能7、保存功能8、讀取功能進(jìn)入后可以進(jìn)行多條記錄的輸入并保存。 完成全部學(xué)生或滿足指定條件記錄的顯示。 完成按學(xué)

3、號或姓名查找學(xué)生記錄,并顯示。 按學(xué)生學(xué)號或平均成績進(jìn)行排序。按學(xué)生學(xué)號或平均成績高低插入一條學(xué)生記錄o 將學(xué)生記錄保存在自定義名稱的文件中。將保存在文件中的學(xué)生記錄讀取出來。進(jìn)度要求7.9、有一個文本菜單來調(diào)用各個功能。1 .布置設(shè)計題目,講解要求和說明2 .確定設(shè)計任務(wù),確定具體的功能,3 .按功能需求確定程序的主要模塊4 .編程實(shí)現(xiàn)程序的功能5 .調(diào)試并完善程序6 .撰寫課程設(shè)計報告提交課程設(shè)計報告并答辯2014.9.9熟悉相關(guān)知識2014.9.92014.9.102014.9.112014.9.162014.9.23 - 2014.9.242014.9.25-2014.9.15-201

4、4.9.22譚浩強(qiáng),C語言程序設(shè)計(第三版),清華大學(xué)出版社,2005.2本表應(yīng)在每次實(shí)施前一周由負(fù)責(zé)教師填寫二份,院系審批后交院系辦備案,一份 就負(fù)責(zé)教師留用。2 .若填寫內(nèi)容較多可另紙附后。3 .一題多名學(xué)生共享的,在設(shè)計內(nèi)容、參數(shù)、要求等方面應(yīng)有所區(qū)別。摘要學(xué)生成績管理系統(tǒng)是為了實(shí)現(xiàn)學(xué)校對學(xué)生成績管理的系統(tǒng)化、規(guī)范化和自動化,從 而提高學(xué)校管理效率而設(shè)計的。它完全取代了原來一直用人工管理的工作方式,避免了 由于管理人員的工作疏忽以及管理質(zhì)量問題所造成的各種錯誤,為及時、準(zhǔn)確、高效的 完成學(xué)生成績管理提供了強(qiáng)有力的工具和管理手段。學(xué)生成績管理系統(tǒng)是一個中小型數(shù) 據(jù)庫管理系統(tǒng),它界面美觀、操

5、作簡單、安全性高,基本滿足了學(xué)生成績管理的要求。本系統(tǒng)是在以Microsoft Visual C+ 6.0作為后臺來開發(fā)的。學(xué)生成績管理系統(tǒng)在運(yùn)行階段,效果好,數(shù)據(jù)準(zhǔn)確性高,提高了工作效率,同時也實(shí)現(xiàn)了學(xué)生成績管理計 算機(jī)化。關(guān)鍵詞:成績管理系統(tǒng)C語言II重慶科技學(xué)院C語言課程設(shè)計課程設(shè)計報告目錄1軟件需求說明11.1 程序的界面要求 11.2 程序的功能12程序的分析與設(shè)計1.1.1 程序的數(shù)據(jù)結(jié)構(gòu)分析 41.2 程序的算法設(shè)計63 .程序的實(shí)現(xiàn)7.3.1 主函數(shù)73.2 定義數(shù)據(jù)結(jié)構(gòu)84 .程序試用說明10.4.1 主頁面114.2 錄入信息頁面 185 .總結(jié)19.5.1 致謝195.2

6、 參考文獻(xiàn)19m重慶科技學(xué)院C語言課程設(shè)計課程設(shè)計報告261.軟件需求說明1.1程序的界面要求整個系統(tǒng)均用CS言實(shí)現(xiàn);利用結(jié)構(gòu)體數(shù)組來實(shí)現(xiàn)學(xué)生成績的數(shù)據(jù)結(jié)構(gòu)設(shè)計;系統(tǒng)具有輸入、顯示、查詢、刪除、排序、插入、保存、讀取等基本功*匕目匕;系統(tǒng)的各個功能模塊都用函數(shù)的形式來實(shí)現(xiàn);要求能將學(xué)生成績信息保存在文件中;要求能從文件中讀取學(xué)生信息并進(jìn)行相關(guān)處理。1.2程序的功能每一條記錄包括一個學(xué)生的學(xué)號、姓名、3門成績、平均成績。輸入功能:進(jìn)入后可以進(jìn)行多條記錄的輸入并保存。顯示功能:完成全部學(xué)生或滿足指定條件記錄的顯示。查找功能:完成按學(xué)號或姓名查找學(xué)生記錄,并顯示。排序功能:按學(xué)生學(xué)號或平均成績進(jìn)行排

7、序0插入功能:按學(xué)生學(xué)號或平均成績高低插入一條學(xué)生記錄。保存功能:將學(xué)生記錄保存在自定義名稱的文件中o讀取功能:將保存在文件中的學(xué)生記錄讀取出來。2.有一個文本菜單來調(diào)用各個功能0系統(tǒng)分析與設(shè)計2.1.1定義結(jié)構(gòu)體typedef struct CStudentchar Name32;int Sno;double dDataStruct; /*double dMath;/*double dEnglish;/*double aver;CStudent;本程序需要定義多個結(jié)構(gòu)體,用于存放學(xué)生的相關(guān)信息/*學(xué)生姓名*/* 學(xué)號*/數(shù)據(jù)結(jié)構(gòu)成績*/數(shù)學(xué)成績*/英語成績*/*平均成績*/1.1.1 2 m

8、ain ()主函數(shù)主函數(shù)功能比較簡單,用while循環(huán)語句和switch多重選擇語句來顯示主界面和調(diào)用函數(shù)。在主函數(shù)的前面要寫必須的頭文件,預(yù)定義語句以及全局變量的結(jié)構(gòu)體2.1.3 del()刪除函數(shù)在C語言中無法做到刪除和移動數(shù)據(jù),所以刪除記錄要先將所有記錄從文件中讀出, 刪除后再將記錄寫回文件中。每讀出一條記錄,按其在文件中的順序做好指針鏈接關(guān)系, 然后查處要刪除的學(xué)生信息,將其在鏈表中刪除,最后再將變動的記錄重新寫回文件中。 用指針,else/if結(jié)構(gòu)來實(shí)現(xiàn)查找出要刪除的學(xué)生。2.1.4 insert()插入函數(shù)在插入函數(shù)中利用指針,while循環(huán)和else/if語句來實(shí)現(xiàn)輸入的數(shù)據(jù)按照

9、插入相應(yīng)的位置。2.1.5 讀取函數(shù)利用指針、鏈表打開已經(jīng)儲存的信息。void Read()/* 從文檔讀取*/char p128 = file.txt;FILE *fp;if (fp=fopen(file.txt,r)=NULL)printf(Open file %s error! Strike any key to exit!,p);system(pause);exit(0);SavePos = 0;while(!feof(fp)fscanf(fp,Name:%sn,exampleSavePos.Name);fscanf(fp,Sno:%dn,&exampleSavePos.Sno);fs

10、canf(fp,Score(DS)%lfn,&exampleSavePos.dDataStruct);fscanf(fp,Score(M)%lfn,&exampleSavePos.dMath);fscanf(fp,Score(E)%lfn,&exampleSavePos.dEnglish);fscanf(fp,Score(Average)%lfn,&exampleSavePos.aver);fscanf(fp,*n);SavePos+;fclose(fp);Display。;2.1.6 save ()保存函數(shù)/* 保存到文檔*/主要利用指針來把信息保存在文件中void Save()int j=

11、0;const char fname128 = file.txt;FILE* fp;/open filefp = fopen(fname, w);/write in file for(j=0;jSavePos;j+) /fprintf(fp,This is the file.n)fprintf(fp,Name:%sn,examplej.Name);fprintf(fp,Sno:%dn,examplej.Sno);fprintf(fp,Score(DS)%fn,examplej.dDataStruct);fprintf(fp,Score(M)%fn,examplej.dMath);fprintf

12、(fp,Score(E)%fn,examplej.dEnglish);fprintf(fp,Score(Average)%fn,examplej.dEnglish);fprintf(fp,”*n);/close filefclose(fp);printf(保存成功 n);2.2程序的算法設(shè)計從 文 件 讀 入從 鍵 盤 輸 入按 姓 名 查 詢按 學(xué) 號 查 詢插 入 學(xué) 生 信 且刪 除 學(xué) 生 信 息學(xué) 生 信 息 排 序開始圖2.2學(xué)生成績管理系統(tǒng)功能模塊圖開始按學(xué)號圖2.2輸入模塊圖2.2查詢模塊保存并結(jié) 束3.圖2.2插入模塊程序的實(shí)現(xiàn)3.1 主函數(shù)int main()int cho

13、icel = 1,choice2;int i = 1,s = 1;doprintf(歡迎使用學(xué)生成績管理系統(tǒng)n);printf(請選擇程序功能n);printf(1、信息錄入 n);printf(2 、信息查詢 n);printf(3、插入 n);printf(4、排序 n);printf(5、保存 n);printf(6、刪除 n);printf(7 、讀取并顯示n);printf(8 、退出程序 n);scanf(%d”,&choice1);3.2 定義數(shù)據(jù)結(jié)構(gòu);用整型數(shù)據(jù)定義學(xué)號和成績,用一個類的嵌套定義 struct student *next用char定義姓名。typedef str

14、uct CStudent /*學(xué)生姓名*/* 學(xué)號*/數(shù)據(jù)結(jié)構(gòu)成績*/數(shù)學(xué)成績*/英語成績*/*平均成績*/char Name32;int Sno;double dDataStruct; /*double dMath; /*double dEnglish; /* double aver;CStudent;CStudent example1024;int SavePos = 0;3.3 函數(shù)說明鏈表定義頭指針stu *s , switch函數(shù)中用了 8個case。case 1: Record(SavePos);break; / 錄入學(xué)生信息case 2: Search_Name( ); Sear

15、ch_Sno ();break;/查詢學(xué)生信息case 3: Insert_Score();break;/插入學(xué)生信息case 4: Sort_Sno( ) ; Sort_Score( );break;/ 學(xué)生信息排序case 5: Save( ) student(s);break;/保存學(xué)生信息case 6: Delete_Sno( ); Delete_Name( ); break;/ 刪除學(xué)生信息case 7: Read( )student(s);break;/讀取學(xué)生信息case 8: exit(0);break;/ 退出系統(tǒng)8.3 文件錄入功能void Record(int j)/*錄

16、入 */printf(信息錄入 n);printf(姓名:);scanf(%s,examplej.Name);printf(學(xué)號:);scanf(%d”,&examplej.Sno);printf( 數(shù)據(jù)結(jié)構(gòu):);scanf(%lf,&examplej.dDataStruct);printf(數(shù)學(xué):);scanf(%lf,&examplej.dMath);printf(英語:);scanf(%lf,&examplej.dEnglish);printf(平均成績:);scanf(%lf,&examplej.aver);8.4 文件讀取功能讀取功能運(yùn)用文件指針的方法,與 While循環(huán)語句完成。v

17、oid Read()/*從文檔讀取*/char p128 = file.txt;FILE *fp;if (fp=fopen(file.txt,r)=NULL) printf(Open file %s error! Strike any key to exit!,p);system(pause);exit(0);SavePos = 0;while(!feof(fp) fscanf(fp,Name:%sn,exampleSavePos.Name);fscanf(fp,Sno:%dn,&exampleSavePos.Sno);fscanf(fp,Score(DS)%lfn,&exampleSaveP

18、os.dDataStruct); fscanf(fp,Score(M)%lfn,&exampleSavePos.dMath);fscanf(fp,Score(E)%lfn,&exampleSavePos.dEnglish);fscanf(fp,Score(Average)%lfn,&exampleSavePos.aver);fscanf(fp,*n);SavePos+;fclose(fp);Display。;8.5 插入功能首先建立循環(huán),檢測插入的學(xué)號是否已存在,若存在則停止插入;若不存在, 則繼續(xù)進(jìn)行輸入學(xué)生信息。void Insert_Score()int i , j, m, flag;1

19、 = SavePos;doflag=1;while(flag)flag = 0;printf( 請輸入第 %d 位:n,i+1);printf(請輸入學(xué)號檢驗(yàn)該生是否已經(jīng)存在n);scanf(%d”,&examplei.Sno);for(j=0;j2縣錄入名:ST號! 2013413321措結(jié)構(gòu)t W語:字號的成奏”、統(tǒng)錄入請花,結(jié)束錄入請技。圖4-24.3 信息查詢頁面返回主頁面,按數(shù)字2,進(jìn)行學(xué)生信息查詢,分為按學(xué)號查詢和姓名查詢。如圖 4-3-1 。C:User &KIM IDeskto p新S 件除 Gyy 忐 x更圖 4-3-1按數(shù)字1與按數(shù)字2查詢結(jié)果頁面如圖4-3-2所示圖 4-

20、3-2匕目fe人詢 用才息息入序存充 系 m 二 -LL - - I日C;U5e5KlMIDesktop新建文件夾6yy.exe信息查詢r枝姓名查詢 入卷學(xué)號查詢安學(xué)號查詢013443321生名,眥V學(xué)號! 2013443321數(shù)據(jù)結(jié)構(gòu):99.0數(shù)學(xué):99.0英語:99.0平均成賽9彘上級菜單請按圖 4-3-24.4 插入信息頁面返回主頁面,按數(shù)字3,首先檢驗(yàn)該學(xué)號是否存在,若存在則程序停止錄入,否則繼續(xù)進(jìn)行錄入。如圖 4-4-1所示。C :U5e0KIMIDeGlt 叩、新建文件夾Gyy.exe市主月主舊排保刪讀退息息入序391J-1T相輔已請請示罡序并程2UIT21號 2口不 董石諼妻子 人入44在人入在 希 * 已C:UQer5KIVinQe0匕。新建立 11二交Gyy. eve:噩繇示青頻入第3位二 青鼎人季號檢驗(yàn)該生是否已經(jīng)存在013442321W稼屋號嗯檢查重新錄入, 臀佚事&該生是否已經(jīng)存在L013443322I年息錄入悻名:zqw號: 2H13443322.城結(jié)球芋:88.堵r : 88場盛凄88一人兀畢圖 4-4-14.5排序功能頁面返回主頁面,按

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論