c语言大作业高爽超文档格式.docx
- 文档编号:21160026
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:22
- 大小:329.71KB
c语言大作业高爽超文档格式.docx
《c语言大作业高爽超文档格式.docx》由会员分享,可在线阅读,更多相关《c语言大作业高爽超文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
longnum;
charname[MAX_LEN];
floatscore[COURSE_NUM];
floatsum;
floataver;
}STU;
intMenu(void);
voidReadScore(STUstu[],intn);
voidAverSumofEveryStudent(STUstu[],intn);
voidAverSumofEveryCourse(STUstu[],floatsum[],floataver[],intn);
voidSortbyScore(STUstu[],intn,int(*compare)(floata,floatb));
intAscending(floata,floatb);
intDescending(floata,floatb);
voidAsSortbyNum(STUstu[],intn);
voidSortbyName(STUstu[],intn);
voidSearchbyNum(STUstu[],intn);
voidSearchbyName(STUstu[],intn);
voidStatisticAnalysis(STUstu[],intn);
voidPrintScore(STUstu[],intn);
voidWritetoFile(STUrecord[],intn);
intReadfromFile(STUrecord[]);
intmain()
charch;
intn,i;
STUstuRecord[STU_NUM];
floatsumofCourse[COURSE_NUM],averofCourse[COURSE_NUM];
printf("
Inputstudentnumber(n<
%d):
"
STU_NUM);
scanf("
%d"
&
n);
while
(1)
{
ch=Menu();
switch(ch)
case1:
ReadScore(stuRecord,n);
break;
case2:
AverSumofEveryCourse(stuRecord,sumofCourse,averofCourse,n);
for(i=0;
i<
COURSE_NUM;
i++)
course%d:
sum=%.0f,aver=%.0f\n"
i+1,sumofCourse[i],averofCourse[i]);
}
case3:
AverSumofEveryStudent(stuRecord,n);
case4:
SortbyScore(stuRecord,n,Descending);
\nSortindescendingorderbytotalscoreofeverystudent:
\n"
);
PrintScore(stuRecord,n);
case5:
SortbyScore(stuRecord,n,Ascending);
\nSortinascendingorderbytotalscoreofeverystudent:
case6:
AsSortbyNum(stuRecord,n);
\nSortinascendingorderbynumber:
case7:
SortbyName(stuRecord,n);
\nSortindictionaryorderbyname:
case8:
SearchbyNum(stuRecord,n);
case9:
SearchbyName(stuRecord,n);
case10:
StatisticAnalysis(stuRecord,n);
case11:
PrintScore(stuRecord,n);
case12:
WritetoFile(stuRecord,n);
case13:
n=ReadfromFile(stuRecord);
case0:
Endofprogram!
exit(0);
default:
printf("
Inputerror!
return0;
intMenu(void)
intitemSelected;
\nManagementforStudent'
scores\n"
1.Appendrecord\n"
2.Caculatetotalandaveragescoreofeverycourse\n"
3.Caculatetotalandaveragescoreofeverystudent\n"
4.Sortindescendingorderbytotalscoreofeverystudent\n"
5.Sortinascendingorderbytotalscoreofeverystudent\n"
6.Sortinascendingorderbynumber\n"
7.Sortindictionnaryorderbyname\n"
8.Searchbynumber\n"
9.Searchbyname\n"
10.Statisticanalysis\n"
11.Listrecord\n"
12.Wiritetoafile\n"
13.Readfromafile\n"
0.Exit\n"
itemSelected);
returnitemSelected;
}
voidReadScore(STUstu[],intn)
inti,j;
Inputstudent'
sID,nameandscore:
for(i=0;
n;
%ld%s"
stu[i].num,&
stu[i].name);
for(j=0;
j<
j++)
%f"
stu[i].score[j]);
voidAverSumofEveryStudent(STUstu[],intn)
i++)
stu[i].sum=0;
stu[i].sum=stu[i].sum+stu[i].score[j];
stu[i].aver=stu[i].sum/COURSE_NUM;
student%d:
sum=%.0f,aver=%.0f\n"
i+1,stu[i].sum,stu[i].aver);
voidAverSumofEveryCourse(STUstu[],floatsum[],floataver[],intn)
j++)
sum[j]=0;
sum[j]=sum[j]+stu[i].score[j];
aver[j]=sum[j]/n;
voidSortbyScore(STUstu[],intn,int(*compare)(floata,floatb))
inti,j,k,t;
floattemp1;
longtemp2;
chartemp3[MAX_LEN];
n-1;
k=i;
for(j=i+1;
if((*compare)(stu[j].sum,stu[k].sum))
k=j;
if(k!
=i)
for(t=0;
t<
t++)
temp1=stu[k].score[t];
stu[k].score[t]=stu[i].score[t];
stu[i].score[t]=temp1;
temp1=stu[k].sum;
stu[k].sum=stu[i].sum;
stu[i].sum=temp1;
temp1=stu[k].aver;
stu[k].aver=stu[i].aver;
stu[i].aver=temp1;
temp2=stu[k].num;
stu[k].num=stu[i].num;
stu[i].num=temp2;
strcpy(temp3,stu[k].name);
strcpy(stu[k].name,stu[i].name);
strcpy(stu[i].name,temp3);
intAscending(floata,floatb)
returna<
b;
intDescending(floata,floatb)
returna>
voidAsSortbyNum(STUstu[],intn)
if(stu[j].num<
stu[k].num)
voidSortbyName(STUstu[],intn)
inti,j,t;
for(j=i+1;
if(strcmp(stu[j].name,stu[i].name)<
0)
temp1=stu[i].score[t];
stu[i].score[t]=stu[j].score[t];
stu[j].score[t]=temp1;
temp1=stu[i].sum;
stu[i].sum=stu[j].sum;
stu[j].sum=temp1;
temp1=stu[i].aver;
stu[i].aver=stu[j].aver;
stu[j].aver=temp1;
temp2=stu[i].num;
stu[i].num=stu[j].num;
stu[j].num=temp2;
strcpy(temp3,stu[i].name);
strcpy(stu[i].name,stu[j].name);
strcpy(stu[j].name,temp3);
voidSearchbyNum(STUstu[],intn)
longnumber;
Inputthenamberyouwanttosearch:
%ld"
number);
if(stu[i].num==number)
%ld\t%s\t"
stu[i].num,stu[i].name);
%.0f\t"
stu[i].score[j]);
%.0f\t%.0f\n"
stu[i].sum,stu[i].aver);
return;
\nNotfound!
voidSearchbyName(STUstu[],intn)
charx[MAX_LEN];
Inputthenameyouwanttosearch:
%s"
x);
if(strcmp(stu[i].name,x)==0)
voidStatisticAnalysis(STUstu[],intn)
inti,j,total=0,t[6];
Forcourse%d:
j+1);
6;
t[i]=0;
}
if(stu[i].score[j]>
=0&
&
stu[i].score[j]<
60)
t[0]++;
elseif(stu[i].score[j]<
70)
t[1]++;
80)
t[2]++;
90)
t[3]++;
100)
t[4]++;
elseif(stu[i].score[j]==100)
t[5]++;
for(total=0,i=0;
=5;
total=total+t[i];
if(total!
=n)
Scoresinputarenotinrightscope!
if(i==0)
<
60\t%d\t%.2f%%\n"
t[i],(float)t[i]/n*100);
elseif(i==5)
%d\t%d\t%.2f%%\n"
(i+5)*10,t[i],(float)t[i]/n*100);
else
%d-%d\t%d\t%.2f%%\n"
(i+5)*10,(i+5)*10+9,t[i],(float)t[i]/n*100);
voidPrintScore(STUstu[],intn)
NO\tName\tMT\tEN\tPH\tSUM\tAVER\n"
voidWritetoFile(STUstu[],intn)
FILE*fp;
if((fp=fopen("
student.txt"
"
w"
))==NULL)
Failutetoopenstudent.txt!
fwrite(stu,sizeof(STU),n,fp);
fclose(fp);
intReadfromFile(STUstu[])
inti;
student.txt"
r"
))==NULL)
Failuretoopenstudent.txt!
!
feof(fp);
fread(&
stu[i],sizeof(STU),1,fp);
Totalstudentsis%d.\n"
i-1);
returni-1;
六、实验数据及处理结果
图一:
图二:
图三:
图四:
图五;
图六:
七、思考讨论题或体会或对改进实验的建议
体会:
这次试验较上次最大的改变应该就是将程序添加到文件中,但是目前无法打开,已经运行很多次了,还是不行,故上图中的结果没有后两项的显示,再次请老师原谅,并有时间告诉我原因,将不胜感激!
正值期末将至,故这次投交时间也比较晚!
八、参考资料
[1]苏小红等C语言程序设计,高等教育出版社2011年8月
[2]苏小红等C语言程序设计学习指导,高等教育出版社2011年8月
[3]徐士良编著.C语言程序设计(第3版),人民邮电出版社,2009
[4]谭浩强编著.C程序设计.北京:
清华大学出版社,2005
[5]刘振安等编著.C程序设计课程设计.北京:
机械工业出版社,2007
[6]BrianW.Kernighan,DennisM.Ritchie著.C程序设计语言.徐宝文等译.北京:
机械工业出版社,2004
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c语言大作业 高爽超 语言 作业 高爽