学生成绩管理系统

qq_41831256 2018-03-13 09:21:39
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct student{ //建立“学生”结构体
char name[30]; //声明数据类型
int number;
float score[10],sum;
double avi;
};
struct student cj[100];
struct student z[1];
int n,q,u;
int main()
{
system("title 学生成绩管理系统");
system("mode con cols=60 lines=25");
system("color 8B");
void shuru();
void chaxun();
void xiugai();
void shanchu();
void tianjia();
void quanbu();
void dayubashi();
void bujige();
void zuigaofen();
void meimen();
void paiming();
int xuanze;
system("date /T");
system("TIME /T");
while(1)
{
printf("欢迎来到学生管理系统\n\n"); //选择菜单方便选择
printf(" 输入学生信息请输入1 \n");
printf(" 查询学生信息请输入2 \n");
printf(" 修改学生信息请输入3 \n");
printf(" 删除学生信息请输入4 \n");
printf(" 添加学生信息请输入5 \n");
printf(" 查询全部信息请输入6 \n");
printf(" 输出平均分大于80分的同学请输入7 \n");
printf(" 输出不及格的同学请输入8 \n");
printf(" 输出最高分的同学请输入9 \n");
printf(" 输出每门课最高分的同学请输入10 \n");
printf(" 按平均分排名请输入11 \n");
printf(" 退出系统请输入12 \n");
scanf("%d",&xuanze); //输入选择结果
switch(xuanze)
{
case 1:shuru(); break; //输入1时的情况
case 2:chaxun(); break; //输入2时的情况
case 3:xiugai(); break; //输入3时的情况
case 4:shanchu(); break; //输入4时的情况
case 5:tianjia(); break; //输入5时的情况
case 6:quanbu(); break; //输入6时的情况
case 7:dayubashi(); break; //输入7时的情况
case 8:bujige(); break; //输入8时的情况
case 9:zuigaofen(); break; //输入9时的情况
case 10:meimen(); break; //输入10时的情况
case 11:paiming(); break; //输入11时的情况
case 12:{
printf("*************************谢谢使用*************************\n");
return 0; //输入12时的情况
}
}
}
}


void shuru()
{
int i,j;
char an;
printf("请问您要输入几条数据?\n");
scanf("%d",&n);
printf("请问您要输入几个科目?\n");
scanf("%d",&u);
for(i=0;i<n;i++)
{
cj[i].avi=0;
cj[i].sum=0;

printf("请输入学生学号:\n"); //输入学号
scanf("%d",&cj[i].number);

printf("请输入学生姓名:\n"); //输入姓名
scanf("%s",cj[i].name);

for(j=0;j<u;j++)
{
printf("请输入score%d的成绩:\n",j+1);
scanf("%f",&cj[i].score[j]);
cj[i].avi=cj[i].avi+(cj[i].score[j]/u); //计算平均成绩
}
for(j=0;j<u;j++)
cj[i].sum=cj[i].sum+cj[i].score[j]; //计算总成绩

}
system("cls");
for(i=0;i<n;i++)
printf("%s的平均成绩为%.2lf,总成绩为%.2f\n",cj[i].name,cj[i].avi,cj[i].sum); //输出个人平均成绩和总成绩
printf("\n\n\n输入任意字符结束\n");
scanf("%s",&an);
system("cls");
}


void chaxun()
{
int x,i,j,m=0;
char an;
printf("请输入学号查询信息:\n");
scanf("%d",&x);
for(i=0;i<n;i++)
{
m++;
if(x==cj[i].number)
{
printf("%s的",cj[i].name);
for(j=0;j<u;j++)
{
printf("score%d为%.2f,",j+1,cj[i].score[j]);
}
system("cls");
printf("平均成绩为%.2lf,总成绩为%.2f\n\n",cj[i].avi,cj[i].sum);
m--;
break;
}
}
if(m==n)
{
system("cls");
printf("您输入的学号不存在!!\n");
}
printf("\n\n\n输入任意字符结束\n");
scanf("%s",&an);
system("cls");
}


void xiugai()
{
int k,i,j,m=0;
char an;
printf("请输入您所要修改成绩的学号:\n");
scanf("%d",&k);
for(i=0;i<n;i++)
{
m++;
if(k==cj[i].number)
{
cj[i].avi=0;
cj[i].sum=0;
printf("请输入学生姓名:\n"); //输入姓名
scanf("%s",cj[i].name);

for(j=0;j<u;j++)
{
printf("请输入score%d的成绩:\n",j+1);
scanf("%f",&cj[i].score[j]);
cj[i].avi=cj[i].avi+(cj[i].score[j])/u; //计算平均成绩
}
for(j=0;j<u;j++)
cj[i].sum=cj[i].sum+cj[i].score[j]; //计算总成绩

printf("%s的",cj[i].name);
for(j=0;j<u;j++)
{
printf("score%d为%.2f,",j+1,cj[i].score[j]);
}
system("cls");
printf("平均成绩为%.2lf,总成绩为%.2f\n",cj[i].avi,cj[i].sum);
m--;
break;
}
}
if(m==n)
{
system("cls");
printf("您输入的学号不存在!!\n");
}
printf("\n\n\n输入任意字符结束\n");
scanf("%s",&an);
system("cls");
}


void shanchu()
{
int m,i,s=0;
char an;
printf("请输入您所要删除成绩的学号:\n");
scanf("%d",&m);
for(i=0;i<n;i++)
{
s++;
if(m==cj[i].number)
{
cj[i].number=cj[i+50].number;
strcpy(cj[i].name,cj[i+50].name);
cj[i].avi=cj[i+50].avi;
cj[i].sum=cj[i+50].sum;
s--;
system("cls");
printf("已删除\n");
break;
}
}
if(s==n)
{
system("cls");
printf("您输入的学号不存在!!\n");
}
printf("\n\n\n输入任意字符结束\n");
scanf("%s",&an);
system("cls");
}


