版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
《C語言程序設計實驗》實驗報告實驗九文件編程(一)班級:_07某某專業(yè)1班_學號:__1234567890____姓名:___實驗樣例_____日期:___2008.6.10_____臺州學院數(shù)信學院計算機系制作
一、實驗目的和要求綜合使用基本結構、基本算法、函數(shù)、指針、結構體、鏈表等知識設計程序。二、實驗指導1、注意:本次實驗為綜合性實驗,需要綜合本課程以前所學內容,完成編制一個小型應用程序。需要復習課本以前所學內容,瀏覽上課講解的相關內容。2、實驗時間安排:準備實驗方案,上課時上機編程,課余完成整個設計并完成實驗報告。3、實驗具體要求:以一張假想的學生期中成績表為實驗對象,編制一個小型應用程序,可以考慮實現(xiàn)以下功能:(1)成績修改;(2)成績查詢;(3)成績統(tǒng)計;(4)成績輸入。也可以實現(xiàn)其他自定義的功能。界面采用簡易菜單形式,可以分級顯示。實驗需要進行以下步驟:需求分析、程序設計、程序調試、程序運行,并對程序運行效果進行分析,提出改進方案。初步鍛煉學生的程序設計能力、程序調試能力、對實驗結果進行綜合分析的能力。4、實驗成績評價標準:參見成績評定表。三、成績評定表(教師填寫)評分欄目評分成績程序實現(xiàn)的功能是否達到要求(對應內容第1、2點,參考第3、4點)程序代碼是否合理(對應內容第3點)程序運行結果描述是否清晰(對應內容第4點)評價是否合理,有無提出好的改進方案(對應內容第5點)實驗報告的撰寫形式是否規(guī)范,內容是否正確(對應全部內容)總評成績:四、實驗報告內容(參見樣本,請另附頁)實驗報告必須包含以下內容:1、對你設計的程序功能進行的較詳細描述。2、畫出程序測試用的學生期中成績表(包含:表頭、若干行包含學生成績等信息的數(shù)據(jù)行)。3、給出程序清單(包含結構體的聲明與定義、所有的函數(shù)聲明、所有的全局變量、所有的函數(shù)定義、必要的注釋。注:如果程序過長,可以不用給出所有的函數(shù)定義,只給出主要的函數(shù)定義)。4、運行結果(寫出運行時的主界面、各模塊的實現(xiàn)界面等,不作具體要求,但要求能清晰地體現(xiàn)出程序的功能)。5、對你的設計作一個評價(可以包含你所花的時間、精力,你遇到的困難及如何解決的,你的設計過程所遇到的其他事情;必須包含你對設計的客觀評價,以及提出的改進方案)。
1、程序功能描述:(略)2、成績表樣表:學號姓名性別語文數(shù)學英語總分1001張三M7885501002李四M8979691003王五F8576871004錢六M6445701005趙七F9293943、程序清單:(紅色部分是和上一個程序的區(qū)別之處)#include<stdio.h>structstudent/*期中成績表的結構聲明*/{ intnum; charname[20]; charsex; floatYuWen; floatShuXue; floatYingYu; floattotle;};#defineMAX_STU_NUMBER100/*宏定義最大學生數(shù)為100人*/structstudentStu[MAX_STU_NUMBER];/*一次性定義100個學生的存儲空間*/intSTU_NUMBER;/*存放學生數(shù)*/char*FileName="chengji.txt";/*成績存放的文件*//*所有的函數(shù)聲明:*/intSelectMainMenu();/*顯示并選擇主菜單。返回:被選擇的菜單項*/voidModify();/*成績修改模塊*/voidShow();/*成績查詢模塊*/voidStat();/*成績統(tǒng)計模塊*/voidAppend();/*成績輸入模塊*/voidStatAve(float*AveYuWen,float*AveShuXue,float*AveYingYu);/*統(tǒng)計平均分*/intFindStudent(intnum);/*根據(jù)學號查找某一學生*/voidSetAllTotle();/*計算所有學生總分*/voidSetTotle(intNo);/*計算第No個學生總分*/voidShowAllStudent();/*顯示所有成績*/voidShowTitle();/*顯示表頭信息*/voidShowStudent(intNo);/*顯示第No個的學生信息*/voidRead();/*打開文件,讀出成績。設置學生人數(shù)到STU_NUMBER*/voidWrite();/*將成績寫入文件*/voidmain(){ intisend=0;/*程序結束標志量,0表示不結束,1表示結束*/ Read();/*打開文件,讀出成績。設置學生人數(shù)到STU_NUMBER*/ SetAllTotle();/*計算所有學生總分*/ while(1) { switch(SelectMainMenu())/*顯示并選擇主菜單*/ { case1:/*成績修改*/ Modify();/*調用成績修改函數(shù)*/ break; case2:/*成績查詢*/ Show();/*調用成績查詢函數(shù)*/ break; case3:/*成績統(tǒng)計*/ Stat();/*調用成績統(tǒng)計函數(shù)*/ break; case4:/*成績輸入*/ Append();/*成績輸入模塊*/ break; case5:/*退出系統(tǒng)*/ Write();/*退出前保存成績*/ printf("\n謝謝您的使用,再見!\n\n"); isend=1;/*設置程序結束標志*/ break; } if(isend)break;/*程序結束*/ }}voidRead()/*打開文件,讀出成績。設置學生人數(shù)到STU_NUMBER*/{ FILE*fp;/*指向文件的指針*/ structstudent*p; fp=fopen(FileName,"r");/*以讀的方式打開文件*/ STU_NUMBER=0; if(fp==NULL)return;/*打開文件失敗*/ for(p=Stu;;p++,STU_NUMBER++)/*循環(huán)讀出數(shù)據(jù)*/ { if(fscanf(fp,"%d%s%c%f%f%f",&p->num,p->name,&p->sex,&p->YuWen,&p->ShuXue,&p->YingYu)==EOF) break; } fclose(fp);/*關閉文件*/}voidWrite()/*將成績寫入文件*/{ FILE*fp;/*指向文件的指針*/ structstudent*p; fp=fopen(FileName,"w");/*以寫的方式打開文件(會刪掉原來文件)*/ if(fp==NULL)return;/*打開文件失敗*/ for(p=Stu;p<Stu+STU_NUMBER;p++)/*循環(huán)讀出數(shù)據(jù)*/ { fprintf(fp,"%d%s%c%f%f%f\n",p->num,p->name,p->sex,p->YuWen,p->ShuXue,p->YingYu); } fclose(fp);/*關閉文件*/}intSelectMainMenu()/*顯示并選擇主菜單。返回:被選擇的菜單項*/{ intmenu_no=0; do /*顯示并選擇菜單*/ { printf("\n===============================\n"); printf("《高二(3)班期中成績管理程序》\n"); printf("作者:應老師\n"); printf("===============================\n"); printf("主菜單:\n"); printf("1–成績修改\n"); printf("2–成績查詢\n"); printf("3–成績統(tǒng)計\n"); printf("4–成績輸入\n"); printf("5–退出系統(tǒng)\n"); printf("請選擇(1-5):"); scanf("%d",&menu_no); }while(menu_no<1&&menu_no>5); /*直到選擇出正確的序號*/ returnmenu_no;}voidModify()/*成績修改模塊*/{ intn,i; while(1) { printf("\n====成績修改====\n"); printf("請輸入學號(輸入0退出成績修改):"); scanf("%d",&n); if(n==0)break;/*退出成績修改模塊*/ if((i=FindStudent(n))>=0)/*表示找到學號為n的學生*/ { ShowTitle();/*顯示表頭信息*/ ShowStudent(i);/*顯示該學生信息*/ printf("請輸入成績(語文,數(shù)學,英語):"); scanf("%f,%f,%f",&Stu[i].YuWen,&Stu[i].ShuXue,&Stu[i].YingYu); SetTotle(i);/*計算該學生總分*/ printf("----修改成功----\n"); } elseprintf("----找不到該學號----\n"); }}voidShow()/*成績查詢模塊*/{ intn,i; while(1) { printf("\n====成績查詢====\n"); printf("請輸入學號(輸入0退出成績查詢,輸入1查詢全部):"); scanf("%d",&n); if(n==0)break;/*退出成績查詢模塊*/ if(n==1)ShowAllStudent();/*顯示所有成績*/ elseif((i=FindStudent(n))>=0)/*找到學號為n的學生*/ { ShowTitle();/*顯示表頭信息*/ ShowStudent(i);/*顯示該學生信息*/ } elseprintf("----找不到該學號----\n"); }}voidStat()/*成績統(tǒng)計模塊*/{ floatAveYuWen,AveShuXue,AveYingYu; StatAve(&AveYuWen,&AveShuXue,&AveYingYu);/*統(tǒng)計三門課的班級平均分*/ printf("\n====成績統(tǒng)計====\n"); printf("學生人數(shù):%d\n",STU_NUMBER); printf("語文平均分:%6.2f\n",AveYuWen); printf("數(shù)學平均分:%6.2f\n",AveShuXue); printf("英語平均分:%6.2f\n",AveYingYu);}voidAppend()/*成績輸入模塊*/{ structstudent*p; do { p=Stu+STU_NUMBER; printf("==========成績輸入==========\n"); printf("輸入(學號姓名性別語文數(shù)學英語)(000000退出):"); scanf("%d%s%c%f%f%f",&p->num,p->name,&p->sex,&p->YuWen,&p->ShuXue,&p->YingYu); if(p->num==0)break; SetTotle(STU_NUMBER);/*求出總分*/ STU_NUMBER++; }while(1);}/*統(tǒng)計三門課的班級平均分,用指針參數(shù)返回*/voidStatAve(float*AveYuWen,float*AveShuXue,float*AveYingYu){ inti; floatsumYuWen=0,sumShuXue=0,sumYingYu=0; for(i=0;i<STU_NUMBER;i++) { sumYuWen+=Stu[i].YuWen; sumShuXue+=Stu[i].ShuXue; sumYingYu+=Stu[i].YingYu; } *AveYuWen=sumYuWen/STU_NUMBER; *AveShuXue=sumShuXue/STU_NUMBER; *AveYingYu=sumYingYu/STU_NUMBER;}/*根據(jù)學號查找某一學生。返回:-1沒找到,>=0該學生所在數(shù)組的下標*/intFindStudent(intnum){ inti; for(i=0;i<STU_NUMBER;i++) if(Stu[i].num==num)break; if(i<STU_NUMBER)returni;/*找到*/ elseretu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024自然人之間借款合同范本
- 2025年度城市綜合體場地合作經營合同
- 2025年度文化產業(yè)園物業(yè)管理與文化活動策劃服務協(xié)議3篇
- 2024版教育機構裝潢工程合同樣本
- 二零二四年度9A文智能家居系統(tǒng)定制開發(fā)合同
- 2024版環(huán)評工程服務合同范本大全
- 2025年度生態(tài)農業(yè)用地承包種植合作合同規(guī)范文本3篇
- 二零二四年度BIM可視化展示與演示合同
- 二零二五年度廁所改造工程環(huán)保標準制定合同2篇
- 二零二五年度金融借款合同電子化轉型的法律挑戰(zhàn)3篇
- 離職分析報告
- 春節(jié)家庭用電安全提示
- 醫(yī)療糾紛預防和處理條例通用課件
- 廚邦醬油推廣方案
- 乳腺癌診療指南(2024年版)
- 高三數(shù)學寒假作業(yè)1
- 保險產品創(chuàng)新與市場定位培訓課件
- (完整文本版)體檢報告單模版
- 1例左舌鱗癌手術患者的圍手術期護理體會
- (完整)100道兩位數(shù)加減兩位數(shù)口算題(難)
- 鋼結構牛腿計算
評論
0/150
提交評論