学生成绩管理系统.docx

上传人:b****0 文档编号:18092182 上传时间:2023-08-13 格式:DOCX 页数:18 大小:191.38KB
下载 相关 举报
学生成绩管理系统.docx_第1页
第1页 / 共18页
学生成绩管理系统.docx_第2页
第2页 / 共18页
学生成绩管理系统.docx_第3页
第3页 / 共18页
学生成绩管理系统.docx_第4页
第4页 / 共18页
学生成绩管理系统.docx_第5页
第5页 / 共18页
学生成绩管理系统.docx_第6页
第6页 / 共18页
学生成绩管理系统.docx_第7页
第7页 / 共18页
学生成绩管理系统.docx_第8页
第8页 / 共18页
学生成绩管理系统.docx_第9页
第9页 / 共18页
学生成绩管理系统.docx_第10页
第10页 / 共18页
学生成绩管理系统.docx_第11页
第11页 / 共18页
学生成绩管理系统.docx_第12页
第12页 / 共18页
学生成绩管理系统.docx_第13页
第13页 / 共18页
学生成绩管理系统.docx_第14页
第14页 / 共18页
学生成绩管理系统.docx_第15页
第15页 / 共18页
学生成绩管理系统.docx_第16页
第16页 / 共18页
学生成绩管理系统.docx_第17页
第17页 / 共18页
学生成绩管理系统.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

学生成绩管理系统.docx

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

学生成绩管理系统.docx

学生成绩管理系统

学生成绩管理系统

目录

一、设计目的与内容————————————————————————————6

1、设计目的————————————————————————————————6

2、设计内容————————————————————————————————6

二、算法的基本思想—————————————————————————————6

1、学生成绩管理信息系统的基本功能——————————————————————6

2、功能模块—————————————————————————————————6

3、数据结构的设计——————————————————————————————7

三、测试数据————————————————————————————————7

1、学生信息管理系统主界面——————————————————————————7

2、添加学生成绩界面—————————————————————————————7

3、查看学生成绩界面—————————————————————————————8

4、查询学生成绩界面—————————————————————————————8

5、按总分对学生成绩排序界面—————————————————————————8

6、修改学生成绩界面—————————————————————————————9

7、删除学生成绩界面—————————————————————————————10

8、保存界面—————————————————————————————————10

四、源程序及系统文件使用说明————————————————————————10

1、查询学生成绩代码—————————————————————————————10

2、修改学生成绩代码—————————————————————————————11

3、删除学生成绩代码—————————————————————————————10

五、程序设计总结—————————————————————————————13

六﹑致谢———————————————————————————————14

七、参考文献—————————————————————————————15

一、设计目的与内容

1、设计目的

通过本实验进一步掌握线性表的结构类型以及排序的算法,以实现对学生的成绩管理程序。

2、设计内容

(1)用c语言编写一个简单的学生信息管理程序,能实现对学生信息的简单管理。

(2)建立一个4个学生的信息登记表,每个学生的信息包括:

学号,姓名,和3门课程的成绩。

二、算法的基本思想及功能模块

从程序的结构中可以看出,学生的信息各项功能都是由学生成绩管理系统进行的。

1、学生成绩管理信息系统的几个基本功能:

①添加学生信息(姓名、学号、三门课的成绩)②查看学生信息

③查找学生信息④按总分排序

⑤修改学生信息⑥删除学生信息

⑦保存、退出操作

2、功能模块如下图:

学生管理系统模块

3、数据结构的设计:

structstudent

{

charname[60];

charID[7];

floatcj1,cj2,cj3,zcj;

};

三、测试数据

1、学生信息管理系统主界面:

2、添加学生成绩界面:

选择1,显示添加学生成绩界面,输入学生人数,添加学生信息。

3、查看学生成绩界面:

选择2,显示查看学生信息界面,通过该界面可以查看学生的成绩信息。

4、查询学生成绩,按姓名查询、按学号查询:

选择3,显示查询学生成绩界面,在该界面上进行0和1的选择,选择0,按姓名查询学生成绩,单击Enter按钮,显示按姓名查询的学生成绩界面,如图所示:

选择1,按学号查询学生成绩,单击Enter按钮,显示按学号查询学生成绩的界面,如图所示:

5、按总分对前四名学生成绩进行排序:

选择4,显示按总分排序学生成绩的界面,通过该界面将看到排序后学生总分的排名情况。

如下图所示:

