C语言课程设计报告学生成绩管理系统

C语言课程设计报告学生成绩管理系统
C语言课程设计报告学生成绩管理系统

机电工程学院

中南大学

本科生C语言课程设计题目学生成绩管理系统

一、课程设计

题目:学生成绩管理系统

给出n个学生的4门考试的成绩表,每个学生的信息由学号、姓名以及各科成绩组成。对学生的考试成绩进行有关统计:按某一科分数或平均分数高低次序,列出名次表,分数相同的为同一名次;按名次打印出每个学生的学号、姓名、总分以及各科成绩,并打印统计表。

三、概要设计

程序要有的功能:

1. 输入学生成绩

2. 保存成绩

3. 学生成绩排序

4. 学生成绩查询

5. 学生成绩清单

6. 退出管理系统

程序运行当中,通过选择对应的功能序号来实现所需功能。对输入的数据要有事先的分析,如果用户输入的数据与实际不相符如输入成绩的数值为负,则程序应输出相应的提示:“数据不存在”。再者就是,当再输入完相应的数据后,程序作出相应的提示,询问用户是否要继续输入。在排列学生成绩时候,如果出现成绩相同的情况,程序自动作出处理。

四、设计任务

将程序分为六个方面:1. 输入学生成绩、2. 保存成绩、3. 学生成绩排序、4. 学生成绩查询、5. 学生成绩清单、6. 退出管理系统。每个人负责两个方面的程序,其中侯蒙召负责1、2两个程序,杨天静负责3、4两个,张振陆负责5、6两个,最后交由组长侯蒙召组合整理,形成现在的总的程序。

流程图:

四、详细设计

源程序:

#include

#include

#include

#include

struct Student

{char name[20];

int no;

int math;

int program;

int english;

int chinese;

int aver;

}stu[100],t;

int num=0;

int menu()

{

int a;

char s[20];

system("cls");

/*程序介绍*/

printf(" 欢迎使用学生成绩管理系统,该系统包括以下几项功能,请根据提示做相应操作\n");

printf(" 1->输入学生成绩\n");

printf(" 2->保存成绩\n");

printf(" 3->学生成绩排序\n");

printf(" 4->学生成绩查询\n");

printf(" 5->学生成绩清单\n");

printf(" 6->退出管理系统\n");/*选择操作*/

printf("\n");

printf(" 请选择要进行操作的编号:\n");

do{

printf("Enter you choice(0~6):");

scanf("%s",s);

a=atoi(s);

}

while (a<0 || a>6);

return a;

}

int enter()

{

int i=0;

printf("请输入学生信息\n");

printf("NO.:");

scanf("%d",&stu[num].no);

printf("姓名:");

scanf("%10s",stu[num].name);

printf("数学:");

scanf("%4d",&stu[num].math);

printf("程序设计:");

scanf("%4d",&stu[num].program);

printf("英语:");

scanf("%4d",&stu[num].english);

printf("语文:");

scanf("%4d",&stu[num].chinese);

stu[num].aver=(stu[num].math+stu[num].program+stu[num].e nglish+stu[num].chinese)/4;

num=num+1;

printf("是否继续输入?(y/n):\n");

if(getch()=='y'||getch()=='Y')

enter();

else

return(0);

}

void save()

