功能:成绩管理系统包含了学生的全部信息,每个学生是一个记录,包括学号,姓名,性别,班级,各科成绩(语数外)。
系统功能:
1.信息录入——录入学生信息;
2.信息输出——显示所有信息;
3.信息查询——查询单个学生信息(按学号或按姓名),按性别,班级查询;
4.信息排序——分别按各科成绩,平均成绩,学号,姓名,总分排名;
5.信息插入——插入一学生信息(中间插入和最后插入);
6.信息删除——删除一学生信息;(先打出学生信息然后确认删除);
#include<stdio.h> #include<stdlib.h> #include<string.h> #define MAXSIZE 1000 typedef struct { int no; char name[11]; char sex[9]; char cla[11]; int Chinese,math,Eng,sum,average; }Datatype; typedef struct { Datatype data[MAXSIZE]; int len; }SeqList; /*录入学生信息*/ void input(SeqList *L) { int i; printf("请输入学生的人数:"); scanf("%d",&L->len); printf("请输入学生的学号、姓名、性别、班级、语数英成绩:\n"); printf("(之间用Tab键隔开)\n\n"); printf("学号 姓名 性别 班级 语文 数学 英语\n"); for(i=1;i<=L->len;i++) { scanf("%d%s%s%s%d%d%d",&L->data[i].no,L->data[i].name,L->data[i].sex,L->data[i].cla,&L->data[i].Chinese,&L->data[i].math,&L->data[i].Eng); L->data[i].sum=L->data[i].Chinese+L->data[i].math+L->data[i].Eng; L->data[i].average=(int)L->data[i].sum/3; } } /*浏览学生信息*/ void display(SeqList *L) { int i; printf("学号 姓名 性别 班级 语文 数学 英语 总分 平均分\n"); for(i=1;i<=L->len;i++) { printf("%3d%7s%7s%9s%8d%8d%8d%8d%8d\n",L->data[i].no,L->data[i].name,L->data[i].sex,L->data[i].cla,L->data[i].Chinese,L->data[i].math,L->data[i].Eng,L->data[i].sum,L->data[i].average); } } /*按学号查找学生信息*/ int search_no(SeqList *L,Datatype x) { int i=1; while(i<=L->len&&L->data[i].no!=x.no) { i++; } if(i>L->len) { return 0; } else { return i; } } /*按姓名查找学生信息*/ int search_name(SeqList *L,Datatype x) { int i=1; while(i<=L->len&&strcmp(L->data[i].name,x.name)!=0) { i++; } if(i>L->len) { return 0; } else { return i; } } /*按性别查找学生信息*/ void search_sex(SeqList *L,Datatype x) { int i; for(i=1;i<=L->len;i++) { if(i<=L->len&&strcmp(L->data[i].sex,x.sex)==0) { printf("学号 姓名 性别 班级 语文 数学 英语 总分 平均分\n"); printf("%3d%7s%7s%9s%8d%8d%8d%8d%8d\n",L->data[i].no,L->data[i].name,L->data[i].sex,L->data[i].cla,L->data[i].Chinese,L->data[i].math,L->data[i].Eng,L->data[i].sum,L->data[i].average); } } } /*按班级查找学生信息*/ void search_cla(SeqList *L,Datatype x) { int i; for(i=1;i<=L->len;i++) { if(i<=L->len&&strcmp(L->data[i].cla,x.cla)==0) { printf("学号 姓名 性别 班级 语文 数学 英语 总分 平均分\n"); printf("%3d%7s%7s%9s%8d%8d%8d%8d%8d\n",L->data[i].no,L->data[i].name,L->data[i].sex,