当前位置:文档之家› 学生成绩统计c语言

学生成绩统计c语言

学生成绩统计c语言
学生成绩统计c语言

课程设计

课程名称____C语言课程设计___ 题目名称____学生成绩统计_____ 学生学院______物理学院_______ 专业班级____电子科学与技术___ 学号_____3110008570______学生姓名______胡健___________ 指导教师_______刘力斌________

2012 年10 月17 日

C语言课程设计报告

一、C语言课程设计的目的:

进一步消化和巩固已学过的C 语言程序设计基础理论,学习和实践程序设计的各种技能,利用C 语言来设计各种应用程序和管理系统,为社会提供各种现代化的管理工具。根据课堂讲授内容,做相应的自主练习,消化课堂所讲解的内容;通过调试典型例题或习题积累调试C程序的经验;通过完成辅导教材中的编程题,逐渐培养学生的编程能力、用计算机解决实际问题的能力。在许多常规学科的日常教学中,我们不难发现这样一个现象,不少学生的思维常常处于混乱的状态。写起作文来前言不搭后语,解起数学题来步骤混乱,这些都是缺乏思维训练的结果。程序设计是公认的、最能直接有效地训练学生的创新思维,培养分析问题、解决问题能力的学科之一。即使一个简单的程序,从任务分析、确定算法、界面布局、编写代码到调试运行,整个过程学生都需要有条理地构思,这中间有猜测设想、判断推理的抽象思维训练,也有分析问题、解决问题、预测目标等能力的培养。

二、课程设计报告正文

课程设计题目的原文:

学生成绩统计

【问题描述】

学期考试结束,统计有N个班某班每个人的平均成绩,每门课的平均成绩,并按个人平均成绩从高到低的顺序输出成绩,输出不及格人名单。输入、输出格式自定。

【实现提示】

假设某班有:30人(姓名自定)

考试课程有:高等数学、物理、外语、C语言、德育5门课程。

将所有同学的成绩保留在文件中,对文件中的数据处理,输出所要求的内容,程序的功能主要包括3方面:

①输入成绩到文件中

②输出成绩

③输出不及格学生名单

④成绩排序

⑤修改记录

⑥删除记录

⑦插入记录等

主函数中对3个功能选择(菜单),调用对应的函数完成。

【测试数据】

自定模拟数据

题目的分析(需求分析):

该题目主要是锻炼学生对于运用C语言结构体,指针以及文件修改的能力,C语言最难的部分就在于指针,所以,能用最简洁的语句写出一个合理的程序,老师的目的就达到了。通过该课程设计的锻炼,加深学生对这些知识的掌握以及理解。

在该程序中,我将会运用结构体来分别创建学生成绩表,不及格学生成绩表以及中间值成绩表,通过结构体的运用,我能更加快速以及有规律地调用,分配各个变量,达到简洁的目的。

在循环语句中,我将利用指针来达到好的定位效果,定位准确才能够有的放矢地进行各个环节,而不用通过繁杂的排序以及重复语句。

该程序我还运用了文件修改,程序运行过后将会保存于stu.dat中,同时也能读取该文件。该程序有5个模式,所以必须运用文件管理。当然,当你并没有创建文件时,你却读取文件,系统找不到自然就报错。

通过本次课程设计,我更加理解C语言的灵活多变,结构体的便捷,指针的灵活,文件应用的严谨。使我对C语言有更全面的理解,进一步提高运用C语言编程解决实际问题的能力,同时,为后续课程的学习夯实基础。

【提示】

模式(mode)1:新建一个工程;

模式(mode)2:修改;

模式(mode)3:删除;

模式(mode)4:插入;

模式(mode)5:查看。

Stu.num :学生学号;

https://www.doczj.com/doc/c81748615.html,:学生名字(注:拼音);

Stu.math:学生数学成绩;

Stu.physics:学生物理成绩;

Stu.english:学生英语成绩;

Stu.clanguage:学生C语言成绩;

Stu.moral:学生德育成绩;

Stu.ave:学生平均成绩;

模式1:将会弹出对话“Stu.num:”,输入学号,回车,以此类推。

模式2:将会询问你需要修改哪一位的数据,按照弹窗提示操作。

模式3:将会询问你需要删除哪一位的数据,按照弹窗提示操作。

模式4:按照弹窗提示操作。

模式5:直接弹出所有学生的成绩,按排名高低输出。

输出文件名:“stu.dat”

【分析】

该程序能够存储学生成绩数据,排序,算出平均值以及删除,修改,插入等功能,具有较强的实用性。

全程序主要模块包括“排序模块”,“不及格学生输出模块”,“文件保存以及输出模块”以及“成绩排名模块”。“排序模块”模块的难点在于结构体数组的赋值是否合法以及字符函数的运用,“成绩排名”的难点在于判断各模式之间的联系。“文件保存以及输出模块”的难

点在于文件操作函数的繁杂以及情况的判断,“不及格学生输出模块”的难点在于成绩的判断以及输入输出的排序。

/***************************************************************************

技术文档/帮助清单

***************************************************************************/

这是一个学生成绩统计程序。该程序仅以10人为例,可通过修改宏定义N来指定人数新建程序。在VC++6.0运行。

/************************************************************

模式(mode)1:新建一个工程;

模式(mode)2:修改;

模式(mode)3:删除;

模式(mode)4:插入;

模式(mode)5:查看。

Stu.num :学生学号;

https://www.doczj.com/doc/c81748615.html,:学生名字(注:拼音);

Stu.math:学生数学成绩;

Stu.physics:学生物理成绩;

Stu.english:学生英语成绩;

Stu.clanguage:学生C语言成绩;

Stu.moral:学生德育成绩;

Stu.ave:学生平均成绩;

************************************************************/

模式1:将会弹出对话“Stu.num:”,输入学号,回车,以此类推。

模式2:将会询问你需要修改哪一位的数据,按照弹窗提示操作。

模式3:将会询问你需要删除哪一位的数据,按照弹窗提示操作。

模式4:按照弹窗提示操作。

模式5:直接弹出所有学生的成绩,按排名高低输出。

输出文件名:“stu.dat”

1.总体流程图

程序清单:

/*****************************************************************************

程序清单

****************************************************************************/ #include "stdio.h"

#include "string.h"

#define N 11

struct student //学生结构体

{

char num[6];

char name[8];

int math;

int english;

int physical;

int clanguage;

int moral;

float avr;

}stu[N];

struct failstudent //不及格学生结构体

{ char num[6];

char name[8];

int math;

int english;

int physical;

int clanguage;

int moral;

}failstu[N];

