高校学生综合测评管理系统的设计与实现课程设计论文说明书.docx

上传人:b****4 文档编号:26808038 上传时间:2023-06-22 格式:DOCX 页数:55 大小:694.71KB
下载 相关 举报
高校学生综合测评管理系统的设计与实现课程设计论文说明书.docx_第1页
第1页 / 共55页
高校学生综合测评管理系统的设计与实现课程设计论文说明书.docx_第2页
第2页 / 共55页
高校学生综合测评管理系统的设计与实现课程设计论文说明书.docx_第3页
第3页 / 共55页
高校学生综合测评管理系统的设计与实现课程设计论文说明书.docx_第4页
第4页 / 共55页
高校学生综合测评管理系统的设计与实现课程设计论文说明书.docx_第5页
第5页 / 共55页
点击查看更多>>
下载资源
资源描述

高校学生综合测评管理系统的设计与实现课程设计论文说明书.docx

《高校学生综合测评管理系统的设计与实现课程设计论文说明书.docx》由会员分享,可在线阅读,更多相关《高校学生综合测评管理系统的设计与实现课程设计论文说明书.docx(55页珍藏版)》请在冰豆网上搜索。

高校学生综合测评管理系统的设计与实现课程设计论文说明书.docx

高校学生综合测评管理系统的设计与实现课程设计论文说明书

*******************

实践教学

*******************

 

兰州理工大学

计算机与通信学院

 

面向对象课程设计

 

题目:

高校学生综合测评管理系统的设计与实现

目 录

摘要

计算机飞速发展的今天,计算机的应用已在社会的各个领域深入开来,无论是在商业,工业还是政府部门都早已普及,如今就连教育行业也把计算机应用到各个方面的工作中,本次c++课设就是把计算机应用到学校学生信息管理中的范例。

一、C++的介绍和应用:

C++语言是一种优秀的面向对象程序设计语言,它在C语言的基础上发展而来,但它比C语言更容易为人们学习和掌握。

C++以其独特的语言机制在计算机科学的各个领域中得到了广泛的应用。

面向对象的设计思想是在原来结构化程序设计方法基础上的一个质的飞跃,C++完美地体现了面向对象的各种特性。

随着若干独立开发的C++实现产品的出现和广泛应用,正式的C++标准化工作在1990年启动。

1998年正式发布了C++语言的国际标准[C++,1998],对于要解决实际问题的程序员而言,C++使程序设计变得更有乐趣。

C++是一门通用目的的程序设计语言,它:

1.是一个更好的C;

2.支持数据抽象;

3.3.支持面向对象程序设计;

4.支持范型程序设计。

对范型程序设计的支持在C++设计的后期才被作为一个明确、独立的目标来实

现。

而C++一直被应用于应用软件和系统软件的行列中,其中本系统的研发就是一个案例;正式这样,程序员一直把范型程序设计以及支持它的语言特性划归在“数据抽象”的大标题之下。

二、学生综合测评管理系统与C++的联系:

首先,我们了解学生综合测评管理系统都以学生为中心展开的,而对于学生的各种数据包含他的姓名、学号、性别、名族以及各科综合测评等,如果只是面向过程编程这样就不利于数据的调用,那么数据与数据之间也会产生混乱,因为学生毕竟不只是一个。

对于面临这样的难题,我想封装就是再好不过的办法了,因此创建类也是避免不了的,也就是将学生的各种数据打包成一个整体,这个整体也就叫做类,在通过学生类去创建对象,这也就将数据整体化,简单化,界面化,从而减少了数据的复杂,也方便了数据之间的调用,减少了数据的累赘,使程序简洁明了,结构清晰了。

C++恰好符合了这种编程的思想,因为C++语言是一种优秀的面向对象程序设计语言,这也是这次课设的主要目的-----熟悉并掌握面向对象程序设计的一些套路和思想。

三、系统实现方案:

第一步:

分析题目,建立类并派生出它的子类,画出类图。

第二步:

画出流程,根据流程图编写程序清单

第三步:

上机调试程序(使用单步调试,设置断点、分块调试的方法)。

第四步:

及时整理资料,撰写课程设计报告中有关这个题目的内容。

【关键词】学生综合测评管理c++面向对象类

绪论

本系统是一个学生课程和综合测评管理系统,它是高校教务管理系统中的一个子系统。

主要用户是学生、教师和管理员。

系统方便了学生选课和查分。

方便了教师的教学管理和学生综合测评的录入。

更为重要的是,系统方便了学校的教务管理。

学生课程及综合测评管理系统的产生大大减少了人力上的不便,让整个数据管理更加科学合理。

