实验报告模板-实验3讲解.docx
《实验报告模板-实验3讲解.docx》由会员分享,可在线阅读,更多相关《实验报告模板-实验3讲解.docx(14页珍藏版)》请在冰豆网上搜索。
![实验报告模板-实验3讲解.docx](https://file1.bdocx.com/fileroot1/2022-10/4/d8a45db4-689f-4e9d-b16c-f28af3a38913/d8a45db4-689f-4e9d-b16c-f28af3a389131.gif)
14
丽水学院计算机实验报告
课程名称
程序设计基础
实验项目名称
实验3 学生管理系统V1.0
实验时数
7
实验类型
□操作性 □验证性 □设计性 □综合性
指导老师
卢敏
实验地点
(包括机号
)
6号机房
实验日期
2015年12月7日
学生姓名
邓高峰
班 级
网络15
学 号
15
同组成员
无
教师评阅
(教师根据实际情况在两种成绩的评定方法中确定其一)
等级制成绩:
□优 □良 □中 □及 □不及格百分制成绩:
(具体的教师批阅,教师可在符合的选项中勾选,同时根据具体情况补充其它评语,特别是必须指出实验过程存在的问题与不足之处。
)
□实验目的明确;□操作方法与步骤正确;
□设计文稿(表格、程序、数据库、网页)符合要求;□界面美观;□布局合理;
□程序结构合理;□算法正确;□语法、语义正确;□题解正确;
□实验结果正确;□保存路径正确;
□实验分析总结全面;□解析完整;□文字流畅;□实验报告规范;其他:
评阅教师签名
实验报告内容
(不同类型的实验课对实验报告可有不同要求,各个课程的实验报告可以根据自己的学科特点做适当的调整,由任课教师确定填写的内容,学生进行勾选,具体内容用附页填写。
)
□实验目的和要求 □实验数据记录和处理
□实验内容和原理 □实验结果与分析
□主要仪器设备 □讨论、心得
□操作方法与实验步骤
1
丽水学院计算机实验报告
一、实验目的
1.掌握数组的定义和初始化的方法;
2.掌握排序、统计分析等常用算法;
3.培养在程序中加注释的习惯;
4.进一步掌握循环嵌套的应用;
5.掌握C语言中定义函数的方法;
6.掌握函数传值调用的方法;
7.掌握数组作函数参数的使用方法;
8.掌握排序、查找、统计分析等常用算法。
二、实验环境
硬件:
Pentium以上的计算机。
软件:
WindowsXP操作系统、VisualC++6.0和C-Free等集成环境。
三、实验内容和结果
1.学生管理系统V1.0。
程序1 学生成绩统计。
从键盘输入一个班(全班最多不超过30人)
学生某门课的成绩,当输入成绩为负值时,输入结束,分别实现下
列功能:
(1)统计不及格人数并打印不及格学生名单;
(2)统计成绩在全班平均分及平均分之上的学生人数,并打印这些
学生的名单;
2
(3)统计各分数段的学生人数及所占的百分比。
程序1源程序:
#include
#defineN30
intmain()
{
intnum[N],score[N],i,j=0,k,count=0,sum=0,t=0,stu[N]={0};
floatave=0;
for(i=0;i {
printf("第%d个同学的成绩:
",i+1);
scanf("%d%d",&num[i],&score[i]);
sum=sum+score[i];
if(num[i]<0)
break;
}
k=i;
ave=sum/k;
for(i=0;i{
if(score[i]<60)
{
3
count++;
printf("不及格学生学号:
%d分数:
%d\n",num[i],score[i]);
}
}
printf("不及格人数为:
%3d\n",count);
for(i=0;i{
if(score[i]>ave)
{
t++;
printf("高于平均分学生学号 %d 分数 %d\n",num[i],
score[i]);
}
}
printf("高于平均分人数:
%d\n",t);
for(i=0;i {
if(score[i]<60)
{
j=0;
}
else
4
{
j=((int)score[i]-50)/10;
}
stu[j]++;
}
for(j=0;j<1;j++)
printf("0到59分数段人数比例:
%.2f\n",(float)stu[j]/k);
for(j=1;j<5;j++)
printf("%d到%d分数段人数比例:
%.2f\n",50+10*j,59+10*j,(float)stu[j]/k);
for(j=5;j<6;j++)
printf("100分人数比例:
%.2f\n",(float)stu[j]/k);
return0;
}
程序1运行结果:
5
思考题:
在编程实现对数据的统计任务时,需要注意什么问题?
注意输入输出格式,以及对班级人数的统计。
程序2 成绩排名次。
某班期末考试科目为数学(MT)、英语(EN)
和物理(PH),有最多不超过30人参加考试。
考试后要求:
(1)计算每个学生的总分和平均分;
(2)按总分成绩由高到低排出成绩的名次;
(3)打印出名次表,表格内包括学生编号、各科分数、总分和平均
分;
(4)任意输入一个学号,能够查找出该学生在班级中的排名及其考
试分数。
程序2源程序:
#include
6
#defineM3
#defineN30
voidInput(longnum[],intscore[][M],intn);
voidGetSumAver(intscore[][M],intn,intsum[],float
aver[]);
voidSort(longnum[],intscore[][M],intn,intsum[],
floataver[]);
voidPrint(longnum[],intscore[][M],intn,intsum[],
floataver[]);
intSearch(longnum[],intn,longx);
intmain()
{
intn,i,j,k,r,score[N][M],sum[N];
longnum[N],x;
floataver[N];
printf("期末考试的学生人数(不超过30人):
");
scanf("%d",&n);
Input(num,score,n);
GetSumAver(score,n,sum,aver);
Sort(num,score,n,sum,aver);
7
Print(num,score,n,sum,aver);
printf("查询的考生的学号:
");
scanf("%d",&x);
i=Search(num,n,x);
if(i!
=-1)
printf("学号:
%d\n排名:
第%d\n数学:
%d分\n英语:
%d分
\n物理:
%d分\n",num[i],i+1,score[i][0],score[i][1],score[i]
[2]);
else
printf("此人未参加此次考试!
\n");
}
voidInput(longnum[],intscore[][M],intn)
{
inti,j;
for(i=0;i {
printf("请输入第%d个学生的学号及数学、英语和物理考试
的成绩:
\n",i+1);
scanf("%ld",&num[i]);
8
for(j=0;j scanf("%d",&score[i][j]);
}
}
voidGetSumAver(intscore[][M],intn,intsum[],float
aver[])
{
inti,j;
for(i=0;i {
sum[i]=0;
for(j=0;j sum[i]=sum[i]+score[i][j];
aver[i]=(float)sum[i]/M;
}
}
voidSort(longnum[],intscore[][M],intn,intsum[],
floataver[])
{
intt,t1,i,j,k,m;
9
longt2;
floatt3;
for(i=0;i {
k=i;
for(j=i+1;j {
if(sum[j]>sum[i])
{
k=j;
for(m=0;m {
t=score[k][m];
score[k][m]=score[i][m];
score[i][m]=t;
}
t1=sum[k];sum[k]=sum[i];sum[i]=t1;
t2=num[k];num[k]=num[i];num[i]=t2;
t3=aver[k];aver[k]=aver[i];aver[i]=t3;
}
}
}
10
}
voidPrint(longnum[],intscore[][M],intn,intsum[],
floataver[])
{
inti,j;
printf("\n----------------------------------------------
------------------------\n");
printf(" 学生期末考试三门科目成绩汇总(按
总分排名)\n");
printf("┏━━━━━┳━━━━┳━━━━┳━━━━┳━━
━━┳━━━━┳━━━┓\n");
printf("┃ 学号 ┃ 数学 ┃ 英语 ┃ 物理 ┃ 总
分 ┃平均分┃名次┃\n");
printf("┣━━━━━╋━━━━╋━━━━╋━━━━╋━━
━━╋━━━━╋━━━┫\n");
for(i=0;i {
printf("┃%6d ┃",num[i]);
for(j=0;j