struct exchange //中间值结构体

{ char num[6];

char name[8];

int math;

int english;

int physical;

int clanguage;

int moral;

float avr;

}exchange;

int i,n=0;

int main(void)

{

void save(void);//保存文件函数声明

void sorting(void);//排序函数声明

void press(void);//输入函数声明

void failstudent(void);//不及格学生筛选函数声明

void Stuprintf(void);//学生输出函数声明

void failstuprintf(void);//不及格学生输出函数声明

int mode;//模式变量

while(1)

{

printf("Please select the mode you want!\n");

printf("1:This is a new project\t2:Modify\t3:Delete\t4.Insert\t5.Watch\n");

printf("Your choice:");

scanf("%d",&mode);

if(mode==1)//新建程序模式

{

int sum=0;

for(i=1;i

{

press();//输入

failstudent();//不及格学生筛选

sum=stu[i-1].math+stu[i-1].english+stu[i-1].physical+stu[i-1].clanguage+stu[i-1].moral; //总分

stu[i-1].avr=(float)(sum/5.0); //平均值

}

sorting();//排序

printf("\n");

printf("\n");

printf("\n");

printf("This is a score ranking:\n");

Stuprintf();//学生输出

printf("\n");

printf("\n");

printf("\n");

failstuprintf();//不及格学生输出

save();

}

else if(mode==2)//修改模式

{

FILE *fp;//文件声明

static int m,sum;//声明定义变量

extern i;//调取外部变量

if((fp=fopen("stud.dat","rb"))==NULL)//读出数据

{

printf("cannot open file\n");

return 0;

}

for(m=0;m

{

fread(&stu[m],sizeof(struct student),1,fp);

printf("No.%d\n",m+1);

printf("stuNo:%s\tname:%s\tmath.score:%d\tphysical.score%d\tenglish.score:%d\t\

clanguage.score:%d\tmoral.score:%d\tavr:%f\n",stu[m].num,stu[m].name,stu[m].math,\ stu[m].physical,stu[m].english,stu[m].clanguage,stu[m].moral,stu[m].avr);

}

printf("whose record do you want to modify?\nPlease press 1~30!");

scanf("%d",&i);

press();

sum=stu[i-1].math+stu[i-1].english+stu[i-1].physical+stu[i-1].clanguage+stu[i-1].moral;

stu[i-1].avr=(float)(sum/5.0);

if((fp=fopen("stud.dat","rb+"))==NULL)//写入数据

{

printf("cannot open file\n");

return 0;

}

fseek(fp,(i-1)*sizeof(struct student),0);

fwrite(&stu[i-1],sizeof(struct student),1,fp);

fclose(fp);

}

else if(mode==3)//删除模式

{

FILE *fp;

static int m,sum;

extern i;

if((fp=fopen("stud.dat","rb"))==NULL)//读出数据

{

printf("cannot open file\n");

return 0;

}

for(m=0;m

{

fread(&stu[m],sizeof(struct student),1,fp);

printf("No.%d\n",m+1);

printf("stuNo:%s\tname:%s\tmath.score:%d\tphysical.score%d\tenglish.score:%d\t\

clanguage.score:%d\tmoral.score:%d\tavr:%f\n",stu[m].num,stu[m].name,stu[m].math,\ stu[m].physical,stu[m].english,stu[m].clanguage,stu[m].moral,stu[m].avr);

}

printf("whose record do you want to delete?\nPlease press 1~30!");

scanf("%d",&i);

strcpy(stu[i-1].num,"null");

strcpy(stu[i-1].name,"null");

stu[i-1].math=0;

stu[i-1].physical=0;

stu[i-1].english=0;

stu[i-1].clanguage=0;

stu[i-1].moral=0;

stu[i-1].avr=0;

if((fp=fopen("stud.dat","rb+"))==NULL)//写入数据

{

printf("cannot open file\n");

return 0;

}

fseek(fp,(i-1)*sizeof(struct student),0);

fwrite(&stu[i-1],sizeof(struct student),1,fp);

fclose(fp);

}

else if(mode==4)//插入模式

{

FILE *fp;

static int m,sum;

printf("Please insert what you want!");

i=N;

press();

sum=stu[i-1].math+stu[i-1].english+stu[i-1].physical+stu[i-1].clanguage+stu[i-1].moral;

stu[i-1].avr=(float)(sum/5.0);

if((fp=fopen("stud.dat","rb+"))==NULL)//写入数据

{

printf("cannot open file\n");

return 0;

}

fseek(fp,(i-1)*sizeof(struct student),0);

fwrite(&stu[i-1],sizeof(struct student),1,fp);

fclose(fp);

if((fp=fopen("stud.dat","rb"))==NULL)//读出数据

{

printf("cannot open file\n");

return 0;

}

for(m=0;m

{

fread(&stu[m],sizeof(struct student),1,fp);

printf("No.%d\n",m+1);

printf("stuNo:%s\tname:%s\tmath.score:%d\tphysical.score%d\tenglish.score:%d\t\

clanguage.score:%d\tmoral.score:%d\tavr:%f\n",stu[m].num,stu[m].name,stu[m].math,\ stu[m].physical,stu[m].english,stu[m].clanguage,stu[m].moral,stu[m].avr);

}

fclose(fp);

}

else if(mode==5)//浏览模式

{

FILE *fp;

static int m;

if((fp=fopen("stud.dat","rb"))==NULL)//读出数据

{

printf("cannot open file\n");

return 0;

}

for(m=0;m

{

fread(&stu[m],sizeof(struct student),1,fp);

printf("No.%d\n",m+1);

printf("stuNo:%s\tname:%s\tmath.score:%d\tphysical.score%d\tenglish.score:%d\t\

clanguage.score:%d\tmoral.score:%d\tavr:%f\n",stu[m].num,stu[m].name,stu[m].math,\ stu[m].physical,stu[m].english,stu[m].clanguage,stu[m].moral,stu[m].avr);

}

fclose(fp);

}

else if(mode!=(1||2||3||4||5))//按错时的反应

{

printf("Are you kidding?Want a fight?\n"); }

}

return 0;

}

void sorting(void)//排序函数

{

static int i,j,min;

for(i=0;i

{

min=i;

for(j=i+1;j

if(stu[min].avr

strcpy(exchange.num,stu[i].num);

strcpy(stu[i].num,stu[min].num);

strcpy(stu[min].num,exchange.num);

strcpy(https://www.doczj.com/doc/c81748615.html,,stu[i].name);

strcpy(stu[i].name,stu[min].name);

strcpy(stu[min].name,https://www.doczj.com/doc/c81748615.html,);

exchange.math=stu[i].math;

stu[i].math=stu[min].math;

stu[min].math=exchange.math;

exchange.physical=stu[i].physical;

stu[i].physical=stu[min].physical;

stu[min].physical=exchange.physical;

exchange.english=stu[i].english;

stu[i].english=stu[min].english;

stu[min].english=exchange.english;

exchange.clanguage=stu[i].clanguage;

stu[i].clanguage=stu[min].clanguage;

stu[min].clanguage=exchange.clanguage;

exchange.moral=stu[i].moral;

stu[i].moral=stu[min].moral;

stu[min].moral=exchange.moral;

exchange.avr=stu[i].avr;

stu[i].avr=stu[min].avr;

stu[min].avr=exchange.avr;

}

}

void save(void)//文件保存函数

{

FILE *fp;

static int i;

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

{

printf("cannot open file\n");

return;

}

for(i=0;i

{

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

printf("file write error\n");

}

for(i=0;i

{

if(fwrite(&failstu[i],sizeof(struct failstudent),1,fp)!=1)

printf("file write error\n");

}

fclose(fp);

}

void press(void)//输入函数

{

extern i;

printf("\n please input No. %d score:\n",i);

printf("stuNo:");

scanf("%s",stu[i-1].num);

printf("name:");

scanf("%s",stu[i-1].name);

printf("math.score :");

scanf("%d",&stu[i-1].math);

printf("physical.score :");

scanf("%d",&stu[i-1].physical);

printf("english.score :");

scanf("%d",&stu[i-1].english);

printf("clanguage.score :");

scanf("%d",&stu[i-1].clanguage);

printf("moral.score :");

scanf("%d",&stu[i-1].moral);

}

void failstudent(void)//不及格学生筛选函数

{

extern i;

if((stu[i-1].math)<60||(stu[i-1].english<60)||(stu[i-1].physical<60)\ ||(stu[i-1].clanguage<60)||(stu[i-1].moral<60))

{

strcpy(failstu[n].num,stu[i-1].num);

strcpy(failstu[n].name,stu[i-1].name);

failstu[n].math=stu[i-1].math;

failstu[n].physical=stu[i-1].physical;

failstu[n].english=stu[i-1].english;

failstu[n].clanguage=stu[i-1].clanguage;

failstu[n].moral=stu[i-1].moral;

n++;

}

}

void Stuprintf(void)//学生输出函数

{

static int i;

for(i=0;i

{

printf("No.%d\n",i+1);

printf("stuNo:%s\tname:%s\tmath.score:%d\tphysical.score%d\tenglish.score:%d\t\

clanguage.score:%d\tmoral.score:%d\tavr:%f\n",stu[i].num,stu[i].name,stu[i].math,\

stu[i].physical,stu[i].english,stu[i].clanguage,stu[i].moral,stu[i].avr);

}

}

void failstuprintf(void)//不及格学生输出函数

{

static int i;

extern n;

if(n==0)printf("GREAT! This class has no failstudent!\n");

else

{

printf("This is some failstudents:\n");

for(i=0;i

{

printf("stuNo:%s\tname:%s\tmath.score:%d\tphysical.score%d\tenglish.score:%d\t\

clanguage.score:%d\tmoral.score:%d\n",failstu[i].num,failstu[i].name,failstu[i].math,\

failstu[i].physical,failstu[i].english,failstu[i].clanguage,failstu[i].moral);

}

}

}

运行与测试报告:

列举出,在输入数据的范围和格式符合规范和不符合规范两种情形下,运行程序所得到的运行结果;如果类似问题在编程时已经考虑到了,对不合规范的输入数据进行了处理,列出对应的代码,分析并说明所采取的处理方法;如果运行结果不能令人满意,提出改进或讨论意见。

三、后记:

通过此次C语言程序设计实践,本人实在是获益不浅。C语言是这个学期开的课程,但这个学期并没怎么看过,当要开始设计的时候,还真不知从哪下手。结果,第一次的上机我只坐了一个下午什么也没干。回去以后,我想这样不行,这样下去还得了。我就重新学了一遍我们这个学期的教材,发觉自已有许多都遗忘了!特别是有文件的操作,几乎是一遍空白。温习过后,开始做题几乎花了我百分之九十的时间,而且还是在一些在其他大学读计算机专业的同学的帮助下和在上网查看了大量的资料之后才做出来。

通过为期一周的C语言课程设计设计,我们对《C语言》这门课程有了更深一步的了解。它是计算机程序设计的重要理论技术基础,在我们电子科学与技术专业的学习中占据着十分重要的地位。同时也使我们知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。因为我们学习知识就是为了实践。而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。

运用《C语言》中的算法思想作数据结构,结合C语言基本知识,编写一个通讯录管理系统。通过完成本课题,进一步熟悉C语言的基本知识,并掌握数据结构的一些基本算法思想,掌握C语言的文件操作(包括从磁盘读入和向磁盘写入内容),进一步熟悉指针的用法,数组的建立运用和函数的调用等。

最后,想说两句,这次设计,让我重新掌握了C语言,而且还得到了用C语言解决实际问题的宝贵经验,为了加强程序设计基础,开设课程设计课,使学生对C语言有更全面的理解,进一步提高运用C语言编程解决实际问题的能力,同时,为后续课程的学习夯实基础。

通过这次的锻炼,提高用程序设计解决实际问题的能力。通过提出算法、指定输入输出来设计一个解决方案。用C语言合理地开发两个简洁有效的程序代码来实现该设计。测试程序是否工作且满足设计指标并评价其效率。

C语言对于我来讲是很喜欢的,我在这次的课程设计中找到更多的乐趣。我会在今后的日子里更加勤奋且充满饱满热情的去运用,实践以及学习C语言。

C语言课程设计-学生成绩管理系统-完整版

#include<> #include<> #include<> #include<> /* strcmp函数原型包含*/ #define N 100 /*定义最大学生人数为100*/ struct student /*学生结构体定义*/ { char no[11]; /*学号,10位*/ char name[10];/*姓名,3个汉字*/ char grade[10];/*班级*/ char pro[20];/*专业*/ float score[5];/*储存5门功课的成绩*/ float ave;/*储存平均分*/ int year;/*入学年*/ }stu[N]; int num; void panduani(int); /*通过i的值,判断信息要查找的信息是否存在*/ void output(); /*输出学生成绩函数(公共函数)*/ void init(); /*系统初始化函数*/ void newfile(); /*建立新的数据文件*/ void read1(); /*从数据文件中读取数据*/ void weihu(); /*维护界面函数*/ void new1(); /*新增一个学生成绩函数*/ void xiugai(); /*修改学生成绩*/ void xgcj(int); /*修改成绩*/

void delete1(); /*删除学生信息函数*/ void tongji(); /*统计界面函数*/ void tongji1(); /*计算每个学生平均分*/ void tongji2(); /*计算每门课程的平均分*/ void paixu1(); /*排序函数*/ void paino(); /*按学号排序*/ void paiave(); /*按平均分排序*/ void paidkcj(); /*按单科成绩排序*/ void change(int,int); /*交换结构体数组中的两个记录*/ void outputx(int); /*选择输出单科成绩*/ void find1(); /*查找界面函数*/ int find(char sno[]); /*按学号查找*/ int findname(char cname[]);/*按姓名查找*/ void findyear(int cyear); /*按入学年查找*/ void save(); /*保存文件*/ void stop(); /*停顿函数*/ void stop() /*停顿函数(公共函数)*/ { printf("Press Any Key To Continue...\n"); getchar(); } void output() /*输出学生成绩函数(公共函数)*/ { int i,j;

学生成绩统计c语言

课程设计 课程名称____C语言课程设计___ 题目名称____学生成绩统计_____ 学生学院______物理学院_______ 专业班级____电子科学与技术___ 学号_____3110008570______学生姓名______胡健___________ 指导教师_______刘力斌________ 2012 年10 月17 日

C语言课程设计报告 一、C语言课程设计的目的: 进一步消化和巩固已学过的C 语言程序设计基础理论,学习和实践程序设计的各种技能,利用C 语言来设计各种应用程序和管理系统,为社会提供各种现代化的管理工具。根据课堂讲授内容,做相应的自主练习,消化课堂所讲解的内容;通过调试典型例题或习题积累调试C程序的经验;通过完成辅导教材中的编程题,逐渐培养学生的编程能力、用计算机解决实际问题的能力。在许多常规学科的日常教学中,我们不难发现这样一个现象,不少学生的思维常常处于混乱的状态。写起作文来前言不搭后语,解起数学题来步骤混乱,这些都是缺乏思维训练的结果。程序设计是公认的、最能直接有效地训练学生的创新思维,培养分析问题、解决问题能力的学科之一。即使一个简单的程序,从任务分析、确定算法、界面布局、编写代码到调试运行,整个过程学生都需要有条理地构思,这中间有猜测设想、判断推理的抽象思维训练,也有分析问题、解决问题、预测目标等能力的培养。 二、课程设计报告正文 课程设计题目的原文: 学生成绩统计 【问题描述】 学期考试结束,统计有N个班某班每个人的平均成绩,每门课的平均成绩,并按个人平均成绩从高到低的顺序输出成绩,输出不及格人名单。输入、输出格式自定。 【实现提示】 假设某班有:30人(姓名自定) 考试课程有:高等数学、物理、外语、C语言、德育5门课程。 将所有同学的成绩保留在文件中,对文件中的数据处理,输出所要求的内容,程序的功能主要包括3方面: ①输入成绩到文件中 ②输出成绩 ③输出不及格学生名单 ④成绩排序 ⑤修改记录 ⑥删除记录 ⑦插入记录等 主函数中对3个功能选择(菜单),调用对应的函数完成。 【测试数据】 自定模拟数据 题目的分析(需求分析): 该题目主要是锻炼学生对于运用C语言结构体,指针以及文件修改的能力,C语言最难的部分就在于指针,所以,能用最简洁的语句写出一个合理的程序,老师的目的就达到了。通过该课程设计的锻炼,加深学生对这些知识的掌握以及理解。

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

计算机学院 C语言程序设计报告书设计名称:学生成绩管理系统 专业:软件工程 指导老师: 班级: 姓名: 学号: 座号: 2011-6-15

一、实验目的 1.在编辑应用程序过程中,逐步加深对C语言编程的理解; 2.加强实践的能力,动手能力,同时进一步对所学的知识 进行巩固; 3.培养初步编程的能力,为以后的学习奠定基础。 二、实验内容 运用所学的C语言知识编辑一个应用程序:学习成绩管理系统 三.系统软件环境: 本程序主要运行在:Visual C++ 6.0 Turbo C/C++ 3.0 四.课程设计题目: 学生成绩管理系统 程序说明:有N个学生,每个学生的数据包含学号(不重复)、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统,使之能提供以下功能: (1)主菜单

(2)各菜单项功能 ①成绩录入:输入学生的学号、姓名及三门课的成绩; ②成绩查询: *按学号查询学生记录。 ③成绩统计: *计算学生的平均分; *根据学生的平均分高低,对学生的数据进行排序后输出; ④退出系统:退出整个系统(即主菜单) 。 五.数据结构设计描述: ↓ ↓

六.各变量的定义和作用 int num; /*定义学号,变量为整型*/ char name; /*定义姓名,变量为字符型*/ int score; /*定义课程的成绩,变量为整型*/ float average; /*定义平均分,变量为浮点型*/ 七.系统各函数的功能,、相互调用关系 1.函数实现功能说明: (1)menu函数 是定义一个菜单函数,其功能在于输出菜单界面供使用者选择。 (2)input函数 是定义用于输入学生信息。 (3)select 函数 是定义用于查询学生信息。包括学号、姓名及各科成绩。(4)statistics 函数 计算学生的平均分。 根据学生的平均分高低,对学生的数据进行排序输出。2.相互调用关系: Main函数调用menu函数。 Menu 函数可以调用input 函数、select函数和statistics函数八.心得体会

c语言学生成绩管理系统含源代码

C 语言程序设计作业 一设计项目:学生成绩管理系统 二总体设计: 2:模块功能说明: 1 输入功能:输入学生姓名学号及成绩。 2 查看功能:输出姓名学号及各科成绩。 3 查询功能:通过学号查询学生姓名及各科成绩。 4 统计功能:统计班级学生及格率,优秀率,各个学生成绩方差等。 5 修改功能:通过输入学号修改指定学生的错误信息。 6添加功能:添加学生信息。 7删除功能:通过输入学号输入指定学生信息。 8保存功能:将学生信息保存。 9 退出系统。 3:主要函数之间的调用关系及各自功能: 主要函数的函数原型 void inputscore(void); void savescore(void); void avergescore(void); void modifyscore(void); void lookscore(void); void searchscore(void); void statistic(void); void add(void); void modify(void);

void delscore(void); void menu(void); i.在菜单界面输入1,调用函数inputscore( )实现输入学生成绩信息功能。ii.在菜单界面2,调用函数lookscore( )实现学生成绩按平均分高低排序输。 出,同时lookscore()函数调用avergescore()函数实现各个学生平均分的计 算。 iii.在菜单界面输入3,调用searchscore()函数实现通过学号查找学生成绩信息功能。 iv.在菜单界面输入4,调用statistic()函数输出班级及格率,优秀率,学生成绩方差,不及格学生名单。 v.在菜单界面输入5,调用modify()函数实现通过学号修改学生成绩的功能vi.在菜单界面输入6,调用add()函数实现添加学生成绩。 vii.在菜单界面输入7,调用delscore()函数实现删除指定学生成绩。 viii.在菜单界面输入8,调用savescore()函数将学生成绩信息保存。 ix.在菜单界面输入9,退出成绩管理系统。

成绩统计系统c语言

成绩统计系统 一目的 通过课程设计,加深对《C语言程序设计》课程所学知识的理解,熟练掌握和巩固C 语言的基本知识和语法规范,包括:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);库函数应用(时间函数、绘图函数以及文件的读写操作函数等);复杂任务功能分解方法(自顶向下逐步求精、模块化设计、信息隐藏等)。 学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备利用计算机编程分析解决综合性实际问题的初步能力。 二需求分析 1、本程序要求输入一批学生某门课程考试的各题的分数,计算每个人的总分,统计各分数段0~49, 50~59, 60~69,70~79, 80~89, 90~100的人数及占总人数的百分比。要求输入:课程名称,考试日期,学生班号,学生姓名,学号,课程考试得分。输出要求:课程名称,考试日期,学生班号;各分数段的人数及百分比。 2、本程序采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体结构设计合理。学生也可根据自己对题目的理解增加新的功能模块(视情况可另外加分)。系统以菜单界面方式(至少采用文本菜单界面,如能采用图形菜单界面更好)工作,运行界面友好,演示程序以用户和计算机的对话方式进行。程序算法说明清晰,理论分析与计算正确,运行情况良好,实验测试数据无误,容错性强(能对错误输入进行判断控制)。编程风格良好(包括缩进、空行、适当注释、变量名和函数名见名知意,程序容易阅读等)。

三概要设计 1、本程序包含两个模块: (1)主程序模块: Main(){ 用switch语句控制菜单功能; Switch语句调用分支函数完成各个功能;} (2)主程序模块调用的个分支函数: menu() 控制菜单的格式输出; input() 输入考试的信息; statistics()输入学生成绩信息,并进行分数段统计;2、程序中抽象数据类型定义: int choice; 控制switch语句选择调用个分支函数,完成各个功能;Char date[] 存放日期,完成日期的输入输出; char course[20]; 存放课程名称; int classNO; 存放班级号码; char name[100]; 存放学生姓名,最大存储数量100; int number[100]; 存放学生学号; int score[100]; 存放学生考试分数,用于统计数据;

学生成绩管理系统代码c语言编写

/* Note:Your choice is C IDE */ #include "stdio.h" #include "stdlib.h" #include "string.h" typedef struct student // 定义学生 { char name[10]; int number; char sex[2]; int math; int eglish; int clanguge; int average; } student; typedef struct unit // 定义接点 { student date; struct unit * next; } unit; unit * build() // 建立链表并返回指针 { unit *p; if ((p =(unit * )malloc( sizeof (unit))) ==NULL) { printf( "=>初始化失败!"); return 0; } else { p-> next =NULL; p-> date . number=0; // 头结点存放学生人数printf( " 初始化成功!\n" ); return p; } } void add(unit * head) // 增加学生 { unit *p,*q; int m,n =0; q=head-> next; p=(unit * )malloc( sizeof (unit)); printf( "=>请输入新生姓名!\n" ); gets(p ->date . name);fflush(stdin); printf( "=>请输入学号!\n" ); while (n ==0)

c语言成绩统计系统

C语言成绩统计系统 #include #include #include int shoudsave=0; /* 为后面判断是否改动资料做铺垫*/ struct student { char num[11];/*学号*/ char name[20]; int cgrade; int mgrade; int egrade; int totle; int ave; float ajd;//平均绩点 }; typedef struct node

{ struct student data; struct node *next; } Node,*Link; void menu() { printf("************************************************************************ ********"); printf("\t1输入学生资料\t\t\t\t\t2删除学生资料\n"); printf("\t3查询学生资料\t\t\t\t\t4修改学生资料\n"); printf("\t5显示学生资料\t\t\t\t\t6统计学生成绩\n"); printf("\t7排序学生成绩\t\t\t\t\t8保存学生资料\n"); printf("\t9获取帮助信息\t\t\t\t\t0退出系统\n"); printf("************************************************************************ ********\n"); } void printstart() { printf("--------------------------------------------------------------------------------\n"); } void Wrong() { printf("\n=====>提示:输入错误!\n"); } void Nofind() { printf("\n=====>提示:没有找到该学生!\n"); } void printc() /* 本函数用于输出中文标题*/ { printf(" 学号\t 姓名英语成绩数学成绩C语言成绩总分平均分平均绩点\n"); } void printe(Node *p)/*本函数用于输出中文标题下的具体内容*/ {

c语言成绩管理系统

C语言综合实验设计报 告 C语言成绩管理系统 班级:************ 任课教师:******** 实验老师:******** 小组成员:姓名:******** 姓名:******** 姓名:********

一、实验目的 开发一个c语言成绩管理系统来统计分析大家的c语言学习情况。本程序主要实现对大家的学号,姓名,c语言平时成绩、实验成绩、期末考试成绩,综合评价的成绩。以及通过求平均分,方差,标准差来对大家的学习情况进行分析总结。 二、设计分工说明 组长:********** 组员:****** 组员:******* 本程序开发过程,小组成员分工如下: 录入学生成绩的数据结构和名称由全体组员共同商讨确定; 学生成绩的录入和显示在屏幕上的模块由组员***完成; 学生成绩的方差的计算和排序模块由组员***完成; 学生成绩的保存函数设计和主调用函数的模块的设计由组员***完成。 三、问题概述 要实现这样一个学生成绩信息管理系统,程序的开发中应该涉及到以下的内容: 1、编写一个统一的函数来调用各功能函数; 2、处理新增学生信息的操作; 3、显示输出全部记录的信息; 4、计算学生成绩的平均值、方差和标准差的函数设计; 5、根据学生记录的某一属性对记录排序; 6、对所录入的信息的保存函数设计; 同时,还应有合适的数据变量和结构参与各功能的运算。 四、问题分析 由于信息管理系统中的数据通常是不确定的多条记录,并且我们小组成员的能力有限,所以只是选择了管理一个班级(数据有限)的程序设计。 程序设计中主要是采用了结构体的数据形式,主函数调用,文件的写入,以及子函数配合的组合设计。主要录入了本班学生的学号、姓名、平时成绩、实验成绩、期末成绩等。其中由于我们学校的学号比较长(由15位),因此用双精度实数类型(double)类型,但在输出的时候控制称“15.0lf”的形式输出;姓名为字符型(char);平时成绩、实验成绩、期末成绩等都是单精度实数类型(float)。 由于信息管理这类系统,数据通常是不确定多条记录,故本系统应采用链表的结构来维持整个数据集,同时,根据题目要求,学生成绩信息包含学号、姓名、班级、计算机、专业英语、总分等属性,各属性中,学号为整型,姓名和班级为字符串,计算机、专业英语和总分应为浮点型,对一个学生记录应设置一个结构体,同时学生记录链表应包含这样的结构体,以及指向下一条记录的指针。为了便于各功能模块对整个链表的操作,链表的头指针要定义为全局变量。 下面具体分析各功能模块操作: 新建录入函数实际上就是一个for循环和标准输入输出函数的组合,现要求输入人数,然后就是标准输入输出进行数据的输入。最后再综合算一下总评成绩。完成数据的输入。 显示信息函数实际就是for语句和标准输出函数的结合,完成对刚才录入数据的显示输出。

c语言课程设计--运动会分数统计系统讲课教案

课程设计报告 课程名称C语言课程设计 课题名称运动会分数统计系统 专业电气工程及其自动化 班级 学号 姓名 指导教师王颖 2012年 6 月25 日

湖南工程学院 课程设计任务书 课程名称C语言课程设计 课题运动会分数统计系统 专业班级电气工程及其自动化 学生姓名 学号 指导老师王颖 审批 任务书下达日期2012年6月16日 任务完成日期2012年6月25日

运动会分数统计系统 一、问题描述: 参加运动会的n 个学校编号为l ~n 。比赛分成m 个男子项目和w 个女子项目,项目编号分别为l ~m 和m +1~m +w 。由于各项目参加人数差别较大,有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。设计一个统计程序按名次产生各种成绩单、得分报表。 二、基本要求: 1.产生各学校的成绩单,内容包括各校所取得的每项成绩的项目号、名次、成绩、姓名和得分;产生团体总分报表,内容包括校号、男子团体总分、女子团体总分和团体总分;均按名次排序。 2.比赛项目既要有径赛,又要有田赛。 三、测试数据: 对于n=4,m=3,w=2,编号为奇数的项目取前五名,编号为偶数的项目取前三名,设计一组实例数据。 四、实现提示: 1.数据结构:线性表 2.数据库结构:下面四张表构成该系统的基本数据库,全部输出报表由系统根据基本表自动生成。 3. 可以假设n ≤20,m ≤30,w ≤20,姓名长度不超过20个字符。每个项目结束时,将其编号、类型符(区分取前五名还是前三名)输入,并输入运动员编号、学校编号和成绩等。 五、选作内容: 允许用户指定某项目采取其他名次取法。 姓名 运动员编号 校名 学校编号 项目名 项目编号 初始化时完成录入 float char char char char char 成绩 类型 性别 项目编号 学校编号 运动员编号

用c语言编写一个成绩管理系统

程序说明:有N个学生,每个学生的数据包含学号(不重复)、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统,使之能提供以下功能:(1)主菜单学生成绩管理系统 1、成绩录入 2、成绩查询 3、成绩统计 4、退出(2)各菜单项功能① 成绩录入:输入学生的学号、姓名及三门课的成绩;② 成绩查询:(至少一种查询方式)。 v 按学号查询学生记录。 v 查询不及格学生的记录。③成绩统计: v 计算学生的平均分; v 根据学生的平均分高低,对学生的数据进行排序后输出; v 对学生单科成绩排序,输出学生姓名与该科成绩;④退出系统:退出整个系统(即主菜单)。(3)结构体数组: #define N 30 struct student {int num; /* 定义学号*/ char name[20]; /* 定义姓名*/ float score[3]; /* 定义存贮三门课成绩的数组*/ float average; /* 定义平均成绩*/ };struct student stu[N]; /* 定义结构体数组,存贮多个学生的记录*/ . #include #include #include struct student { int num; char name[20]; float score[4]; float average; } stu[10000]; long t,max; bool unpass[1000]; FILE *fstu=fopen("stud.dat","at+"); int init() { int no,i; float s[4],ave; char nam[20]; while (!feof(fstu)) { fscanf(fstu,"%d",&no); fscanf(fstu,"%s",nam); fscanf(fstu,"%f%f%f%f",&s[1],&s[2],&s[3],&ave);

C语言程序的设计运动会成绩统计系统方案

程序设计工程训 练 报告 运动会分数统计系统 课程名称 姓名 院(系) 专 业班级 学号 指导教师 教务处制 C 语言程序设计工程训练 信息科学与技术学院

1 需求分析. (1) 2 系统总框图和功能模块说明 (2) 2.1 系统总框图 (2) 2.2 功能模块说明 (2) 3 系统设计. (3) 3.1 主要结构体 (3) 3.2 主要功能函数 (3) 3.3 关键函数的流程图 (4) 4 系统调试. (4) 5 总结. (7) 6 源程序清单. (7)

1需求分析 1问题描述 运动会分数统计 参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1?m女子m+仁m+w不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些项目取前五名或前三名由使用者设定。(m<=20 ,n <=20 2. 基本要求: 1) 可以输入各个项目的前三名或前五名的成绩; 2) 能统计各学校总分; 3) 可以按学校编号、学校总分、男女团体总分排序输出; 4) 可以按学校编号查询学校某个项目的情况; 5) 可以按项目编号查询取得前三或前五名的学校。 3. 测试数据 1) 首先进入成绩录入界面,先输入参赛学校数,再输入男子组数和女子组数; 2) 然后进入总目录; 3) 输入:1输入成绩; 4) 输入:2统计各校总分; 5) 输入:3统计各校项目得分; 6) 输入:4按学校总分排序输出; 7) 输入:5按男团体总分排序输出; 8) 输入:6按女团体总分排序输出; 9) 输入:7按学校编号查询学校某个项目的成绩; 10) 输入:8按项目编号查询取得前三名或前五名的学校; 11) 输入:0退出;

学生成绩管理系统基本C语言编写

//代码版权所有,不要 #include "stdio.h" #include "stdlib.h" #include "string.h" #include "conio.h" copy,仅供参考学习。//标准输入输出函数库 //标准函数库 //字符串函数库 //屏幕操作函数库 #define p->data.num,p->https://www.doczj.com/doc/c81748615.html,,p->data.egrade,p->data.mgrade,p->data.cgrade,p->data.total,p->data.a ve,p->data.mingci int saveflag=0; //是否需要存盘的标志变量 //定义与学生有关的数据结构 typedef struct student { char num[12]; char name[15]; int cgrade; int mgrade; int egrade; int total; float ave; int mingci; }sqlist; //定义每条记录或结点的数据结构,标记为:node typedef struct node { struct student data;// 数据域 struct node *next; //指针域 }Node,*Link; //Node 为node 类型的结构变量,*Link 为node 类型的指针变量 void menu() //主菜单 { system("cls"); //调 用 DOS 命令,清屏.与clrscr() 功能相同 printf(" \n"); printf(" 学生成绩管理信息系统主菜单\n\n"); printf(" **************************************************\n"); printf(" $ 1 、添加记录6、统计记录$\n"); #define HEADER1 " ********************** ***** 学生成绩信息 ****************************** \n\n" #define HEADER2 " 学号姓名计算机数学英语总分平均分名次\n\n" #define FORMAT " %-10s %-10s %5d %5d %5d %5d %.3f %4d \n" DATA //标记为student //学号 //姓名//计 算机成绩// 数学成绩// 英语成绩 //总分 //平均分 //名次

C语言课程设计-学生成绩统计软件

C语言课程设计实验报告 一问题描述:学生成绩统计软件 二基本要求: 1)每条记录由学号、姓名、若干门课程的成绩组成; 2)能计算每个学生的总分和平均分并显示; 3)能按平均分统计各分数段的人数,并以分布图显示,如图; 4)再此基础上能够进行文件操作。 三系统分析与设计: 由于程序要求对文件进行操作,所以需要建立一个文件存储学生信息并且能从文件中读取并输出。学生信息从键盘输入,根据提示并以ENTER结束每条信息的输入。 1总体设计: 程序通过main()函数调用两个模块函数来实现要求。两个模块分别是输入和计算的getdata函数和输出图表的putsgraph函数。 2 详细设计: 1)文件建立:因为要求对文件进行操作,所以首先建立一个文件存放学生的信息,用到FILE 文件指针,fp1=fopen(“file1”,”w+”); 2)学生的信息存放在结构体数组中,struct student_score s[N];并且通过for循环,调用子函数getdata,从键盘接受学生信息并且计算总分和平均分,用return返回主函数,并用fprintf 写入文件中,用rewind返回文件头,用fscanf读出信息并显示在屏幕上,统计各平均分段的人数,通过调用putsgraph输出图表。 四结构图: 主函数 五流程图

