C语言课题Word格式文档下载.docx

上传人:b****5 文档编号:20667101 上传时间:2023-01-24 格式:DOCX 页数:22 大小:19.06KB
下载 相关 举报
C语言课题Word格式文档下载.docx_第1页
第1页 / 共22页
C语言课题Word格式文档下载.docx_第2页
第2页 / 共22页
C语言课题Word格式文档下载.docx_第3页
第3页 / 共22页
C语言课题Word格式文档下载.docx_第4页
第4页 / 共22页
C语言课题Word格式文档下载.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

C语言课题Word格式文档下载.docx

《C语言课题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言课题Word格式文档下载.docx(22页珍藏版)》请在冰豆网上搜索。

C语言课题Word格式文档下载.docx

voidwelcome();

voiddisplay1();

voidshowtable();

voidsort(studentstu[]);

voiddeleterecord(studentstu[],inti);

voidaddrecord(studentstud[]);

voiddisplay(studentstud[],intn1,intn2);

voidamendrecord(studentstud[]);

voidcount(studentstud[]);

voidsortnum(studentstud[]);

voidsortnum2(studentstud[]);

voidsortname(studentstud[]);

voidsortname2(studentstud[]);

voidsortcount(studentstud[]);

voidsortcount2(studentstud[]);

voidstatistic(studentstud[]);

#endif

intmenu_select()

charc;

printf("

\n\n"

);

|1.增加学生记录5.统计信息|\n"

|2.查询学生记录6.打开文件|\n"

|3.修改学生记录7.保存文件|\n"

|4.学生纪录排序8.显示记录|\n"

|0.退出系统|\n"

请选择(0-8):

"

c=getchar();

getchar();

return(c-'

0'

}

intfindrecord(studentstud[])/*查找信息*/

charstr[2];

inti,num;

if(numstus==0)

没有可被查找的记录\n"

return-1;

else

以何种方式查找?

\n1.学号\t2.姓名\t3.名次\n"

gets(str);

if(str[0]=='

1'

)/*按学号查找*/

请输入学号:

for(i=0;

i<

=numstus;

i++)

if(strcmp(str,stud[i].number)==0)

display(stud,i,i);

break;

elsecontinue;

elseif(str[0]=='

2'

)/*按姓名查找*/

请输入姓名:

if(strcmp(str,stud[i].name)==0)

3'

)/*按名次查找*/

请输入名次:

scanf("

%d"

&

num);

if(num==stud[i].index)

if(i>

numstus)

没有查找所要的信息。

\n"

returni;

#include"

intopenfile(studentstu[])

inti=0,j;

FILE*fp;

charfilename[20],str[2];

if(numstus!

=0)

已经有记录存在,是否保存?

(y/n)"

y'

||str[0]=='

Y'

writetotext(stu);

请输入文件名:

gets(filename);

numstus=0;

if((fp=fopen(filename,"

rb+"

))==NULL)

无法打开该文件\n"

return(-1);

fscanf(fp,"

numstus);

fgetc(fp);

while(i<

%s"

stu[i].number);

stu[i].name);

stu[i].sex);

for(j=0;

j<

numsubs;

j++)

%f"

stu[i].subject[j]);

stu[i].score);

stu[i].average);

stu[i].index);

i++;

fclose(fp);

文件读取成功\n"

是否显示纪录?

display(stu,0,numstus-1);

return(0);

voidsort(studentstud[])

inti,j=0;

charstr[5];

student*p;

p=stud;

没有可供查询的记录!

while

(1)

;

请输入查询方式:

(直接输入回车则结束查询操作)\n"

1.按照学号\t"

2.按照姓名\t"

3.按照名次\n"

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

请输入排序次序:

1.升序排列\t"

2.降序排列\n"

sortnum2(p);

sortnum(p);

display(stud,0,numstus-1);

sortname2(p);

sortname(p);

sortcount2(p);

sortcount(p);

elseprintf("

请输入1~3"

是否退出排序?

)break;

return;

voidsortnum(studentstud[])

inti,j;

studenttemp;

numstus;

numstus-i-1;

if(strcmp(stud[j+1].number,stud[j].number)>

0)

temp=*(p+j);

*(p+j)=*(p+j+1);

*(p+j+1)=temp;

voidsortnum2(studentstud[])

