成绩管理程序文档格式.docx

上传人:b****3 文档编号:18196688 上传时间:2022-12-14 格式:DOCX 页数:16 大小:16.85KB
下载 相关 举报
成绩管理程序文档格式.docx_第1页
第1页 / 共16页
成绩管理程序文档格式.docx_第2页
第2页 / 共16页
成绩管理程序文档格式.docx_第3页
第3页 / 共16页
成绩管理程序文档格式.docx_第4页
第4页 / 共16页
成绩管理程序文档格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

成绩管理程序文档格式.docx

《成绩管理程序文档格式.docx》由会员分享,可在线阅读,更多相关《成绩管理程序文档格式.docx(16页珍藏版)》请在冰豆网上搜索。

成绩管理程序文档格式.docx

newchengji\n"

\t1:

showchengji\n"

\t2:

shengxu\n"

\t3:

addchengji\n"

\t4:

searchchengji\n"

\t5:

chaxunchengji\n"

\t6:

xiugaichengji\n"

\t7:

deletechengji\n"

\t8:

copychengji\n"

\t9:

paixuchengji\n"

\t10:

inputchengji\n"

\t11:

outputchengji\n"

\t12:

quit\n"

selectachoice:

scanf("

%d"

&

i);

%d\n"

i);

returni;

voidhandle_menu()