六程序清单 #define N 5 #include #include struct student_score { long num; char name[20]; float score[4]; float total; float aver; }s[N]; struct name { char a[10]; }n[8]; void main() { FILE *fp1; struct student_score getdata(struct student_score st,int x); struct name n[8]={"NUMBER","NAME","SCORE1","SCORE2","SCORE3","SCORE4","TOTAL","AVERA GE"}; int putsgraph(int sa, int sb,int sc,int sd,int se); int i,s1=0,s2=0,s3=0,s4=0,s5=0; if((fp1=fopen("file1","w+"))==NULL) {printf("cannot open file %s\n",fp1); exit(0);} for(i=0;i

c语言课程设计学生成绩管理系统

目录 ——学生成绩管理程序题目要求 (2) 设计目的 (2) 总体设计 (3) 详细设计 (3) 调试与测试 (12) 源程序 (14) 总结 (30)

学生成绩管理程序 一.题目要求 1.问题描述: 对在校学生几门课程的考试成绩进行统一管理.每个学生记录包括学号,姓名,年龄,数学,英语,物理成绩,默认以学号为序存放. 2.要求: (1)一个文件按以班为单位存储学生记录. (2)将允许的操作分为四种,以A,B ,C,D,E,F为标志: A:插入一个学生记录; B:修改学生记录; C:删除一个学生记录; D:查找一个学生记录; E:浏览学生成绩: F:退出 3.计算学生的总成绩. 4.按学号排序输出全班学生成绩表 . 二.设计目的 根据题目要求,由于学生信息是存放在文件中,所以应提供文件的输入,输出等操作;在程序中需要浏览学生的信息,应提供显示,查找,排序等操作;另外还应提供键盘式选择菜单实现功能选择.

