C語言課程設(shè)計(jì)學(xué)生考勤系統(tǒng)_第1頁
C語言課程設(shè)計(jì)學(xué)生考勤系統(tǒng)_第2頁
免費(fèi)預(yù)覽已結(jié)束,剩余30頁可下載查看

下載本文檔

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

文檔簡介

1、C 語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告設(shè)計(jì)題目: 學(xué)生考勤系統(tǒng)設(shè)計(jì)專業(yè)微電子科學(xué)與工程班級微電 131131學(xué)生趙楊怡指導(dǎo)教師年學(xué)期設(shè)計(jì)任務(wù):C C 語言課程設(shè)計(jì)任務(wù)書 1010題目:學(xué)生考勤系統(tǒng)設(shè)計(jì)功能:學(xué)生考勤系統(tǒng)應(yīng)包含各班學(xué)生的全部信息。 每個(gè)學(xué)生是一條記錄,包 括姓名、性別、學(xué)號、日期、節(jié)次、出勤情況等信息。本系統(tǒng)可以模擬考勤 過程、記錄考勤結(jié)果,并能在課程結(jié)束后按照設(shè)定的考勤評分標(biāo)準(zhǔn)自動(dòng)給出 每個(gè)學(xué)生的考勤分?jǐn)?shù)。要求:1、用 C 語言實(shí)現(xiàn)程序設(shè)計(jì);2、利用結(jié)構(gòu)體進(jìn)行相關(guān)信息處理;3、系統(tǒng)的各個(gè)功能模塊要求用函數(shù)的形式實(shí)現(xiàn);4、界面友好(良好的人機(jī)交互),程序加必要的注釋。平時(shí)成績:驗(yàn)收答辯成績

2、:設(shè)計(jì)報(bào)告成績:總評成績:指導(dǎo)教師:、總體設(shè)計(jì)1 程序的總體設(shè)計(jì)確定界面,使用戶可選擇操作項(xiàng)目(錄入,修改,查詢,評分)。錄入功能:使用結(jié)構(gòu)體,要求用戶輸入姓名、性別、學(xué)號、日期、 節(jié)次、當(dāng)前出勤情況等信息,并寫入文件。修改功能: 使用戶輸入學(xué)號, 姓名其中一項(xiàng)可以修改考勤其信息。 對于修改功能的實(shí)現(xiàn),是先將所有文件內(nèi)容讀入到內(nèi)存中,然后修 改考勤值,最后再重新覆蓋寫入文件。查詢模塊:使用字符串比較函數(shù),利用循環(huán)找到對應(yīng)結(jié)構(gòu)體數(shù)組元素,然后輸出需要信息。對于查詢功能的實(shí)現(xiàn),同修改,是先將所有文件內(nèi)容讀入到內(nèi)存中,然后查找到其中某項(xiàng),最后輸出到屏 幕。評分模塊:系統(tǒng)根據(jù)總的應(yīng)道考勤數(shù)按照百分制,

3、求出每個(gè)學(xué)生 的分?jǐn)?shù),并輸出到屏幕。2. 數(shù)據(jù)結(jié)構(gòu)學(xué)生信息用結(jié)構(gòu)體記錄,包括姓名(字符數(shù)組)、性別(字 符型) 、日期(年月日三個(gè)字符數(shù)組)、節(jié)次(整型)、出情況(整 型)。3. 函數(shù)原型聲明 voidmain()/ 主函數(shù)voidi nput();錄入數(shù)據(jù)函數(shù)voidcha nge(); 修改數(shù)據(jù)函數(shù)voidsearch();查詢數(shù)據(jù)函數(shù)voidevaluate();計(jì)算總評函數(shù)、詳細(xì)設(shè)計(jì)1.1.main()函數(shù)voidmai n()voidi nput();錄入數(shù)據(jù)函數(shù)voidcha nge(); 修改數(shù)據(jù)函數(shù)voidsearch();查詢數(shù)據(jù)函數(shù)voidevaluate();計(jì)算總評函數(shù)