if(strcmp(stud[j].number,stud[j+1].number)>

voidsortname(studentstud[])

if(strcmp(stud[j+1].name,stud[j].name)>

voidsortname2(studentstud[])

if(strcmp(stud[j].name,stud[j+1].name)>

voidsortcount(studentstud[])

if(stud[j+1].index>

stud[j].index)

voidsortcount2(studentstud[])

if(stud[j].index>

stud[j+1].index)

voidstatistic(studentstud[])/*新增功能,输出统计信息*/

inti,j=0,k=0;

charc1,str[2];

floataverage[numsubs],sum=0;

下面将统计考试成绩\n"

请选择你要统计哪科的成绩1.A\t2.B\t3.C\t4.D\t5.E\n"

c1=getchar();

\t一共有个%d记录\n"

numstus);

/*总共记录数*/

switch(c1)

case'

:

i++)/*循环输入判断*/

sum+=stud[i].subject[0];

if(stud[k].subject[0]>

stud[i].subject[0])k=i;

if(stud[j].subject[0]<

stud[i].subject[0])j=i;

average[0]=sum/numstus;

\t科目A的最高分:

/*最高分*/

\t\t学号:

%s姓名:

%s分数:

%.2f\n"

stud[j].number,stud[j].name,stud[j].subject[0]);

\t科目A的最低分是:

/*最低分*/

stud[k].number,stud[k].name,stud[k].subject[0]);

\t科目A的平均分是%5.2f\n"

average[0]);

/*平均分*/

sum+=stud[i].subject[1];

if(stud[k].subject[1]>

stud[i].subject[1])k=i;

if(stud[j].subject[1]<

stud[i].subject[1])j=i;

average[1]=sum/numstus;

\t科目B的最高分:

stud[j].number,stud[j].name,stud[j].subject[1]);

\t科目B的最低分是:

stud[k].number,stud[k].name,stud[k].subject[1]);

\t科目B的平均分是%5.2f\n"

average[1]);

sum+=stud[i].subject[2];

if(stud[k].subject[2]>

stud[i].subject[2])k=i;

if(stud[j].subject[2]<

stud[i].subject[2])j=i;

average[2]=sum/numstus;

\t科目C的最高分:

stud[j].number,stud[j].name,stud[j].subject[2]);

\t科目C的最低分是:

stud[k].number,stud[k].name,stud[k].subject[2]);

\t科目C的平均分是%5.2f\n"

average[2]);

4'

sum+=stud[i].subject[3];

if(stud[k].subject[3]>

stud[i].subject[3])k=i;

if(stud[j].subject[3]<

stud[i].subject[3])j=i;

average[3]=sum/numstus;

\t科目D的最高分:

stud[j].number,stud[j].name,stud[j].subject[3]);

\t科目D的最低分是:

stud[k].number,stud[k].name,stud[k].subject[3]);

\t科目D的平均分是%5.2f\n"

average[3]);

5'

sum+=stud[i].subject[4];

if(stud[k].subject[4]>

stud[i].subject[4])k=i;

if(stud[j].subject[4]<

stud[i].subject[4])j=i;

average[4]=sum/numstus;

\t科目E的最高分:

stud[j].number,stud[j].name,stud[j].subject[4]);

\t科目E的最低分是:

stud[k].number,stud[k].name,stud[k].subject[4]);

\t科目E的平均分是%5.2f\n"

average[4]);

default:

输入错误!

请输入1~5之间的数\n"

sum=0;

是否继续进行统计?

);

elsebreak;

intwritetotext(studentstud[])/*将所有记录写入文件*/

charfilename[20];

输入文件名称:

fp=fopen(filename,"

w"

fprintf(fp,"

%d\n"

%s%s%s"

stud[i].number,stud[i].name,stud[i].sex);

%f"

stud[i].subject[j]);

%f%f%d"

stud[i].score,stud[i].average,stud[i].index);

已成功存储!

return0;

voidwelcome()

\t*************************************************************\n"

\t\t\t\t这是一个学生成绩管理系统\n\t\t\t\t倾情奉献欢迎使用!

voidshowtable()

---------------------------------------------------------------------------------------\n"

学号\t姓名\t性别\tA\tB\tC\tD\tE\t总分\t平均分\t名次\n"

--------------------------------------------------------------------------

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

当前位置:首页 > 小学教育 > 小升初

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

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