![C語言課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/9/d45a75e2-595c-416d-9757-5a9f7134545b/d45a75e2-595c-416d-9757-5a9f7134545b1.gif)
![C語言課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/9/d45a75e2-595c-416d-9757-5a9f7134545b/d45a75e2-595c-416d-9757-5a9f7134545b2.gif)
![C語言課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/9/d45a75e2-595c-416d-9757-5a9f7134545b/d45a75e2-595c-416d-9757-5a9f7134545b3.gif)
![C語言課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/9/d45a75e2-595c-416d-9757-5a9f7134545b/d45a75e2-595c-416d-9757-5a9f7134545b4.gif)
![C語言課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/9/d45a75e2-595c-416d-9757-5a9f7134545b/d45a75e2-595c-416d-9757-5a9f7134545b5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、湖南涉外經(jīng)濟(jì)學(xué)院c語言課程設(shè)計(jì) 姓名: *專業(yè):材料成型及控制工程班級(jí):0702指導(dǎo)老師及職稱:*(教授)學(xué)部:機(jī)械工程學(xué)部完成日期:2009年12月 25日學(xué)生成績管理系統(tǒng)9.0設(shè)計(jì)報(bào)告一. 概述根據(jù)設(shè)計(jì)任務(wù)書要求編寫一個(gè)學(xué)生成績管理程序。程序能實(shí)現(xiàn)的基本功能有:1. 成績錄入,輸入學(xué)生的學(xué)號(hào)、姓名、性別、所學(xué)專業(yè)、所在班級(jí)和6門課程的成績,并保存在數(shù)據(jù)文件student_grade.dat中。 2. 成績查詢,輸入一個(gè)學(xué)生的學(xué)號(hào),能從student_grade.dat文件中,查找到對應(yīng)的學(xué)生成績信息,并顯示在屏幕上。 3. 成績修改,輸入一個(gè)學(xué)生的學(xué)號(hào),能從student_grade.da
2、t文件中,查找到對應(yīng)的學(xué)生成績信息,并顯示在屏幕上(成績信息編號(hào))。選擇需要修改的成績編號(hào)后,可輸入一個(gè)新的成績,替換原有的成績,并改寫數(shù)據(jù)文件。 4. 刪除學(xué)生的成績,輸入一個(gè)學(xué)生的學(xué)號(hào),能從student_grade.dat文件中,查找到對應(yīng)的學(xué)生成績信息,并顯示在屏幕上。選擇是否刪除該學(xué)生成績,如果選擇是,則在數(shù)據(jù)文件中做刪除處理(將該記錄加注刪除標(biāo)記)。 5. 恢復(fù)已刪除學(xué)生的成績、查詢。對學(xué)生個(gè)人成績求總成績和求平均成績。二. 需求分析能對學(xué)生的學(xué)號(hào)、高等數(shù)學(xué)、大學(xué)英語、大學(xué)物理、機(jī)械設(shè)計(jì)、機(jī)械制圖、工程力學(xué)六門課程成績進(jìn)行管理。管理功能包括:添加學(xué)生成績、查詢學(xué)生成績、修改學(xué)生成績
3、、刪除學(xué)生成績、恢復(fù)刪除學(xué)生成績。三. 概要設(shè)計(jì) 1.添加學(xué)生成績 2.查詢學(xué)生成績學(xué)生成績管理 3.修改學(xué)生成績 4.刪除學(xué)生成績 5.恢復(fù)刪除學(xué)生成績 6.退出系統(tǒng)四. 詳細(xì)設(shè)計(jì)學(xué)生成績:刪除標(biāo)志 字符 *為已刪除標(biāo)志學(xué)號(hào) 長整數(shù) (輸入的學(xué)號(hào)不能為負(fù))姓名 字符串 最長10個(gè)字符 (只能輸入漢字)性別 字符 男-m,女-f (只能輸入男或女)所學(xué)專業(yè) 字符串 最長20個(gè)字符所在班級(jí) 字符串 最長20個(gè)字符高等數(shù)學(xué)成績 整數(shù) (只能輸入0100)大學(xué)英語成績 整數(shù) (只能輸入0100)大學(xué)物理成績 整數(shù) (只能輸入0100)機(jī)械設(shè)計(jì)成績 整數(shù) (只能輸入0100)機(jī)械制圖成績 整數(shù) (只能
4、輸入0100)工程力學(xué)成績 整數(shù) (只能輸入0100)各科總成績 整數(shù) 平均成績 實(shí)數(shù) 兩位小數(shù)數(shù)據(jù)文件:1.文件名:“student.dat”2.文件格式:二進(jìn)制隨機(jī)文件,每個(gè)學(xué)生一條記錄。主菜單:1.添加學(xué)生成績2.查詢學(xué)生成績3.修改學(xué)生成績4.刪除學(xué)生成績5.恢復(fù)刪除學(xué)生成績0.退出處理函數(shù):1.添加學(xué)生成績 addstuden() (1)以“添加方式”打開學(xué)生數(shù)據(jù)文件“student.dat” (2)輸入一個(gè)學(xué)生的姓名,性別,所學(xué)專業(yè),所在班級(jí)和各科成績。 (3)將輸入的學(xué)生各科成績寫入“student.dat”文件 (4)繼續(xù)添加?(y/n),“y”返回(2),否則關(guān)閉文件,返回主
5、菜單。處理函數(shù):2.查詢學(xué)生成績 querystuden() (1)以“只讀方式”打開學(xué)生數(shù)據(jù)文件“student.dat” (2)輸入一個(gè)學(xué)生的學(xué)號(hào) (3)根據(jù)輸入學(xué)號(hào)在文件中查找對應(yīng)的學(xué)生,找到顯示學(xué)生的各科成績,找不到,提“該學(xué)號(hào)的學(xué)生不存在?!?(4)繼續(xù)查詢?(y/n),“y”返回(2),否則關(guān)閉文件,返回主菜單。處理函數(shù):3.修改學(xué)生成績 updatestudent() (1)以“讀寫方式”打開學(xué)生數(shù)據(jù)文件“student.dat” (2)輸入一個(gè)學(xué)生的學(xué)號(hào) (3)根據(jù)輸入學(xué)號(hào)在文件中查找對應(yīng)的學(xué)生,找到,編號(hào)顯示學(xué)生的各科成績,找不到提示“該學(xué)號(hào)的學(xué)生不存在?!?(4)選擇修改項(xiàng)
6、,輸入修改內(nèi)容; (5)修改結(jié)束,改寫文件內(nèi)容,否則返回(4); (6)繼續(xù)修改?(y/n),“y”返回(2),否則關(guān)閉文件,返回主菜單。處理函數(shù):4.刪除學(xué)生成績 deletestudent() (1)以“讀寫方式”打開學(xué)生數(shù)據(jù)文件“student.dat” (2)輸入要?jiǎng)h除學(xué)生的學(xué)號(hào) (3)根據(jù)輸入學(xué)號(hào)在文件中查找對應(yīng)的學(xué)生,找到,顯示學(xué)生的各科成績,找不到,提示“該學(xué)號(hào)的學(xué)生不存在?!?(4)找到,選擇“確定刪除該學(xué)生嗎?(y/n)”,“y”將該學(xué)生信息的填寫刪除標(biāo)志; (5)繼續(xù)刪除?(y/n),“y”返回(2),否則關(guān)閉文件,返回主菜單。處理函數(shù):5.恢復(fù)刪除學(xué)生成績 restore
7、student() (1)以“讀寫方式”打開學(xué)生數(shù)據(jù)文件“student.dat” (2)輸入要恢復(fù)學(xué)生的學(xué)號(hào) (3)根據(jù)輸入學(xué)號(hào)在文件中查找已刪除學(xué)生中是否有對應(yīng)的學(xué)生,找到,顯示學(xué)生的各科成績,找不到,提示“該學(xué)號(hào)的學(xué)生不存在?!?(4)找到,選擇“是恢復(fù)該學(xué)生嗎?(y/n)”,“y”將該學(xué)生信息的刪除標(biāo)志去掉; (5)繼續(xù)恢復(fù)?(y/n),“y”返回(2),否則關(guān)閉文件,返回主菜單。五. 代碼設(shè)計(jì)應(yīng)包含的頭文件:#include #include #include #include #include 數(shù)據(jù)結(jié)構(gòu):(結(jié)構(gòu)體設(shè)計(jì))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;學(xué)生成績顯示函數(shù):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(學(xué)號(hào):%dn,pst-number);printf(
10、姓名:%sn,pst-name);if(pst-sex=m)printf(性別:男n);if(pst-sex=f)printf(性別:女n);printf(所學(xué)專業(yè):%sn,pst-speciality); printf(所在班級(jí):%sn,pst-classname);printf(高等數(shù)學(xué):%dn,pst-highermathematics);printf(大學(xué)英語:%dn,pst-collegeenglish);printf(大學(xué)物理:%dn,pst-collegephysics);printf(機(jī)械設(shè)計(jì):%dn,pst-mechanicaldesign);printf(機(jī)械制圖:%dn,
11、pst-mechanicaldrawing); printf(工程力學(xué):%dn,pst-engineeringmechanics); printf(總成績:%dn,pst-sum);printf(平均成績:%.2fn,pst-average);printf(=n);/*姓名控制函數(shù)*/int jy_xm(char *st_name) /*檢驗(yàn)姓名*/ 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個(gè)*/ printf(tt姓名長度大于5個(gè)!請重新輸入!n); dowhile(getchar()!=n); return 0; return 1; /*字符串全為漢字返回真*/主函數(shù):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.添加學(xué)生成績n);printf(2.查詢學(xué)生成績n);printf(3.修改學(xué)生成績n);printf(
14、4.刪除學(xué)生成績n);printf(5.恢復(fù)刪除學(xué)生成績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;添加學(xué)生成績處理函數(shù):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(添加學(xué)生成績n);printf(=n);st.flag= ;printf(學(xué)號(hào):);scanf(%d,&st.number); while(st.number100|st.highermathematics100|st.collegeenglish100|st.collegephysics100|st.m
16、echanicaldesign100|st.mechanicaldrawing100|st.engineeringmechanics0) getchar(); printf(n請輸入工程力學(xué)成績0-100:); scanf(%d,&st.engineeringmechanics); fwrite(&st,sizeof(student),1,fp); printf(=n); printf(繼續(xù)添加嗎?(y/n);if(getch()!=y)fclose(fp);fg=0;查詢學(xué)生成績處理函數(shù):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(查詢學(xué)生成績n);printf(請輸入查詢學(xué)生學(xué)號(hào):);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(該學(xué)號(hào)的學(xué)生不存在。n);print
18、f(繼續(xù)查詢嗎?(y/n);if(getch()!=y)fclose(fp);fg=0;修改學(xué)生成績處理函數(shù):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(修改學(xué)生成績n);printf(請輸入修改學(xué)生學(xué)號(hào):);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(修改學(xué)生成績n); printf(請輸入修改學(xué)生學(xué)號(hào):%dn,num); printf(=n);printf(1.學(xué)號(hào):%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(該學(xué)號(hào)的學(xué)生不存在。n);printf(繼續(xù)查詢嗎?(y/n);if(getch()!=y)fclose(fp);fg=0;刪除學(xué)生成績處理函數(shù):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(刪除學(xué)生成績n);printf(請輸入刪除學(xué)生學(xué)號(hào):);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(確定刪除該學(xué)生成績嗎?(y/n);if(getch()=y)fseek(fp,-(long)(sizeof(student),seek_cur);fputc(*,fp);break;if(f
23、g1=0)printf(該學(xué)號(hào)的學(xué)生不存在。n);printf(n繼續(xù)刪除嗎?(y/n);if(getch()!=y)fclose(fp);fg=0;恢復(fù)刪除學(xué)生成績處理函數(shù):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(恢復(fù)刪除學(xué)生成績n);printf(請輸入已刪除學(xué)生學(xué)號(hào):);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(確定恢復(fù)該學(xué)生成績嗎?(y/n);if(getch()=y)fseek(fp,-(long)(sizeof(student),seek_cur);fputc( ,fp);break;if(fg1=0)printf(該學(xué)號(hào)的學(xué)生不存在。n);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 房屋租賃合同的擔(dān)保合同
- 商砼購銷的合同
- 采購合同的主要類型
- 物流公司承運(yùn)合同
- 網(wǎng)絡(luò)營銷執(zhí)行作業(yè)指導(dǎo)書
- 平面設(shè)計(jì)軟件應(yīng)用作業(yè)指導(dǎo)書
- 公司給員工的勞動(dòng)合同
- 2025年南京貨運(yùn)從業(yè)資格證500道題目答案大全
- 電力分配合同(2篇)
- 2024-2025學(xué)年高中英語課時(shí)分層作業(yè)3含解析新人教版選修9
- 工貿(mào)行業(yè)企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化建設(shè)實(shí)施指南
- T-CACM 1560.6-2023 中醫(yī)養(yǎng)生保健服務(wù)(非醫(yī)療)技術(shù)操作規(guī)范穴位貼敷
- 2024年全國統(tǒng)一考試高考新課標(biāo)Ⅱ卷數(shù)學(xué)試題(真題+答案)
- 人教版小學(xué)數(shù)學(xué)一年級(jí)下冊第1-4單元教材分析
- JTS-215-2018碼頭結(jié)構(gòu)施工規(guī)范
- 財(cái)務(wù)實(shí)習(xí)生合同
- 2024年長沙衛(wèi)生職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫含答案
- 2024山西省文化旅游投資控股集團(tuán)有限公司招聘筆試參考題庫附帶答案詳解
- 地質(zhì)災(zāi)害危險(xiǎn)性評(píng)估的基本知識(shí)
- (正式版)SHT 3075-2024 石油化工鋼制壓力容器材料選用規(guī)范
- 出租房房東消防培訓(xùn)
評(píng)論
0/150
提交評(píng)論