分享

C语言《学生成绩管理系统》

 逍遥读屋 2017-02-24
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct student {
char num;
char name[10];
int s1,s2,s3;
double avg;
} stu[50],t;
int count=0;
void new_student();
void search_student(int num);
void update_student(int num,int course,int score);
void delete_student(int num);
void output_student();
void sort_student ();
int main(void) {
int i,num,course,score;
while(1) {
printf("                           学生成绩查询系统     \n");
printf(" ************************************************************************\n");
printf("                        1. : 新建学生信息\n                        2 : 查询学生信息\n                        3 : 修改学生信息\n                        4 : 删除学生信息\n                        5 : 输出学生信息,并按平均成绩排序\n                        0 : 退出\n");
printf(" ************************************************************************\n");
scanf("%d",&i);
if(i==1) {
printf("新建学生信息:\n");
new_student();
} else if(i==2) {
printf("输入要查询的学生的学号:\n");
scanf("%d",&num);
search_student(num);
} else if(i==3) {
printf("输入要修改的学生的学号:\n");
scanf("%d",&num);
printf("选择修改的科目:1.数学 2.英语 3.电脑\n");
scanf("%d",&course);
printf("输入新的成绩:\n");
scanf("%d",&score);
update_student(num,course,score);
} else if(i==4) {
printf("输入要删除的学生的学号:\n");
scanf("%d",&num);
delete_student(num);
} else if(i==5) {
printf("根据学生平均分进行排序:\n");
sort_student ();
}
if(i!=1&&i!=2&&i!=3&&i!=4&&i!=5&&i!=0) {
printf("输入错误,请重新输入!\n");
}
if(i==0) break;
}
return 0;
}
void new_student() {
int i,n;
printf("输入要统计的人数:\n");
scanf("%d",&n);
printf("输入学号、姓名、数学成绩、英语成绩、电脑成绩:\n");
if(count==50) {
printf("error!\n");
return;
}
for(i=0; i<n; i++) {
scanf("%d%s%d%d%d",&stu[i].num,stu[i].name,&stu[i].s1,&stu[i].s2,&stu[i].s3);
stu[i].avg=(stu[i].s1+stu[i].s2+stu[i].s3)/3.0;
count++;
}
printf("\n学生成绩录入成功!\n\n");
}
void search_student(int num) {
int i;
if(count==0) {
printf("error\n");
return;
}
for(i=0; i<count; i++) {
if(stu[i].num==num) {
printf("学 号:%d  \n姓 名:%s  \n数 学:%d  \n英 语:%d  \n电 脑:%d  \n平均分:%.2lf  \n",stu[i].num,stu[i].name,stu[i].s1,stu[i].s2,stu[i].s3,stu[i].avg);
break;
} else {
}
}
}
void update_student(int num,int course,int score) {
int i;
for(i=0; i<count; i++) {
if(stu[i].num==num) {
break;
}
}
if(i<count) {
switch(course) {
case 1:
stu[i].s1=score;
break;
case 2:
stu[i].s2=score;
break;
case 3:
stu[i].s3=score;
break;
}
stu[i].avg=(stu[i].s1+stu[i].s2+stu[i].s3)/3.0;
}
}
void delete_student(int num) {
int i,j;
for(i=0; i<count; i++) {
if(stu[i].num==num) {
for(j=i; j<count; j++) {
stu[j]=stu[j+1];
}
count=count-1;
}
}
}
void output_student() {
int i,n;
if(count==0) {
printf("无信息\n");
return;
}
for(i=0; i<n; i++) {
printf("输入第%d个学生成绩 学号 姓名 电脑成绩 英语成绩 数学成绩\n");
scanf("%s %s %s %s %s %s %s ",&stu[i].num,&stu[i].name,&stu[i].s1,&stu[i].s2,&stu[i].s3);
}
}
void sort_student () {
int i,index,j;

if(count==0) {
printf("无信息\n");
return;
}
for(i=0; i<count-1; i++) {
index=i;
for(j=i+1; j<count; j++) {
if(stu[j].avg<stu[index].avg) {
index=j;
}
}
t=stu[index];
stu[index]=stu[i];
stu[i]=t;
}
for(i=0; i<count; i++) {
printf("%d %s %d %d %d %.2lf\n",stu[i].num,stu[i].name,stu[i].s1 ,stu[i].s2,stu[i].s3,stu[i].avg);
}
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约