超好的学生成绩管理系统顺序表实现的代码含详细注释哦

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include

#include

#include

#define LIST_INIT_SIZE 4 //线性表存储空间的初始分配量

#define LISTINCREMENT 10 //线性表存储空间的分配增量

//学生的定义

typedef struct

{

int num;

char name[20];

float english;

float math;

float database;

float sum;

float average;

}Student;

//顺序表的定义

typedef struct

{

Student *stu;

int length;

int listsize;

}sqlist;

//函数1录入信息

int Input(sqlist *L)

{

int i=1;//为了查找、排序的方便将第一个当哨兵

char flag='y';

//输入数据

while(flag == 'Y' || flag == 'y')

{

for(i =1; i < L->listsize; ++i)

{

printf("请输入第%d个同学的信息:\n",L->length);

printf("学号:");

fflush(stdin);

scanf("%d",&L->stu[L->length].num);

printf("姓名:");

fflush(stdin);

scanf("%s",L->stu[L->length].name);

printf("英语成绩:");

fflush(stdin);

scanf("%f",&L->stu[L->length].english);

printf("高数成绩:");

fflush(stdin);

scanf("%f",&L->stu[L->length].math);

printf("数据结构成绩:");

fflush(stdin);

scanf("%f",&L->stu[L->length].database);

L->stu[L->length].sum=L->stu[L->length].english+L->stu[L->length].math+L->st u[L->length].database;

L->stu[L->length].average=L->stu[L->length].sum/3;

L->length++;

printf("是否继续[Y/N]... ");

fflush(stdin);

flag = getchar();

if(flag=='N'||flag=='n')

break;

}

}

return 0;

}

//函数2显示所有学生信息

int Display(sqlist *L)

{

int i;

if(L->length<=1)

{

printf("请先输入数据!\n");

return 0;

}

printf("所有同学信息如下:\n");

printf("学号\t姓名\t总分\t平均分\t英语成绩\t高数成绩\t数据结构成绩\n");

for(i=1;ilength;i++)

printf("%d\t%s\t%.2f\t%.2f\t%.2f\t\t%.2f\t\t%.2f\n",L->stu[i].num,L->stu[i]. name,L->stu[i].sum,L->stu[i].average,L->stu[i].english,L->stu[i].math,L->stu[i].

database);

return 0;

}

//函数3插入一条记录到表尾

void Insert(sqlist *L)

{

printf("学号:");

scanf("%d",&L->stu[L->length].num);

printf("姓名:");

scanf("%s",L->stu[L->length].name);

printf("英语成绩:");

scanf("%f",&L->stu[L->length].english);

printf("高数成绩:");

scanf("%f",&L->stu[L->length].math);

printf("数据结构成绩:");

scanf("%f",&L->stu[L->length].database);

L->stu[L->length].sum=L->stu[L->length].english+L->stu[L->length].math+L->st u[L->length].database;

L->stu[L->length].average=L->stu[L->length].sum/3;

L->length++;

}

//函数4删除一条记录

int Delete(sqlist *L)

{

char s[20];

int i=1,j,ch,n;//第一个是哨兵

if(L->length<=1)

{

printf("请先输入数据!\n");

return 0;

}

printf("1.按姓名删除\n2.按学号删除\n请选择:");

scanf("%d",&ch);

if(ch==1)

{

printf("请输入姓名:");

scanf("%s",s);

while(strcmp(L->stu[i].name,s)!=0&&ilength)

相关文档
最新文档