C語言課程設(shè)計學(xué)生考勤系統(tǒng)_第1頁
C語言課程設(shè)計學(xué)生考勤系統(tǒng)_第2頁
C語言課程設(shè)計學(xué)生考勤系統(tǒng)_第3頁
C語言課程設(shè)計學(xué)生考勤系統(tǒng)_第4頁
C語言課程設(shè)計學(xué)生考勤系統(tǒng)_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

C語言程序設(shè)計

課程設(shè)計報告

設(shè)計題目:學(xué)生考勤系統(tǒng)設(shè)計

專業(yè)微電子科學(xué)與工程

班級微電⑶

學(xué)生趙楊怡

指導(dǎo)教師_________________

.揚(yáng)揚(yáng)我//單

年學(xué)期

設(shè)計任務(wù):C語言課程設(shè)計任務(wù)書10

題目:學(xué)生考勤系統(tǒng)設(shè)計

功能:學(xué)生考勤系統(tǒng)應(yīng)包含各班學(xué)生的所有信息。每個學(xué)生是一條記錄,涉

及姓名、性別、學(xué)號、日期、節(jié)次、出勤情況等信息。本系統(tǒng)可以模擬考勤

過程、記錄考勤結(jié)果,并能在課程結(jié)束后按照設(shè)定的考勤評分標(biāo)準(zhǔn)自動給出

每個學(xué)生的考勤分?jǐn)?shù)。

規(guī)定:1、用c語言實(shí)現(xiàn)程序設(shè)計;

2.運(yùn)用結(jié)構(gòu)體進(jìn)行相關(guān)信息解決;

3.系統(tǒng)的各個功能模塊規(guī)定用函數(shù)的形式實(shí)現(xiàn);

4、界面和諧(良好的人機(jī)交互),程序加必要的注釋。

平時成績:驗(yàn)收答辯成績:設(shè)計報告成績:

總評成績:指導(dǎo)教師:

一、總體設(shè)計

1.程序的總體設(shè)計

◎擬定界面,使用戶可選擇操作項(xiàng)目(錄入,修改,查詢,評分)。

◎錄入功能:使用結(jié)構(gòu)體,規(guī)定用戶輸入姓名、性別、學(xué)號、日

期、節(jié)次、當(dāng)前出勤情況等信息,并寫入文獻(xiàn)。

◎修改功能:使用戶輸入學(xué)號,姓名其中一項(xiàng)可以修改考勤

其信息。對于修改功能的實(shí)現(xiàn),是先將所有文獻(xiàn)內(nèi)容讀入到內(nèi)存中,

然后修改考勤值,最后再重新覆蓋寫入文獻(xiàn)。

◎查詢模塊:使用字符串比較函數(shù),運(yùn)用循環(huán)找到相應(yīng)

結(jié)構(gòu)體數(shù)組元素,然后輸出需要信息。對于查詢功能的實(shí)現(xiàn),同修改,

是先將所有文獻(xiàn)內(nèi)容讀入到內(nèi)存中,然后查找到其中某項(xiàng),最后輸

出到屏幕。

◎評分模塊:系統(tǒng)根據(jù)總的應(yīng)道考勤數(shù)按照百分制,求

出每個學(xué)生的分?jǐn)?shù),并輸出到屏幕。

2.數(shù)據(jù)結(jié)構(gòu)

學(xué)生信息用結(jié)構(gòu)體記錄,涉及姓名(字符數(shù)組)、性別(字符型)、

日期(年月日三個字符數(shù)組)、節(jié)次(整型)、出情況(整型)。

3,函數(shù)原型聲明

?\n〃);

printfCOBY朱勝佳

?\n〃);

printfC

?\n〃);

printf(〃★?★口★?★口★?★

□★?★口★?★口★\n〃);

printf("

?\n〃);

printf("O1.學(xué)生信息及

考勤情況錄入?%〃);

printfC

?\n〃);

printf(〃O2.學(xué)生信息及

考勤情況修改?如〃);

printf("

?\n〃);

printfCO3.學(xué)生信息及

考勤情況查詢?'');

printf(〃◎

◎\n〃);

printf(〃4.學(xué)生考勤總

評分?jǐn)?shù)查詢?"〃);

printfC?

?\n〃);

printf("★?★口★?★口★?★

□★?★□★?★口★\n〃):〃用戶界面

printfCW);

printf("請選擇您需要的操作\n");

scanf;

switch(item)

