我以前做的....要按你这个做不是一下两下弄得完的吧........
你看看能改着用就改这用吧
vc,tc,win-tc编译通过
33.学生成绩管理程序设计
(1)选项菜单集成各功能函数模块
(2)录入学生成绩(姓名、学号、语文、数学成绩,总分自动计算)
(3)按总分排名次
(4)按姓名查找某学生成绩
(5)统计各课程的平均分、及格率、最高分、最低分
#include "stdio.h"
#include "windows.h"
int sum=0,x,data=0;
struct STU
{
char name[20];
char num[20];
int chinese_great;
int math_great;
int all;
}stu[200];/*定义学生结构体以及学生结构体数组*/
struct STU *temp;
struct STU *p[200];
void in();/*自定义学生信息输入函数*/
void all_swap();/*总分排名*/
void menu();/*菜单*/
void name_swap();/*姓名查找*/
void tongji();/*统计*/
int ssame(char a[],char b[]);/*字符串比对函数*/
void over();/*退出*/
void main()
{
menu();
switch (x)
{
case 1 : data=1;system("cls");in();break;
case 2 : system("cls");all_swap();break;
case 3 : system("cls");name_swap();break;
case 4 : system("cls");tongji();break;
}
}
/*菜单*/
void menu()
{
system("cls");
printf("******************************学生成绩管理系统****************************\n");
printf("请选择你需要的操作:\n");
printf("1.录入学生成绩(姓名、学号、语文、数学成绩,总分自动计算)\n");
printf("2.按总分排名次\n");
printf("3.按姓名查找某学生成绩\n");
printf("4.统计各课程的平均分、及格率、最高分、最低分\n");
printf("5.打印成绩表\n");
scanf("%d",&x);
}
/*学生信息输入函数*/
void in()
{
int i;
int end=1;
for(i=0;i<200;i++)
{
sum++;
printf("请输入第%d个学生的姓名: ",i+1);
scanf("%s",&stu.name);
printf("请输入第%d个学生的学号: ",i+1);
scanf("%s",&stu.num);
printf("请输入第%d个学生的语文成绩: ",i+1);
scanf("%d",&stu.chinese_great);
printf("请输入第%d个学生的数学成绩: ",i+1);
scanf("%d",&stu.math_great);
stu.all=stu.chinese_great+stu.math_great;
printf("\n\n\n\n\n \n 1:继续录入\n 2:结束录入\n 请选择:");
scanf("%d",&end);
if(end==2)
break;
else if (end==1) system("cls");
else over();
}/*FOR结束*/
system("cls");
main();
}/*学生信息输入函数结束*/
/*按总分排名*/
void all_swap()
{
int i,j,q=0;
for(i=0;i<=sum;i++)
p=&stu;
for(i=0;i<=sum-1;i++)
for (j=i+1;j<=sum;j++)
{
if(stu.all
temp=p;
p=p[j];
p[j]=temp;
}
}
printf(" 名次 姓名 学号 总成绩 \n");
for(i=0;i
printf("输入 1 返回主菜单,输入其他退出");
scanf("%d",&q);
if(q==1)
{
system("cls");
main();
}
else over();
}/*总分查询结束*/
/*名字查询*/
void name_swap()
{
int i,q;
char temp[20];
for(i=0;i<=sum;i++)
p=&stu;
printf("\n\n\n\n\n\n\n\n\n\ 请输入您要查询的学生姓名\n");
scanf("%s",&temp);
for (i=0;i<=sum;i++)
{
if(ssame(temp,p->name)==0)
{
system("cls");
printf("你所查找的学生已找到\n 姓名:%s \n 学号: %s \n 数学成绩:%d \n 语文成绩:%d \n 总成绩:%d ",p->name,p->num,p->chinese_great,p->math_great,p->all);
printf("\n\n\n\n\n\n 输入 1 返回主菜单,输入其他退出");
scanf("%d",&q);
if(q==1)
{
system("cls");
main();
}
else over();
}
else
{
system("cls");
printf("\n\n\n\n\n\n 未找到与%s有关的记录",temp);
printf("\n\n\n\n\n\n 输入 1 返回主菜单,输入其他退出");
scanf("%d",&q);
if(q==1)
{
system("cls");
main();
}
else over();
}
}
} /*名字查询结束*/
/*统计*/
void tongji()
{
int i,q,chinese_max=0,chinese_min=9999,math_max=0,math_min=9999;long sum_chinese=0,sum_math=0;
float chinese_v,math_v,chinese_p,math_p,p_c=0,p_m=0;
if(data==1)
{
for(i=0;i<=sum;i++)
{
p=&stu;
sum_chinese=p->chinese_great+sum_chinese;
sum_math=p->math_great+sum_math;
if(p->chinese_great>=60)
p_c++;
if(p->math_great>=60)
p_m++;
}
chinese_v=sum_chinese/sum;/*语文平均分*/
math_v=sum_math/sum;/*数学平均分*/
chinese_p=(p_c/sum)*100;/*语文及格率*/
math_p=(p_m/sum)*100;/*数学及格率*/
for(i=0;i
chinese_max=max(chinese_max,p->chinese_great);
chinese_min=min(chinese_min,p->chinese_great);
math_max=max(math_max,p->math_great);
math_min=min(math_min,p->math_great);
}
printf(" 科目 平均分 及格率 最高分 最低分\n");
printf(" 语文 %f 百分之%f %d %d \n",chinese_v,chinese_p,chinese_max,chinese_min);
printf(" 数学 %f 百分之%f %d %d \n",math_v,math_p,math_max,math_min);
printf("\n\n\n\n\n\n 输入 1 返回主菜单,输入其他退出");
scanf("%d",&q);
if(q==1)
{
system("cls");
main();
}
else over();
}
else main();
}
/*字符串比对*/
int ssame(char a[],char b[])
{
int p=0,flag=0;
while (a[p]!='\0'||b[p]!='\0')
{
if((a[p]>b[p]) || (a[p] {
flag=1;break;
}
p++;
}
if(flag==0)
{
if((a[p]!='\0') || (b[p]!='\0'))
flag=1;
}
return flag;
}/*字符串比对结束*/
/*退出*/
void over()
{
int q;
system("cls");
printf("\n\n\n\n\n\n\n\n\n 此操作将导致你退出本程序。\n1:确认退出 \n2:返回主菜单");
scanf("%d",&q);
if(q==1)
exit(1);
else if (q==2)
main();
else over();
}
等我啊,我在写,写的很详细的,包您满意!请留下您的邮箱!
我之前做了一个“学籍管理系统”也就是学生信息管理系统,功能及格式跟您的要求较相像,并且也是大作业来的,有设计说明文档,可供参考,这个要吗,如果用得着请发个邮箱地址来。
谁会也给我发一份吧
wangyanweiqwa@163.com
感激不尽
以前做过 没有那么详细
麻烦你写好了发到我邮箱哦,我也等着急用1215776293@qq.com