实验报告 实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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]);

相关文档
最新文档