版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、重慶科技學(xué)院C語言程序設(shè)計課程設(shè)計報告學(xué) 院:電氣與信息工程學(xué)院 專業(yè)班級:自動化2013-03學(xué)生姓名:高躍躍學(xué) 號:設(shè)計地點(單位)計算機基礎(chǔ)自主學(xué)習(xí)中心設(shè)計題目:學(xué)生成績管理系統(tǒng)的設(shè)計與實現(xiàn)完成日期:2014 年09月25日指導(dǎo)教師評語:成績(五級記分制):指導(dǎo)教師(簽字):_ _ 一課程設(shè)計任務(wù)書設(shè)計題目:學(xué)生成績管理系統(tǒng)的設(shè)計與實現(xiàn)學(xué)生姓名咼躍躍課程名稱C語言課程設(shè)計專業(yè)班級自動化2013地點計算機基礎(chǔ)自主學(xué)習(xí)起止時間2014.9.9-2014.9.2設(shè) 計 內(nèi) 容 及 要 求內(nèi)容中心6強化C語言中有關(guān)結(jié)構(gòu)體數(shù)組及外部文件的內(nèi)容,獨立設(shè)計學(xué)生成績管理系統(tǒng),并編程實現(xiàn)以下功能:1整個系
2、統(tǒng)均用C語言實現(xiàn);2、利用結(jié)構(gòu)體數(shù)組來實現(xiàn)學(xué)生成績的數(shù)據(jù)結(jié)構(gòu)設(shè)計;3、 系統(tǒng)具有輸入、顯示、查詢、刪除、排序、插入、保存、讀 取等基本功能;4、系統(tǒng)的各個功能模塊都用函數(shù)的形式來實現(xiàn);5、要求能將學(xué)生成績信息保存在文件中;6、要求能從文件中讀取學(xué)生信息并進行相關(guān)處理。設(shè) 計 參 數(shù)1每 條記錄包括 個學(xué)生的學(xué)號、姓名、3門成績、平均成 績。2、輸入功能:進入后可以進行多條記錄的輸入并保存。3、顯示功能:完成全部 學(xué)生或滿足指定條件記錄的顯示。4、查找功能:完成按 學(xué)號或姓名查找 學(xué)生記錄,并顯示。5、排序功能:按 學(xué)生學(xué)號或平均成績進行排序。6、插入功能:按 學(xué)生學(xué)號或平均成績高低插入一條學(xué)生
3、記錄。7、保存功能.將學(xué)生記錄保存在自疋乂名稱的文件中。8、讀取功能:將保存在文件中的 學(xué)生記錄讀取出來。9、有一個文本菜單來調(diào)用各個功能。進 度 要 求1. 布置設(shè)計題目,講解要求和說明2014.9.92. 確定設(shè)計任務(wù),確定具體的功能,熟悉相關(guān)知識2014.9.93. 按功能需求確定程序的主要模塊2014.9.104. 編程實現(xiàn)程序的功能2014.9.11-2014.9.155. 調(diào)試并完善程序2014.9.16-2014.9.226. 撰寫課程設(shè)計報告2014.9.23 -2014.9.247.提交課程設(shè)計報告并答辯2014.9.25其 它譚浩強,C語言程序設(shè)計(第二版),清華大學(xué)出版社
4、,2005.2明1 .本表應(yīng)在每次實施刖周由 系辦備案,一份由負(fù)責(zé)教師留用 說.若填寫內(nèi)容較多可另紙附后 3. 一題多名學(xué)生共享的,在設(shè)計 別。負(fù)責(zé)教帥填寫二份,院糸審批后交院冃。、。十內(nèi)容、參數(shù)、要求等方面應(yīng)有所區(qū)摘要學(xué)生成績管理系統(tǒng)是為了實現(xiàn)學(xué)校對學(xué)生成績管理的系統(tǒng)化、規(guī)范化和自動化,從 而提高學(xué)校管理效率而設(shè)計的。它完全取代了原來一直用人工管理的工作方式,避免了 由于管理人員的工作疏忽以及管理質(zhì)量問題所造成的各種錯誤,為及時、準(zhǔn)確、高效的 完成學(xué)生成績管理提供了強有力的工具和管理手段。學(xué)生成績管理系統(tǒng)是一個中小型數(shù) 據(jù)庫管理系統(tǒng),它界面美觀、操作簡單、安全性高,基本滿足了學(xué)生成績管理的要
5、求。本系統(tǒng)是在以Microsoft Visual C+ 6.0作為后臺來開發(fā)的。學(xué)生成績管理系統(tǒng)在運行階段,效果好,數(shù)據(jù)準(zhǔn)確性高,提高了工作效率,同時也實現(xiàn)了學(xué)生成績管理計 算機化。關(guān)鍵詞:成績 管理系統(tǒng)C語言目錄1. 軟件需求說明 11.1 程序的界面要求 11.2 程序的功能 12. 程序的分析與設(shè)計 12.1 程序的數(shù)據(jù)結(jié)構(gòu)分析 42.2 程序的算法設(shè)計 63. 程序的實現(xiàn) 73.1 主函數(shù) 73.2 定義數(shù)據(jù)結(jié)構(gòu) 84. 程序試用說明 104.1 主頁面 114.2 錄入信息頁面 185. 總結(jié) 195.1 致謝 195.2 參考文獻 191.軟件需求說明1.1 程序的界面要求 整個系
6、統(tǒng)均用C語言實現(xiàn); 利用結(jié)構(gòu)體數(shù)組來實現(xiàn)學(xué)生成績的數(shù)據(jù)結(jié)構(gòu)設(shè)計; 系統(tǒng)具有輸入、顯示、查詢、刪除、排序、插入、保存、讀取等基本功 系統(tǒng)的各個功能模塊都用函數(shù)的形式來實現(xiàn); 要求能將學(xué)生成績信息保存在文件中; 要求能從文件中讀取學(xué)生信息并進行相關(guān)處理。1.2 程序的功能 每一條記錄包括一個學(xué)生的學(xué)號、姓名、3門成績、平均成績。 輸入功能:進入后可以進行多條記錄的輸入并保存。 顯示功能:完成全部學(xué)生或滿足指定條件記錄的顯示。 查找功能:完成按學(xué)號或姓名查找學(xué)生記錄,并顯示。 排序功能:按學(xué)生學(xué)號或平均成績進行排序。 插入功能:按學(xué)生學(xué)號或平均成績高低插入一條學(xué)生記錄。 保存功能:將學(xué)生記錄保存在自
7、定義名稱的文件中。 讀取功能:將保存在文件中的學(xué)生記錄讀取出來。 有一個文本菜單來調(diào)用各個功能。1.系統(tǒng)分析與設(shè)計2.1 程序的數(shù)據(jù)(結(jié)構(gòu))分析2.1.1 定義結(jié)構(gòu)體本程序需要定義多個結(jié)構(gòu)體,用于存放學(xué)生的相關(guān)信息typedef struct CStudent/* 學(xué)生姓名 */* 學(xué)號 */ 數(shù)據(jù)結(jié)構(gòu)成績 */ 數(shù)學(xué)成績 */char Name32;int Sno;double dDataStruct; /*double dMath; /*double dEnglish; /* 英語成績 */double aver; /* 平均成績 */CStudent;2.1. 2 main ()主函數(shù)主
8、函數(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)來實現(xiàn)查找出要刪除的學(xué)生。2.1.4 insert( ) 插入函數(shù)在插入函數(shù)中利用指針, while 循環(huán)和 else/if 語句
9、來實現(xiàn)輸入的數(shù)據(jù)按照插入相 應(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,
10、"Name:%sn",exampleSavePos.Name);fscanf(fp,"Sno:%dn",&exampleSavePos.Sno); fscanf(fp,"Score(DS)%lfn",&exampleSavePos.dDataStruct) ; fscanf(fp,"Score(M)%lfn",&exampleSavePos.dMath) ; fscanf(fp,"Score(E)%lfn",&exampleSavePos.dEnglish) ;f
11、scanf(fp,"Score(Average)%lfn",&exampleSavePos.aver) ;fscanf(fp,H*n");SavePos+;fclose(fp);Display();2.1.6 save( )保存函數(shù) 主要利用指針來把信息保存在文件中。void Save() /* 保存到文檔 */int j=0;const char fname128 = "file.txt"FILE* fp;/open filefp = fopen(fname, "w");/write in filefor(j=0;
12、j<SavePos;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(fp,"Score(E)%fn"
13、;,examplej.dEnglish) ;fprintf(fp,"Score(Average)%fn",examplej.dEnglish) ;fprintf(fp,H*n");/close filefclose(fp);printf("保存成功 n");2.2程序的算法設(shè)計輸入信息LJ查詢信息IJf1修改信息X-J學(xué)生成績管理系統(tǒng)插整理信息從 文 件 讀 入.2從 鍵 盤 喻輸入數(shù)據(jù)幵始喻刪統(tǒng)功能模塊圖學(xué)生 信'息/圖2.2輸入模塊7結(jié)束圖2.2查詢模塊輸出信息輸輸出出至至屏文幕輸入name該學(xué)號 "已存在、幵始 入學(xué)Y2
14、.3.1主函數(shù)int mai n()程序的實現(xiàn)int choice1 = 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");print
15、f("7、讀取并顯示 n");printf("8、退出程序 n");scanf("%d",&choice1);2.2 定義數(shù)據(jù)結(jié)構(gòu)用一個類的嵌套定義 struct student *next ;用整型數(shù)據(jù)定義學(xué)號和成績,用 char 定義姓名。typedef struct CStudentchar Name32;/* 學(xué)生姓名 */int Sno;/* 學(xué)號 */double dDataStruct;/*數(shù)據(jù)結(jié)構(gòu)成績 */double dMath;/*數(shù)學(xué)成績 */double dEnglish;/*英語成績 */double
16、 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( );Search_Sno ();break;/查詢學(xué)生信息case 3:Insert_Score();break;/插入學(xué)生信息case 5:Save( ) student(s);break;/保存學(xué)生信息case 6:Delete_Sno( ); Delete_Name
17、( ) ; break;/ 刪除學(xué)生信息case 7:Read( )student(s);break;/ 讀取學(xué)生信息case 8:exit(0);break;/ 退出系統(tǒng)case4: Sort_Sno( ) ;Sort_Score( );break;/學(xué)生信息排序2.3 文件錄入功能錄入 */void Record(int j) /*printf(" 信息錄入 n");printf(" 姓名: ");scanf("%s",examplej.Name); printf(" 學(xué)號: ");scanf("%d
18、",&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"
19、,&examplej.aver);2.4 文件讀取功能 讀取功能運用文件指針的方法,與 While 循環(huán)語句完成 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(!f
20、eof(fp) fscanf(fp,"Name:%sn",exampleSavePos.Name); fscanf(fp,"Sno:%dn",&exampleSavePos.Sno);fscanf(fp,"Score(DS)%lfn",&exampleSavePos.dDataStruct) ; fscanf(fp,"Score(M)%lfn",&exampleSavePos.dMath) ; fscanf(fp,"Score(E)%lfn",&exampleSa
21、vePos.dEnglish) ; fscanf(fp,"Score(Average)%lfn",&exampleSavePos.aver) ;*n");fscanf(fp,SavePos+;fclose(fp);Display();2.5 插入功能首先建立循環(huán),檢測插入的學(xué)號是否已存在,若存在則停止插入;若不存在, 則繼續(xù)進行輸入學(xué)生信息。void Insert_Score()int i , j, m, flag;i = SavePos;doflag=1; while(flag) flag = 0;printf(”請輸入第 %d 位:n",i+
22、1);printf(”請輸入學(xué)號檢驗該生是否已經(jīng)存在n");sea nf("%d",&examplei.S no);for(j=0;j<i;j+)if(examplei.S no = examplej.S no)printf("已存在該號,請檢查重新錄入!n");flag=1;break; /*重復(fù)立即退該層循環(huán),提高判斷速度*/Record(i);printf("錄入完畢 nn");Sort_Score();while(0);3.程序使用說明4.1主頁面將寫好的程序用 Microsoft Visual C+6.0打開并運行,首先出現(xiàn)的是主頁面,如圖4-1 所示。圖4-13.2錄入信息頁面輸入數(shù)字1,按提示進行學(xué)生成績的錄入,并按數(shù)字5保存信息。繼續(xù)錄入按數(shù)字9,結(jié)束錄入按數(shù)字0。如圖4-2圖4-23.3信息查詢頁面返回主頁面,按數(shù)字2,進行學(xué)生信息查詢,分為按學(xué)號查詢和姓名查詢。如 圖 4-3-1。圖 4-3-1按數(shù)字1與按數(shù)字2查詢結(jié)果頁面如圖4-3-2所示。圖 4-3-2圖 4-3-23.
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 樂山師范學(xué)院《人類與醫(yī)學(xué)遺傳學(xué)實驗》2023-2024學(xué)年第一學(xué)期期末試卷
- 江漢大學(xué)《工程經(jīng)濟與管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 華北電力大學(xué)《航空材料雙語》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖南環(huán)境生物職業(yè)技術(shù)學(xué)院《碳纖維材料》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖北財稅職業(yè)學(xué)院《應(yīng)用隨機過程》2023-2024學(xué)年第一學(xué)期期末試卷
- 自貢職業(yè)技術(shù)學(xué)院《化工原理(2)》2023-2024學(xué)年第一學(xué)期期末試卷
- 周口師范學(xué)院《行政倫理學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 浙江師范大學(xué)行知學(xué)院《口譯實訓(xùn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 鄭州衛(wèi)生健康職業(yè)學(xué)院《數(shù)控車床實訓(xùn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 玉溪職業(yè)技術(shù)學(xué)院《云南少數(shù)民族題材電影賞析》2023-2024學(xué)年第一學(xué)期期末試卷
- 2023年小學(xué)科學(xué)教研組教研工作總結(jié)(5篇)
- 三年級上冊遞等式計算練習(xí)300題及答案
- 政治畫像品德操守自我評價3篇
- 奶茶督導(dǎo)述職報告
- 山東萊陽核電項目一期工程水土保持方案
- 白熊效應(yīng)(修訂版)
- 視頻監(jiān)控維保項目投標(biāo)方案(技術(shù)標(biāo))
- 社會組織能力建設(shè)培訓(xùn)
- 立項報告蓋章要求
- 2022年睪丸腫瘤診斷治療指南
- 被執(zhí)行人給法院執(zhí)行局寫申請范本
評論
0/150
提交評論