void tianjia()
{
int i,j;
char an;
printf("请问您要添加几条数据?\n");
scanf("%d",&q);
for(i=0;i<q;i++)
{
cj[n+i].avi=0;
cj[n+i].sum=0;
printf("请输入学生学号:\n"); //输入学号
scanf("%d",&cj[n+i].number);

printf("请输入学生姓名:\n"); //输入姓名
scanf("%s",cj[n+i].name);

for(j=0;j<u;j++)
{
printf("请输入score%d的成绩:\n",j+1);
scanf("%f",&cj[n+i].score[j]);
cj[n+i].avi=cj[n+i].avi+(cj[n+i].score[j]/u); //计算平均成绩
}
for(j=0;j<u;j++)
cj[n+i].sum=cj[n+i].sum+cj[n+i].score[j]; //计算总成绩
}
n+=q;
printf("\n\n\n输入任意字符结束\n");
scanf("%s",&an);
system("cls");
}

void quanbu()
{
int i;
char an;
system("cls");
printf("************************\n");
printf("姓名 平均成绩 总成绩\n");
for(i=0;i<n;i++)
printf("%-9s%-10.2lf%-8.2f\n",cj[i].name,cj[i].avi,cj[i].sum); //输出个人平均成绩和总成绩
printf("************************\n");
printf("\n\n\n输入任意字符结束\n");
scanf("%s",&an);
system("cls");
}


void dayubashi()
{
int i;
char an;
system("cls");
printf("************************\n");
printf("姓名 平均成绩 总成绩\n");
for(i=0;i<n;i++)
{
if(cj[i].avi>80)
printf("%-9s%-11.2lf%-8.2f\n",cj[i].name,cj[i].avi,cj[i].sum);
}
printf("************************\n");
printf("\n\n\n输入任意字符结束\n");
scanf("%s",&an);
system("cls");
}


void bujige()
{
int i,j;
char an;
system("cls");
printf("************************\n");
printf("姓名 平均成绩 总成绩\n");
for(i=0;i<n;i++)
{
for(j=0;j<u;j++)
{
if(cj[i].score[j]<60)
{
printf("%-9s%-11.2lf%-8.2f\n",cj[i].name,cj[i].avi,cj[i].sum);
break;
}
}
}
printf("************************\n");
printf("\n\n\n输入任意字符结束\n");
scanf("%s",&an);
system("cls");
}


void zuigaofen()
{
int i,j;
char an;
for(i=0;i<n;i++)
for(j=i;j<n;j++)
{
if(cj[i].avi < cj[j].avi)
{
z[0]=cj[i];
cj[i]=cj[j];
cj[j]=z[0];
}
}
system("cls");
printf("************************\n");
printf("姓名 平均成绩 总成绩\n");
printf("%-9s%-11.2lf%-8.2f\n",cj[0].name,cj[0].avi,cj[0].sum);
printf("************************\n");
printf("\n\n\n输入任意字符结束\n");
scanf("%s",&an);
system("cls");
}


void meimen()
{
int i,j,k;
float t;
char an;
for(i=0;i<n;i++)
for(j=i;j<n;j++)
for(k=0;k<u;k++)
{
if(cj[i].score[k] < cj[j].score[k])
{
t=cj[i].score[k];
cj[i].score[k]=cj[j].score[k];
cj[j].score[k]=t;
}
}
system("cls");
for(k=0;k<u;k++)
{
printf("score%d的最高分为%.2f\n",k+1,cj[0].score[k]);
}
printf("\n\n\n输入任意字符结束\n");
scanf("%s",&an);
system("cls");
}


void paiming()
{
int i,j;
char an;
for(i=0;i<n;i++)
for(j=i;j<n;j++)
{
if(cj[i].avi < cj[j].avi)
{
z[0]=cj[i];
cj[i]=cj[j];
cj[j]=z[0];
}
}
system("cls");
printf("*******************************\n");
printf("排名 姓名 平均成绩 总成绩\n");
for(i=0;i<n;i++)
{
printf("%-9d%-9s%-11.2lf%-8.2f\n",i+1,cj[i].name,cj[i].avi,cj[i].sum);
}
printf("*******************************\n");
printf("\n\n\n输入任意字符结束\n");
scanf("%s",&an);
system("cls");
}
...全文
963 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
孤远无梦 2020-02-15
  • 打赏
  • 举报
回复
引用 1 楼 自信男孩 的回复:
贴出代码是来炫耀的吗?还是给大家分享的?如果有问题,建议将问题详细描述出来。
如果想让别人看懂你的代码,而不用文字描述,那么需要你的代码可读性要高。代码风格和可读性怎么样?自己有信心不?

发帖时表情左面不是有发代码的选项吗,用那个发效果会好点
weixin_45770142 2020-02-15
  • 打赏
  • 举报
回复
要是想让这个代码用文档储存该进行那些修改呢
bluestar2009 2018-03-13
  • 打赏
  • 举报
回复
引用 1 楼 cfjtaishan 的回复:
贴出代码是来炫耀的吗?还是给大家分享的?如果有问题,建议将问题详细描述出来。 如果想让别人看懂你的代码,而不用文字描述,那么需要你的代码可读性要高。代码风格和可读性怎么样?自己有信心不?
可读性再高也不看
自信男孩 2018-03-13
  • 打赏
  • 举报
回复
贴出代码是来炫耀的吗?还是给大家分享的?如果有问题,建议将问题详细描述出来。 如果想让别人看懂你的代码,而不用文字描述,那么需要你的代码可读性要高。代码风格和可读性怎么样?自己有信心不?

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