WORKSSHOW
数据结构课程设计学生作品展示系列
一、实验目的
利用C语言程序,输入代码将学生的成绩进行管理。具有以下功能:
(1)能够查询到所有已经录入的学生的学号、姓名、成绩、总成绩、平均分、排名。
(2)可以重新录入新的学生的学号、姓名以及各科成绩。并计算出总成绩和平均分。
(3)可以查询到所有已录入的所有学生的排名情况。
(4)可以查询已录入学生的总成绩中总成绩最高同学的信息。
(5)输入学号,查询到学生的各科成绩的汇总以及总成绩和平均分。
(6)退出程序。
实现这个程序之后基本掌握了程序设计的基本思路和方法,而且可以熟练的掌握了C语言的基本知识和技能。能够利用所学的基本知识和技能,解决简单的程序设计的问题。
二、任务描述
我们所设计的学生管理系统选择页面,学生可以通过系统进行数据的输入、输出、查询、添加。我们通过输入学生学号或姓名算出一个学生的5门课的成绩的总成绩以及平均成绩;.使用结构体数组算出学生的成绩排名、总成绩以及成绩查询。
(1)全量查询
全量查询其主要功能是对学生的成绩进行输出,使用该功能可以显示所有学生的信息,资料等等。具体包括学生的学号,姓名和各科成绩。在查看学生的资料,成绩各方面的信息后,按2键回车就可以返回到主界面。
(2)成绩录入
主要功能用来对学生的成绩进行收集和输入。在学生信息保存在系统中的前提下,成绩录入需要输入学生资料,比如班级,学号,姓名。在准确输入学生资料后,就可以对该学生的各科成绩进行录入,本系统共录入了五科的成绩。该学生各科成绩输入成功后,系统会提示是否继续进行操作,如果想继续输入学生成绩就输入1,不想再输入学生成绩的话就输入2,系统就会返回到主界面。
(3)成绩排名
主要功能是用来对学生的资料按成绩进行排序。在系统保存学生资料,成绩的前提下,使用此功能可以对学生的资料按成绩进行排序,这样就方便学生知道自己的平均分以及成绩排名当查询完后输入2,系统就会返回到主界面。
(4)总分最高
主要功能是为了查询目前存于系统中学生资料的最高成绩,使用此功能可以对学生成绩的最高分数进行查询,这样就方便学生知道目前处于本系统中的最高分,查询完后通过输入2键返回系统的主界面。
(5)成绩查询
主要功能是用来查找学生成绩。在系统保存了某学生资料的前提下,想要查找该学生资料,可以输入该学生姓名,这样系统就会显示该学生资料和各科成绩等信息,查询完后通过输入2键返回系统的主界面。
(6)退出程序
主要功能是用来储存学生资料。在对系统进行一系列操作,比如添加、查询学生资料后,对系统的最新操作进行保存,并跳转页面至感谢使用。
三、设计过程
以查找迅速、方便、可靠、成本低为设计理念,对学生成绩管理系统进行功能设计,其中包括全量查询模块、成绩录入模块、成绩排名模块、总分模块、以及按学号查询成绩5个模块,这5个模块既相互联系,又相互独立。本系统的建立是根据学生成绩管理的需要,方便对成绩进行与操作。该系统的设计关系为一对多,一名学生对应多门课程;一门课程也对应多个学生。针对代码的设计采用了顺序结构,且每位学生都对应其学号,方面数据的管理。代码主函数简介,子函数明了,函数调用清晰,使得实践过程思路清晰并成功实现学生成绩管理系统功能。
系统结构图
四、程序测试
1.编辑程序运行之后,首先看到的是公司系统的欢迎界面,这个界面会显示两秒钟的时间,然后自动跳转到下个界面。程序运行示意图如下图所示:
然后进入的界面为请输入密码,这部分的代码步骤:
voidmima()
{
printf("\n\n\n\n\n\n\n\n\t\t\t\t请输入密码:");
scanf("%d",mm);
while(mm!=)
{
printf("\t\t\t密码错误,请重新输入:");
scanf("%d",mm);
}
printf("\n\n");
}
运行结果如下图所示:
全量查询
进入了主页面,如下图所示,然后输入1-6任意数,运行结果如下图所示:
输入1之后,进入全量查询,然后显示已存在的学生的学号,以及各科的成绩,平均分,以及总成绩。运行结果如下图所示:
2、成绩录入
然后按1继续,输入2进入成绩录入,然后输入想要录入的学生的信息,任意个学生的人数都可以。运行结果如下图所示:
然后全量查询就变成如下图所示:
3、成绩排名
输入3,之后就可以查询所有学生的成绩排名,代码如下:
voidsort()//排序
{structex1temp;
for(i=0;isize;i++)
{
for(j=1;jsize-i;j++)
{
if(stu[j-1].sumstu[j].sum)
{
temp=stu[j-1];
stu[j-1]=stu[j];
stu[j]=temp;
}
}
}
printf("\n\n****************************成绩排名*******************************\n");
printf("学号\t姓名\tC++\tJAVA\tPHP\t英语\t数据库\t平均分\t总分\n");
for(i=0;isize;i++)
{
printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.1f\t%.1f\t%.1f\t%.1f\n",stu[i].num,stu
[i].name,stu[i].s[0],stu[i].s[1],stu[i].s[2],stu[i].s[3],stu[i].s[4],stu[i].average,stu[i].sum);
}
printf("\n********************************************************************");
}
运行结果如下图所示:
4、最高总分
输入4求所有同学中成绩最高分。代码如下:
voidmaxs()//全班最高总分
{
structex1temp;
for(i=0;isize;i++)
{
for(j=1;jsize-i;j++)
{
if(stu[j-1].sumstu[j].sum)
{
temp=stu[j-1];
stu[j-1]=stu[j];
stu[j]=temp;
}
}
}
printf("\n\n*************************总分最高学生信息****************************\n");
printf("学号\t姓名\tC++\tJAVA\tPHP\t英语\t数据库\t平均分\t总分\n");printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.1f\t%.1f\t%.1f\t%.1f\n",stu[0].num,stu[0].name,stu
[0].s[0],stu[0].s[1],stu[0].s[2],stu[0].s[3],stu[0].s[4],stu[0].average,stu[0].sum);printf("\n********************************************************************")
}
运行结果如下图所示:
5、成绩查询
输入5,进行成绩查询。输入所要查询的学生学号。运行结果如下图所示:
五、创新之处
本系统的创新之处如下:
(1)本次程序开始运行时,首先显示本公司名称,经三秒后自动跳转到菜单栏,利用Sleep();函数与system("cls");函数实现。
(2)菜单栏的设计一改往常的黑色背景,我们将背景改为蓝色,字体改为白色,凸显了我们的与众不同余特色。
(3)本程序不仅可以查询学生的各科成绩,还可以直接算出学生的平均分和总分。而且还可以将将学生成绩直接排名。面面俱到。
本程序功能完整、运行效率高、空间占用率低,已得到最大限度优化,达到用最小的空间,最优的算法实现程序的功能。这个程序是我们公司全体员工的智慧结晶,为以后的程序设计奠定了良好的基础。
六、心得体会
学生成绩管理系统的设计是一个系统性极强的综合性实验,该系统覆盖了实际中的各需求。通过该实验掌握了解了系统设计开发的具体流程和步骤。该学生成绩管理系统的顺利运行为我们在以后的项目管理、系统设计开发方面积累了经验,增强了信心。同时培养了我们的团队精神,使我们懂得了团队的重要性。
通过这个课程设计,我们更加牢固的掌握了C++的知识且学习到许多新的知识,并对于以前不熟悉的知识有了更加深刻的了解。同时,在完成此次课程设计的过程中,老师同学给了我们很多宝贵的建议和指点,我们很感谢他们。虽然有些疲劳和困倦,但带给我很多的收获。我们觉得写程序,应该先找到该程序中的核心地方,用多种方法来实现该核心,这才可能避免等到发现逻辑上或者编译器不支持上的错误,才来想补救的措施,这样花费时间在想补救措施是很不值得的。
总的来说系统整个框架合理有序。但是由于时间较短,所学有限、思维漏洞多,所以该系统还有许多不尽如人意的地方,比如用户界面不够美观,部分功能设计比较简单,出错处理不够等多方面问题。这些都有待进一步改善。
小组成员及分工
公司名称:原创科技有限公司
成员:陶予祺(总经理)
王卓瑜(副总经理)
付超凡(测试员)
郭雨(程序员)
韩磊(程序员)
蔡树雨(程序员)
完成时间.02.29
赞赏
在哪儿治疗白癜风好中科医院专家微信