学生管理是高校管理的重要组成部分,对于学校和政府教育管理单位来说都至关重要,所以学生管理系统应该能够为用户提供充足的信息和快捷的查询手段。

但是一直以来高校都使用人工的方式管理学生学籍、档案、综合测评等,这种管理方式效率低、保密性差,不利于查找更新和维护。

使用计算机对学生信息进行管理,能够极大地提高学生管理的效率,节约教育经费,这也是适应学校信息化建设发展趋势的重要因素。

本系统主要通过c++程序设计,用学生所有的数据如(姓名、性别、学号、语文综合测评,数学综合测评,英语综合测评,物理综合测评,历史综合测评以及个人总综合测评,平均综合测评)和一些成员函数如(类构造函数stu()、输出函数print()、获取平均分函数getaver()以及获取总分函数getsum()等函数)创建一个student类。

然后用类创建对象,将班级的所用数据信息都赋值到这些对象上,然后分别对这些对象进行各种处理,也就是调用各种函数如:

修改函数change()、查找函数search()、删除函数delete_stu()、以及各种排序函数paixu()、界面输入函数Condactor()等各种函数来实现各种数据操作,达到数据管理的目的。

第一章系统程序设计思路

1、系统功能设计:

系统功能结构图:

 

 

 

 

 

2、类设计:

类的结构图为:

 

 

 

3、输入输出的设计:

①、界面设计

程序运行后会出现一个简捷的窗口,便于用户查询数据。

主要包含了当前的记录学生人数、以及提示执行功能的相应数字和字母;界面设计的主要特点就是简洁,清楚,漂亮。

②、功能设计

通过主窗体调用其他窗体,具体实现可以参照系统分析相关内容。

应用系统主控界面包括学生信息录入,查找等功能模块。

学生信息录入功能完成学生信息和综合测评的输入,以及判断密码的正确性和修改密码时判断两次输入是或相同,

1、当系统里没有数据输出时,就会输出“管理系统中没有录入数据或者数据已经被删除!

”,然后就会提示“请按任意继续...”

2、我还设置了各科综合测评当中如果没有大于90分或没有不及格的同学的时候,就输出“英语没有高于90分的”,如果有的这句话就不输出,输出高于90分的学生的个人信息。

3、由于在窗口中,要进行界面切换,为了能够即使返回主菜单,我就用了程序“system("cls")”来刷新屏幕。

4、选择菜单设计:

※※※※※※※※※※※※※※※※※※※※※※※※※"

※操作:

综合测评名词※;

※(0)数据输入(6)按总分查询排名※

(1)删除人员(7)按语文查询排名※

(2)修改数据(8)按数学查询排名※

※查询(9)按英语查询排名※

※(3)按学号查询系统操作※

※(4)按姓名查询(e)退出系统※

※(5)输出全班的数据各科平均分:

※(h)语文优和差的学生(d)语文平均分:

※(i)数学优和差的学生(f)数学平均分:

※(j)英语优和差的学生(g)英语平均分:

※(c)修改密码※

※※※※※※※※※※※※※※※※※※※※※※※※※

第二章程序的运行结果

1、输入密码的界面如图所示,当输入密码错误的时候就会提醒你“你的密码不正确,请重新输入:

”,然后直到你输正确为止或者退出界面。

2、当进入系统后,整个界面的设计就如图所示,包括当前记录的人数,以及提示你相关操作的数字。

 

3、首先时“0”操作,也就是输入界面,它会提示你输入相应的数据信息,如姓名,学号等等,当要结束一个学生的数据输入的时候,就会提醒你时候继续输入,如果是“y”的话就继续出现相应的数据输入提示,如果是“n”的话就跳出界面,返回到菜单界面,如果时其他的数字,就会提示“指令错误,请继续输入!

3、当返回界面以后,此时界面会输出当前已录人员总数为<2>。

4、然后选中删除功能选项

(1),进入以后输入你要删除人的名字,再回车一下,会出现“要继续删除吗?

”提示,表明那个数据已经成功被删除。

输入“n”后,返回列表以后就会发现当前的记录人数为

(1)了。

5、返回菜单后,你选中“5”功能选项时,你会浏览到所有的数据,此时你会发现系统中只有一个数据,如图所示:

6、再进入修改的功能菜单,界面如图所示,然后根据提示修改你要的数据,同样的道理,当一个人的数据输完以后,就会提示“数据修改成功!

想继续修改吗(y/n)”输入“n”就返回主界面。

然后再进入浏览选项时,查看学生数据,此时会输出修改人的数据,界面如图所示:

7、选择“3”,进入查询功能,按照学生学号查询,如果你输入的学号在系统里根本就不存在的话,就会提示“对不起!

你要查询的学生不存在!

