学生成绩管理系统 高质量C语言程序.docx

上传人:b****2 文档编号:17662994 上传时间:2023-07-27 格式:DOCX 页数:27 大小:74.29KB
下载 相关 举报
学生成绩管理系统 高质量C语言程序.docx_第1页
第1页 / 共27页
学生成绩管理系统 高质量C语言程序.docx_第2页
第2页 / 共27页
学生成绩管理系统 高质量C语言程序.docx_第3页
第3页 / 共27页
学生成绩管理系统 高质量C语言程序.docx_第4页
第4页 / 共27页
学生成绩管理系统 高质量C语言程序.docx_第5页
第5页 / 共27页
学生成绩管理系统 高质量C语言程序.docx_第6页
第6页 / 共27页
学生成绩管理系统 高质量C语言程序.docx_第7页
第7页 / 共27页
学生成绩管理系统 高质量C语言程序.docx_第8页
第8页 / 共27页
学生成绩管理系统 高质量C语言程序.docx_第9页
第9页 / 共27页
学生成绩管理系统 高质量C语言程序.docx_第10页
第10页 / 共27页
学生成绩管理系统 高质量C语言程序.docx_第11页
第11页 / 共27页
学生成绩管理系统 高质量C语言程序.docx_第12页
第12页 / 共27页
学生成绩管理系统 高质量C语言程序.docx_第13页
第13页 / 共27页
学生成绩管理系统 高质量C语言程序.docx_第14页
第14页 / 共27页
学生成绩管理系统 高质量C语言程序.docx_第15页
第15页 / 共27页
学生成绩管理系统 高质量C语言程序.docx_第16页
第16页 / 共27页
学生成绩管理系统 高质量C语言程序.docx_第17页
第17页 / 共27页
学生成绩管理系统 高质量C语言程序.docx_第18页
第18页 / 共27页
学生成绩管理系统 高质量C语言程序.docx_第19页
第19页 / 共27页
学生成绩管理系统 高质量C语言程序.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

学生成绩管理系统 高质量C语言程序.docx

《学生成绩管理系统 高质量C语言程序.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统 高质量C语言程序.docx(27页珍藏版)》请在冰点文库上搜索。

学生成绩管理系统 高质量C语言程序.docx

学生成绩管理系统高质量C语言程序

学生成绩管理系统

摘要:

学生成绩管理系统是学校不可或缺的一个组成部分,随着计算机技术的逐渐发展,计算机在教育系统中的应用得到了巨大的发展。

教务管理正在逐步迈向管理信息现代化。

但是我国的教务管理信息化水平还处在初级阶段,主要表现在对学生的成绩管理、学生的课程管理还是采用原有的人工管理方式。

学校的规模不断扩大,学生数量急剧增加,有关学生的各种数据也成倍增长。

面对庞大的信息量,这时的人工管理几乎无法实现,在这种情况下用数据库进行管理变的尤为必要,这可以发挥计算机的优势,就需要有教务管理系统来提高学生成绩管理工作的效率。

过这样的系统,可以做到信息的规范管理,科学统计和快速的查询,从而减少管理方面的工作量和减少人为的错误。

本次我们组选的就是学生成绩管理系统,要实现对学生成绩、课程的相关管理。

关键词:

成绩管理、C语言项目、程序设计、程序分析

1.设计目的和要求

1.1目的

1.2要求

2.总体设计

2.1模块设计

2.2类的分析与设计

3.详细设计

3.1修改数据功能模块设计

3.1.1详细功能描述

3.1.2设计思想

3.1.3主要代码

3.2删除数据功能模块设计

3.2.1详细功能描述

3.2.2设计思想

3.2.3主要代码

3.3增加数据功能模块设计

3.3.1详细功能描述

3.3.2设计思想

3.3.3主要代码

4.调试分析

4.1修改数据功能

4.2删除数据功能

4.3增加数据功能

5.总结

6.答辩记录

7.教师意见

1、设计目的和要求

1.1目的

以本班同学的高等数学、大学物理、C语言、大学英语的成绩为基础,建立一个可以实现以下功能的学生成绩管理系统。

1.2要求

A.信息维护

信息数据以文件形式保存,要求能够实现对学生信息数据的维护,其中包括增加、删除以及修改学生信息。

B.信息查询

要求能够能够实现按学生姓名和学号两种方式查询学生各课成绩。

C.成绩统计

输入任意课程名和一个分数段,统计该课程在该分数段的学生信息。

D.成绩排序

对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果。

2、总体设计