4、charitem;system(color34);printf( n);prin tf( n);printf(學(xué)生考勤管理系統(tǒng)n);prin tf( n); printf(BY 朱勝佳n);prin tf( n);prin tf( n);prin tf( n);printf(1.學(xué)生信息及考勤情況錄入n);prin tf( n);printf(2.學(xué)生信息及考勤情況修改n);prin tf( n);printf(3.學(xué)生信息及考勤情況查詢n);prin tf( n);printf( 4.學(xué)生考勤總評分?jǐn)?shù)查詢n);prin tf(n);prin tf( n); 用戶界面prin tf(n);pr

5、intf( 請選擇您需要的操作n);scan f(%c,&item);switch(item)case1:i nput();break; case2:cha nge();break; case3:search();break;case4:evaluate();break;/實(shí)現(xiàn)功能選擇流程圖:2.2.input ()函數(shù)voidi nput()in ti,j=O,jx=1;printf( *n);if(fp=fope n(date.txt,w)=NULL) printf(文件打開失敗n);exit(0);for(i=0;jx=1;i+)輸入信息循環(huán)for(;j=0;)輸入確認(rèn)循環(huán)get

6、char();學(xué)生基本信息錄入printf(請輸入第4 個(gè)學(xué)生的姓名,i+1);gets(stui. name);printf(請輸入第d 個(gè)學(xué)生的學(xué)號,i+1);gets(stui. nu mber);printf(請輸入第d 個(gè)學(xué)生的性別(男:m 女:f),i+1);stui.sex=getchar();printf(請輸入第d 個(gè)學(xué)生的生日(格式:年月日),i+1);scan f(%d%d%d,&stui.year,&stui.mo nth,&stui.day); printf( 請輸入第個(gè)學(xué)生的當(dāng)前考勤次數(shù),i+1);sca nf(%d, &stui.k

7、q);printf(您輸入的信息為姓名s 學(xué)號s 性別c 生日(年%d月%d0n0 重輸 1 確認(rèn),stui. name,stui. nu mber,stui.sex,stui.year,stui.m on th,stui.day);sca nf(%d,&j);輸入確認(rèn)j=0;if(fwrite(&stui,sizeof(structstude nt),1,fp)!=1)pri ntf(文件寫入錯(cuò)誤n);寫入文件prin tf(是否繼續(xù)輸入下一個(gè)學(xué)生信息 0 終止 1 繼續(xù)n);sca nf(%d,&jx); 繼續(xù)輸入選擇fclose(fp);printf(0 返回主菜

8、單n);getchar();a=getchar();getchar();if(a=0)mai n();返回主菜單流程圖:voidcha nge()in ti=0,j=0,sway,t,x;charname10, nu mber10;if(fp=fope n(date.txt,T)=NULL)printf( 文件打開失敗n); exit(0);for(i=0;feof(fp)=0;i+)fread(&stui,sizeof(structstude nt),1,fp);讀取文件內(nèi)容fclose(fp);/ 關(guān)閉文件printf( 選擇查找方式 1 按照姓名查找 2 按照學(xué)號查找);scan

9、 f(%d,&sway);printf( *學(xué)生考勤修改*n);將文件內(nèi)容讀入內(nèi)存*按照姓名查找開始*/if(sway=1)printf(請輸入需要修改學(xué)生的姓名);/prin tf(i=%d,i);sca nf(%s, name); for(j=0;t!=0;j+) t=strcmp(stuj. name, name);if(j=i)t=0;printf(未找到您所查詢的數(shù)據(jù),請重新輸入n);if(jvi)/ 查詢成功printf(您查找的學(xué)生信息如下n 姓名s 學(xué)號s 性別%c生日%d 年%d 月 %d 日當(dāng)前考勤次數(shù) %dn,stuj-1. name,stuj-1. number

10、,stuj-1.sex,stuj-1.year,stuj-1.mo nth,stuj-1.day,stuj-1.kq);prin tf( 是否修改該生考勤信息 0 否 1 是);/選擇是否修改考勤sca nf(%d, &x); 輸入選擇變量值if(x=1)printf(請輸入新的考勤值);sca nf(%d,&stuj-1.kq);/輸入新的考勤值if(fp=fope n( date.txt,w)=NULL)以只寫方式打開文件printf(文件打開失敗n);exit(0);for(j=0;ji;j+)if(fwrite(&stuj,sizeof(structstude

11、nt),1,fp)!=1)printf(文件寫入錯(cuò)誤n);/寫入文件fclose(fp);/關(guān)閉文件prin tf(是否繼續(xù)修改其他學(xué)生考勤 0 否 1 是);sca nf(%d, &x);if(x=1)cha nge();*按照學(xué)號查找開始*if(sway=2)printf(請輸入需要修改學(xué)生的學(xué)號);II prin tf(i=%d,i);sca nf(%s ,nu mber);for(j=0;t!=0;j+)t=strcmp(stuj. nu mber, nu mber);if(j=i)t=0;printf(未找到您所查詢的數(shù)據(jù),請重新輸入n);if(ji)II 查詢成功print

12、f(您查找的學(xué)生信息如下n 姓名s 學(xué)號s 性別%c生日%d 年%d 月 %d 日當(dāng)前考勤次數(shù) %dn,stuj-1. name,stuj-1. number,stuj-1.sex,stuj-1.year,stuj-1.mo nth,stuj-1.day,stuj-1.kq);prin tf(是否修改該生考勤信息 0 否 1 是);II 選擇是否修改考勤sca nf(%d, &x); 輸入選擇變量值if(x=1)printf(請輸入新的考勤值);sca nf(%d,&stuj-1.kq);/輸入新的考勤值if(fp=fope n( date.txt,w)=NULL)以只寫方式打

13、開文件printf( 文件打開失敗n);exit(0);for(j=0;ji;j+)if(fwrite(&stuj,sizeof(structstude nt),1,fp)!=1)printf(文件寫入錯(cuò)誤n);II寫入文件fclose(fp);II 關(guān)閉文件*按照姓名查找結(jié)束IIIIIIprintf( 是否繼續(xù)修改其他學(xué)生考勤 0 否 1 是); sea nf(%d, &x);if(x=1)cha nge();/*/printf(0返回主菜單n);getchar();a=getchar();getchar();if(a=0)mai n();開始按照學(xué)號查找結(jié)束打開文件將文件內(nèi)

14、容全部讀輸入sway 值選擇查結(jié)束4.4.search。函數(shù)voidsearch()in ti=O,j=O,sway,t,x; charname10, nu mber10;*n);if(fp=fope n(date.txtTr)=NULL)將文件內(nèi)容讀入內(nèi)存printf(文件打開失敗n);exit(0);for(i=0;feof(fp)=0;i+)fread(&stui,sizeof(structstude nt),1,fp);讀取文件內(nèi)容fclose(fp);/關(guān)閉文件printf( 選擇查找方式 1 按照姓名查找 2 按照學(xué)號查找);scan f(%d,&sway);按照姓

15、名查找開始*if(sway=1)printf(請輸入需要修改學(xué)生的姓名);/ prin tf(i=%d,i);sca nf(%s, name);for(j=0;t!=0;j+)t=strcmp(stuj. name, name);if(j=i)t=0;printf(未找到您所查詢的數(shù)據(jù),請重新輸入n);if(ji)/ 查詢成功printf(您查找的學(xué)生信息如下n 姓名s 學(xué)號s 性別%c生日旳%d 月 %d 日當(dāng)前考勤次數(shù) %dn,stuj-1. name,stuj-1. number,stuj-1.sex,stuj-1.year,stuj-1.mo nth,stuj-1.day,stuj-1

16、.kq);printf(是否繼續(xù)查詢其他學(xué)生信息 0 否 1 是);sca nf(%d, &x);printf( *學(xué)生信息查詢/if(x=1)search();/*/*/if(sway=2)printf(請輸入需要修改學(xué)生的學(xué)號);/ prin tf(i=%d,i);sca nf(%s ,nu mber);for(j=0;t!=0;j+)t=strcmp(stuj. nu mber, nu mber);if(j=i)按照姓名查找結(jié)束按照學(xué)號查找開始t=0;printf( 未找到您所查詢的數(shù)據(jù),請重新輸入n);if(jvi)查詢成功printf(您查找的學(xué)生信息如下n 姓名s 學(xué)號s

17、性別%c生日旳4 月d 日當(dāng)前考勤次數(shù) %dn,stuj-1. name,stuj-1. number,stuj-1.sex,stuj-1.year,stuj-1.mo nth,stuj-1.day,stuj-1.kq);printf( 是否繼續(xù)查詢其他學(xué)生信息 0 否 1 是);sca nf(%d, &x);if(x=1)search();/*/printf(0返回主菜單n);getchar();a=getchar();getchar();if(a=0)mai n();按照學(xué)號查找結(jié)束流程圖:5.5.evaluate。函數(shù)voidevaluate()in ti=O,j=O,sway,

18、t,x; floatscore;charname10, nu mber10;*n);學(xué)生考勤分?jǐn)?shù)計(jì)算請輸入應(yīng)到考勤總數(shù)將文件內(nèi)容讀入內(nèi)存exit(0);for(i=0;feof(fp)=0;i+)fread(&stui,sizeof(structstude nt),1,fp);讀取文件內(nèi)容fclose(fp);/ 關(guān)閉文件printf( 選擇查找方式 1 按照姓名查找 2 按照學(xué)號查找);printf(I*if(kqcs=0)printf( 請輸入應(yīng)到考勤總數(shù));/ scanf(%f,&kqcs);if(fp=fope n(date.txt,廣)=NULL)scan f(%d,

19、&sway);/*/if(sway=1)printf(請輸入需要修改學(xué)生的姓名);/prin tf(i=%d,i);sca nf(%s, name); for(j=0;t!=0;j+) t=strcmp(stuj. name, name); if(j=i)t=0;printf( 未找到您所查詢的數(shù)據(jù),請重新輸入n);if(jvi)printf(您查找的學(xué)生信息如下n 姓名s 學(xué)號s 性別%c生日旳4 月d 日當(dāng)前考勤次數(shù) %dn,stuj-1. name,stuj-1. number,stuj-1.sex,stuj-1.y ear,stuj-1.month,stuj-1.day,stu

20、j-1.kq);score=(stuj-1.kq)/kqcs*100;printf( 該生當(dāng)前考勤分?jǐn)?shù)為5.2f,score);prin tf( 是否繼續(xù)計(jì)算其他學(xué)生考勤分?jǐn)?shù)0 否 1 是);sca nf(%d, &x);if(x=1)evaluate();/*/*/if(sway=2)printf(請輸入需要修改學(xué)生的學(xué)號);/prin tf(i=%d,i);sca nf(%s ,nu mber);for(j=0;t!=0;j+)按照姓名查找開始查詢成功按照姓名查找結(jié)束按照學(xué)號查找開始if(j=i)t=0;printf( 未找到您所查詢的數(shù)據(jù),請重新輸入n); if(jvi)prin