”然后会让你选择是否继续查询,当你查询的学号存在时,就会输出该学生的所用信息,如第二个图所示,按学生姓名查询与其类似。

8、进入“语文优和差的学生”的功能选项,如果没有优秀和不及格的学生就出现图1的画面,如果有的就会出现向查询英语时已样的界面,如图2:

9、为了能够判断排序功能实现成功与否,我又添加了一个学生数据,然后在进入数学排名选项菜单中,则出现了如下的界面,其中前面的序号就是数学的排名。

同理,我还设计了英语,总分,语文排序的输出界面,其中英语的输出界面如图所示:

10、进入科目平均分的选项,即输入“6”字符,就会出现以下的界面,然后按任意键就能返回协助界面了,其中其它的科目平均分的界面与其类似。

11、学生修改密码选项,也是本系统的一大特色,首先判断输入的两次密码是否相同,如果不相同就出现如图1的界面,相同的话就修改成功,然后就在程序中将该密码存储到密码文件中。

在下次登入时,再用原密码登入,就会出现图2的情形,在输入修改后的密码后就登入了系统了,说明了系统修改密码成功;

本功能实现主要用了第九章的fstreamoutfile;和fstreaminfile来实现文件的读取与保存,此程序执行后在磁盘中会产生的两个文件如图所示:

总结和体会

总结自己的不足:

1、本程序基本完成了题目要求的功能。

但是由于显示的限制,在按科目排序中只给出了数学,英语,语文的排名情况,程序可通过改进,增加科目数。

2、程序在显示学生信息时输入过于繁杂,不够清晰明朗,若显示成类似表格的形式就好了。

3、程序只能实现数据的保存,要能实现数据的读取就更完美了,同时也想将输出函数的输出格式改一下,特别的难点就是选择输出点的控制,就是选择性的输出学生数据,实现数据的查询。

体会:

此次c++课程设计,在指导教师的精心教导下,我们学会了如何用C++编写一个简单的应用程序。

了解了要编写一个简单程序的基本步骤,首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试。

程序实现上,要设计了简单清晰的查询界面,将各个功能集中出来按照程序编写原则,便于用户查询自己要的操作。

根据C++课程所学的概念、理论和方法,按照C++程序设计的基本步骤,设计出一个适当规模的程序;虽然是一个简单的应用程序编程,但对于仅刚学完C++基础的我,还是有一点难,俗话说的好“世上无难事,只要肯攀登”,我就凭着这样的信念从无头绪----->着手编程------->查资料学新的程序------->最后调试,我就一步步的坚持着,努力着。

虽然我们编写程序的过程是有点辛苦,但最后的成功也让我快乐,让我兴奋,同时也让我进一步的加深了对C++语言的理解和掌握。

参考文献

[1]c++语言基础教程(第2版)吕凤翥

[2]Visualc++程序设计试验与编程实践刘维富

[3]

[4]

[5]谭浩强编,《C++面向对象程序设计》,清华大学出版社,2005年7月出版

 

附录

程序源代码:

#include//输入输出头文件

#include//字符串处理头文件

#include//用getch()函数的头文件

#include//用exit()的头文件

#include//文件处理头文件

//定义学生类

classstu

{

charname[20];

charsex[10];

doublenum,math,chinese,english,phisical,history,average,sum;

public:

stu(){}

stu(charn[20],chars[10],doublenu,doublema,doublechin,doubleeng,doubleph,doublehi)

{

strcpy(name,n);

strcpy(sex,s);

num=nu;

math=ma;

chinese=chin;

english=eng;

phisical=ph;

history=hi;

}

doubleget_eng()

{

returnenglish;

}

doubleget_chin()

{

returnchinese;

}

doubleget_math()

{

returnmath;

}

doublegetsum()

{

sum=chinese+english+math+phisical+history;

returnsum;

}

doublegetaver()

{

average=getsum()/5;

returnaverage;

}

voidprint()

{

cout<<"姓名是:

"<

cout<<"性别是:

"<

cout<<"学号:

"<<""<

cout<<"数学综合测评:

"<

cout<<"语文综合测评:

"<

cout<<"英语综合测评:

"<

cout<<"物理综合测评:

"<

cout<<"历史综合测评:

"<

cout<<"总综合测评:

"<getsum()<

cout<<"平均综合测评:

"<getaver()<

}

friendvoidCondactor();

friendvoidsearch(inta,stu*t[50],charn[20]);

friendvoidsearch(inta,stu*t[50]);

friendvoidchange(inta,stu*t[50]);

friendvoiddelete_stu(inta,stu*t[50]);

};

//密码修改函数

voidremima()

