面向对象技术与Visual C++宋汉文S110101118.docx
《面向对象技术与Visual C++宋汉文S110101118.docx》由会员分享,可在线阅读,更多相关《面向对象技术与Visual C++宋汉文S110101118.docx(22页珍藏版)》请在冰豆网上搜索。
面向对象技术与VisualC++宋汉文S110101118
重庆邮电大学研究生堂下考试答卷
2011-2012学年第1学期
考试科目面向对象方法(VC++)
姓名宋汉文
学号S110101118
专业通信与信息系统
2011年12月12日
学生成绩管理系统课程设计报告
摘 要
随着计算机技术的飞速发展,计算机在日常管理中应用迅速得到了普及,利用计算机进行学生成绩的管理势在必行。
本系统结合当前学校的实际,经过实际的需求分析,采用功能强大的VisualC++6.0作为开发工具而开发出来的单机版学生成绩管理系统。
整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,完成学生班级成绩管理,年级成绩管理,参数的设置,以及成绩的统计添加,修改,删除等操作.经过实际的测试证明本系统可以用为学校进行学生成绩方面的管理工作。
本系统采用VisualC++6.0为开发工具,后台数据库采用ASSECC2000,操作系统为WINDOWS2003。
关键字
管理系统VC操作系统
ABSTRACT
Withtherapiddevelopmentofcomputertechnology,computetinthedailymanagementofthewidelyapplicationobtainedrapidlyandusecomputerstudentperformancemanagementisimperative.Thissystemwiththecurrentschoolschoolactual,throughactualneedsanalysis,usingpowerfulVisualC++6.0asadevelopmenttoolanddevelopedstand-aloneversionofstudents'performancemanagementsystem.
Fromtheentiresystemtooperateandfriendlyinterface,flexible,practical,safebasedontherequirementsofcompletestudentclassperformancemanagement,gradeperformancemanagement,parametersetting,andperformanceasthestatisticstoadd,edit,anddeleteoperation.Aftertheactualtestshowsthatthissystemcanbeusedforschoolforstudents'performanceinthemanagementofwork.
ThesystemusestheVisualC++6.0asadevelopmenttool,thebackenddatabaseusingASSECC2000,operatingsystemforWINDOWS2003.
KEYWORDS
ManagementsystemVCOperatingsystem
第一章软件设计概述
1.1软件的介绍
软件设计是一个将人类思维物化为计算机思维的过程,通过这个过程计算机获得一定程度的独立加工甚至思维的能力,从而将人类思维推向更高层次。
关于软件设计的概念和方法的研究是随着计算机应用的深入和所处理问题的复杂化而不断加深的。
本章就软件设计的相关概念和程序设计方法的演化发展作简要介绍。
什么是软件?
支撑计算机工作和支持用户应用的程序都是软件。
软件是程序、方法、规则、相关文档以及在计算机上运行所必需的数据的集合。
1.2程序设计方法
(1)功能分解法:
以系统需要提供的功能为中心来组织系统。
(2)首先定义各种功能,然后把功能分解为子功能,同时定义功能之间的接口。
(3)对较大的子功能进一步分解,直到可给出明确的定义。
(4)根据功能/子功能的需要设计数据结构。
(5)功能分解=功能+子功能+功能接口。
1.3结构化程序设计
传统的程序设计方法可以归结为“程序=算法+数据结构”,将程序定义为处理数据的一系列过程。
这种设计方法的着眼点是面向过程的,特点是数据与程序分离,即数据与数据处理分离。
结构化程序设计的基本思想是采用自顶向下、逐步细化的设计方法和单入单出的控制结构。
结构化方法的优点:
(1)结构化方法有严格的法则,较强调研究问题域。
(2)在相当大的程度上,解决了以前存在的问题。
特别是与模块化编程结合使用,效率更高。
(3)直接反映用户的需求,所以工作很容易开始。
(4)适用于功能稳定的应用领域,如某些科学计算。
结构化方法的缺点:
(1)大系统数据流和加工的数量太多,引起分析文档的膨胀。
(2)不能直接映射问题域。
系统复杂时,难以检验分析的正确性。
(3)对需求变化的适应能力较弱。
(4)设计与表示法不一致,其转换规则也不严格。
1.4面向对象的程序设计
面向过程程序设计缺点的根源在于数据与数据处理分离。
面向对象程序设计模拟自然界认识和处理事物的方法,将数据和对数据的操作方法放在一起,形成一个相对独立的整体——对象(object),同类对象还可抽象出共性,形成类(class)。
一个类中的数据通常只能通过本类提供的方法进行处理,这些方法成为该类与外部的接口。
对象之间通过消息(message)进行通讯。
表1-1是面向对象与面向过程。
表1-1面向对象与面向过程
第二章需求分析
2.1课程设计性质和目的
该课程设计的主要任务是运用在面向对象方法C++语言描述课程中学到的理论知识来指导实践,使我们了解面向对象与面向过程之间的区别,学会用所学知识解决实际问题,并且通过综合课程设计,提高大家的实践动手技能,培养我们独立分析分析问题和解决问题的能力。
2.2输入的形式和输入值的范围
本系统是一个学生成绩管理系统,采用VC++6.0编译器作为开发环境,这个环境是我们在学习C++的平台。
输入数据类型主要是char、int、float等数据类型,输入内容包括:
姓名、数据结构、C++程序设计、英语、数学、语文等数据。
用户在输入学生数据时要保证输入数据格式的正确性,系统不会自动检测输入的数据是否正确,具体要求(输入学生姓名和课程成绩等的时候要按照其相应的数据类型进行输入,如:
表2-1)。
name
Char
例如:
(宋汉文)
chass
Double
NOTNULL
课程名称
Char
Math
课程成绩
Int
(0=表2-1
2.3输出的形式
输出形式与输入形式类似,根据需要可以选择显示输入的各项内容,还可以选择显示计算好平均分后并排序后的记录,显示内容包括:
姓名、总成绩、平均分、成绩排名等数据。
2.4程序所能达到的功能
用户运行程序后进入系统主界面,在主界面用户可以输入所有学生的数据并保存到文件中,也可以读取文件中已有的学生数据。
用户在保存数据的时候,如果保存位置没有文件则自动新建一个文件进行保存。
本系统同时只能对一个数据文件进行相关操作,不能同时打开多个数据文件,其类似于单用户操作系统。
选择相关操作请输入相对的括号里的阿拉伯数字,功能有:
(0)数据输入。
(1)增加人员。
(2)删除人员。
(3)修改数据。
(4)按总成绩查询。
(5)按姓名查询。
(6)输出所有学生的数据。
(7)按总分查询排名。
(8)按语文查询排名。
(9)按数学查询排名。
(y)按英语查询排名。
2.5测试数据
经过多次测试程序运行稳定,无致命错误。
根据本次课程设计的要求对数据进行输入并分析数据输出结果。
通过测试发现当用户正确输入时系统能够正确显示用户的输入,当用户输入错误时,系统并不会出现致命错误但其将显示非用户期望的数据。
2.6功能描述
图2-2学生成绩管理系统选择相关操作请输入相对的括号里的阿拉伯数字,功能有:
(0)数据输入。
(1)增加人员。
(2)删除人员。
(3)修改数据。
(4)按总成绩查询。
(5)按姓名查询。
(6)输出所有学生的数据。
(7)按总分查询排名。
(8)按语文查询排名。
(9)按数学查询排名。
(y)按英语查询排名。
第三章总体设计
3.1功能模块设计
voidmain()
{cout选择您需要的操作!
"<cout<<"操作:
"<cout<<"
(1)增加人员"<cout<<"
(2)删除人员"<cout<<"(3)修改数据"<cout<<"查询:
"<cout<<"(4)按总成绩查询"<cout<<"(5)按姓名查询"<cout<<"(6)输出所有学生的数据"<cout<<"成绩名词"<cout<<"(7)按总分查询排名"<cout<<"(8)按语文查询排名"<cout<<"(9)按数学查询排名"<cout<<"(y)按英语查询排名"<cout<<"选择相关操作请输入相对的括号里的阿拉伯数字!
"<charp;charw;
stu*s[50];
ofstream*file[50];
inti=0;
intj=0;
boolflag2=0;
do{
cin>>p;
if((p>='0'&&p<='10'))
flag2=1;
else
cout<<"指令错误!
请重新输入:
"<}while(flag2==0);
3.2调试分析
内容主要包括:
在调试过程中我们对遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析。
1、由于在学C++这门语言的时候,对文件的写入与读出不是很精通,在刚开始时候对文件的操作不太明白,不能很好的操作文件,其中最大的问题是对已存在的文件读取问题,通过“显示全部学生成绩”将数据从文件中读取,可是在使用过程中总是出现读出错误,出现乱码等问题。
2、内存的分配问题,这也是困惑了我好久的问题。
对于我们初学者来说对内存的分配和释放问题是比较抽象和模糊的难题,本来使用链表的方式存储数据,然而待到排序时出现了交换数据困难的问题,以及分配空间繁琐释放空间不及时的问题,造成空间浪费使得程序运行效率低的问题。
因此最后采用了顺序存储记录的方式,这样就能改变前述问题。
整个调试过程中主要是这么几个问题,其余的是一些小问题,很容易的就调试出来了。
3.3测试结果
图3-1主界面
图3-2语文成绩查询及学生的总成绩
图3-3英语查询排名
图3-4其他界面查询
3.4用户使用说明
用户运行程序后进入系统主界面,在主界面用户可以打开或者新建数据文件。
用户新建或者打开文件要符合操作系统的要求,如果用户打开不存在的文件,那么系统将按照用户打开的文件名作为新的数据文件名,并对其进行相关操作。
当用户指定当前文件后可对其进行显示、添加、删除、修改、计算平均分等相关功能。
用户在操作过程中可随时对当前文件进行保存到文件操作,以防止修改的数据丢失。
操作完当前文件后,用户可以关闭该文件,在不退出本系统的前提下另行打开或者新建数据文件对其进行相关操作。