21、tf(您查找的學(xué)生信息如下n 姓名s 學(xué)號s 性別%c生日旳4 月d 日當(dāng)前考勤次數(shù) %dn,stuj-1. name,stuj-1. number,stuj-1.sex,stuj-1.y ear,stuj-1.month,stuj-1.day,stuj-1.kq);score=(stuj-1.kq)/kqcs*100;printf(該生當(dāng)前考勤分?jǐn)?shù)為%5.2f,score);prin tf(是否繼續(xù)計(jì)算其他學(xué)生考勤分?jǐn)?shù)0 否 1 是);sca nf(%d, &x);if(x=1)evaluate();/*/printf(0返回主菜單n);getchar();a=getchar();g

22、etchar();if(a=0)mai n();流程圖:查詢成功按照學(xué)號查找結(jié)束測試方案:按照每個(gè)函數(shù)功能進(jìn)行測試,在做完每個(gè)函數(shù)對其進(jìn)行測試,主函數(shù)測試,先將所有需要的功能模塊函數(shù)設(shè)置為空,每個(gè) 函數(shù)用一個(gè) printfprintf 語句來測試主函數(shù)。1. 存在問題:開始將生日定義為字符數(shù)組,當(dāng)用 scanf 來輸入年月日時(shí),年月 日之間用空格分隔,但在輸出時(shí)發(fā)現(xiàn)年月日出現(xiàn)錯(cuò)誤。分析原因:用 scanf 輸入年月日時(shí),系統(tǒng)會(huì)把用來分隔的空格當(dāng)做字符讀入。解決方法:將年月日定義為整型,這樣就可以用 scanf 輸入,用空格隔開。2. 存在問題 2:在查找數(shù)據(jù)時(shí),需要先將所有數(shù)據(jù)讀入一個(gè)結(jié)構(gòu)體數(shù)

23、組,在讀取后未關(guān)閉文件,執(zhí)行查找時(shí)查找不到相關(guān)信息。分析原因:再利用 for 循環(huán)讀取全部文件內(nèi)容后,文件指針將會(huì)移至文件末 尾,這樣再執(zhí)行查找時(shí)就會(huì)從文件末尾開始, 顯然不符合要求,所以會(huì)出現(xiàn) 錯(cuò)誤。解決方法:在讀取完數(shù)據(jù)后先關(guān)閉文件,在查找時(shí)再次打開文件,這時(shí)文件 指針就會(huì)指向文件開頭。3. 存在問題 3:再多個(gè)使用 getchar 或者 gets 輸入的時(shí)候,會(huì)出現(xiàn)直接跳過 輸入的情況。分析原因:在使用 getchar 或者 gets 輸入的時(shí)候,系統(tǒng)會(huì)將前一步用來確 認(rèn)執(zhí)行的回車當(dāng)成字符讀入,導(dǎo)致跳過該步輸入。解決方法:再 getchar 或者 gets 前面加上 getchar()語

24、句,讀掉回車,下面的 getchar 或者 gets 就可以正常輸入。四、小結(jié)通過編寫該程序,熟悉了 C 語言的基本語法,選擇,循環(huán)等結(jié)構(gòu),深入練 習(xí)了函數(shù)的調(diào)用方法,和文件的讀寫方法,熟悉了結(jié)構(gòu)體的使用,更加深化了 面向過程語言思想,和一些基本算法。通過對程序的后期調(diào)試,熟悉了 C 常見錯(cuò)誤,鍛煉了思維的嚴(yán)密性,和完 備性。通過對程序的注釋和畫流程圖,形成了一套自己編程的風(fēng)格,和清晰地思 路,使思維更加條理化,清晰化。附件:主要源程序代碼(需打印)#i nclude#i ncludevstri ng.h#i ncludeFILE*fp; 定義文件chara;/返回選擇變量 floatkqcs

25、=0; 應(yīng)到考勤次數(shù)變量structstude ntchar name10;char nu mber11;charsex;in tyear;in tmo nth;in tday;in tkq;stu100;/定義儲(chǔ)存學(xué)生信息的結(jié)構(gòu)體數(shù)組/*主函數(shù)丿開*voidmai n()voidi nput();錄入數(shù)據(jù)函數(shù)voidcha nge(); 修改數(shù)據(jù)函數(shù)voidsearch();/查詢數(shù)據(jù)函數(shù)voidevaluate();計(jì)算總評函數(shù)charitem;system(color34);printf( n);prin tf( n);n); 用戶界面prin tf(n);printf(”請選擇您需要的

26、操作n);scan f(%c,&item);switch(item)case1:i nput();break; case2:cha nge();break; case3:search();break;case4:evaluate();break;/實(shí)現(xiàn)功能選擇/*結(jié)士束*/*容開女臺(tái) *voidrecord()in ti,j=O,jx=1;printf( I*n);if(fp=fope n( date.txt,w)=NULL)printf( 文件打開失敗n); exit(0);n);printf(printf(printf(printf(printf(學(xué)生考勤管理系統(tǒng)n); n);BY

27、 朱勝佳n); n);printf( n);printf(1.學(xué)生信息及考勤情況錄入n);printf( n);printf(2.學(xué)生信息及考勤情況修改n);printf( n);printf(3.學(xué)生信息及考勤情況查詢n);printf( n);printf( 4.學(xué)生考勤總評分?jǐn)?shù)查詢n);printf(n);printf(主函數(shù)錄入數(shù)據(jù)函數(shù)內(nèi)學(xué)生基本信息錄入for(i=0;jx=1;i+)輸入信息循環(huán)for(;j=0;)輸入確認(rèn)循環(huán)getchar();printf(請輸入第c 個(gè)學(xué)生的姓名,i+1);gets(stui. name);printf(請輸入第c 個(gè)學(xué)生的學(xué)號,i+1);get

28、s(stui. nu mber);printf(請輸入第c 個(gè)學(xué)生的性別(男:m 女:f),i+1);stui.sex=getchar();printf(請輸入第c 個(gè)學(xué)生的生日(格式:年月日),i+1);scan f(%d%d%d,&stui.year,&stui.mo nth,&stui.day);printf(請輸入第個(gè)學(xué)生的當(dāng)前考勤次數(shù),i+1);scan f(%d,&stui.kq);printf(您輸入的信息為姓名s 學(xué)號s 性別%c 生日 %d 年%4 月%d日n0 重輸 1 確認(rèn),stui. name,stui. nu mber,stui.sex

29、,stui.year,stui.m on th,stui.day);scan f(%d,&j);輸入確認(rèn)j=0;if(fwrite(&stui,sizeof(structstude nt),1,fp)!=1)pri ntf(文件寫入錯(cuò)誤n); 寫入文件prin tf(是否繼續(xù)輸入下一個(gè)學(xué)生信息0 終止 1 繼續(xù)n);scan f(%d,&jx);繼續(xù)輸入選擇fclose(fp);printf(0 返回主菜單n);getchar();a=getchar();getchar();if(a=0)mai n(); 返回主菜單/*容結(jié)士束*/*voidcha nge()in ti

30、=0,j=0,sway,t,x;錄入數(shù)據(jù)函數(shù)內(nèi)修改數(shù)據(jù)函數(shù)內(nèi)容開始charname10, nu mber10;printf( I*學(xué)生考勤修改if(fp=fope n( date.txt,廣)=NULL)將文件內(nèi)容讀入內(nèi)存printf( 文件打開失敗n);exit(0);for(i=0;feof(fp)=0;i+)fread(&stui,sizeof(structstude nt),1,fp);讀取文件內(nèi)容fclose(fp);/ 關(guān)閉文件printf( 選擇查找方式 1 按照姓名查找 2 按照學(xué)號查找);scan f(%d,&sway);/*按照姓名查找開女厶*if(sway

31、=1)printf(請輸入需要修改學(xué)生的姓名);/prin tf(i=%d,i);scan f(%s, name);for(j=0;t!=0;j+)t=strcmp(stuj. name, name);if(j=i)t=0;printf(未找到您所查詢的數(shù)據(jù),請重新輸入n);if(ji)/查詢成功printf(您查找的學(xué)生信息如下n 姓名s 學(xué)號%s 性別c 生日%d年4 月4 日當(dāng)前考勤次數(shù) %dn,stuj-1. name,stuj-1. nu mber,stuj-1.sex,stuj-1.year,stuj-1.m on th,stuj-1.day,stuj-1.kq);prin tf(

32、 是否修改該生考勤信息 0 否 1 是);/選擇是否修改考勤scan f(%d, &x); 輸入選擇變量值if(x=1)printf(請輸入新的考勤值);scan f(%d,&stuj-1.kq);/輸入新的考勤值if(fp=fope n(date.txt,w)=NULL)以只寫方式打開文件/printf( 文件打開失敗n);for(j=0;jvi;j+)if(fwrite(&stuj,sizeof(structstude nt),1,fp)!=1)printf(文件寫入錯(cuò)誤n);寫入文件fclose(fp);/ 關(guān)閉文件prin tf(是否繼續(xù)修改其他學(xué)生考勤 0 否

33、 1 是);scan f(%d, &x); if(x=1)cha nge();/*/*/if(sway=2)printf(請輸入需要修改學(xué)生的學(xué)號);/prin tf(i=%d,i);sca nf(%s ,nu mber);for(j=0;t!=0;j+)t=strcmp(stuj. nu mber, nu mber);if(j=i)t=0;printf(未找到您所查詢的數(shù)據(jù),請重新輸入n);if(jvi)/查詢成功printf(您查找的學(xué)生信息如下n 姓名s 學(xué)號%s 性別c 生日%d年4 月4 日當(dāng)前考勤次數(shù) %dn,stuj-1. name,stuj-1. nu mber,stu

34、j-1.sex,stuj-1.year,stuj-1.m on th,stuj-1.day,stuj-1.kq);prin tf(是否修改該生考勤信息 0 否 1 是);/選擇是否修改考勤scan f(%d, &x); 輸入選擇變量值if(x=1)printf(請輸入新的考勤值);scan f(%d,&stuj-1.kq);輸入新的考勤值if(fp=fope n(date.txt,w)=NULL)以只寫方式打開文件按照姓名查找結(jié)束按照學(xué)號查找開始printf( 文件打開失敗n);exit(O);for(j=0;jvi;j+)if(fwrite(&stuj,sizeof(

35、structstudent),1,fp)!=1)printf(文件寫入錯(cuò)誤n);寫入文件fclose(fp);/ 關(guān)閉文件prin tf( 是否繼續(xù)修改其他學(xué)生考勤 0 否 1 是);scan f(%d, &x); if(x=1)cha nge();/*/printf(0 返回主菜單n); getchar(); a=getchar(); getchar(); if(a=0)main();/*容結(jié)束 */*容開女臺(tái) *voidsearch()in ti=0,j=0,sway,t,x; charname10, number10;printf( I*n);if(fp=fope n(date.

36、txt,廣)=NULL)printf( 文件打開失敗n);exit(0); for(i=0;feof(fp)=0;i+)fread(& stui,sizeof(structstude nt),1,fp);讀取文件內(nèi)容fclose(fp);/ 關(guān)閉文件printf( 選擇查找方式 1 按照姓名查找 2 按照學(xué)號查找); scan f(%d,&sway);/*/按照學(xué)號查找結(jié)束修改數(shù)據(jù)函數(shù)內(nèi)查詢數(shù)據(jù)函數(shù)內(nèi)學(xué)生信息查詢將文件內(nèi)容讀入內(nèi)存按照姓名查找開始printf(請輸入需要修改學(xué)生的姓名);/prin tf(i=%d,i);scan f(%s, name);for(j=0;t!=0

37、;j+)t=strcmp(stuj. name, name);if(j=i)t=0;printf(未找到您所查詢的數(shù)據(jù),請重新輸入n);if(jvi)/ 查詢成功printf(您查找的學(xué)生信息如下n 姓名s 學(xué)號%s 性別c 生日%d年4 月4 日當(dāng)前考勤次數(shù) %dn,stuj-1. name,stuj-1. nu mber,stuj-1.sex,stu|j-1.year,stuj-1.m on th,stuj-1.day,stuj-1.kq);printf(是否繼續(xù)查詢其他學(xué)生信息 0 否 1 是);scan f(%d, &x);if(x=1)search();/*/*/if(swa

38、y=2)printf(請輸入需要修改學(xué)生的學(xué)號);/prin tf(i=%d,i);sca nf(%s ,nu mber);for(j=0;t!=0;j+)t=strcmp(stuj. nu mber, nu mber);if(j=i)t=0;printf(未找到您所查詢的數(shù)據(jù),請重新輸入n);按照姓名查找結(jié)束按照學(xué)號查找開始if(jvi)/查詢成功printf(您查找的學(xué)生信息如下n 姓名s 學(xué)號%s 性別c 生日%d年4 月4 日當(dāng)前考勤次數(shù) %dn,stuj-1. name,stuj-1. nu mber,stuj-1.sex,stu|j-1.year,stuj-1.m on th,stuj-1.day,stu|j-1.kq);printf(是否繼續(xù)查詢其他學(xué)生信息 0 否 1 是);scan f(%d, &x);/printf(0 返回主菜單n);getchar();a=getchar();getchar();if(a=0)mai n();/*容結(jié)束 */*數(shù)內(nèi)容開始*voidevaluate()in ti=0,j=0,sway,t,x; floatscore;charname10,

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論