{intmenu_select();

for(;

;

{switch(menu_select())

{case0:

newRecords();

break;

case1:

display();

case2:

case3:

addRecords();

case4:

case5:

queryInfo();

case6:

modifyRecord();

case7:

removeRecord();

case8:

case9:

sortInfo();

case10:

saveRecords();

case11:

loadRecords();

case12:

quit();

}}

voidnewRecords()

{charstr[5];

if(numStus!

=0)

{if(saveTag==1)

therearerecprds,makeachoic"

whetherrecordornot\n"

gets(str);

if(str[0]!

='

n'

&

str[0]!

N'

numStus=0;

voidquit()

if(saveTag==1)

whethersaverecords?

Y/n"

free(records);

exit(0);

voidshowTable()

{intj;

nunbers\tname\tsex"

for(j=0;

j<

NUM_SUBJECT;

j++)

\t%s"

subject[j]);

\tsum\taverage\tindex\n"

voiddisplay(void)

{inti,j;

if(numStus==0)

therearenorecords"

return;

showTable();

for(i=0;

i<

numStus;

i++)

{

%s\t%s\t%s"

records[i].number,records[i].name,records[i].gender);

j++)/*20*/

\t%.1f"

records[i].score[j]);

\t%.1f\t%.1f\t%d\n"

records[i].sum,records[i].average,records[i].index);

if(i%20==0&

i!

inputanywordsandcontinue\n"

getch();

\n\n"

voidaddRecords()

{charstr[10];

intj;

floatmark,sum;

therearenorecords\n"

elseprintf("

creatnewrecords\n"

while

(1)

addanewrecordsure?

(y/n)"

if(str[0]=='

)/**/

if(numStus>

=arraySize)/*,*/

{records=realloc(records,(arraySize+INCR_SIZE)*sizeof(StuInfo));

memoryfailed!

arraySize=arraySize+INCR_SIZE;

pleaseinputnumber:

gets(records[numStus].number);

pleaseinputname:

gets(records[numStus].name);

pleaseinputsex(0womam,1man)"

0'

strcpy(records[numStus].gender,"

woman"

else

man"

sum=0;

input%schengji"

mark=(float)atof(str);

records[numStus].score[j]=mark;

sum+=mark;

records[numStus].sum=sum;

records[numStus].average=sum/NUM_SUBJECT;

records[numStus].index=getIndex(sum);

numStus++;

thereare%dmessages\n"

numStus);

saveTag=1;

intgetIndex(floatsum)

intcount=0;

{if(records[i].sum<

sum)

{records[i].index++;

elseif(records[i].sum>

{count++;

returncount+1;

intsaveRecords()

{FILE*fp;

charfname[30];

therearenorecordstosave"

return-1;

inputthenameoffileyouwillsave:

gets(fname);

if(strlen(fname)==0)

strcpy(fname,"

stu_info"

if((fp=fopen(fname,"

wb"

))==NULL)

cannotsavefile\n"

\nsavefile....\n"

fwrite(records,sizeof(StuInfo)*numStus,1,fp);

saveTag=0;

return0;

intloadRecords(void)

FILE*fp;

charstr[5];

=0&

saveTag==0)

choicewhethertocoverrecords(y),or"

addtorepresentrecords(n)?

pressentertocoverrecords\n"

||str[0]=='

{saveTag=1;

{if(saveTag==1)

loadfilewillmodifytherecords,"

whethersavetherecordsornot?

inputfilenametoload:

pressentertoselectstu_info."

rb"

cannotopenfile\n"

\ngetfile...\n"

while(!

feof(fp))

{if(numStus>

=arraySize)

{records=realloc(records,(arraySize+INCR_SIZE)*sizeof(StuInfo));

memoryfailed"

if(fread(&

records[numStus],sizeof(StuInfo),1,fp)!

=1)

/*ø

'

add_«

'

*/

records[numStus].index=getIndex(records[numStus].sum);

fclose(fp);

thereare%drecords."

intfindRecord(char*target,inttargetType,intfrom)

for(i=from;

{if((targetType==0&

strcmp(target,records[i].number)==0)||

(targetType==1&

strcmp(target,records[i].name)==0)||

(targetType==2&

atoi(target)==records[i].index))

voidqueryInfo()

chartarget[20];

inttype;

intcount;

inti,j;

norecords"

choicehowtocheck:

1.numbers\n"

2.name\n"

3.index"

if(strlen(str)==0)break;

1'

inputthenumbertocheck:

gets(target);

type=0;

elseif(str[0]=='

2'

inputnametocheck:

type=1;

inputtheindextocheck:

type=2;

i=findRecord(target,type,0);

if(i==1)

{showTable();

count=0;

while(i!

=-1)

records[i].sum,records[i].average,

records[i].index);

i=findRecord(target,type,i+1);

if(count==0)

nostudentsuitable\n"

findtotal%drecords.\n\n"

count);

voidremoveRecord()

inttmpi;

norecordtodelete"

howtofindrecordstodelete:

pressentertoover\n"

1.number\n"

3.index\n"

inputnumber:

}else

inputname:

else{printf("

inputindex:

if(i==-1)

nosuitablerecord\n"

suretodeletetherecord?

y'

||str[0]!

Y'

{numStus--;

tmpi=records[i].index;

for(j=i;

{copyRecord(&

records[j+1],&

records[j]);

{if(records[j].index>

tmpi)

records[j].index--;

voidcopyRecord(StuInfo*src,StuInfo*dest)

strcpy(dest->

number,src->

number);

name,src->

name);

gender,src->

gender);

{dest->

score[j]=src->

score[j];

}dest->

sum=src->

sum;

dest->

average=src->

average;

index=src->

index;

voidmodifyRecord()

floatsum,mark;

norecordsavailable\n"

suretomodifyrecords?

:

{tmpi=records[i].index;

pleaseinputanewrecord:

gets(records[i].number);

gets(records[i].name);

inputsex(0:

woman,1:

man):

strcpy(records[i].gender,"

input%sscores:

records[i].score[j]=mark;

records[i].sum=sum;

records[i].average=sum/NUM_SUBJECT;

{if(j==i)continue;

if(records[j].index>

tmpi&

records[j].sum>

elseif(records[j].index<

=tmpi&

records[j].sum<

records[j].index++;

if(records[j].sum>

count++;

records[i].index=count+1;

}saveTag=1;

voidsortInfo()

StuInfotmps;

choicehowtosort:

1.numberup\n"

2.numberdown\n"

p

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 起诉状

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1