三.总体设计 根据上面的需求分析,可以将这个系统分为以下模块:输入模块,修改模块,删除模块,查找模块,显示模块. 四.详细设计 1.主函数: 主函数一般设计得比较简单,只提供输入,处理和输出部分的函数调用,其中各功能模块用菜单方式选择. 流程图:

[程序]: //#include "head.h" int menu_select() { char c; printf("\n\n"); printf(" | 1. 增加学生记录 5.统计信息|\n"); printf(" | 2. 查询学生记录 6.打开文件|\n"); printf(" | 3. 修改学生记录7.保存文件|\n"); printf(" | 4. 学生纪录排序8.显示记录|\n"); printf(" | 0. 退出系统|\n"); printf("\n\n"); printf("请选择(0-8):"); c=getchar(); getchar(); return (c-'0'); } 2.输入模块: [分析]: 单独看各数据信息,学号,姓名是字符型,可以采用字符型数组;分数为整数,采用整数;数据信息存放在文件中,一条记录对应一个学生,既符合习惯又方便信息管理. 如果要存放若干学生信息就用结构体数组: void addrecord(student stud[]) { int i=0,j,num; char str[5]; if(numstus!=0) {

c语言学生成绩管理系统代码

#include #include #include #define MAXN 100 //一个班最多的人数 #define MAXM 2 //成绩的课程门数 int R; void input(); //1.学生成绩新建 void sort(); //2.学生成绩插入 void load(); //3.学生成绩修改 void print(); //4.学生成绩删除 void total(); //5.学生成绩统计 void search(); //6.学生成绩查询 void save(); //7.学生成绩保存 void end(); //8.结束 struct student { char name[20]; //保存全班姓名 char num[12]; //保存全班学号 float score[MAXM]; //保存全班所有课程成绩 float sum; //保存全班每个人的总成绩 float avg; //保存每个人的平均成绩 }; struct student s[MAXN]; struct http { char subject[20]; //保存全班所有课程 }; struct http c[MAXM]; void main() //欢迎首界面 { int select,l; system("color fC"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf(" ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥\n"); printf(" * *\n"); printf(" * *\n"); printf(" * 欢迎进入终极一班学生管理系统 *\n"); printf(" * *\n"); printf(" * ︻┳═一 cf ... *\n"); printf(" * ┈━═☆甘总管的多塔生活∝╬══→ *\n");