{

chara[20];

charb[20];

cout<<"请输入新的密码:

";

cin>>a;

cout<<"请确认密码:

";

cin>>b;

do{

if(strcmp(a,b))

{

cout<<"密码两次输入的不同,请再次输入:

"<

cin>>b;

}

elsebreak;

}while

(1);

fstreamoutfile;

outfile.open("e:

\\密码.txt",ios:

:

out);

if(!

outfile)

{

cout<<"密码文件不能打开!

\n";

abort();

}

outfile<

outfile.close();

system("cls");//刷新屏幕

}

voidwarn()

{charc1;

cout<<"请按任意继续..."<

c1=getch();

system("cls");//刷新屏幕

}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

voidenglish_avr(inta,stu*t[50],intflag1)

{

if(a==0)

{cout<<"管理系统中没有录入数据或者数据已经被删除!

"<

warn();}

else

{

for(intk=0;k

{

if((t[k]->get_eng())>90)

cout<<"英语有高于90分的有:

"<

continue;

}

for(k=0;k

{

if((t[k]->get_eng())>90)

{

t[k]->print();flag1=1;

}

}

if(flag1==0)

cout<<"英语没有高于90分的!

"<

for(intp=0;p

{

if((t[p]->get_eng())<60)

cout<<"英语不及格的有:

"<

continue;

}

for(p=0;p

{

if((t[p]->get_eng())<60)

{

t[p]->print();flag1=1;

}

}

if(flag1==0)

cout<<"英语没有不及格的!

"<

warn();

}

}

voidmath_avr(inta,stu*t[50],intflag1)

{

if(a==0)

{cout<<"管理系统中没有录入数据或者数据已经被删除!

"<

warn();}

else

{

for(intk=0;k

{

if((t[k]->get_math())>90)

cout<<"数学有高于90分的有:

"<

continue;

}

for(k=0;k

{

if((t[k]->get_math())>90)

{

t[k]->print();flag1=1;

}

}

if(flag1==0)

cout<<"数学没有高于90分的!

"<

for(intp=0;p

{

if((t[p]->get_math())<60)

cout<<"数学不及格的有:

"<

continue;

}

for(p=0;p

{

if((t[p]->get_math())<60)

{

t[p]->print();flag1=1;

}

}

if(flag1==0)

cout<<"英语没有不及格的!

"<

warn();

}

}

voidchin_avr(inta,stu*t[50],intflag1)

{

if(a==0)

{cout<<"管理系统中没有录入数据或者数据已经被删除!

"<

warn();}

else

{

for(intk=0;k

{

if((t[k]->get_chin())>90)

cout<<"语文有高于90分的有:

"<

continue;

}

for(k=0;k

{

if((t[k]->get_chin())>90)

{

t[k]->print();flag1=1;

}

}

if(flag1==0)

cout<<"语文没有高于90分的!

"<

for(intp=0;p

{

if((t[p]->get_chin())<60)

cout<<"语文不及格的有:

"<

continue;

}

for(p=0;p

{

if((t[p]->get_chin())<60)

{

t[p]->print();flag1=1;

}

}

if(flag1==0)

cout<<"语文没有不及格的!

"<

warn();

}

}

voideng_pass(inta,stu*t[50])

{

if(a==0)

{

cout<<"管理系统中没有录入数据或者数据已经被删除!

"<

}

else

{

doubleenglish_sum=0;

for(intk=0;k

{

english_sum+=t[k]->get_eng();

}

cout<<"全班的英语平均分为:

"<

doubleeng_aver=english_sum/a;

for(k=0;k

{

if((t[k]->get_eng())

{

cout<<"低于数学平均分的有:

"<

t[k]->print();

}

}

}

warn();

}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

voidmath_pass(inta,stu*t[50])

{

if(a==0)

{

cout<<"管理系统中没有录入数据或者数据已经被删除!

"<

}

else

{

doublemath_sum=0;

for(intk=0;k

{

math_sum+=t[k]->get_math();

}

cout<<"全班的数学平均分为:

"<

doublemath_aver=math_sum/a;

for(k=0;k

{

if((t[k]->get_math())

{

cout<<"低于数学平均分的有:

"<

t[k]->print();

}

}

}

warn();

}

voidchin_pass(inta,stu*t[50])

{

if(a==0)

{

cout<<"管理系统中没有录入数据或者数据已经被删除!

"<

}

else

{

doublechin_sum=0;

for(intk=0;k

{

chin_sum+=t[k]->get_chin();

}

cout<<"全班的数学平均分为:

"<

doublechin_aver=chin_sum/a;

for(k=0;k

{

if((t[k]->get_chin())

{

cout<<"低于数学平均分的有:

"<

t[k]->print();

}

}

}

w

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1