




已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
_C語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告設(shè)計(jì)題目:學(xué)生考勤系統(tǒng)設(shè)計(jì)專(zhuān) 業(yè) 微電子科學(xué)與工程班 級(jí) 微電 131 學(xué) 生 趙 楊 怡 指導(dǎo)教師 年 學(xué)期 設(shè)計(jì)任務(wù):C語(yǔ)言課程設(shè)計(jì)任務(wù)書(shū)10題目:學(xué)生考勤系統(tǒng)設(shè)計(jì)功能:學(xué)生考勤系統(tǒng)應(yīng)包含各班學(xué)生的全部信息。每個(gè)學(xué)生是一條記錄,包括姓名、性別、學(xué)號(hào)、日期、節(jié)次、出勤情況等信息。本系統(tǒng)可以模擬考勤過(guò)程、記錄考勤結(jié)果,并能在課程結(jié)束后按照設(shè)定的考勤評(píng)分標(biāo)準(zhǔn)自動(dòng)給出每個(gè)學(xué)生的考勤分?jǐn)?shù)。要求:1、用C語(yǔ)言實(shí)現(xiàn)程序設(shè)計(jì);2、利用結(jié)構(gòu)體進(jìn)行相關(guān)信息處理;3、系統(tǒng)的各個(gè)功能模塊要求用函數(shù)的形式實(shí)現(xiàn);4、界面友好(良好的人機(jī)交互),程序加必要的注釋。平時(shí)成績(jī):驗(yàn)收答辯成績(jī):設(shè)計(jì)報(bào)告成績(jī):總評(píng)成績(jī):指導(dǎo)教師:一、總體設(shè)計(jì)1程序的總體設(shè)計(jì) 確定界面,使用戶(hù)可選擇操作項(xiàng)目(錄入,修改,查詢(xún),評(píng)分)。 錄入功能:使用結(jié)構(gòu)體,要求用戶(hù)輸入姓名、性別、學(xué)號(hào)、日期、節(jié)次、當(dāng)前出勤情況等信息,并寫(xiě)入文件。 修改功能:使用戶(hù)輸入學(xué)號(hào),姓名其中一項(xiàng)可以修改考勤其信息。對(duì)于修改功能的實(shí)現(xiàn),是先將所有文件內(nèi)容讀入到內(nèi)存中,然后修改考勤值,最后再重新覆蓋寫(xiě)入文件。 查詢(xún)模塊:使用字符串比較函數(shù),利用循環(huán)找到對(duì)應(yīng)結(jié)構(gòu)體數(shù)組元素,然后輸出需要信息。對(duì)于查詢(xún)功能的實(shí)現(xiàn),同修改,是先將所有文件內(nèi)容讀入到內(nèi)存中,然后查找到其中某項(xiàng),最后輸出到屏幕。 評(píng)分模塊:系統(tǒng)根據(jù)總的應(yīng)道考勤數(shù)按照百分制,求出每個(gè)學(xué)生的分?jǐn)?shù),并輸出到屏幕。2. 數(shù)據(jù)結(jié)構(gòu)學(xué)生信息用結(jié)構(gòu)體記錄,包括姓名(字符數(shù)組)、性別(字符型)、日期(年月日三個(gè)字符數(shù)組)、節(jié)次(整型)、出情況(整型)。3. 函數(shù)原型聲明 void main() /主函數(shù)void input(); /錄入數(shù)據(jù)函數(shù)void change(); /修改數(shù)據(jù)函數(shù)void search(); /查詢(xún)數(shù)據(jù)函數(shù)void evaluate(); /計(jì)算總評(píng)函數(shù)二、詳細(xì)設(shè)計(jì)1.main( )函數(shù)void main()void input(); /錄入數(shù)據(jù)函數(shù)void change(); /修改數(shù)據(jù)函數(shù)void search(); /查詢(xún)數(shù)據(jù)函數(shù)void evaluate(); /計(jì)算總評(píng)函數(shù) char item; system(color 34);printf( n);printf( n);printf( 學(xué) 生 考 勤 管 理 系 統(tǒng) n);printf( n);printf( BY 朱勝佳 n);printf( n);printf( n);printf( n);printf( 1.學(xué)生信息及考勤情況錄入 n);printf( n);printf( 2.學(xué)生信息及考勤情況修改 n);printf( n);printf( 3.學(xué)生信息及考勤情況查詢(xún) n);printf( n);printf( 4.學(xué)生考勤總評(píng)分?jǐn)?shù)查詢(xún) n);printf( n);printf( n); /用戶(hù)界面printf(n);printf( 請(qǐng)選擇您需要的操作n);scanf(%c,&item); switch(item) case 1: input();break; case 2: change();break; case 3: search();break; case 4: evaluate();break; /實(shí)現(xiàn)功能選擇 流程圖: 開(kāi) 始1breakgoal()search()amend()record()432switch(item) switch(item)switch(item)輸出界面 結(jié)束2. input() 函數(shù)void input()int i,j=0,jx=1;printf( *學(xué) 生 基 本 信 息 錄 入*n);if(fp=fopen(date.txt,w)=NULL)printf(文件打開(kāi)失敗n); exit(0);for(i=0;jx=1;i+) /輸入信息循環(huán) for(;j=0;) /輸入確認(rèn)循環(huán)getchar();printf(請(qǐng)輸入第%d個(gè)學(xué)生的姓名 ,i+1);gets();printf(請(qǐng)輸入第%d個(gè)學(xué)生的學(xué)號(hào) ,i+1);gets(stui.number);printf(請(qǐng)輸入第%d個(gè)學(xué)生的性別(男:m 女:f) ,i+1);stui.sex=getchar();printf(請(qǐng)輸入第%d個(gè)學(xué)生的生日(格式:年 月 日) ,i+1);scanf(%d%d%d,&stui.year,&stui.month,&stui.day); printf(請(qǐng)輸入第%d個(gè)學(xué)生的當(dāng)前考勤次數(shù) ,i+1);scanf(%d,&stui.kq);printf(您輸入的信息為 姓名 %s 學(xué)號(hào) %s 性別 %c 生日 %d年%d月%d日n 0 重輸 1 確認(rèn),,stui.number,stui.sex,stui.year,stui.month,stui.day);scanf(%d,&j); /輸入確認(rèn) j=0; if(fwrite(&stui,sizeof(struct student),1,fp)!=1) printf(文件寫(xiě)入錯(cuò)誤n); /寫(xiě)入文件printf( 是否繼續(xù)輸入下一個(gè)學(xué)生信息 0 終止 1 繼續(xù)n);scanf(%d,&jx); /繼續(xù)輸入選擇fclose(fp); printf(0 返回主菜單n);getchar();a=getchar();getchar();if(a=0) main(); /返回主菜單流程圖:開(kāi)始0=j打開(kāi)文件1=jx0=ijx=1?Yj=0?Y輸入i+1個(gè)學(xué)生信息生信息N輸入j值選擇是否確認(rèn)寫(xiě)入文件i+1=i輸入jx值選擇是否繼續(xù)結(jié)束3. change()函數(shù)void change() int i=0,j=0,sway,t,x; char name10,number10;printf( *學(xué) 生 考 勤 修 改*n); if(fp=fopen(date.txt,r)=NULL) /將文件內(nèi)容讀入內(nèi)存printf(文件打開(kāi)失敗n); exit(0);for(i=0;feof(fp)=0;i+) fread(&stui,sizeof(struct student),1,fp); /讀取文件內(nèi)容fclose(fp); /關(guān)閉文件printf(選擇查找方式 1 按照姓名查找 2 按照學(xué)號(hào)查找);scanf(%d,&sway); /*按照姓名查找開(kāi)始*/if(sway=1)printf(請(qǐng)輸入需要修改學(xué)生的姓名 );/printf(i=%d,i);scanf(%s,name);for(j=0;t!=0;j+) t=strcmp(,name);if(j=i) t=0;printf(未找到您所查詢(xún)的數(shù)據(jù),請(qǐng)重新輸入n); if(ji) /查詢(xún)成功printf(您查找的學(xué)生信息如下n 姓名 %s 學(xué)號(hào) %s 性別 %c 生日 %d年%d月%d日 當(dāng)前考勤次數(shù) %dn,,stuj-1.number,stuj-1.sex,stuj-1.year,stuj-1.month,stuj-1.day,stuj-1.kq); printf(是否修改該生考勤信息 0 否 1 是); /選擇是否修改考勤 scanf(%d,&x); /輸入選擇變量值if(x=1)printf(請(qǐng)輸入新的考勤值 );scanf(%d,&stuj-1.kq); /輸入新的考勤值 if(fp=fopen(date.txt,w)=NULL) /以只寫(xiě)方式打開(kāi)文件 printf(文件打開(kāi)失敗n); exit(0); for(j=0;ji;j+) if(fwrite(&stuj,sizeof(struct student),1,fp)!=1) printf(文件寫(xiě)入錯(cuò)誤n); /寫(xiě)入文件 fclose(fp); /關(guān)閉文件printf(是否繼續(xù)修改其他學(xué)生考勤 0 否 1 是);scanf(%d,&x);if(x=1) change();/*按照姓名查找結(jié)束*/ /*按照學(xué)號(hào)查找開(kāi)始*/if(sway=2)printf(請(qǐng)輸入需要修改學(xué)生的學(xué)號(hào) );/printf(i=%d,i);scanf(%s,number);for(j=0;t!=0;j+) t=strcmp(stuj.number,number);if(j=i) t=0;printf(未找到您所查詢(xún)的數(shù)據(jù),請(qǐng)重新輸入n); if(ji) /查詢(xún)成功printf(您查找的學(xué)生信息如下n 姓名 %s 學(xué)號(hào) %s 性別 %c 生日 %d年%d月%d日 當(dāng)前考勤次數(shù) %dn,,stuj-1.number,stuj-1.sex,stuj-1.year,stuj-1.month,stuj-1.day,stuj-1.kq); printf(是否修改該生考勤信息 0 否 1 是); /選擇是否修改考勤 scanf(%d,&x); /輸入選擇變量值if(x=1)printf(請(qǐng)輸入新的考勤值 );scanf(%d,&stuj-1.kq); /輸入新的考勤值 if(fp=fopen(date.txt,w)=NULL) /以只寫(xiě)方式打開(kāi)文件 printf(文件打開(kāi)失敗n); exit(0); for(j=0;ji;j+) if(fwrite(&stuj,sizeof(struct student),1,fp)!=1) printf(文件寫(xiě)入錯(cuò)誤n); /寫(xiě)入文件 fclose(fp); /關(guān)閉文件printf(是否繼續(xù)修改其他學(xué)生考勤 0 否 1 是);scanf(%d,&x);if(x=1) change();/*按照學(xué)號(hào)查找結(jié)束*/printf(0 返回主菜單n);getchar();a=getchar();getchar();if(a=0) main();開(kāi)始 打開(kāi)文件將文件內(nèi)容全部讀入結(jié)構(gòu)體數(shù)組輸入sway值選擇查找方式Sway=1?NSway=2?Y輸入要查找的學(xué)號(hào)輸入要查找的姓名N查找學(xué)號(hào)查找姓名輸入X值選擇是否修改考勤X=1?Y輸入新的考勤值寫(xiě)入文件結(jié)束4. search()函數(shù)void search() int i=0,j=0,sway,t,x; char name10,number10;printf( *學(xué) 生 信 息 查 詢(xún)*n); if(fp=fopen(date.txt,r)=NULL) /將文件內(nèi)容讀入內(nèi)存printf(文件打開(kāi)失敗n); exit(0);for(i=0;feof(fp)=0;i+) fread(&stui,sizeof(struct student),1,fp); /讀取文件內(nèi)容fclose(fp); /關(guān)閉文件printf(選擇查找方式 1 按照姓名查找 2 按照學(xué)號(hào)查找);scanf(%d,&sway); /*按照姓名查找開(kāi)始*/if(sway=1)printf(請(qǐng)輸入需要修改學(xué)生的姓名 );/printf(i=%d,i);scanf(%s,name);for(j=0;t!=0;j+) t=strcmp(,name);if(j=i) t=0;printf(未找到您所查詢(xún)的數(shù)據(jù),請(qǐng)重新輸入n); if(ji) /查詢(xún)成功printf(您查找的學(xué)生信息如下n 姓名 %s 學(xué)號(hào) %s 性別 %c 生日 %d年%d月%d日 當(dāng)前考勤次數(shù) %dn,,stuj-1.number,stuj-1.sex,stuj-1.year,stuj-1.month,stuj-1.day,stuj-1.kq); printf(是否繼續(xù)查詢(xún)其他學(xué)生信息 0 否 1 是);scanf(%d,&x);if(x=1) search();/*按照姓名查找結(jié)束*/ /*按照學(xué)號(hào)查找開(kāi)始*/if(sway=2)printf(請(qǐng)輸入需要修改學(xué)生的學(xué)號(hào) );/printf(i=%d,i);scanf(%s,number);for(j=0;t!=0;j+) t=strcmp(stuj.number,number);if(j=i) t=0;printf(未找到您所查詢(xún)的數(shù)據(jù),請(qǐng)重新輸入n); if(ji) /查詢(xún)成功printf(您查找的學(xué)生信息如下n 姓名 %s 學(xué)號(hào) %s 性別 %c 生日 %d年%d月%d日 當(dāng)前考勤次數(shù) %dn,,stuj-1.number,stuj-1.sex,stuj-1.year,stuj-1.month,stuj-1.day,stuj-1.kq);printf(是否繼續(xù)查詢(xún)其他學(xué)生信息 0 否 1 是);scanf(%d,&x);if(x=1) search();/*按照學(xué)號(hào)查找結(jié)束*/printf(0 返回主菜單n);getchar();a=getchar();getchar();if(a=0) main(); 流程圖:開(kāi)始 打開(kāi)文件將文件內(nèi)容全部讀入結(jié)構(gòu)體數(shù)組輸入sway值選擇查找方式Sway=1?NSway=2?Y輸入要查找的學(xué)號(hào)輸入要查找的姓名查找學(xué)號(hào)查找姓名輸出該生信息5. evaluate()函數(shù) void evaluate() int i=0,j=0,sway,t,x; float score; char name10,number10;printf( *學(xué) 生 考 勤 分 數(shù) 計(jì) 算*n);if(kqcs=0)printf(請(qǐng)輸入應(yīng)到考勤總數(shù) ); /請(qǐng)輸入應(yīng)到考勤總數(shù)scanf(%f,&kqcs); if(fp=fopen(date.txt,r)=NULL) /將文件內(nèi)容讀入內(nèi)存printf(文件打開(kāi)失敗n); exit(0);for(i=0;feof(fp)=0;i+) fread(&stui,sizeof(struct student),1,fp); /讀取文件內(nèi)容fclose(fp); /關(guān)閉文件printf(選擇查找方式 1 按照姓名查找 2 按照學(xué)號(hào)查找);scanf(%d,&sway); /*按照姓名查找開(kāi)始*/if(sway=1)printf(請(qǐng)輸入需要修改學(xué)生的姓名 );/printf(i=%d,i);scanf(%s,name);for(j=0;t!=0;j+) t=strcmp(,name);if(j=i) t=0;printf(未找到您所查詢(xún)的數(shù)據(jù),請(qǐng)重新輸入n); if(ji) /查詢(xún)成功printf(您查找的學(xué)生信息如下n 姓名 %s 學(xué)號(hào) %s 性別 %c 生日 %d年%d月%d日 當(dāng)前考勤次數(shù) %dn,,stuj-1.number,stuj-1.sex,stuj-1.year,stuj-1.month,stuj-1.day,stuj-1.kq); score=(stuj-1.kq)/kqcs*100; printf(該生當(dāng)前考勤分?jǐn)?shù)為 %5.2f,score);printf(是否繼續(xù)計(jì)算其他學(xué)生考勤分?jǐn)?shù) 0 否 1 是);scanf(%d,&x);if(x=1) evaluate();/*按照姓名查找結(jié)束*/ /*按照學(xué)號(hào)查找開(kāi)始*/if(sway=2)printf(請(qǐng)輸入需要修改學(xué)生的學(xué)號(hào) );/printf(i=%d,i);scanf(%s,number);for(j=0;t!=0;j+) t=strcmp(stuj.number,number);if(j=i) t=0;printf(未找到您所查詢(xún)的數(shù)據(jù),請(qǐng)重新輸入n); if(ji) /查詢(xún)成功printf(您查找的學(xué)生信息如下n 姓名 %s 學(xué)號(hào) %s 性別 %c 生日 %d年%d月%d日 當(dāng)前考勤次數(shù) %dn,,stuj-1.number,stuj-1.sex,stuj-1.year,stuj-1.month,stuj-1.day,stuj-1.kq);score=(stuj-1.kq)/kqcs*100; printf(該生當(dāng)前考勤分?jǐn)?shù)為 %5.2f,score);printf(是否繼續(xù)計(jì)算其他學(xué)生考勤分?jǐn)?shù) 0 否 1 是);scanf(%d,&x);if(x=1) evaluate();/*按照學(xué)號(hào)查找結(jié)束*/printf(0 返回主菜單n);getchar();a=getchar();getchar();if(a=0) main();流程圖:開(kāi)始輸入應(yīng)到考勤次數(shù)kqcs值打開(kāi)文件將文件內(nèi)容全部讀入結(jié)構(gòu)體數(shù)組輸入sway值選擇查找方式Sway=1?YNSway=2?輸入要查找的學(xué)號(hào)輸入要查找的姓名查找學(xué)號(hào)查找姓名輸出該生信息計(jì)算考勤分?jǐn)?shù)輸出考勤分?jǐn)?shù)結(jié)束三、測(cè)試及調(diào)試(測(cè)試方案、存在的問(wèn)題及解決方法)測(cè)試方案:按照每個(gè)函數(shù)功能進(jìn)行測(cè)試,在做完每個(gè)函數(shù)對(duì)其進(jìn)行測(cè)試,主函數(shù)測(cè)試,先將所有需要的功能模塊函數(shù)設(shè)置為空,每個(gè)函數(shù)用一個(gè)printf語(yǔ)句來(lái)測(cè)試主函數(shù)。1. 存在問(wèn)題:開(kāi)始將生日定義為字符數(shù)組,當(dāng)用scanf來(lái)輸入年月日時(shí),年月日之間用空格分隔,但在輸出時(shí)發(fā)現(xiàn)年月日出現(xiàn)錯(cuò)誤。分析原因:用scanf輸入年月日時(shí),系統(tǒng)會(huì)把用來(lái)分隔的空格當(dāng)做字符讀入。解決方法:將年月日定義為整型,這樣就可以用scanf輸入,用空格隔開(kāi)。2. 存在問(wèn)題2:在查找數(shù)據(jù)時(shí),需要先將所有數(shù)據(jù)讀入一個(gè)結(jié)構(gòu)體數(shù)組,在讀取后未關(guān)閉文件,執(zhí)行查找時(shí)查找不到相關(guān)信息。分析原因:再利用for循環(huán)讀取全部文件內(nèi)容后,文件指針將會(huì)移至文件末尾,這樣再執(zhí)行查找時(shí)就會(huì)從文件末尾開(kāi)始,顯然不符合要求,所以會(huì)出現(xiàn)錯(cuò)誤。解決方法:在讀取完數(shù)據(jù)后先關(guān)閉文件,在查找時(shí)再次打開(kāi)文件,這時(shí)文件指針就會(huì)指向文件開(kāi)頭。3. 存在問(wèn)題3:再多個(gè)使用getchar或者gets輸入的時(shí)候,會(huì)出現(xiàn)直接跳過(guò)輸入的情況。分析原因:在使用getchar或者gets輸入的時(shí)候,系統(tǒng)會(huì)將前一步用來(lái)確認(rèn)執(zhí)行的回車(chē)當(dāng)成字符讀入,導(dǎo)致跳過(guò)該步輸入。解決方法:再getchar或者gets前面加上getchar()語(yǔ)句,讀掉回車(chē),下面的getchar或者gets就可以正常輸入。四、小結(jié)通過(guò)編寫(xiě)該程序,熟悉了C語(yǔ)言的基本語(yǔ)法,選擇,循環(huán)等結(jié)構(gòu),深入練習(xí)了函數(shù)的調(diào)用方法,和文件的讀寫(xiě)方法,熟悉了結(jié)構(gòu)體的使用,更加深化了面向過(guò)程語(yǔ)言思想,和一些基本算法。通過(guò)對(duì)程序的后期調(diào)試,熟悉了C常見(jiàn)錯(cuò)誤,鍛煉了思維的嚴(yán)密性,和完備性。通過(guò)對(duì)程序的注釋和畫(huà)流程圖,形成了一套自己編程的風(fēng)格,和清晰地思路,使思維更加條理化,清晰化。附件:主要源程序代碼(需打印)#include#include#includeFILE *fp; /定義文件char a; /返回選擇變量float kqcs=0; /應(yīng)到考勤次數(shù)變量struct student char name10;char number11;char sex;int year;int month;int day;int kq;stu100; /定義儲(chǔ)存學(xué)生信息的結(jié)構(gòu)體數(shù)組/*主 函 數(shù) 開(kāi) 始*void main()void input(); /錄入數(shù)據(jù)函數(shù)void change(); /修改數(shù)據(jù)函數(shù)void search(); /查詢(xún)數(shù)據(jù)函數(shù)void evaluate(); /計(jì)算總評(píng)函數(shù)char item;system(color 34);printf( n);printf( n);printf( 學(xué) 生 考 勤 管 理 系 統(tǒng) n);printf( n);printf( BY 朱勝佳 n);printf( n);printf( n);printf( n);printf( 1.學(xué)生信息及考勤情況錄入 n);printf( n);printf( 2.學(xué)生信息及考勤情況修改 n);printf( n);printf( 3.學(xué)生信息及考勤情況查詢(xún) n);printf( n);printf( 4.學(xué)生考勤總評(píng)分?jǐn)?shù)查詢(xún) n);printf( n);printf( n); /用戶(hù)界面printf(n);printf( 請(qǐng)選擇您需要的操作n);scanf(%c,&item);switch(item)case 1: input();break;case 2: change();break;case 3: search();break;case 4: evaluate();break; /實(shí)現(xiàn)功能選擇/*主 函 數(shù) 結(jié) 束*/*錄入數(shù)據(jù)函數(shù)內(nèi)容開(kāi)始*void record()int i,j=0,jx=1;printf( *學(xué) 生 基 本 信 息 錄 入*n);if(fp=fopen(date.txt,w)=NULL)printf(文件打開(kāi)失敗n);exit(0);for(i=0;jx=1;i+) /輸入信息循環(huán) for(;j=0;) /輸入確認(rèn)循環(huán)getchar();printf(請(qǐng)輸入第%d個(gè)學(xué)生的姓名 ,i+1);gets();printf(請(qǐng)輸入第%d個(gè)學(xué)生的學(xué)號(hào) ,i+1);gets(stui.number);printf(請(qǐng)輸入第%d個(gè)學(xué)生的性別(男:m 女:f) ,i+1);stui.sex=getchar();printf(請(qǐng)輸入第%d個(gè)學(xué)生的生日(格式:年 月 日) ,i+1);scanf(%d%d%d,&stui.year,&stui.month,&stui.day);printf(請(qǐng)輸入第%d個(gè)學(xué)生的當(dāng)前考勤次數(shù) ,i+1);scanf(%d,&stui.kq);printf(您輸入的信息為 姓名 %s 學(xué)號(hào) %s 性別 %c 生日 %d年%d月%d日n 0 重輸 1 確認(rèn),,stui.number,stui.sex,stui.year,stui.month,stui.day);scanf(%d,&j); /輸入確認(rèn)j=0;if(fwrite(&stui,sizeof(struct student),1,fp)!=1) printf(文件寫(xiě)入錯(cuò)誤n); /寫(xiě)入文件printf( 是否繼續(xù)輸入下一個(gè)學(xué)生信息 0 終止 1 繼續(xù)n);scanf(%d,&jx); /繼續(xù)輸入選擇fclose(fp);printf(0 返回主菜單n);getchar();a=getchar();getchar();if(a=0) main(); /返回主菜單/*錄入數(shù)據(jù)函數(shù)內(nèi)容結(jié)束*/*修改數(shù)據(jù)函數(shù)內(nèi)容開(kāi)始*void change() int i=0,j=0,sway,t,x;char name10,number10;printf( *學(xué) 生 考 勤 修 改*n);if(fp=fopen(date.txt,r)=NULL) /將文件內(nèi)容讀入內(nèi)存printf(文件打開(kāi)失敗n);exit(0);for(i=0;feof(fp)=0;i+) fread(&stui,sizeof(struct student),1,fp); /讀取文件內(nèi)容fclose(fp); /關(guān)閉文件printf(選擇查找方式 1 按照姓名查找 2 按照學(xué)號(hào)查找);scanf(%d,&sway);/*按照姓名查找開(kāi)始*/if(sway=1)printf(請(qǐng)輸入需要修改學(xué)生的姓名 );/printf(i=%d,i);scanf(%s,name);for(j=0;t!=0;j+)t=strcmp(,name);if(j=i)t=0;printf(未找到您所查詢(xún)的數(shù)據(jù),請(qǐng)重新輸入n);if(ji) /查詢(xún)成功printf(您查找的學(xué)生信息如下n 姓名 %s 學(xué)號(hào) %s 性別 %c 生日 %d年%d月%d日 當(dāng)前考勤次數(shù) %dn,,stuj-1.number,stuj-1.sex,stuj-1.year,stuj-1.month,stuj-1.day,stuj-1.kq);printf(是否修改該生考勤信息 0 否 1 是); /選擇是否修改考勤scanf(%d,&x); /輸入選擇變量值if(x=1)printf(請(qǐng)輸入新的考勤值 );scanf(%d,&stuj-1.kq); /輸入新的考勤值if(fp=fopen(date.txt,w)=NULL) /以只寫(xiě)方式打開(kāi)文件printf(文件打開(kāi)失敗n);exit(0);for(j=0;ji;j+) if(fwrite(&stuj,sizeof(struct student),1,fp)!=1) printf(文件寫(xiě)入錯(cuò)誤n); /寫(xiě)入文件fclose(fp); /關(guān)閉文件printf(是否繼續(xù)修改其他學(xué)生考勤 0 否 1 是);scanf(%d,&x);if(x=1) change();/*按照姓名查找結(jié)束*/*按照學(xué)號(hào)查找開(kāi)始*/if(sway=2)printf(請(qǐng)輸入需要修改學(xué)生的學(xué)號(hào) );/printf(i=%d,i);scanf(%s,number);for(j=0;t!=0;j+)t=strcmp(stuj.number,number);if(j=i)t=0;printf(未找到您所查詢(xún)的數(shù)據(jù),請(qǐng)重新輸入n);if(ji) /查詢(xún)成功printf(您查找的學(xué)生信息如下n 姓名 %s 學(xué)號(hào) %s 性別 %c 生日 %d年%d月%d日 當(dāng)前考勤次數(shù) %dn,,stuj-1.number,stuj-1.se
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年公司長(zhǎng)期發(fā)展戰(zhàn)略與風(fēng)險(xiǎn)管理的結(jié)合試題及答案
- 2025屆河南省鄭州市中學(xué)牟縣八年級(jí)數(shù)學(xué)第二學(xué)期期末學(xué)業(yè)水平測(cè)試模擬試題含解析
- 用戶(hù)數(shù)據(jù)分析與商業(yè)決策的關(guān)系的試題及答案
- 信息技術(shù)對(duì)社會(huì)的影響分析試題及答案
- 名師引領(lǐng)與教學(xué)示范計(jì)劃
- 貴州省黔西南興仁市黔龍學(xué)校2025屆七下數(shù)學(xué)期末學(xué)業(yè)水平測(cè)試模擬試題含解析
- 通訊行業(yè)月度個(gè)人工作計(jì)劃
- 時(shí)間管理在工作中的重要性計(jì)劃
- 物流行業(yè)提升效率策略計(jì)劃
- 城市交通綠地規(guī)劃重點(diǎn)基礎(chǔ)知識(shí)點(diǎn)
- 2025屆天津市十二區(qū)重點(diǎn)學(xué)校高三下學(xué)期畢業(yè)聯(lián)考(一)英語(yǔ)試題(含答案)
- 生物醫(yī)學(xué)電子學(xué)智慧樹(shù)知到期末考試答案章節(jié)答案2024年天津大學(xué)
- 干部人事檔案轉(zhuǎn)遞單表樣
- 關(guān)于中國(guó)文化遺產(chǎn)北京故宮的資料
- 新中考考試平臺(tái)-考生端V2.0使用手冊(cè)
- 起重機(jī)軌道安裝評(píng)定標(biāo)準(zhǔn)
- 劉橋二礦二1水平放水試驗(yàn)設(shè)計(jì)
- 軟件系統(tǒng)運(yùn)行維護(hù)流程圖
- 培養(yǎng)基模擬灌裝方案
- 集裝袋噸袋項(xiàng)目建議書(shū)范文
- 某紡織廠供配電系統(tǒng)設(shè)計(jì)(DOC25頁(yè))
評(píng)論
0/150
提交評(píng)論