实验报告 实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
丽水学院计算机实验报告
丽水学院计算机实验报告
一、实验目的
1. 掌握数组的定义和初始化的方法;
2. 掌握排序、统计分析等常用算法;
3. 培养在程序中加注释的习惯;
4. 进一步掌握循环嵌套的应用;
5. 掌握C语言中定义函数的方法;
6. 掌握函数传值调用的方法;
7. 掌握数组作函数参数的使用方法;
8. 掌握排序、查找、统计分析等常用算法。
二、实验环境
硬件:Pentium以上的计算机。
软件:Windows XP操作系统、Visual C++和C-Free等集成环境。
三、实验内容和结果
1.学生管理系统。
程序1 学生成绩统计。从键盘输入一个班(全班最多不超过30人)学生某门课的成绩,当输入成绩为负值时,输入结束,分别实现下列功能:
(1)统计不及格人数并打印不及格学生名单;
(2)统计成绩在全班平均分及平均分之上的学生人数,并打印这些学生的名单;
(3)统计各分数段的学生人数及所占的百分比。
程序1源程序:
#include<>
#define N 30
int main()
{
int num[N],score[N],i,j=0,k,count=0,sum=0,t=0,stu[N]={0};
float ave=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) { 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 { 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); return 0; } 程序1运行结果: 思考题: 在编程实现对数据的统计任务时,需要注意什么问题? 注意输入输出格式,以及对班级人数的统计。 程序2 成绩排名次。某班期末考试科目为数学(MT)、英语(EN)和物理 (PH),有最多不超过30人参加考试。考试后要求: (1)计算每个学生的总分和平均分; (2)按总分成绩由高到低排出成绩的名次; (3)打印出名次表,表格内包括学生编号、各科分数、总分和平均分;(4)任意输入一个学号,能够查找出该学生在班级中的排名及其考试分数。程序2源程序: #include<> #define M 3 #define N 30 void Input(long num[],int score[][M],int n); void GetSumAver(int score[][M], int n, int sum[], float aver[]); void Sort(long num[],int score[][M], int n, int sum[], float aver[]); void Print(long num[], int score[][M], int n,int sum[], float aver[]); int Search(long num[], int n, long x); int main() { int n,i,j,k,r,score[N][M],sum[N]; long num[N],x; float aver[N]; printf("期末考试的学生人数(不超过30人):"); scanf("%d",&n); Input(num,score,n); GetSumAver(score,n,sum,aver); Sort(num,score,n,sum,aver); 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"); } void Input(long num[],int score[][M],int n) { int i,j; for(i=0;i { printf("请输入第%d个学生的学号及数学、英语和物理考试的成绩:\n",i+1); scanf("%ld",&num[i]); for(j=0;j scanf("%d",&score[i][j]);