C语言课程设计-学生成绩统计软件

安徽师范大学
《C 语言程序设计》
课程设计报告
题 学 姓
目 号 名
学生成绩统计软件
年级专业 同组人员 学 号
09 电子信息工程
指导老师 完成日期 2010 年 6 月 30 日
安徽师范大学物理与电子信息学院
College of Physics and Electronic Information, Anhui Normal University
1

安徽师范大学
一、实践的目的和要求 加深对《C 语言》课程所学知识的理解,进一步巩固 C 语言 语法规则。学会编制结构清晰、风格良好、数据结构适当的 C语言程序,从而具备解决综合性实际问题的能力。 二、实践内容 在熟练掌握 C 语言的基本知识:数据类型(整形、实型、字 符型、指针、数组、结构等) ;运算类型(算术运算、逻辑 运算、自增自减运算、赋值运算等) ;程序结构(顺序结构、 判断选择结构、循环结构) ;大程序的功能分解方法(即函 数的使用)等。进一步掌握各种函数的应用,包括时间函数、 绘图函数,以及文件的读写操作等。 三、实验要求 1) 每条记录由学号,姓名,若干门课程的成绩组成 2) 能计算每个学生的总分和平均分并显示 3) 能按平均分统计各分说短的人数, 并以分布图显示, 4) 在此基础上,可进行文件操作
<=60
〈=70
〈=80
〈=90
〈=100
2

