求C语言程序综合设计
学生成绩管理程序设计(4人,B类)(1)选项菜单集成各功能函数模块
(2)录入学生成绩(姓名、学号、语文、数学成绩,总分自动计算)
(3)按总分排名次
(4)按姓名查找某学生成绩
(5)统计各课程的平均分、及格率、最高分、最低分
(6)打印成绩表
答案:/*(1)选项菜单集成各功能函数模块
(2)录入学生成绩(姓名、学号、语文、数学成绩,总分自动计算)
(3)按总分排名次
(4)按姓名查找某学生成绩
(5)统计各课程的平均分、及格率、最高分、最低分
(6)打印成绩表 */
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 175
typedef struct mark
{
double yuwen;
double shuxue;
};
typedef struct
{
long number;
char name[20];
double sum;
double aver;
struct mark achie;
}student;
student stu[N];
double ymin,ymax,smax,smin,yper,sper,yaver=0,saver=0;
int input()
{
int i,n;
printf("请输入你要输入的学生数:\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("请输入第%d个学生的信息(包括学号、姓名、语文、数学的成绩)\n",i);
scanf(
"%ld%s%lf%lf",
&stu[i].number,
stu[i].name,
&stu[i].achie.yuwen,
&stu[i].achie.shuxue
);
}
return(n);
}
void skim(int n)
{
int i;
printf("列出的学生信息依次为学号、姓名、语文、数学的成绩、总分、平均分\n");
for(i=1;i<=n;i++)
{
stu[i].sum=stu[i].achie.yuwen+stu[i].achie.shuxue;
stu[i].aver=stu[i].sum/2.0;
printf("第%d个学生的信息为:\n",i);
printf(
"%d\t%s\t%lf\t%lf\t",
stu[i].number,
stu[i].name,
stu[i].achie.yuwen,
stu[i].achie.shuxue
);
printf("%lf\t%lf\n",stu[i].sum,stu[i].aver);
}
}
void search(int n,char m[])
{
int i;
for(i=1;i<=n;i++)
if(strcmp(stu[i].name,m)==0)
break;
if(i>n)
printf("系统查找不到相应学生的信息,请确认输入后重新输入\n");
else
{
stu[i].sum=stu[i].achie.yuwen+stu[i].achie.shuxue;
stu[i].aver=stu[i].sum/2.0;
printf("你要查询的学生的信息是:");
printf("%d\t%s\t%lf\t%lf\t",stu[i].number,stu[i].name,stu[i].achie.yuwen,stu[i].achie.shuxue);
printf("%lf\t%lf\n",stu[i].sum,stu[i].aver);
}
}
void sort(int n)
{
int i,j;
student temp;
for(i=1;i<=n;i++)
{
stu[i].sum=stu[i].achie.yuwen+stu[i].achie.shuxue;
stu[i].aver=stu[i].sum/2.0;
}
for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++)
if(stu[i].sum>stu[j].sum)
{
temp=stu[i];
stu[i]=stu[j];
stu[j]=temp;
}
printf("按学生的总分升序排序后的结果是:");
for(i=1;i<=n;i++)
{
printf("%d\t%s\t%lf\t%lf\t",stu[i].number,stu[i].name,stu[i].achie.yuwen,stu[i].achie.shuxue);
printf("%lf\t%lf\n",stu[i].sum,stu[i].aver);
}
}
void stati(int n)
{
int i,a=0,b=0;
ymin=stu[1].achie.yuwen;smin=stu[1].achie.shuxue;
ymax=stu[1].achie.yuwen;smax=stu[1].achie.shuxue;
for(i=1;i<=n;i++)
{
if(stu[i].achie.yuwen<ymin)
ymin=stu[i].achie.yuwen;
if(stu[i].achie.yuwen>ymax)
ymax=stu[i].achie.yuwen;
if(stu[i].achie.shuxue<smin)
smin=stu[i].achie.shuxue;
if(stu[i].achie.shuxue>smax)
ymin=stu[i].achie.shuxue;
if(stu[i].achie.yuwen>=60) a++;
if(stu[i].achie.shuxue>=60) b++;
saver+=stu[i].achie.shuxue/2.0;
yaver+=stu[i].achie.yuwen/2.0;
}
yper=(double)a/n;sper=(double)b/n;
printf("语文的平均分、及格率、最高分、最低分分别为:%lf\t%lf\t%lf\t%lf\n",yaver,yper,ymax,ymin);
printf("数学的平均分、及格率、最高分、最低分分别为:%lf\t%lf\t%lf\t%lf\n",saver,sper,smax,smin);
}
void mixed(int m,int n)
{
char k[N];
switch(m)
{
case 1:skim(n);
break;
case 2:stati(n);
break;
case 3:printf("请输入你要查询的学生的姓名:");
scanf("%s",k);
上一个:关于6174的C语言程序
下一个:C语言怎么学啊