(

case,T:input();break;

case'2':change();break;

case'3':search();break;

case'4':evaluate();break;

)〃實(shí)現(xiàn)功能選擇

流程圖:

2.input()函數(shù)

voidinput()

inti,j=0,jx=l;

printf(,z************************學(xué)生基本信息錄入

\v~?'\

Zj*Z7^Z7X^TX*1XZj%ZTX^TXZTN?|XZ7^ZT%XT%Z7*ZJ>ZTXXT>Z7^Z7X\|

if((fp=fcpen(,zdate.txt","w〃))=二NULL)

printf(〃文獻(xiàn)打開失敗\n");

exit(0);

)

for(i=0;jx==l;i++)〃輸入信息循環(huán)

{for(;j==0;)〃輸入確認(rèn)循環(huán)

(

getchar();

printf(〃請輸入第%d個學(xué)生的姓名〃,i+1);

gets(stu[i].name);

printf(〃請輸入第%d個學(xué)生的學(xué)號

gets(stu[i].number);

printf(〃請輸入第%d個學(xué)生的性別(男:m女:f)〃,計1);

stu[i].sex=getchar();

printf(〃請輸入第%d個學(xué)生的生日(格式:年月日)

scanf("%d%d%d”,&stu[i].year,&stu[i].month,&stu[i].day);

printf(〃請輸入第%d個學(xué)生的當(dāng)前考勤次數(shù)〃,i+1);

scanf("%d”,&stu[i].kq);

printf(〃您輸入的信息為姓名%s學(xué)號%s性別%c生日%d

年%d月%d日\n0重輸1確認(rèn)

〃,stu[i].name,stu[i].number,stu[i].sex,stu[i].year,stufi].mont

h,stu[i].day);

scanf&j);〃輸入確認(rèn)

}

j=0;

if(fwrite(&stu[i],sizeof(structstudent),1,fp)!=1)

printf(〃文獻(xiàn)寫入錯誤\n〃);〃寫入文獻(xiàn)

printfC是否繼續(xù)輸入下一個學(xué)生信息0終止1

繼續(xù)\n〃);

scanf&jx);//繼續(xù)輸入

選擇

)

fclose(fp);

printfCO返回主菜單\n〃);

getchar();

a=getchar0:

getchar();