2.1模块设计

根据设计目的和要求,我们首先将程序分成四个模块,分别为信息维护、信息查询、成绩统计及成绩排序。

而在各个主模块中,我们又将其分成若干个小模块,从而实现程序设计的要求。

其中,模块设计如下:

信息维护—1、增加学生信息2、删除学生信息3、修改学生信息;信息查询--1、按学号查询2、按姓名查询;成绩统计;成绩排序—1、按高数排序2、按大物排序3、按C语言排序4、按英语排序。

所以最终实现的功能有:

1、增加学生信息2、删除学生信息3、修改学生信息4、按学号查询成绩5、按姓名查询成绩6、成绩按某门课程某个分数段统计7、成绩按某门课程排序。

一个方便学校使用的学生成绩管理系统,这个系统的功能比较完善。

使用类内函数和主函数中的switch语句实现多分支选择结构,进而实现该系统的各项功能。

该系统能实现7项功能。

设计本次实验所用到的知识点有:

类、指针、数组,构造函数,动态内存分配,switch语句、if语句、while()语句等。

2.2类的分析与设计

student类中的构造函数是来实现当类生成对象时用于对数据的初始化。

例如stud[].name是对学生姓名的初始化,stud[].math是对学生高等数学成绩的初始化,而stud[].Clanguage是对学生c语言成绩的初始化。

而student类将有内在联系的,成组出现的学生姓名,学号,各科成绩结合在一起,形成一种组合型数据结构。

3.详细设计

3.1修改数据功能模块设计

3.1.1详细功能描述

该部分是用来修改已录入的学生的数据信息。

3.1.2设计思想

我们采用通过学号修改的方法来修改已录入的学生的数据信息。

当输入学生学号后,系统会提示“请选择您要修改的内容:

”同时给出要修改的选项,包括姓名高数、大物、c语言、英语、及退出供您选择。

当做出选择后,会得到“请输入新数据”的提示。

该部分通过if语句、switch语句和while语句实现其功能。

3.1.3主要代码

voidxiugai(structStudent_typestud[])/*修改*/