{

;

int i;

if((fp=fopen("stu.dat","wb"))==NULL)

{

printf("The fire can not open\n");

return;

}

for(i=0;i

if(fwrite(&stu[i],sizeof(struct Student),1,fp)!=1)

{

printf("The wirte error\n");

return;

}

printf("数据保存成功\n");

system("pause");

fclose(fp);

}

void sort()

{

int i, j, k;

int sort_no;

printf("1--按数学成绩排\n");

printf("2--按程序设计成绩排\n");

printf("3--按英语成绩排\n");

printf("4--按语文成绩排\n");

printf("5--按平均分成绩排\n");

printf("6--返回主菜单\n");

scanf("%d",&sort_no);

if(sort_no==1) // 数学成绩排序

{

for(i=0; i

{

k = i;

for(j=i+1; j

if(stu[j].math>stu[k].math)

k=j;

{

t=stu[k];

stu[k]=stu[i];

stu[i]=t;

}

}

printf("学号姓名数学程序英语语文平均分\n");

for(i=0; i

{

printf("%4d %5s %5d", stu[i].no, stu[i].name, stu[i].math);

printf("%5d %5d %4d %4d\n",stu[i].english, stu[i].chinese, stu[i].program, stu[i].aver);

}

}

else if(sort_no == 2) // 程序设计成绩排序

{

for(i=0; i

{

k = i;

for(j=i+1; j

{

if(stu[j].program>stu[k].program)

k=j;

}

t=stu[k];

stu[k]=stu[i];

stu[i]=t;

}

printf("学号姓名数学程序英语语文

平均分\n");

for(i=0; i

{

printf("%4d %5s %5d", stu[i].no, stu[i].name, stu[i].math);

printf("%5d %5d %4d %4d\n",stu[i].english, stu[i].chinese, stu[i].program, stu[i].aver);

}

}

else if(sort_no == 3) // 英语成绩排序

{

for(i=0; i

{

k = i;

for(j=i+1; j

{

if(stu[j].english>stu[k].english)

k=j;

}

t=stu[k];

stu[k]=stu[i];

stu[i]=t;

}

printf("学号姓名数学程序英语语文

平均分\n");

for(i=0; i

{

printf("%4d %5s %5d", stu[i].no, stu[i].name, stu[i].math);

printf("%5d %5d %4d %4d\n",stu[i].english, stu[i].chinese, stu[i].program, stu[i].aver);

}

}

else if(sort_no == 4) // 语文绩排序

{

for(i=0; i

{

k = i;

for(j=i+1; j

{

if(stu[j].chinese>stu[k].chinese)

k=j;

}

t=stu[k];

stu[k]=stu[i];

stu[i]=t;

}

printf("学号姓名数学程序英语语文

平均分\n");

for(i=0; i

{

printf("%4d %5s %5d", stu[i].no, stu[i].name, stu[i].math);

printf("%5d %5d %4d %4d\n",stu[i].english, stu[i].chinese, stu[i].program, stu[i].aver);

}

}

else if(sort_no==5) // 平均分排序

{

for(i=0; i

{

k = i;

for(j=i+1; j

{

if(stu[j].aver>stu[k].aver)

k=j;

}

t=stu[k];

stu[k]=stu[i];

stu[i]=t;

}

printf("学号姓名数学程序英语语文

平均分\n");

for(i=0; i

{

printf("%4d %5s %5d", stu[i].no, stu[i].name, stu[i].math);

printf("%5d %5d %4d %4d\n",stu[i].english, stu[i].chinese, stu[i].program, stu[i].aver);

}

}

else if(sort_no==6) // 返回上层

{

return;

}

else

{

printf("错误的排序方式!\n");

return;

}

}

void list()

{

int i;

printf("学生成绩清单\n");

printf("学号姓名数学程序英语语文平均分\n");

for(i=0; i

{

printf("%4d %5s %5d", stu[i].no, stu[i].name, stu[i].math);

printf("%5d %5d %4d %4d\n",stu[i].english, stu[i].chinese, stu[i].program, stu[i].aver);

}

}

void search()

{

char NAME[20];

int search_no;

int no,i;

printf(" 请选择以下的方式对学生数据进行查询:\n");

printf(" 1->学号查询\n");

printf(" 2->姓名查询\n");

printf(" 3->返回主菜单\n");

printf(" 请选择要进行查询内容的编号:\n");

scanf(" %d", &search_no);

if(search_no==1)

{

printf(" 请输入要查询的学号\n");

scanf("%d", &no);

for(i=0; i

{

if(no==stu[i].no)

{

相关主题
相关文档
最新文档