if(a==,O')main();〃返回主菜單

流程圖:

:IT必

3.change()函數(shù)

voidchangeO

{inti=0,j=0,sway,t,x;

charname[10],number[10];

printf(z/**********************學(xué)生考勤修

IW*7^ZJ*Z7XXTXZTXZTS*TXZ7SZJXXTSZTX*TSrTSX7XXJSZT>ZTSZTXX7XZT*ZJSXISZTSZTXZ7VZ7X\II

if((fp=fopen(,zdate.txt","r"))=二NULL)〃將文

獻(xiàn)內(nèi)容讀入內(nèi)存

(

printf(〃文獻(xiàn)打開失敗\n〃);

exit(0);

}

for(i=0;feof(fp)=0;i++)fread(&stu[i],sizeof(struct

student),1,fp);〃讀取文獻(xiàn)內(nèi)容

fclose(fp);〃關(guān)閉文獻(xiàn)

printf(〃選擇查找方式1按照姓名查找2按照學(xué)號查找〃);

scanf("/d〃,&sway);

/**********************按照姓名查找開始

vizslz//////

if(sway二二1)

printf(〃請輸入需要修改學(xué)生的姓名〃);

//printf(〃i=%d”,i);

scanf("%s〃,name);

for(j=0;t!=0;j++)

t=strcmp(stu[j].name,name);

if(j==i)

(

t=0;

printf(〃未找到您所查詢的數(shù)據(jù),請重新輸入\n〃);

)

)

if(j<i)〃查詢成功

(

printf(〃您查找的學(xué)生信息如下\n姓名%s學(xué)號%s性

別%c生日%d年%d月猊日當(dāng)前考勤次

數(shù)%d\n”,stu[j-l].name,stu[j-l].number,stu[j-l].sex,y

ear,stu[j-l].month,stu[j-l].day,kq);

printf(〃是否修改該生考勤信息0否1是〃);

〃選擇是否修改考勤

scanf&x);〃輸入選擇變量值

if(x==l)

(

printf(〃請輸入新的考勤值〃);

scanf&stu[j~l].kq);〃輸入

新的考勤值

if((fp=fopen("date.txt〃,"w"))==NULL)//

以只寫方式打開文獻(xiàn)

(

printf("文獻(xiàn)打開失敗\n〃);

exit(0);

)

for(j=0;j<i;j++)

if(fwrite(&stu[.j],sizeof(structstudent),1,fp)!=1)printf(〃文獻(xiàn)

寫入錯誤\n〃);〃寫入文獻(xiàn)

fclose(fp);//關(guān)閉文獻(xiàn)

)

}

printf(〃是否繼續(xù)修改其他學(xué)生考勤0否1是〃);

scanf("%d〃,&x);

if(x==l)change();

)

/********************合按照姓名查找結(jié)束

/**********************才安照學(xué)號查找開始

7/*2*7,///

*7*?TX^T>Z7**7^*TX///

if(sway==2)

printf(〃請輸入需要修改學(xué)生的學(xué)號〃);

//printf("i二%d",i);

scanf(z/%s,z,number);

for(j=O;t!=O;j++)

{

t=strcmp(stu[j].number,number);

{

t=0;

printf(〃未找到您所查詢的數(shù)據(jù),請重新輸入\n〃);

)

)

if(j<i)〃查詢成功

(

printf(〃您查找的學(xué)生信息如下\n姓名%s學(xué)號%s性

別%c生日%d年%d月%d日當(dāng)前考勤次

數(shù)%d\n〃,stu[j-l].name,stu[j-l].number,stu[j-l].sex,stu[j-l].y

ear,stu[j-l].month,stu[j-l].day,stu[j-l].kq);

printf(〃是否修改該生考勤信息0否1是〃);

〃選擇是否修改考勤

scanf&x);〃輸入選擇變量值

if(x==l)

(

printf(〃請輸入新的考勤值〃);

scanf&stu[j-l].kq);〃輸入

新的考勤值

if((fp=fopen(,zdate.txt〃,"w"))=NULL)//

以只寫方式打開文獻(xiàn)

(

printf(〃文獻(xiàn)打開失敗\n〃);

exit(0);

)

for(j=0:j<i:j++)

if(fwrite(&stu[j],sizeof(structstudent),1,fp)!=1)printf(〃文獻(xiàn)

寫入錯誤\n〃);〃寫入文獻(xiàn)

fclose(fp);〃關(guān)閉文獻(xiàn)

)

)

printf(〃是否繼續(xù)修改其他學(xué)生考勤0否1是〃);

scanf&x);

if(x==l)change();

)

/********************5^按照學(xué)號查找結(jié)束

sjzs|zsj^slzsjzsl^^lz///

^T>iff

printffO返回主菜單\n〃);

getchar();

a=getchar();

getchar();

if(a二二'O')main();

N

輸入X值選擇

4.search()函數(shù)

voidsearch()

inti=0,j=0,sway,t,x;

charname[10],number[10];

printf("***********************學(xué)生信息查詢

?k\y、I?

*T**T**TX*T**T**T*XTszT^*TS>T**T^*Tx\II

if((fp二fopcn("date,txt",〃r"))==NULL)〃將

文獻(xiàn)內(nèi)容讀入內(nèi)存

(

printf(〃文獻(xiàn)打開失敗\n〃);

exit(0);

)

for(i=0;feof(fp)==0;i++)fread(&stu[i],sizeof(struct

student),1,fp);〃讀取文獻(xiàn)內(nèi)容

fclose(fr);〃關(guān)閉文獻(xiàn)

printf(〃選擇查找方式1按照姓名查找2按照學(xué)號查找〃);

scanfftsway);

/**********************按照姓名查找開始

■[.///

l//

if(sway==l)

(

printf(〃請輸入需要修改學(xué)生的姓名〃);

//printf(,,i=%d,z,i);

scanf('%s”,name);

for(j=0;t!=0;j++)

(

t=strcmp(stu[j].name,name);

if(j==i)

t=0;

printf(〃未找到您所查詢的數(shù)據(jù),請重新輸入\n〃);

)

)

if(j<i)〃查詢成功

{

printf(〃您查找的學(xué)生信息如下\n姓名%s學(xué)號%s性

別%c生日年月日當(dāng)前考勤次

數(shù)%d\n,z,stu[j-l].name,stu[j-l].number,stu[j-l].sex,stu[j-l].y

ear,stu[j-l].month,stu[j-1].day,kq);

)

printf(〃是否繼續(xù)查詢其他學(xué)生信息0否1是〃):

scanf&x);

if(x==l)search();

)

/**********************按照姓名查找結(jié)束

>T>xjx*£*xl*/fi/t/

/**********************按照學(xué)號查找開始

xZxvjxxlxvlxsixsJxsixsXxvlxffI

<IX///

if(sway==2)

printf(〃請輸入需要修改學(xué)生的學(xué)號〃);

//printf(,zi=%d,z,i);

scanfnumber);

for(j=0;t!=0;j++)

(

t=strcmp(stu[j].number,number);

if(j==i)

(

t=0;

printf(〃未找到您所查詢的數(shù)據(jù),請重新輸入\n〃);

)

)

if(j<i)〃查詢成功

{

printf(〃您查找的學(xué)生信息如下\n姓名%s學(xué)號%s性

別枇生日%d年%d月%d日當(dāng)前考勤次

數(shù)%d\n〃,stu[j-l].name,stu[j-l].number,stu[jT].sex,stu[j-l].y

ear,month,day,kq);

)

printf(〃是否繼續(xù)查詢其他學(xué)生信息0否1是〃);

scanf&x);

if(x==l)search();

)

/********************合按照學(xué)號查找結(jié)束

*1**1**1**1**1**1*^1**1*///

>T^*1**7*>T^*7^^7^^7^/

printfCO返回主菜單\n〃);

getchar();

a=getchar();

getchar();

if(a二二'O')main();

)

流程圖:

輸入要查輸入要查找

5.evaluate()函數(shù)

voidevaluate()

{inti=0,j=0,sway,t,x;

floatscore;

charname[10],number[10];

printf(,z***********************學(xué)生考勤分?jǐn)?shù)計算

\**>、?

\III

if(kqcs==0)

(

printf(”請輸入應(yīng)到考勤總數(shù)”);〃請輸入應(yīng)到考勤總數(shù)

scanf("%f〃,&kqcs);

)

if((fp=fopen("date,txt",〃r"))=NULL)〃將文獻(xiàn)內(nèi)容

讀入內(nèi)存

printf(〃文獻(xiàn)打開失敗\n");

exit(0);

)

for(i=0;feof(fp)==0;i++)fread(&stu[i],sizeof(struct

student),1,fp);〃讀取文獻(xiàn)內(nèi)容

fclose(fp);〃關(guān)閉文獻(xiàn)

printf(〃選擇查找方式1按照姓名查找2按照學(xué)號查找〃);

scanf("猊”,&sway);

/**********************按照姓名查找開始

I/!

zT^z?vZT*yTvzT^yr*iff

if(sway==l)

(

printf(〃請輸入需要修改學(xué)生的姓名〃);

//printf("i=%d",i);

scanf('%s”,name);

for(j=0;t!=0;j++)

(

t=strcmp(stu[j].name,name);

if(j==i)

t=0;

prinlf(〃未找到您所查詢的數(shù)據(jù),請重新輸入\n〃);

)

if(j<i)〃查詢成功

{

printf(〃您查找的學(xué)生信息如下\n姓名%s學(xué)號%s性

別%c生日%d年%d月%d日當(dāng)前考勤次

數(shù)%d\n〃,stu[j-l].name,stu[j-l].number,stu[j-l].sex,stu[j-l].y

ear,stu[j-l].month,stu[j-l].day,stu[j-l].kq);

score=(stu[j-1].kq)/kqcs*100;

printf("該生當(dāng)前考勤分?jǐn)?shù)為%5.2f”,score);

)

printf(〃是否繼續(xù)計算其他學(xué)生考勤分?jǐn)?shù)。否1是〃);

scanf&x):

if(x==l)evaluate();

)

/**********************按照姓名查找結(jié)束

vizslz///

///

/**********************按照學(xué)號查找開始

KJ**1**1**1**1**1*///

iff

if(sway=2)

printf(〃請輸入需要修改學(xué)生的學(xué)號〃);

//printf(z,i=%dz,,i);

scanf("%s〃,number);

for(j=0;t!=0;j++)

(

t=strcmp(stu[j].number,number);

if(j==i)

(

t=0;

printf(〃未找到您所查詢的數(shù)據(jù),請重新輸入\n〃);

)

)

if(j<i)〃查詢成功

(

printf(〃您查找的學(xué)生信息如下\n姓名%s學(xué)號%s性

別%c生日%d年%d月猊日當(dāng)前考勤次

數(shù)%d\n”,stu[j-l].name,stu[j-l].number,stu[j-l].sex,y

ear,stu[j-l].month,stu[j-l].day,kq);

score=(stu[j-l].kq)/kqcs*100;

p二intf(〃該生當(dāng)前考勤分?jǐn)?shù)為%5.2鏟,score);

)

printf(〃是否繼續(xù)計算其他學(xué)生考勤分?jǐn)?shù)0否1是〃);

scanf("%d",&x);

if(x==l)evaluate();

)

/********************;^按照學(xué)號查找結(jié)束

sixslzsix///

^///

printffO返回主菜單\n〃);

getchar();

a=getchar();

getchar();

if(a二二'O')main();

流程圖:

三、測試及調(diào)試(測試方案、存在的問題及解決方法)

1.測試方案:按照每個函數(shù)功能進(jìn)行測試,在做完每個函數(shù)對其

進(jìn)行測試,主函數(shù)測試,先將所有需要的功能模塊函數(shù)設(shè)立為

空,每個函數(shù)用一個printf語句來測試主函數(shù)。

存在問題:開始將生日定義為字符數(shù)組,當(dāng)用scanf來輸入年月日時,年月

日之間用空格分隔,但在輸出時發(fā)現(xiàn)年月日出現(xiàn)錯誤。

分析因素:用scanf輸入年月日時,系統(tǒng)會把用來分隔的空格當(dāng)做字符讀

入。

解決方法:將年月日定義為整型,這樣就可以用scanf輸入,用空格隔開。

2.存在問題2:在查找數(shù)據(jù)時,需要先將所有數(shù)據(jù)讀入一個結(jié)構(gòu)體數(shù)組,在

讀取后未關(guān)閉文獻(xiàn),執(zhí)行查找時查找不到相關(guān)信息。

分析因素:再運(yùn)用for循環(huán)讀取所有文獻(xiàn)內(nèi)容后,文獻(xiàn)指針將會移至文獻(xiàn)

末尾,這樣再執(zhí)行查找時就會從文獻(xiàn)末尾開始,顯然不符合規(guī)定,所以會

出現(xiàn)錯誤。

解決方法:在讀取完數(shù)據(jù)后先關(guān)閉文獻(xiàn),在查找時再次打開文獻(xiàn),這時文

獻(xiàn)指針就會指向文獻(xiàn)開頭。

存在問題3:再多個使用getchar或者gets輸入的時候,會出現(xiàn)直接跳過輸入

的情況。

分析因素:在使用getchar或者gets輸入的時候,系統(tǒng)會將前一步用來確認(rèn)

執(zhí)行的回車當(dāng)成字符讀入,導(dǎo)致跳過該步輸入。

解決方法:再getchar或者gets前面加上getchar()語句,讀掉回車,下面的

getchar或者gets就可以正常輸入。

四、小結(jié)

通過編寫該程序,熟悉了C語言的基本語法,選擇,循環(huán)等結(jié)構(gòu),進(jìn)一

步練習(xí)了函數(shù)的調(diào)用方法,和文獻(xiàn)的讀寫方法,熟悉了結(jié)構(gòu)體的使用,更加深

化了面向過程語言思想,和一些基本算法。

通過對程序的后期調(diào)試,熟悉了C常見錯誤,鍛煉了思維的嚴(yán)密性,和完備

性。

通過對程序的注釋和畫流程圖,形成了一套自己編程的風(fēng)格,和清楚地思緒,

使思維更加條理化,清楚化。

附件:重要源程序代碼(需打印)

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

FILE*fp;〃定義文獻(xiàn)

chara;〃返回選擇變量

floatkqcs=0;〃應(yīng)到考勤次數(shù)變量

structstudent

{charname[10];

charnumber[l1J;

charsex;

intyear;

intmonth;

intday;

intkq;

}stu[100];〃定義儲存學(xué)生信息的結(jié)構(gòu)體

數(shù)組

函數(shù)開

*1*?£**4**£**£*vl?K1**1**2^■>vl*?£^*£**3*K1*KI**£**2**2**3*K1**1**1^*2**£**3*K1#^1**£**£**3*K1?<I><1**2*vl*K1?

J/::?卜?卜?;、*J%?卜■卜?[、?卜?卜?;、*,?■;??[??[、?卜?;、?;?,[??[??;、,??卜?[??卜?[、?.、?卜?[??[、?;、.??卜?卜?.?rj*?[,.[??;、?;、?卜■卜

voidmain()

(

voidinput();〃錄入數(shù)據(jù)函數(shù)

voidchange();〃修改數(shù)據(jù)函數(shù)

voidsearch();〃查詢數(shù)據(jù)函數(shù)

voidevaluate();〃計算總評函數(shù)

charitem;

system("color34");

printf(n★?★口★?★口★?★口★?★口

★?★□★、/);

prinif(M

?\n");

printf(MO學(xué)生考勤管

理系統(tǒng)?、/);

printf(n

?\nn);

printf(nOBY朱勝佳

?\n)

printf("

?\n");

printf(M★?★口★?★匚★口

★?★□★?★口★\n");

printf("?

?\n)

printf("O1.學(xué)生信息及考勤

情況錄入O\n");

printf(M?

?\n)

printf(H?2.學(xué)生信息及考勤

情況修改?\n”);

printf(n?

?\n)

printf("O3.學(xué)生信息及考勤

情況查詢?\n”);

printf(n◎

O\n,f);

printf("?4.學(xué)生考勤總評分

數(shù)查詢

printf(nO

?\n");

printf("★?★口★?★匚★?★口

★?★□★?★口★\nH);〃用戶界面

printf(',\nH);

printf(n請選擇您需要的操作\n");

scanf("%c",&item);

switch(item)

case'I1:input();break;

case2:change();break;

case3:search();break;

case4:evaluate();break;

//實(shí)現(xiàn)功能選擇

〃//小本一1?小木不不木木小木木不字本小小木*1琴**1?小小小木-木]?*1不**1小*小小?水1?*軍1**1本*小■小小"字小融小小*好小*木2^■小融〈上小?如本“字一I個小王.、困彳.

-jL*fr^.1.K1>*3**1*■1>?i>*1**1**1*?1>K1**1**1**X**£**1*.!**1**2*7,KI*.!**1*

fN-**[7J*Jw*jw*jw*j?.尸rj**Jwrj*..?*Jw*J**J?*jw*jw

MA2口Zix

///*****************************************錄入數(shù)據(jù)函數(shù)內(nèi)

,,;7IJ/?zV*X*^4?1?.酎?*?^9?^9^^9^?>*)??X*?3a

,▲I1^"、,;..卜*Tw.[?*T*?T?.[.'I,,[.*T??^w.[?.1.*T??Tw?Tw-7。*T**!?rT??T?rT?^Z**Tw.[.rTwrTw*Tw?TwrTw*7,?T??TwrT?^Tw?Tw?Tw.1.rT?rTw*T??Tw?[??Tw*Tw*Tw*Tw

4u*zI%U

voidrecord()

inti,j=O,jx=l;

printf(n************************學(xué)生基本信息錄入

小小小小事不小小小小小事*小小小小木木率小小小*k木小小木小小\n??\).

if((fp=fopen(,,date.txt,',Mw<'))==NULL)

printf("文獻(xiàn)打開失敗\n”);

exit(O);

)

for(i=0;jx==l;i++)〃輸入信息循環(huán)

{for(;j==0;)〃輸入確認(rèn)循環(huán)

(

getchar();

printf("請輸入第%d個學(xué)生的姓名”,i+l);

gets(stu[i].name);

printf(”請輸入第%d個學(xué)生的學(xué)號”,i+l);

gets(stu[i].number);

printf(”請輸入第%d個學(xué)生的性別(男:m女:f)u,i+l);

stu[i].sex=getchar();

printf("請輸入第%d個學(xué)生的生日(格式:年月日)”,i+l);

scanf(,'%d%d%d,1,&stufi].year,&stu[i].month,&stu[i].day);

printf(”請輸入第%d個學(xué)生的當(dāng)前考勤次數(shù)

scanf("%d”,&stu[i].kq);

printff您輸入的信息為姓名%s學(xué)號%s性別%c生日%d

年%d月%d日\n0重輸1確認(rèn)

H,,stufi].number,stufi].sex,stufi].year,stu[i].month,stufil.day);

scanf("%d",&j);〃輸入確認(rèn)

j=0;

if(fwrite(&stu[i],sizeof(structstudent),l,fp)!=l)printf("文獻(xiàn)寫入錯誤

\nH);〃寫入文獻(xiàn)

printfC1是否繼續(xù)輸入下一個學(xué)生信息0終止1繼續(xù)

\n");

scanf(u%dH,&jx);〃繼續(xù)輸入選擇

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論