{

inti=0,choice;

intu;

printf("请输入您要修改的学生的学号:

\n");

scanf("%s",&u);

for(i=0;i

{

printf("请选择您要修改的内容:

\n");

printf("----------------------\n");

printf("|姓名请按1|\n");

printf("|高数请按2|\n");

printf("|大物请按3|\n");

printf("|c语言请按4|\n");

printf("|英语请按5|\n");

printf("|退出请按0|\n");

printf("+----------------------+\n");

printf("请输入您的选择:

");

scanf("%d",&choice);

switch(choice)

{

case0:

break;

case1:

printf("请输入新姓名:

");

scanf("%s",stud[i].name);

break;

case2:

printf("请输入新的高数分数:

");

scanf("%d",&stud[i].math);

break;

case3:

printf("请输入新的大物分数:

");

scanf("%d",&stud[i].physic);

break;

case4:

printf("请输入新的c语言分数:

");

scanf("%d",&stud[i].Clanguage);

break;

case5:

printf("请输入新的英语分数:

");

scanf("%d",&stud[i].English);

break;

default:

printf("\n无效选项!

");

break;

}break;

}

printf("修改成功\n");

for(i=0;i

{

printf("%-10s%8d%4d%4d%4d%4d\n",stud[i].name,stud[i].num,stud[i].math,stud[i].physic,stud[i].Clanguage,stud[i].English);}

}

3.2删除数据功能模块设计

3.2.1详细功能描述

该部分是用来删除已录入的学生的数据信息。

3.2.2设计思想

我们采用按姓名查找,删除一条记录的方法实现删除功能。

首先,输入要删除记录的名字,然后通过if语句和strcmp函数找到对应的数据,最后借用strcpy函数一一将下一数据的值覆盖到上一个数据,从而实现删除数据的的功能。

该部分通过if语句和strcmp函数以及strcpy函数实现其功能。

3.2.3主要代码

voidshanchu()/*按姓名查找,删除一条记录*/

{

chars[10];

intj,i=0;

printf("输入要删除记录的姓名:

");

scanf("%s",s);

for(i=0;i

{if(strcmp(stud[i].name,s)==0)

{

for(j=i;j

{

{

stud[j].num=stud[j+1].num;

strcpy(stud[j].name,stud[j+1].name);

stud[j].physic=stud[j+1].physic;

stud[j].math=stud[j+1].math;

stud[j].Clanguage=stud[j+1].Clanguage;

stud[j].English=stud[j+1].English;

}

}

}

}

printf("DeleteSuccessed!

\n");

saved();

for(i=0;i

{

printf("%-10s%8d%4d%4d%4d%4d\n",stud[i].name,stud[i].num,stud[i].math,stud[i].physic,stud[i].Clanguage,stud[i].English);}

}

3.3增加数据功能模块设计

3.3.1详细功能描述

该部分是用来新增学生的数据信息。

3.3.2设计思想

首先设计一个save函数,先打开文件数据库,能够实现保存并关闭文件后,通过fread写入一组数据,从而达到新增数据的目的。

3.3.3主要代码

voidsave()

{

FILE*fp;inti;

if((fp=fopen("chengjidan.dat","ab"))==NULL)

{

printf("canopenfile\n");

return;

}

if(fwrite(&stud[SIZE],sizeof(structStudent_type),1,fp)!

=1)

printf("filewriteerror\n");

fclose(fp);

printf("添加成功\n");

for(i=0;i

{

fread(&stud[i],sizeof(structStudent_type),1,fp);

printf("%-10s%8d%4d%4d%4d%4d\n",stud[i].name,stud[i].num,stud[i].math,stud[i].physic,stud[i].Clanguage,stud[i].English);

}

}

voidzengjia()

{

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

scanf("%s%d%d%d%%d%d",stud[SIZE].name,&stud[SIZE].num,&stud[SIZE].math,&stud[SIZE].physic,&stud[SIZE].Clanguage,&stud[SIZE].English);

save();

}

4、调试分析

4.1修改数据功能

修改数据功能如下图:

4.2删除数据功能

删除数据功能如下图:

4.3增加数据功能

增加数据功能如下图:

5、总结

本学生成绩管理系统能够实现增加,修改,删除记录的信息维护功能、按姓名,学号查询学生成绩信息功能、某一课程在某一分数段的统计功能及某一课程的排序功能。

编好程序,运行完毕后,我们也发现了一些缺陷。

比如,修改只能通过输入学号对该记录数据组进行修改,而删除也只做了输入学号删除记录的设定。

当然,缺憾是补课避免的。

总体上来讲,计算机综合课程设计上完了,完成了一个基本的学生成绩管理系统,从系统需求分析、数据库设计开始到系统的设计实施,逐步熟悉了c语言程序设计。

在组长的带领下我们经过了好几周的时间反复编写和调试程序,从课本和网上查阅相关资料,终于完成了整个课程设计。

过程中,也遇到不少困难,如编程逻辑把握不住,经验太少,不太善于调试程序等。

不过我们还是一步一步的自己动手做,不会的地方参考别人的程序自己再试着写或请教老师,在此过程中收获多多。

6、答辩记录

 

7、教师意见

 

附录:

#include

#include

#include

#defineSIZE5

structStudent_type

{

charname[10];

intnum;

intmath;

intphysic;

intClanguage;

intEnglish;

}

stud[SIZE];

intweihuxuanze()

{

inti;

printf("*1.增加学生信息*");

printf("\t*2.删除学生信息*\n");

printf("*3.修改学生信息*");

printf("*请选择你所需的功能的序号*\n");

scanf("%d",&i);

returni;}

voidsaved()

{

FILE*fp;

inti;

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

{

printf("canopenfile\n");

return;

}

for(i=0;i

if(fwrite(&stud[i],sizeof(structStudent_type),1,fp)!

=1)

printf("filewriteerror\n");

fclose(fp);

}

voidsave()

{

FILE*fp;inti;

if((fp=fopen("chengjidan.dat","ab"))==NULL)

{

printf("canopenfile\n");

return;

}

if(fwrite(&stud[SIZE],sizeof(structStudent_type),1,fp)!

=1)

printf("filewriteerror\n");

fclose(fp);

printf("添加成功\n");

for(i=0;i

{

fread(&stud[i],sizeof(structStudent_type),1,fp);

printf("%-10s%8d%4d%4d%4d%4d\n",stud[i].name,stud[i].num,stud[i].math,stud[i].physic,stud[i].Clanguage,stud[i].English);

}

}

voidzengjia()

{

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

scanf("%s%d%d%d%%d%d",stud[SIZE].name,&stud[SIZE].num,&stud[SIZE].math,&stud[SIZE].physic,&stud[SIZE].Clanguage,&stud[SIZE].English);

save();

}

voidxiugai(structStudent_typestud[])/*修改*/

{

inti=0,choice;

intu;

printf("请输入您要修改的学生的学号:

\n");

scanf("%s",&u);

for(i=0;i

{

printf("请选择您要修改的内容:

\n");

printf("----------------------\n");

printf("|姓名请按1|\n");

printf("|高数请按2|\n");

printf("|大物请按3|\n");

printf("|c语言请按4|\n");

printf("|英语请按5|\n");

printf("|退出请按0|\n");

printf("+----------------------+\n");

printf("请输入您的选择:

");

scanf("%d",&choice);

switch(choice)

{

case0:

break;

case1:

printf("请输入新姓名:

");

scanf("%s",stud[i].name);

break;

case2:

printf("请输入新的高数分数:

");

scanf("%d",&stud[i].math);

break;

case3:

printf("请输入新的大物分数:

");

scanf("%d",&stud[i].physic);

break;

case4:

printf("请输入新的c语言分数:

");

scanf("%d",&stud[i].Clanguage);

break;

case5:

printf("请输入新的英语分数:

");

scanf("%d",&stud[i].English);

break;

default:

printf("\n无效选项!

");

break;

}break;

}

printf("修改成功\n");

for(i=0;i

{

printf("%-10s%8d%4d%4d%4d%4d\n",stud[i].name,stud[i].num,stud[i].math,stud[i].physic,stud[i].Clanguage,stud[i].English);}

}

voidshanchu()/*按姓名查找,删除一条记录*/

{

chars[10];

intj,i=0;

printf("输入要删除记录的姓名:

");

scanf("%s",s);

for(i=0;i

{if(strcmp(stud[i].name,s)==0)

{

for(j=i;j

{

{

stud[j].num=stud[j+1].num;

strcpy(stud[j].name,stud[j+1].name);

stud[j].physic=stud[j+1].physic;

stud[j].math=stud[j+1].math;

stud[j].Clanguage=stud[j+1].Clanguage;

stud[j].English=stud[j+1].English;

}

}

}

}

printf("DeleteSuccessed!

\n");

saved();

for(i=0;i

{

printf("%-10s%8d%4d%4d%4d%4d\n",stud[i].name,stud[i].num,stud[i].math,stud[i].physic,stud[i].Clanguage,stud[i].English);}

}

voidpaixu_math(structStudent_typestud[])/*按高树成绩排序*/

{inti,j,k=0,p,q,r,w;

doubley;

charx[10];

intt;

for(i=0;i

{k=i;

for(j=i+1;j

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

{

k=j;

p=stud[i].physic;stud[i].physic=stud[k].physic;stud[k].physic=p;

q=stud[i].math;stud[i].math=stud[k].math;stud[k].math=q;

r=stud[i].English;stud[i].English=stud[k].English;stud[k].English=r;

w=stud[i].Clanguage;stud[i].Clanguage=stud[k].Clanguage;stud[k].Clanguage=w;

t=stud[i].num;stud[i].num=stud[k].num;stud[k].num=t;

strcpy(x,stud[i].name);

strcpy(stud[i].name,stud[k].name);

strcpy(stud[k].name,x);

}

}

for(i=0;i

{

printf("%-10s%8d%4d%4d%4d%4d\n",stud[i].name,stud[i].num,stud[i].math,stud[i].physic,stud[i].Clanguage,stud[i].English);}

}

voidpaixu_physic(structStudent_typestud[])/*按大物成绩排序*/

{inti,j,k=0,p,q,r,w;

doubley;

charx[10];

intt;

for(i=0;i

{k=i;

for(j=i+1;j

if(stud[j].physic>stud[k].physic)

{

k=j;

p=stud[i].physic;stud[i].physic=stud[k].physic;stud[k].physic=p;

q=stud[i].math;stud[i].math=stud[k].math;stud[k].math=q;

r=stud[i].English;stud[i].English=stud[k].English;stud[k].English=r;

w=stud[i].Clanguage;stud[i].Clanguage=stud[k].Clanguage;stud[k].Clanguage=w;

t=stud[i].num;stud[i].num=stud[k].num;stud[k].num=t;

strcpy(x,stud[i].name);

strcpy(stud[i].name,stud[k].name);

strcpy(stud[k].name,x);

}

}

for(i=0;i

{

printf("%-10s%8d%4d%4d%4d%4d\n",stud[i].name,stud[i].num,stud[i].math,stud[i].physic,stud[i].Clanguage,stud[i].English);}

}

voidpaixu_Clanguage(structStudent_typestud[])/*按C语言成绩排序*/

{inti,j,k=0

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2