安徽师范大学
四、实验内容 1、程序功能 能够输入学生的学号、姓名、分数等内容;输入后可以 显示学生信息;能够删除学生信息;可以添加学生信息,平 且可以进行排序;可以对输入信息价以保存,且可以在以后 操作中能查到源输入信息。 2、程序清单
#include #include #include #include #include #include #include #define LEN sizeof(STUDENT) typedef struct stu {char num[6]; char name[5]; int score[3]; int sum; float average; int order; struct stu *next; }STUDENT; STUDENT *init(); int menu_select(); STUDENT *create(); void print(STUDENT *head); void search(STUDENT *head); STUDENT *delete(STUDENT *head); STUDENT *sort(STUDENT *head); STUDENT *insert(STUDENT *head,STUDENT *new); void save(STUDENT *head); STUDENT *load(); main()
3

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

青岛农业大学 课程设计报告 题目:学生成绩管理系统 姓名:田世强元成张斌 学院:工程系 专业:电子信息工程技术 班级:2班 学号:200806013 200806015 200806023 指导教师:曹红波 2010年9月16日 六详细设计(各功能模块的具体实现算法——流程图) (3)

一设计目的 进一步加深、巩固所学专业课程(《C语言程序设计》)的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。掌握运用C语言独立地编写、调试应用程序和进行其它相关设计的技能。 二课程设计的内容 对学生信息(包括学号、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出.将学生的成绩信息进行记录,信息内容包含:(1)学生的学号(2)学生的姓名(3)学生的成绩。假设,现收集到了一个班学生的所有成绩信息,要求用C语言编写一个简单的成绩管理系统,可进行录入、查询、修改和浏览等功能。学习相关开发工具和应用软件,熟悉系统建设过程。 三课程设计的要求与数据 1、用C语言实现系统; 2、对学生信息(包括学号、姓名、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出. 3、学生信息包括:其内容较多,为了简化讨论,要求设计的管理系统能够完成以下功能: (1) 每一条记录包括一个学生的学号、姓名、3门课成绩 (2)、成绩信息录入功能:(成绩信息用文件保存,可以一次完成若干条记 录的输入。) (3)、成绩信息显示浏览功能:完成全部学生记录的显示。 (4)、查询功能:完成按姓名查找学生记录,并显示。 (5)成绩信息的删除:按学号进行删除某学生的成绩. (6)、排序功能:按学生平均成绩进行排序。 (7)、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!

C语言_学生成绩管理系统实验报告

学生成绩管理系统实验报告 ㈠实验名称: 学生成绩管理系统 ㈡实验目的: 1)利用所学的三种程序基本结构以及数组、用户自定义函数进行一个简单管理系统的设计,进一步理解和掌握c语言的语法以及三种基本程序结构的综合应用。 2)通过程序中设计到的排序、查找、求和等操作加深对算法、程序设计思路、常用程序设计技巧的理解与掌握,逐步培养学生的程序开发能力。 ㈢实验要求: 设某班有n位同学,每位同学的数据包括一下内容:学号(长整型)、姓名(字符号)、数学成绩(整型)、程序设计成绩(整型)。设计程序完成以下5项功能:新建数据档案、添加数据、删除数据、对输入的数据进行排序和查询。 ㈣算法内容: ①程序运行,利用printf函数显示主菜单,并提示输入相应的数字来进行相关操作。 显示主菜单如下: 1.新建数据 2.添加数据 3.删除数据 4.排序 5.查询 6.退出 ②若输入1,则进入新建数据界面。根据提示依次输入学生人数、学生的学号、姓名、数学成绩和程序设计程序。 S1:输入学生人数n, S2: 0->i,(把0放在变量i中) S3:输入第i+1个学生的数据(学号,姓名,学数学成绩,程序设计成绩) S4:i+1->i S5:若i

③输入2,进入添加数据界面。 S1:原有学生人数n加1,即n+1=>n S2:输入学生数据 S3:0->i S4:输出第i+1个学生的数据 S5:若ii,0->j S3:若学生的学号stu[i].num,转到S6,否则继续 S4:i+1->i S5:若i n S7: 把要删除的数据覆盖 stu[i].num=>stu[j].num;stu[i].name=>stu[j].name; stu[i].math=stu[j].math;stu[i].C=stu[j].C;j++; S8:若ii S10:输出第i+1个学生的数据 S11:若ii S2:i+1->j S3:若a[i]j S5:若ji S7:若ii S3:若stu[i].num=a[10],输出该生数据并结束 S4:i+1->i S5:若ii,0->j S3:若std[i].math=m,转到S6 S4:i+1->i

相关主题
文本预览
相关文档 最新文档