C语言综合实验报告模板附调试代码Word文件下载.docx
- 文档编号:14745878
- 上传时间:2022-10-24
- 格式:DOCX
- 页数:7
- 大小:16.41KB
C语言综合实验报告模板附调试代码Word文件下载.docx
《C语言综合实验报告模板附调试代码Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言综合实验报告模板附调试代码Word文件下载.docx(7页珍藏版)》请在冰豆网上搜索。
某班有最多不超过30人(具体人数由键盘输入)参加某门课程的考试,实现如下的学生成绩管理系统:
(1)录入每个学生的学号和考试成绩
(2)计算课程的总分和平均分
(3)按成绩由高到低排出名次表
(4)按学号由小到大排出成绩表
(5)按学号查询学生考试成绩
(6)按优秀(90-100分)、良好(80-89分)、中等(70-79分)、及格(60-69分)、不及格(0-59分)5个类别,统计每个类别的人数及其所占百分比
(7)输出每个学生的学号、考试成绩
三、实验步骤
1.仔细阅读实验要求和书上的相关内容,在磁盘上新建以学号姓名命名的文件夹。
2.编写程序代码、编译、连接及运行程序、查找程序中的错误
3.函数及功能说明
四、完整源程序代码
五、结果分析及总结
分析运行结果,并进行总结(可以从以下几个方面来总结:
你在编程过程中对问题是如何分析的?
遇到了哪些难题?
你是怎么克服的?
你的收获有哪些?
)
调试代码:
#include<
stdio.h>
stdlib.h>
#defineSTU_NUM30/*最多的学生人数*/
intMenu(void);
voidReadscore(longnum[],floatscore[],intn);
voidAversumofscore(floatscore[],intn);
voidDesortbyscore(longnum[],floatscore[],intn);
voidAssortbynum(longnum[],floatscore[],intn);
voidsearchbynum(longnum[],floatscore[],intn);
voidstatisticanalysis(floatscore[],intn);
voidprintscore(longnum[],floatscore[],intn);
intmain()
{charitemselected;
intn;
floatscore[STU_NUM];
longnum[STU_NUM];
printf("
输入学生人数(n<
%d)"
STU_NUM);
scanf("
%d"
&
n);
while
(1)
{itemselected=Menu();
/*显示菜单,并读取用户输入*/
switch(itemselected)
{case1:
Readscore(num,score,n);
break;
case2:
Aversumofscore(score,n);
break;
case3:
Desortbyscore(num,score,n);
printf("
\nsortindescendingorderbyscore:
\n"
);
printscore(num,score,n);
break;
case4:
Assortbynum(num,score,n);
\nsortinascendingorderbyscore:
case5:
searchbynum(num,score,n);
case6:
statisticanalysis(score,n);
case7:
case0:
exit(0);
/*printf("
endofprogram!
"
*/
default:
printf("
inputerror!
}
return0;
}
/*函数功能:
显示菜单项并获得用户键盘输入的选项*/
intMenu(void)
{intitemselected;
\n学生成绩管理系统:
管理学生成绩\n"
\n1.录入每个学生学号和考试成绩\n"
\n2.计算班级总分和平均分\n"
\n3.按成绩由高到低排出名次表\n"
\n4.按学号由小到大排出成绩表\n"
\n5.按学号查询学生排名和考试成绩\n"
\n6.按优秀(90-100分)、良好(80-89分)、中等(70-79分)、及格(60-69分)、不及格(0-59分)5个类别\n统计每个类别的人数及其所占百分比\n"
\n7.输出每个学生的学号、考试成绩\n"
\n0.程序结束\n"
\n输入你的选择\n"
scanf("
itemselected);
returnitemselected;
输入n个学生的某门课成绩*/
voidReadscore(longnum[],floatscore[],intn)
{
inti;
请输入学号和分数(学号和分数用空格隔开,回车输入下一个):
for(i=0;
i<
n;
i++)
%ld%f"
num[i],&
score[i]);
计算全班总分和平均分*/
voidAversumofscore(floatscore[],intn)
floatd,c;
intj;
c=0;
for(j=0;
j<
j++)
{
c=c+score[j];
d=c/n;
总分=%f,平均分=%f\n"
c,d);
将数组score的元素值按从高到低排序,即按成绩从大到小排序*/
voidDesortbyscore(longnum[],floatscore[],intn)
floatt;
longa;
intj,i;
=n-1;
for(j=i+1;
if(score[i]<
score[j])
{t=score[i];
score[i]=score[j];
score[j]=t;
a=num[i];
num[i]=num[j];
num[j]=a;
将数组num的元素值按从低到到排序,即按学号从小到大排序*/
voidAssortbynum(longnum[],floatscore[],intn)
floata;
longt;
if(num[i]>
num[j])
{t=num[i];
num[j]=t;
a=score[i];
score[j]=a;
按学号查找学生成绩并显示查找结果*/
voidsearchbynum(longnum[],floatscore[],intn)
longb;
请输入学号查找学生成绩\n"
%ld"
b);
if(num[i]==b)
printf("
%f"
score[i]);
统计各分数段的学生人数及所占百分比*/
voidstatisticanalysis(floatscore[],intn)
{
floatt[5]={0,0,0,0,0};
if(score[i]>
=0&
&
score[i]<
60)t[0]++;
elseif(score[i]<
70&
score[i]>
=60)t[1]++;
80&
=70)t[2]++;
90&
=80)t[3]++;
=100&
=90)t[4]++;
=5;
if(i==0)
小于60分共%f人,占%f%%\n"
t[i],a=t[i]/n*100);
elseif(i==1)
大于等于60分小于70分共%f人,占%f%%\n"
elseif(i==2)
大于等于70分小于80分共%f人,占%f%%\n"
elseif(i==3)
大于等于80分小于90分共%f人,占%f%%\n"
elseif(i==4)
大于等于90分小于等于100分共%f人,占%f%%\n"
打印学生成绩*/
voidprintscore(longnum[],floatscore[],intn)
%ld%f\n"
num[i],score[i]);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 综合 实验 报告 模板 调试 代码