#include
#include
#include
#define COURSE_NUM 5 // 课程门数
#define NAME_MAX_LEN 20 //学生姓名最大长度
#define STU_MAX_NUM 50 //学生 最多人数
typedef struct student
{
int num; //学号
char name[NAME_MAX_LEN]; //姓名
int score[COURSE_NUM]; //各门课程的成绩
int total; //总分
float average; //平均分
}student;
typedef struct SqList
{
student elem[STU_MAX_NUM];
int listsize;
int len; //数组当前长度
}SqList;
SqList * init(); //函数声明
int isNumberExist(SqList &L,int number);
void inputStudent(SqList &L);
void outputStudent(SqList &L);
void saveStudent(SqList &L);
void readStudent(SqList &L);
void insertOneStudent(SqList &L);
void deleteOneStudent(SqList &L);
void sortStudent(SqList &L);
int main()
{
int menuItemCode=1;
SqList L;
while (menuItemCode!=0)
{
printf("\n\n");
printf("********高级成绩管理信息系统********\n");
printf("* 1.输入成绩记录 *\n");
printf("* 2.输出成绩记录 *\n");
printf("* 3.成绩记录写入文件 *\n");
printf("* 4.从文件读取成绩 *\n");
printf("* 5.插入一个成绩记录 *\n");
printf("* 6.删除一个成绩记录 *\n");
printf("* 7.对成绩记录进行排序 *\n");
printf("* 0.退出系统 *\n");
printf("************************************\n");
printf("\n请输入所选菜单项序号:");
scanf("%d",&menuItemCode);
switch(menuItemCode)
{
case 1:
inputStudent(L);
break;
case 2:
outputStudent(L);
break;
case 3:
saveStudent(L);
break;
case 4:
readStudent(L);
break;
case 5:
insertOneStudent(L);
break;
case 6:
deleteOneStudent(L);
break;
case 7:
sortStudent(L);
break;
case 0:
break;
default:
printf("输入超出范围!\n");
break;
}
}
return 0;
}
SqList * init() //初始化顺序表
{
SqList * s;
s=(SqList *)malloc(sizeof(SqList));
if(s!=NULL)
s->len=0;
return s;
}
int isNumberExist(SqList &L,int number) //查找学生学号是否存在
{
int n,i=0;
n=L.len;
while(i |