6、修改学生成绩,按姓名修改、按学号修改:

选择5,先是修改学生成绩的界面,在该界面上将出现0和1的选择,选择0,将会按姓名对学生成绩的信息进行修改,界面如图所示:

选择1,将会按学号对学生成绩的信息进行修改,界面如图所显示:

7、删除学生成绩,按姓名删除、按学号删除:

选择6,显示删除学生成绩信息的界面,在该界面上将进行0和1的选择,选择0,按姓名的方式对学生成绩的信息进行删除,界面如下图所示:

选择1,将会按学号的方式对学生成绩的信息进行删除,界面如下图所示:

8、对所有操作进行保存:

选择7,显示信息保存界面,届时将会出现程序已经保存界面,如下图所示:

四、源程序及系统文件使用说明

1、查询学生记录

当用户执行此查询任务时,系统会提示用户进行查询字段的选择,即按姓名或按学号进行查询。

若此学生记录存在,则会输出此学生记录的信息。

voidfind()

{

intn=0;

printf("请选择查找的方式:

\n");

printf("0按姓名查找\n");

printf("1按学号查找\n");

scanf("%d",&n);

switch(n)

{

case0:

xmfind();

break;

case1:

xhfind();

break;

default:

printf("输入有误,结束!

\n");

break;

}

}

voidxhfind()//按学号查找

{

charid[7];

inti=0;

printf("请输入要查找学生学号:

");

scanf("%s",id);

system("cls");

printf("\t姓名\t学号\t数据结构\t计算机操作系统\t微机原理\n");

for(i=0;i

{

if(strcmp(id,st[i].ID)==0)

{

printf("\t%s\t%s\t%f\t%f\t%f\n",st[i].name,st[i].ID,st[i].cj1,st[i].cj2,st[i].cj3);

}

}

}

voidxmfind()//按姓名查找

{

charname[7];

inti=0;

printf("请输入要查找学生姓名:

");

scanf("%s",name);

system("cls");

printf("\t姓名\t学号\t数据结构\t计算机操作系统\t微机原理\n");

for(i=0;i

{

if(strcmp(name,st[i].name)==0)

{

printf("\t%s\t%s\t%f\t%f\t%f\n",st[i].name,st[i].ID,st[i].cj1,st[i].cj2,st[i].cj3);

}

}

}

2、修改学生记录

在修改学生记录操作中,系统会先按输入的学号或姓名查找该记录,然后提示用户修改学号或姓名之外的值,但学号或姓名不能修改。

voidchange(){

intway=0;

printf("请选择修改的方式:

\n");

printf("0按姓名修改\n");

printf("1按学号修改\n");

scanf("%d",&way);

switch(way)

{

case0:

xmchange();

break;

case1:

xhchange();

break;

default:

printf("输入有误,结束!

\n");

break;

}

}

voidxmchange()//按姓名修改

{

FILE*fp=NULL;

charname[60];

inti=0;

intchangeIndex=0;

intindex=0;

printf("请输入要修改的学生姓名:

");

scanf("%s",name);

for(i=0;i

{

if(strcmp(name,st[i].name))

{

changeIndex=i;//保存要修改的人的下标

}

break;

}

printf("\t姓名\t学号\t数据结构\t计算机操作系统\t微机原理\n");

printf("\t%s\t%s\t%f\t%f\t%f\n\n",st[changeIndex].name,st[changeIndex].ID,st[changeIndex].cj1,st[changeIndex].cj2,st[changeIndex].cj3);

printf("请输入该学生的新信息");

printf("姓名:

");

scanf("%s",st[changeIndex].name);

printf("学号:

");

scanf("%s",st[changeIndex].ID);

printf("数据结构:

");

scanf("%f",&st[changeIndex].cj1);

printf("计算机操作系统:

");

scanf("%f",&st[changeIndex].cj2);

printf("微机原理:

");

scanf("%f",&st[changeIndex].cj3);

fp=fopen("D:

//xgchengji.txt","wb");//更新文件中的数据

for(i=0;i

{

fwrite(&st[i],sizeof(structstudent),1,fp);

}

fclose(fp);

printf("\t修改成功!

\n");

}

voidxhchange()//按学号修改

{

FILE*fp=NULL;

charid[60];

inti=0;

intchangeIndex=0;

intindex=0;

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

");

scanf("%s",id);

for(i=0;i

{

if(strcmp(id,st[i].ID))

{

changeIndex=i;//保存要修改的人的下标

}

break;

}

printf("\t姓名\t学号\t数据结构\t计算机操作系统\t微机原理\n");

printf("\t%s\t%s\t%f\t%f\t%f\n\n",st[changeIndex].name,st[changeIndex].ID,st[changeIndex].cj1,st[changeIndex].cj2,st[changeIndex].cj3);

printf("请输入该学生的新信息");

printf("姓名:

");

scanf("%s",st[changeIndex].name);

printf("学号:

");

scanf("%s",st[changeIndex].ID);

printf("数据结构:

");

scanf("%f",&st[changeIndex].cj1);

printf("计算机操作系统:

");

scanf("%f",&st[changeIndex].cj2);

printf("微机原理:

");

scanf("%f",&st[changeIndex].cj3);

fp=fopen("D:

//xgchengji.txt","wb");//更新文件中的数据

for(i=0;i

{

fwrite(&st[i],sizeof(structstudent),1,fp);

}

fclose(fp);

printf("\t修改成功!

\n");

}

3、删除学生纪录

在删除学生纪录的操作中,系统会提示用户进行删除字段的选择,即按姓名或按学号进行删除。

若此学生记录存在,则系统将会删除该学生的纪录。

voiddel()

{

intn=0;

printf("请选择删除的方式:

\n");

printf("0按姓名删除\n");

printf("1按学号删除\n");

scanf("%d",&n);

switch(n)

{

case0:

xmdel();

break;

case1:

xhdel();

break;

}

}

voidxmdel()//按姓名删除

{

FILE*fp=NULL;

charname[60];

inti=0;

intj=0;

printf("请输入要删除的学生姓名:

");

scanf("%s",name);

for(i=0;i

{

if(strcmp(name,st[i].name)==0)//如果查找到就删除

{

for(j=i;j

{

st[j]=st[j+1];

}

Number--;

}

}

fp=fopen("D:

//xgchengji.txt","wb");//将删除后的数据更新后写入文件

for(i=0;i

{

fwrite(&st[i],sizeof(structstudent),1,fp);

}

fclose(fp);

printf("\t删除成功!

\n");

}

voidxhdel()//按学号删除

{

FILE*fp=NULL;

charid[60];

inti=0;

intj=0;

printf("请输入要删除的学生学号:

");

scanf("%s",id);

for(i=0;i

{

if(strcmp(id,st[i].ID)==0)//如果查找到就删除

{

for(j=i;j

{

st[j]=st[j+1];

}

Number--;

}

}

fp=fopen("D:

//xgchengji.txt","wb");//将删除后的数据更新后写入文件

for(i=0;i

{

fwrite(&st[i],sizeof(structstudent),1,fp);

}

fclose(fp);

printf("\t删除成功!

\n");

}

 

五.程序设计总结

在“学生成绩管理系统”程序的制作过程中,首先,要规划好所要建立那些模块,以及所要编写程序的思路;其次,编写程序,逐个模块进行调试;在程序调试过程中,出现很多错误是不可避免的,不过只要细心、认真的检查和修改,并不断的调试就可以克服这些错误,并得到进一步的完善,可以说功夫不负有心人,只要你认真大胆的去动手编写、动脑思考,就会过得你想要的成果。

通过这次的课程设计,让我又进一步认识了《数据结构》这门课程,以前都感觉这门课程很难,让我感觉很迷茫,在看课本、编写程序时大脑一片浆糊。

不过,通过这次的实验让我知道《数据结构》其实也没有想象中的那么难,只要我们肯下功夫就会有意想不到的收获。

数据结构是计算机程序设计的重要理论技术基础,是计算机学科的核心课程,也是其他理工专业学生进一步学习计算机知识必备的重要课程。

本次课程设计使我了解到做任何事都要有耐心,细心认真的完成,才能得到事半功倍的效果,遇到挫折不要放弃,一步一个脚印,最终会得到自己想要的成果。

六.致谢

能够完成这次课程设计必须感谢C语言课程老师、^^同学(他帮我修改了几处重要错误,同时启发我完善了该程序的功能)。

七.参考文献

[2]《C语言程序设计》,主编谭浩强,—北京,清华大学出版社,1994

[3]《C++面向对象程序设计教程》,主编郑莉、董渊,—北京,清华大学出版社,2004.8

[4]《数据结构》,主编严蔚敏,吴伟民,—北京,清华大学出版社,1997

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

当前位置:首页 > 人文社科 > 法律资料

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

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