面向对象课程设计文档模板
更新时间:2024-05-13 00:35:01 阅读量: 综合文库 文档下载
*******************
实践教学
*******************
兰州理工大学
题 目:专业班级:姓 名:学 号:指导教师:成 绩:
计算机与通信学院
2012年秋季学期
面向对象 课程设计
学生信息管理系统 计算机科学与技术(3)班 康云生 11240319 王燕
前 言
学生信息管理系统,是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的管理信息系统。
学生信息管理系统的功能主要是实现学校学生的信息化管理,它是一个教育单位不可缺少的部分,它的内容对于学校管理者来说是至关重要的,能有效的帮助学校和老师掌握学生的情况。在传统模式下利用人工进行学生信息管理,存在着较多的缺点,如:效率底,保密性差,时间一长将产生大量的文件和数据,更不便于查找,更新,维护等。诸如这些情况,令学校管理者对学生的信息管理带来了很大困难,严重影响了教育工作者的工作效率。随着科学技术的不断提高,使用日趋成熟的计算机技术来代替传统的人工模式,来实现学生信息的现代化管理,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、保密性好、寿命长、成本低等。这些优点能够极大地提高学生信息管理的效率,也是学校实现科学化、正规化管理的重要条件, 教学管理人员可以实现对学生信息的增加、删除、修改和查询等操作。本系统最大的优点就是操作简便快捷等。。因此,开发这样一套管理软件成为很有必要的事情。
目 录
摘 要.................................................................................................................... 4 第一章 系统总体设计.......................................................................................... 5
1.系统功能模块图........................................................................................ 5 2.各类间关系................................................................................................ 6 第二章 详细设计.................................................................................................. 7 第三章 系统测试................................................................................................ 10
1.测试方法.................................................................................................. 10 2.测试用例.................................................................................................. 10 3.测试结果.................................................................................................. 12 第四章 软件使用说明书.................................................................................... 15 总 结.................................................................................................................. 16 参考文献.............................................................................................................. 17 致谢...................................................................................................................... 19 附录:程序代码.................................................................................................. 20
摘 要
学生档案管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。
本系统主要完成对信息的管理,其中包括:添加,删除,修改,查询以及打印,统计等主要功能。
本系统的开发采用面向对象的设计思想。系统的介绍了学生档案系统的开发过程及面向对象思想的具体实现。
关键词:学生信息;管理;c++程序;效率。
第一章 系统总体设计
网络考试系统是一套功能强大、操作简便而又实用的模拟考试管理软件,它可以被广泛的应用于各种类型的考试中。开发此网络考试系统的目的为了克服传统考试模式中遇到的诸如考试效率低,难以突破时空限制,教师阅卷工作量大以及考务管理繁杂等问题,根据对现有考试模式的分析,确定了该系统需实现以下功能:
(1)实现对学生基本信息及成绩信息的添加、删除、查询、修改等操作; (2)实现考生在规定时间里的在线考试;
(3)实现考生可在考试完成后及时查询到自己的成绩; (4)实现系统自动阅卷功能;
1.系统功能模块图
根据用户需求,本系统将主要实现以下功能:
学生成绩管理系统 信息录入 信息维护 查询 查看所有信息 删除 系统帮助 图1-1 系统功能模块图
其中:
信息录入:包括对学生基本信息的录入,课程成绩录入等。
信息维护:包括管理员对学生基本信息、课程成绩的添加、删除及对信息存盘等。
查询:包括学生及管理员对学生基本信息及成绩的查询。
2.各类间关系
本系统共使用两个类:info类,node类。
其中类info描述学生基本信息及成绩信息等,类node描述管理及查询操作。
功能模块图 学生管理系统 1.输入学生的姓名、班级、性别、院1. 添加信息 2. 查看所有信息 3. 删除信息 2.显示文件保存的所有的学生信息 4. 查询信息 5. 对信息进行存盘 6. 关闭程序 4.输入要查询的学生的姓名,显示该学生的信3.输入要删除的学生的姓名,删除该学生信息 6.退出系5.保存学生信息 统 图1-2 系统类间关系图
第二章 详细设计
本系统主要功能包括:添加学生信息、查看所有信息、查询学生信息、删除学生信息等
其中功能添加信息、查看所有信息使用类A来实现,功能查询学生信息、删除学生信息等使用类info和类node来实现。下面分别介绍类info,node的详细设计。
类info主要描述学生基本信息及成绩信息。 类info具体实现流程为:
1、添加学生信息:新增学生基本信息及成绩信息——判断以前是否存储了该学生信息——按提示输入学生的各种信息——退出该功能,返回主菜单,继续选择。
2、查看所有信息:导入学生信息文件——显示学生信息——退出该功能,返回主菜单,继续选择。
1、添加信息如图2-1所示:
判断以新 增 前是否存储学生信息 了学生信息
图2-1 2 、查看所有信息如图2-2所示: 导 入学生显示学生图2-1所示。 信息文件的信息 图2-2
类info定义为: class info { public:
string NAME;
按提示输入学个的退出该功能,返回主菜单,继续选择 退出该功能,返回主菜单,继续选择
string GRADE; string SEX; string YARD; string C; string ENGLISH; string MATH; };
class node:virtual public info { public:
node* left;
node* right;
node(); void add(node* n); node* del1(); void show();
};
类node具体实现流程为:
1、删除信息:输入要删除的学生信息——删除该学生信息,显示删除成功——退出该功能,返回主菜单,继续选择。
2、查询信息:输入要查询的学生信息——查询该学生的信息,显示出内容——退出该功能,返回主菜单,继续选择。 1、删除信息如图2-3所示: 删除该生输 入要的信息,显示删 删除学生的 除成功 图2-3 2、查询信息如图2-4所示:
退出该功能,返回主菜单,继续选择 的信息,显示出 询学生的查 内容
图2-4
输入要查询该生退出该功能,返回主菜单,继续选择 类node定义为:
class node:virtual public info { public:
node* left;
node* right;
node(); void add(node* n); node* del1(); void show(); };
node* del1(node& head, string name);
void init(node &head,string name,string grade,string sex,string yard,string c,string english,string math); void del(node* n); void enter(node& head); void display(node& head);
void search(node& head, string name); void save(node &head); void menu1(node& head); void menu2(node& head); node::node() { }
left=0,right=0;
第三章 系统测试
1.测试方法
1、已知系统的功能设计规格,进行测试证明每个实现了的功能是否符合要求。
2、 已知系统的内部工作过程,通过测试证明每种内部是否符合设计规格要求,所有内部成分是否通过检验。
2.测试用例
本系统采用数据原型进行测试,所用数据为: 姓名:康云生 班级:计3 性别:男 院系:计通 成绩: C语言:90 英语:90 数学:90
添加信息如图3-1所示:
图3-1
查看所有信息如图3-2所示:
图3-2
删除信息如图3-3所示:
图3-3
查询信息如图3-4所示:
图3-4
3.测试结果
本系统主要完成基本信息的添加,查看,删除和查询功能。
1、添加功能主要实现对班级、姓名、性别、院系、成绩等信息的增加,图3-1 为班级、姓名、性别、院系、成绩等信息添加功能测试界面。
添加信息如图3-5所示:
图3-5
2、查看所有信息功能主要实现管理员对学生信息所有操作的查询,图3-2 为管理员查看所有信息功能测试界面。
查看所有信息如图3-6所示:
图3-6
3、删除信息功能主要实现管理员对学生基本信息及成绩信息的删除,图3-3 为管理员对学生信息删除功能测试界面。
删除信息如图3-7所示:
图3-7
3、查询信息功能主要实现学生对其基本信息及成绩信息的查询,图学生对其基本信息及成绩信息查询功能测试界面。
查询信息如图3-8所示:
图3-8
3-4 为
第四章 软件使用说明书
1、系统运行环境 Vc++ 6.0 2、系统操作提示
本系统主要实现学校学生的信息化管理,首先用户进入登录界面,如图4所示,用户输入用户名、密码进入系统。如图3-9所示:
图3-9
总 结
本次课程设计检验了我的实践能力,感觉自己还有许多东西要学习,并不仅限于课本上的知识,实践才是真理,在学习中实践,实践中去学习。学习的路很长。
再有要多问,几个人共同讨论会有意想不到的效果,经过一学期的C++语言学习,我们掌握了C++语言的基础知识,能够读懂别人用c语言设计的程序。平时的程序设计大多是以填空的形式出现,虽然有所接触,但都不完全。而这两周的课程设计,却让我们完完全全用自己学到的知识编写一个完整的系统程序,这是一个新的挑战,也是一种新的学习。
我选择的是备选题目中的第七个——学生信息管理系统。这需要我自己设计一个系统程序,可以输入信息,保存到文件里,再从文件里调出来,使之显示在屏幕上,进行删除、添加等对信息的操作。初看到这个题目觉得很简单,但当我做到电脑前准备开始编写代码的时候才发现无从下手。通过去图书馆查找程序设计相关的书籍,和上网参考前人编写的类似程序,我脑中才有了一个大概方向。
终于开始着手写下了第一段输入函数的代码,因为这是我们平时课堂上用的最多最熟的语句,写了很长一大段,调式运行竟然成功了,顿时信心倍增,于是我开始迫不及待的开始写第二段保存函数。我记得第一天下来,我只写好了这两个函数,但还是很开心,毕竟这是我编的第一个小系统的成功的开始!
接下来两天都在宿舍整个下午的对着电脑不断的编译、调试、修改,每次编好一个能够成功运行的程序,都会感到很欣慰,并增加继续下去的信心。当然其中也有遇到困难的时候。好几次遇到编好的程序调试没有错误,却偏偏不能运行这种情况,自己编的程序自己很难发现当中的错误,而电脑又没有提示,这时候就很受打击,也会着急。反复检查都找不出毛病来的时候就会有想要放弃的念头。有时候就直接关机去做别的事情,等再开始做程序的时候,才发现先前的错误所在。这时候会有一种“柳暗花明又一村”的欣慰感觉。总之,遇到困难,可以先放一放,让脑子休息一下,忘掉错误的记忆。或许等过段时间再回过头来,就会很容易的发现之前的错误了。随着编好的程序越多,累积的经验也越多,查找错误就越快了。还有会发现很多程序有很多相似之处,可以通过复制修改的发式来
编写。虽然题目要求只需要一种查询方式,但当我编出规律之后自然就想多写两个,写完就会有很大的成就感了。
总之,经过这一次的课程设计,我们体会到了痛苦与快乐同存的感觉。当最后一次成功串联运行所有函数时,真的很开心。通过这次实践,我们能够更熟练掌握C语言,特别是循环和文件,当时在课堂上没有学太清楚的,这个程序设计之后都很明白了。同时增加了我们对程序设计的兴趣,假期回家我还会尝试着做一些其他的小系统。
参考文献
[1]陈维兴,林小茶.c++面向对象程序设计教程. 北京: 清华大学出版社,2004.
[2]张国峰. C++程序设计实用教程. 北京: 清华大学出版社,1996. [3]张松梅. C++语言教程. 电子科技大学出版社,1993. [4]阎龙. C程序员的C++指南. 北京航空航天大学出版社,1992. [5]王博. 面向对象的建模、设计技术与方法. 北京希望电脑公司,1990.
致谢
在这次课程设计的撰写过程中,我得到了许多人的帮助。
首先我要感谢我的老师在课程设计上给予我的指导、提供给我的支持和帮助,这是我能顺利完成这次报告的主要原因,更重要的是老师帮我解决了许多技术上的难题,让我能把系统做得更加完善。在此期间,我不仅学到了许多新的知识,而且也开阔了视野,提高了自己的设计能力。
其次,我要感谢帮助过我的同学,他们也为我解决了不少我不太明白的设计商的难题。同时也感谢学院为我提供良好的做毕业设计的环境。 最后再一次感谢所有在设计中曾经帮助过我的良师益友和同学
感谢我们的合作伙伴,感谢我们这个团体,我们一起攻克过的难关,一起编译过的每一段程序,我们不会忘记。友情的无私为我们的大学课设重重地写下了无悔。 本课题在选题及进行过程中得到老师的悉心指导。在此,谨向指导老师致以诚挚的谢意和崇高的敬意!
附录:程序代码
#include
string NAME;
string GRADE; string SEX; string YARD; string C; string ENGLISH; string MATH; };
class node:virtual public info { public:
node* left;
node* right;
node(); void add(node* n); node* del1(); void show(); };
node* del1(node& head, string name);
void init(node &head,string name,string grade,string sex,string yard,string c,string english,string math); void del(node* n); void enter(node& head); void display(node& head);
void search(node& head, string name); void save(node &head); void menu1(node& head); void menu2(node& head);
#include
node::node() { }
void node::add(node* n) {
n->right=right; n->left=this;
if(right!=NULL)right->left=n; right=n; }
node* node::del1() {
if(left!=0)left->right=right;
left=0,right=0;
if(right!=0)right->left=left; return 0; }
void node::show() {
cout<<\
cout<<\姓名:\ cout<<\班级:\ cout<<\性别:\ cout<<\院系:\ cout<<\成绩如下:\
cout<<\语言:\ cout<<\英语 :\ cout<<\数学 :\cout<<\
cout< node* del1(node& head, string name) { for(node*i=head.right; i!=0; i=i->right) { if(i->NAME==name) { return i; } } return 0; } void init(node &head,string name,string grade,string sex,string yard,string c,string english,string math) { node* n; n=new node; n->NAME = name; n->GRADE = grade; n->SEX = sex; n->YARD = yard; n->C = c; n->ENGLISH = english; n->MATH = math; head.add(n); } void del(node* n) { } void enter(node& head) { node* n; n=new node; if(n!=0)n->del1(); delete n; cout<<\输入姓名、班级、性别、院系、成绩:\ cout<<\姓名: \ cin>>n->NAME; cout<<\班级: \ cin>>n->GRADE; cout<<\性别: \ cin>>n->SEX; cout<<\院系: \ cin>>n->YARD; cout<<\成绩:\ cout<<\语言: \ cin>>n->C; } void display(node& head) { for(node* i=head.right; i!=0; i=i->right) } void search(node& head, string name) { for(node*i=head.right; i!=0; i=i->right) { { } i->show(); cout<<\英语: \cin>>n->ENGLISH; cout<<\数学: \cin>>n->MATH; cout<<\输入完成========\head.add(n); if(i->NAME==name) { if(i!=0) { i->show(); } } } } void save(node &head) { ofstream file(\ file<<\姓名\班级\性别\院系 \英语\数学\ file< void menu1(node& head) { bool b=false; } string a; system(\ cout<<\学生信息管理==========\cout<<\添加信息\cout<<\查看所有信息\cout<<\删除信息\cout<<\查询信息\ cout<<\对信息进行存盘\cout<<\关闭程序\ cout<<\cout< cout<<\请选择操作指令:\while(b==false) { cin>>a; if(a==\{ cout<<\数据如下:\ display(head); getch(); menu1(head); } else if(a==\ { cout<<\请输入需要删除者的姓名:\ cin>>a; while(1) { } cout<<\删除成功!\getch(); menu1(head); if(del1(head,a) != 0) { } else break; del(del1(head, a)); } { else if(a==\ enter(head); getch(); menu1(head); } else if(a==\{ cout<<\输入名字:\ cin>>a; search(head, a); cout<<\查找成功=====\ getch(); menu1(head); } else if (a == \ { save(head); cout<<\保存成功=====\getch(); menu1(head); } else if (a == \ { break; } else { } cout<<\无效指令,请重新输入:\ } } void menu2(node& head) exit(1); { bool b=false; string a; cout<<\学生信息管理==========\cout<<\查看所有信息\ cout<<\查询信息\cout<<\关闭程序\ cout<<\cout< cout<<\请选择操作指令:\while(b==false) { cin>>a; if(a==\ { cout<<\数据如下:\ display(head); getch(); system(\menu2(head); } { else if(a==\ cout<<\输入名字:\ cin>>a; search(head, a); cout<<\查找成功=====\ getch(); system(\menu2(head); } else if (a == \ { break; } } { cout<<\无效指令,请重新输入:\else } } #include system(\exit(1); node head; string name,grade,sex,yard; string c,english,math; int flag; int password; ifstream read (\if (read) { } cout<<\请选择管理员登陆(1) 或者 学生登录(2):\cin>>flag; if(flag==1) { cout<<\请输入管理员密码:\cin>>password; if(password!=passwd) exit(0); while (read>>name>>grade>>sex>>yard>>c>>english>>math) { } init(head,name,grade,sex,yard,c,english,math); } switch(flag) { case 1:menu1(head);break; case 2:menu2(head);break; default:cout<<\输入错误\} return 0; }
正在阅读:
面向对象课程设计文档模板05-13
派出所实习单位鉴定04-05
浅谈歌唱状态中的“积极”与“放松”06-16
发动机凸轮轴检测方法综述02-23
力生制药:关于使用超募资金用于建立合资公司的公告 2010-05-1904-20
作业规程内容2015.12.6修改12-01
2016浙江 - 三下《人自然社会》教案11-05
2019年整理--高二家长会发言稿04-11
会议记录的格式02-18
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 文档模板
- 面向
- 对象
- 课程
- 设计
- 单片机毕业设计(最新微波炉的设计) - 图文
- 北京市海淀区2014届高三查漏补缺地理试题 Word版含答案
- 国际结算单选参考答案
- 高考数学第一轮复习知识点分类指导
- 场地附属工程施组
- 国家电网公司施工项目部标准化工作手册 110(66)千伏变电工程分册
- 实验报告 在word中插入木马
- ubuntu 安装指南 - 图文
- (“市场大学”文章)紧扣市场:农商行转型必由之举
- 安徽省2011年省级示范高中名校高三联考数学试题(理)
- 学年自我小结
- 《电力系统暂态分析》课程教学大纲(第三章)
- 保险学原理作业(北邮)
- 毕业论文基于PLC变频调速恒压供水控制系统的设计
- 轧钢厂较大风险作业岗位管理制度
- 建设项目管理在线作业
- 2011高考数学复习资料汇编:第2单元 函数、导数(真题解析+最新
- 浅谈我国电子商务发展存在的问题及解决对策
- 2018年中国钢带行业分析报告-市场深度分析与发展趋势研究(目录
- C语言课程设计报告