




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、湖南涉外經濟學院c語言課程設計 姓名: *專業:材料成型及控制工程班級:0702指導老師及職稱:*(教授)學部:機械工程學部完成日期:2009年12月 25日學生成績管理系統9.0設計報告一. 概述根據設計任務書要求編寫一個學生成績管理程序。程序能實現的基本功能有:1. 成績錄入,輸入學生的學號、姓名、性別、所學專業、所在班級和6門課程的成績,并保存在數據文件student_grade.dat中。 2. 成績查詢,輸入一個學生的學號,能從student_grade.dat文件中,查找到對應的學生成績信息,并顯示在屏幕上。 3. 成績修改,輸入一個學生的學號,能從student_grade.da
2、t文件中,查找到對應的學生成績信息,并顯示在屏幕上(成績信息編號)。選擇需要修改的成績編號后,可輸入一個新的成績,替換原有的成績,并改寫數據文件。 4. 刪除學生的成績,輸入一個學生的學號,能從student_grade.dat文件中,查找到對應的學生成績信息,并顯示在屏幕上。選擇是否刪除該學生成績,如果選擇是,則在數據文件中做刪除處理(將該記錄加注刪除標記)。 5. 恢復已刪除學生的成績、查詢。對學生個人成績求總成績和求平均成績。二. 需求分析能對學生的學號、高等數學、大學英語、大學物理、機械設計、機械制圖、工程力學六門課程成績進行管理。管理功能包括:添加學生成績、查詢學生成績、修改學生成績
3、、刪除學生成績、恢復刪除學生成績。三. 概要設計 1.添加學生成績 2.查詢學生成績學生成績管理 3.修改學生成績 4.刪除學生成績 5.恢復刪除學生成績 6.退出系統四. 詳細設計學生成績:刪除標志 字符 *為已刪除標志學號 長整數 (輸入的學號不能為負)姓名 字符串 最長10個字符 (只能輸入漢字)性別 字符 男-m,女-f (只能輸入男或女)所學專業 字符串 最長20個字符所在班級 字符串 最長20個字符高等數學成績 整數 (只能輸入0100)大學英語成績 整數 (只能輸入0100)大學物理成績 整數 (只能輸入0100)機械設計成績 整數 (只能輸入0100)機械制圖成績 整數 (只能
4、輸入0100)工程力學成績 整數 (只能輸入0100)各科總成績 整數 平均成績 實數 兩位小數數據文件:1.文件名:“student.dat”2.文件格式:二進制隨機文件,每個學生一條記錄。主菜單:1.添加學生成績2.查詢學生成績3.修改學生成績4.刪除學生成績5.恢復刪除學生成績0.退出處理函數:1.添加學生成績 addstuden() (1)以“添加方式”打開學生數據文件“student.dat” (2)輸入一個學生的姓名,性別,所學專業,所在班級和各科成績。 (3)將輸入的學生各科成績寫入“student.dat”文件 (4)繼續添加?(y/n),“y”返回(2),否則關閉文件,返回主
5、菜單。處理函數:2.查詢學生成績 querystuden() (1)以“只讀方式”打開學生數據文件“student.dat” (2)輸入一個學生的學號 (3)根據輸入學號在文件中查找對應的學生,找到顯示學生的各科成績,找不到,提“該學號的學生不存在?!?(4)繼續查詢?(y/n),“y”返回(2),否則關閉文件,返回主菜單。處理函數:3.修改學生成績 updatestudent() (1)以“讀寫方式”打開學生數據文件“student.dat” (2)輸入一個學生的學號 (3)根據輸入學號在文件中查找對應的學生,找到,編號顯示學生的各科成績,找不到提示“該學號的學生不存在?!?(4)選擇修改項
6、,輸入修改內容; (5)修改結束,改寫文件內容,否則返回(4); (6)繼續修改?(y/n),“y”返回(2),否則關閉文件,返回主菜單。處理函數:4.刪除學生成績 deletestudent() (1)以“讀寫方式”打開學生數據文件“student.dat” (2)輸入要刪除學生的學號 (3)根據輸入學號在文件中查找對應的學生,找到,顯示學生的各科成績,找不到,提示“該學號的學生不存在?!?(4)找到,選擇“確定刪除該學生嗎?(y/n)”,“y”將該學生信息的填寫刪除標志; (5)繼續刪除?(y/n),“y”返回(2),否則關閉文件,返回主菜單。處理函數:5.恢復刪除學生成績 restore
7、student() (1)以“讀寫方式”打開學生數據文件“student.dat” (2)輸入要恢復學生的學號 (3)根據輸入學號在文件中查找已刪除學生中是否有對應的學生,找到,顯示學生的各科成績,找不到,提示“該學號的學生不存在?!?(4)找到,選擇“是恢復該學生嗎?(y/n)”,“y”將該學生信息的刪除標志去掉; (5)繼續恢復?(y/n),“y”返回(2),否則關閉文件,返回主菜單。五. 代碼設計應包含的頭文件:#include #include #include #include #include 數據結構:(結構體設計)typedef struct char flag; int nu
8、mber; int highermathematics; int collegeenglish; int collegephysics; int mechanicaldesign; int mechanicaldrawing; int engineeringmechanics; float average; int sum; char name10; char sex; char speciality20; char classname20;student;學生成績顯示函數:void display(student *pst)int dt;pst-sum=(pst-highermathemat
9、ics+pst-collegeenglish+pst-collegephysics+pst-mechanicaldrawing+pst-mechanicaldesign+pst-engineeringmechanics);pst-average=(pst-highermathematics+pst-collegeenglish+pst-collegephysics+pst-mechanicaldrawing+pst-mechanicaldesign+pst-engineeringmechanics)/6; printf(=n);printf(學號:%dn,pst-number);printf(
10、姓名:%sn,pst-name);if(pst-sex=m)printf(性別:男n);if(pst-sex=f)printf(性別:女n);printf(所學專業:%sn,pst-speciality); printf(所在班級:%sn,pst-classname);printf(高等數學:%dn,pst-highermathematics);printf(大學英語:%dn,pst-collegeenglish);printf(大學物理:%dn,pst-collegephysics);printf(機械設計:%dn,pst-mechanicaldesign);printf(機械制圖:%dn,
11、pst-mechanicaldrawing); printf(工程力學:%dn,pst-engineeringmechanics); printf(總成績:%dn,pst-sum);printf(平均成績:%.2fn,pst-average);printf(=n);/*姓名控制函數*/int jy_xm(char *st_name) /*檢驗姓名*/ int pd; char *p; p=st_name; while(*p!=0) /*姓名只能用中文*/ pd=(int)*p; if(pd0) puts(tt姓名只能用中文,請重新輸入!n); return 0; else p+; /*使指針加
12、1,指向下一漢字*/ if(getchar()!=n) /*姓名長度不得大于5個*/ printf(tt姓名長度大于5個!請重新輸入!n); dowhile(getchar()!=n); return 0; return 1; /*字符串全為漢字返回真*/主函數:int main(int argc, char* argv)char ch;void addstuden(),querystuden();void updatestudent(),deletestudent();void restorestudent();dosystem(cls); printf(nn); printf(tt=n);
13、 /*版本信息*/ printf(tt student achievement management system 9.0 n); printf(tt=n); printf(tt author:materials class0702 genius jack n); printf(tt tutor:luomingliang n); printf(tt completion time:december 23, 2009 n); printf(tt=n); printf(n); printf(1.添加學生成績n);printf(2.查詢學生成績n);printf(3.修改學生成績n);printf(
14、4.刪除學生成績n);printf(5.恢復刪除學生成績n);printf(0.退出n);printf(=n);printf(請選擇:); ch=getch();printf(%c,ch);switch(ch)case 1:addstuden();break;case 2:querystuden();break;case 3:updatestudent();break;case 4:deletestudent();break;case 5:restorestudent();break;case 0:exit(0);while(1);return 0;添加學生成績處理函數:void addstu
15、den()student st;long dt;file *fp;short fg=1;char str2;if(fp=fopen(student.dat,ab)=null)printf(文件打不開!n); getch();return;while(fg)system(cls);printf(添加學生成績n);printf(=n);st.flag= ;printf(學號:);scanf(%d,&st.number); while(st.number100|st.highermathematics100|st.collegeenglish100|st.collegephysics100|st.m
16、echanicaldesign100|st.mechanicaldrawing100|st.engineeringmechanics0) getchar(); printf(n請輸入工程力學成績0-100:); scanf(%d,&st.engineeringmechanics); fwrite(&st,sizeof(student),1,fp); printf(=n); printf(繼續添加嗎?(y/n);if(getch()!=y)fclose(fp);fg=0;查詢學生成績處理函數:void querystuden()student st;long dt,num;file *fp;sh
17、ort fg=1,fg1;if(fp=fopen(student.dat,rb)=null)printf(文件打不開!n); getch();return;while(fg)system(cls);printf(查詢學生成績n);printf(請輸入查詢學生學號:);scanf(%d,&num);rewind(fp);fg1=0;while(!feof(fp)fread(&st,sizeof(student),1,fp);if(st.flag= & st.number=num)display(&st);fg1=1;break;if(fg1=0)printf(該學號的學生不存在。n);print
18、f(繼續查詢嗎?(y/n);if(getch()!=y)fclose(fp);fg=0;修改學生成績處理函數:void updatestudent()student st;long dt,num;file *fp;short fg=1,fg1;char ch,str20;if(fp=fopen(student.dat,rb+)=null)printf(文件打不開!n);getch();return;while(fg)system(cls);printf(修改學生成績n);printf(請輸入修改學生學號:);scanf(%d,&num);rewind(fp);fg1=0;while(!feof
19、(fp)fread(&st,sizeof(student),1,fp); if(st.flag= & st.number=num) do system(cls);printf(修改學生成績n); printf(請輸入修改學生學號:%dn,num); printf(=n);printf(1.學號:%dn,st.number); while(st.number100|st.highermathematics100|st.collegeenglish100|st.collegephysics100|st.mechanicaldesign100|st.mechanicaldrawing100|st.e
20、ngineeringmechanics=1 & ch=7) printf(修改為:);scanf(%s,str); switch(ch) case 1:st.number=atoi(str);break; case 2:st.highermathematics=atoi(str);break; case 3:st.collegeenglish=atoi(str);break; case 4:st.collegephysics=atoi(str);break; case 5:st.mechanicaldesign=atoi(str);break; case 6:st.mechanicaldraw
21、ing=atoi(str);break; case 7:st.engineeringmechanics=atoi(str);break; while(ch!=0);fg1=1;break;if(fg1=0)printf(該學號的學生不存在。n);printf(繼續查詢嗎?(y/n);if(getch()!=y)fclose(fp);fg=0;刪除學生成績處理函數:void deletestudent()student st;long dt,num;file *fp;short fg=1,fg1;if(fp=fopen(student.dat,rb+)=null)printf(文件打不開!n);
22、getch();return;while(fg)system(cls);printf(刪除學生成績n);printf(請輸入刪除學生學號:);scanf(%d,&num);rewind(fp);fg1=0;while(!feof(fp)fread(&st,sizeof(student),1,fp);if(st.flag= & st.number=num)display(&st); fg1=1;printf(確定刪除該學生成績嗎?(y/n);if(getch()=y)fseek(fp,-(long)(sizeof(student),seek_cur);fputc(*,fp);break;if(f
23、g1=0)printf(該學號的學生不存在。n);printf(n繼續刪除嗎?(y/n);if(getch()!=y)fclose(fp);fg=0;恢復刪除學生成績處理函數:void restorestudent()student st;long dt,num;file *fp;short fg=1,fg1;if(fp=fopen(student.dat,rb+)=null)printf(文件打不開!n); getch();return;while(fg)system(cls);printf(恢復刪除學生成績n);printf(請輸入已刪除學生學號:);scanf(%d,&num);rewind(fp);fg1=0;while(!feof(fp)fread(&st,sizeof(student),1,fp);if(st.flag=* & st.number=num)display(&st);fg1=1;printf(確定恢
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑公司鋼結構焊接質量檢測管理制度
- 建筑公司地鐵工程軌道平順度測量檢查制度
- 第2課時 分數乘整數(2)教案 人教版數學六年級上冊
- 3月植物生產與環境習題及答案
- 2025年4月實驗動物復習題+答案
- 胎兒護理消化系統護理試卷
- 勘探工職業道德考試試卷
- 在實踐中領悟“先學后教當堂訓練”教學模式
- 2025年煙草山東公司筆試試題(含答案)
- 航空安全課件教學
- 內容參考zipc教程
- FZ/T 43022-2011莨綢工藝飾品
- 皮部經筋推拿技術
- 基金投資管理系統O32用戶手冊-股指期貨套保系統
- 機械原理課程設計-自動打印機設計說明書
- 房地產湯臣樓書
- 冰山模型提出者麥克利蘭教授6族勝任力分析模型
- 建設工程消防設計審查申報表
- 江西省中考語文備考及答題技巧——語文考點及答題策略-人教版初中九年級全冊語文素材
- 成立生物安全委員會及工作制度管理辦法和職責
- 內科護理學消化系統試習題及答案
評論
0/150
提交評論