




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告設(shè)計(jì)題目:學(xué)生考勤系統(tǒng)設(shè)計(jì)專 業(yè) 微電子科學(xué)與工程班 級(jí) 微電 131 學(xué) 生 趙 楊 怡 指導(dǎo)教師 年 學(xué)期 設(shè)計(jì)任務(wù):C語言課程設(shè)計(jì)任務(wù)書10題目:學(xué)生考勤系統(tǒng)設(shè)計(jì)功能:學(xué)生考勤系統(tǒng)應(yīng)包含各班學(xué)生的全部信息。每個(gè)學(xué)生是一條記錄,包括姓名、性別、學(xué)號(hào)、日期、節(jié)次、出勤情況等信息。本系統(tǒng)可以模擬考勤過程、記錄考勤結(jié)果,并能在課程結(jié)束后按照設(shè)定的考勤評(píng)分標(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í)成績(jī):驗(yàn)收答辯成績(jī):設(shè)計(jì)報(bào)
2、告成績(jī):總評(píng)成績(jī):指導(dǎo)教師:一、總體設(shè)計(jì)1程序的總體設(shè)計(jì) 確定界面,使用戶可選擇操作項(xiàng)目(錄入,修改,查詢,評(píng)分)。 錄入功能:使用結(jié)構(gòu)體,要求用戶輸入姓名、性別、學(xué)號(hào)、日期、節(jié)次、當(dāng)前出勤情況等信息,并寫入文件。 修改功能:使用戶輸入學(xué)號(hào),姓名其中一項(xiàng)可以修改考勤其信息。對(duì)于修改功能的實(shí)現(xiàn),是先將所有文件內(nèi)容讀入到內(nèi)存中,然后修改考勤值,最后再重新覆蓋寫入文件。 查詢模塊:使用字符串比較函數(shù),利用循環(huán)找到對(duì)應(yīng)結(jié)構(gòu)體數(shù)組元素,然后輸出需要信息。對(duì)于查詢功能的實(shí)現(xiàn),同修改,是先將所有文件內(nèi)容讀入到內(nèi)存中,然后查找到其中某項(xiàng),最后輸出到屏幕。 評(píng)分模塊:系統(tǒng)根據(jù)總的應(yīng)道考勤數(shù)按照百分制,求出每個(gè)學(xué)
3、生的分?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(); /查詢數(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(); /查詢數(shù)據(jù)函數(shù)void evaluate(
4、); /計(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");print
5、f(" n");printf(" 2.學(xué)生信息及考勤情況修改 n");printf(" n");printf(" 3.學(xué)生信息及考勤情況查詢 n");printf(" n");printf(" 4.學(xué)生考勤總評(píng)分?jǐn)?shù)查詢 n");printf(" n");printf(" n"); /用戶界面printf("n");printf(" 請(qǐng)選擇您需要的操作n");scanf("%c"
6、,&item); switch(item) case '1': input();break; case '2': change();break; case '3': search();break; case '4': evaluate();break; /實(shí)現(xiàn)功能選擇 流程圖: 開 始1breakgoal()search()amend()record()432switch(item) switch(item)switch(item)輸出界面 結(jié)束2. input() 函數(shù)void input()int i,j=0,jx=1
7、;printf(" *學(xué) 生 基 本 信 息 錄 入*n");if(fp=fopen("date.txt","w")=NULL)printf("文件打開失敗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
8、("請(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 生日 %
9、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("文件寫入錯(cuò)誤n"); /寫入文件printf(" 是否繼續(xù)輸入下一個(gè)學(xué)生信息 0 終止 1 繼續(xù)n");scanf("%d",&jx); /繼續(xù)輸入選擇
10、fclose(fp); printf("0 返回主菜單n");getchar();a=getchar();getchar();if(a='0') main(); /返回主菜單流程圖:開始0=>j打開文件1=>jx0=>ijx=1?Yj=0?Y輸入i+1個(gè)學(xué)生信息生信息N輸入j值選擇是否確認(rèn)寫入文件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&quo
11、t;); if(fp=fopen("date.txt","r")=NULL) /將文件內(nèi)容讀入內(nèi)存printf("文件打開失敗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); /*按照姓名查找開始*/if(sway=1)p
12、rintf("請(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("未找到您所查詢的數(shù)據(jù),請(qǐng)重新輸入n"); if(j<i) /查詢成功printf("您查找的學(xué)生信息如下n 姓名 %s 學(xué)號(hào) %s 性別 %c 生日 %d年%d月%d日 當(dāng)前考勤次數(shù) %dn",,stuj-1.number,stuj
13、-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) /以只寫方式打開文件 printf(&
14、quot;文件打開失敗n"); exit(0); for(j=0;j<i;j+) if(fwrite(&stuj,sizeof(struct student),1,fp)!=1) printf("文件寫入錯(cuò)誤n"); /寫入文件 fclose(fp); /關(guān)閉文件printf("是否繼續(xù)修改其他學(xué)生考勤 0 否 1 是");scanf("%d",&x);if(x=1) change();/*按照姓名查找結(jié)束*/ /*按照學(xué)號(hào)查找開始*/if(sway=2)printf("請(qǐng)輸入需要修改學(xué)生的學(xué)
15、號(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("未找到您所查詢的數(shù)據(jù),請(qǐng)重新輸入n"); if(j<i) /查詢成功printf("您查找的學(xué)生信息如下n 姓名 %s 學(xué)號(hào) %s 性別 %c 生日 %d年%d月%d日 當(dāng)前考勤次數(shù) %dn",,stuj-1.number,stuj-1.sex,stuj-1.yea
16、r,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) /以只寫方式打開文件 printf("文件打開失敗n"
17、;); exit(0); for(j=0;j<i;j+) if(fwrite(&stuj,sizeof(struct student),1,fp)!=1) printf("文件寫入錯(cuò)誤n"); /寫入文件 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(
18、a='0') main();開始 打開文件將文件內(nèi)容全部讀入結(jié)構(gòu)體數(shù)組輸入sway值選擇查找方式Sway=1?NSway=2?Y輸入要查找的學(xué)號(hào)輸入要查找的姓名N查找學(xué)號(hào)查找姓名輸入X值選擇是否修改考勤X=1?Y輸入新的考勤值寫入文件結(jié)束4. search()函數(shù)void search() 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)存pr
19、intf("文件打開失敗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); /*按照姓名查找開始*/if(sway=1)printf("請(qǐng)輸入需要修改學(xué)生的姓名 ");/printf("i=%d",i);scanf(&quo
20、t;%s",name);for(j=0;t!=0;j+) t=strcmp(,name);if(j=i) t=0;printf("未找到您所查詢的數(shù)據(jù),請(qǐng)重新輸入n"); if(j<i) /查詢成功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("是否繼
21、續(xù)查詢其他學(xué)生信息 0 否 1 是");scanf("%d",&x);if(x=1) search();/*按照姓名查找結(jié)束*/ /*按照學(xué)號(hào)查找開始*/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("未找到您所查詢的數(shù)據(jù),請(qǐng)重新輸入n"); if(j&l
22、t;i) /查詢成功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ù)查詢其他學(xué)生信息 0 否 1 是");scanf("%d",&x);if(x=1) search();/*按照學(xué)號(hào)查找結(jié)束*/printf("0 返回主菜單n");getch
23、ar();a=getchar();getchar();if(a='0') main(); 流程圖:開始 打開文件將文件內(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
24、uot;); /請(qǐng)輸入應(yīng)到考勤總數(shù)scanf("%f",&kqcs); if(fp=fopen("date.txt","r")=NULL) /將文件內(nèi)容讀入內(nèi)存printf("文件打開失敗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("
25、;%d",&sway); /*按照姓名查找開始*/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("未找到您所查詢的數(shù)據(jù),請(qǐng)重新輸入n"); if(j<i) /查詢成功printf("您查找的學(xué)生信息如下n 姓名 %s 學(xué)號(hào) %s 性別 %c 生日 %d年%d月%d日 當(dāng)前
26、考勤次數(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)查找開始*/if(sway=2)prin
27、tf("請(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("未找到您所查詢的數(shù)據(jù),請(qǐng)重新輸入n"); if(j<i) /查詢成功printf("您查找的學(xué)生信息如下n 姓名 %s 學(xué)號(hào) %s 性別 %c 生日 %d年%d月%d日 當(dāng)前考勤次數(shù) %dn",,stuj-1.number,s
28、tuj-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='
29、;0') main();流程圖:開始輸入應(yīng)到考勤次數(shù)kqcs值打開文件將文件內(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è)試方案、存在的問題及解決方法)測(cè)試方案:按照每個(gè)函數(shù)功能進(jìn)行測(cè)試,在做完每個(gè)函數(shù)對(duì)其進(jìn)行測(cè)試,主函數(shù)測(cè)試,先將所有需要的功能模塊函數(shù)設(shè)置為空,每個(gè)函數(shù)用一個(gè)printf語句來測(cè)試主函數(shù)。1. 存在問題:開始將生日定義為字符數(shù)組,當(dāng)用scanf來輸入年月日時(shí),年月日之間用空格分隔,但在輸出時(shí)發(fā)現(xiàn)年月日出現(xiàn)錯(cuò)誤。分析原因:用scan
30、f輸入年月日時(shí),系統(tǒng)會(huì)把用來分隔的空格當(dāng)做字符讀入。解決方法:將年月日定義為整型,這樣就可以用scanf輸入,用空格隔開。2. 存在問題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ì)從文件末尾開始,顯然不符合要求,所以會(huì)出現(xiàn)錯(cuò)誤。解決方法:在讀取完數(shù)據(jù)后先關(guān)閉文件,在查找時(shí)再次打開文件,這時(shí)文件指針就會(huì)指向文件開頭。3. 存在問題3:再多個(gè)使用getchar或者gets輸入的時(shí)候,會(huì)出現(xiàn)直接跳過輸入的情況。分析原因:在使用getchar或者gets
31、輸入的時(shí)候,系統(tǒng)會(huì)將前一步用來確認(rèn)執(zhí)行的回車當(dāng)成字符讀入,導(dǎo)致跳過該步輸入。解決方法:再getchar或者gets前面加上getchar()語句,讀掉回車,下面的getchar或者gets就可以正常輸入。四、小結(jié)通過編寫該程序,熟悉了C語言的基本語法,選擇,循環(huán)等結(jié)構(gòu),深入練習(xí)了函數(shù)的調(diào)用方法,和文件的讀寫方法,熟悉了結(jié)構(gòu)體的使用,更加深化了面向過程語言思想,和一些基本算法。通過對(duì)程序的后期調(diào)試,熟悉了C常見錯(cuò)誤,鍛煉了思維的嚴(yán)密性,和完備性。通過對(duì)程序的注釋和畫流程圖,形成了一套自己編程的風(fēng)格,和清晰地思路,使思維更加條理化,清晰化。附件:主要源程序代碼(需打?。?include<st
32、dio.h>#include<string.h>#include<stdlib.h>FILE *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ù) 開 始*void main()void input(); /錄入數(shù)據(jù)函數(shù)void change(); /修改數(shù)據(jù)函數(shù)void search(); /查
33、詢數(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é)生信息及考勤情況
34、錄入 n");printf(" n");printf(" 2.學(xué)生信息及考勤情況修改 n");printf(" n");printf(" 3.學(xué)生信息及考勤情況查詢 n");printf(" n");printf(" 4.學(xué)生考勤總評(píng)分?jǐn)?shù)查詢 n");printf(" n");printf(" n"); /用戶界面printf("n");printf(" 請(qǐng)選擇您需要的操作n");sca
35、nf("%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)容開始*void record()int i,j=0,jx=1;printf(" *學(xué) 生 基 本 信 息 錄 入*n");if(fp=fopen("date.tx
36、t","w")=NULL)printf("文件打開失敗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(
37、"請(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,s
38、tui.month,stui.day);scanf("%d",&j); /輸入確認(rèn)j=0;if(fwrite(&stui,sizeof(struct student),1,fp)!=1) printf("文件寫入錯(cuò)誤n"); /寫入文件printf(" 是否繼續(xù)輸入下一個(gè)學(xué)生信息 0 終止 1 繼續(xù)n");scanf("%d",&jx); /繼續(xù)輸入選擇fclose(fp);printf("0 返回主菜單n");getchar();a=getchar();getchar(
39、);if(a='0') main(); /返回主菜單/*錄入數(shù)據(jù)函數(shù)內(nèi)容結(jié)束*/*修改數(shù)據(jù)函數(shù)內(nè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("文件打開失敗n");exit(0);for(i=0;feof(fp)=0;i+) fread(&stui,sizeof(st
40、ruct student),1,fp); /讀取文件內(nèi)容fclose(fp); /關(guān)閉文件printf("選擇查找方式 1 按照姓名查找 2 按照學(xué)號(hào)查找");scanf("%d",&sway);/*按照姓名查找開始*/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("未找
41、到您所查詢的數(shù)據(jù),請(qǐng)重新輸入n");if(j<i) /查詢成功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(&qu
42、ot;請(qǐng)輸入新的考勤值 ");scanf("%d",&stuj-1.kq); /輸入新的考勤值if(fp=fopen("date.txt","w")=NULL) /以只寫方式打開文件printf("文件打開失敗n");exit(0);for(j=0;j<i;j+) if(fwrite(&stuj,sizeof(struct student),1,fp)!=1) printf("文件寫入錯(cuò)誤n"); /寫入文件fclose(fp); /關(guān)閉文件printf(&quo
43、t;是否繼續(xù)修改其他學(xué)生考勤 0 否 1 是");scanf("%d",&x);if(x=1) change();/*按照姓名查找結(jié)束*/*按照學(xué)號(hào)查找開始*/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("未找到您所查詢的數(shù)據(jù),請(qǐng)重新輸入n");if(j<i) /查詢成功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&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年國際視野中的教育改革考試試題及答案
- 2025年心理衛(wèi)生教育考試試卷及答案
- 綠色環(huán)保型廠房產(chǎn)權(quán)轉(zhuǎn)讓協(xié)議書
- 柴油發(fā)電機(jī)組銷售與電力設(shè)施智能化改造合同
- 車庫抵押權(quán)登記與解除合同范本
- 消防安全責(zé)任承包服務(wù)協(xié)議
- 豐富拓展活動(dòng)方案
- 舉辦線上義診活動(dòng)方案
- 辦公終端安全管理制度
- 年產(chǎn)家居配件9000萬件生產(chǎn)項(xiàng)目環(huán)境影響評(píng)價(jià)報(bào)告
- 2025年人教版中考英語復(fù)習(xí)核心詞匯1600詞+英漢【2022新課標(biāo)】
- dq加盟合同范例
- 網(wǎng)球運(yùn)動(dòng)的損傷與預(yù)防
- 公司授權(quán)另一個(gè)公司委托書模板
- 《挖掘機(jī)培訓(xùn)教程》課件
- 2025年春新北師大版生物七年級(jí)下冊(cè)課件 第11章 人體的運(yùn)動(dòng) 第1節(jié) 人體的骨骼
- 《結(jié)直腸癌中醫(yī)治療》課件
- 《綠色建筑咨詢服務(wù)》課件
- 變電站工作危險(xiǎn)點(diǎn)控制措施
- 人教部編版八年級(jí)下冊(cè)歷史期末試卷
- 2024版全新大學(xué)生職業(yè)生涯規(guī)劃書課件
評(píng)論
0/150
提交評(píng)論