高校信息管理系统Word文件下载.docx
《高校信息管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《高校信息管理系统Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
6)汇总功能:
7)保存功能:
8)读取功能:
第四章系统设计详细演示说明8
1.系统功能演示8
2.各类间关系10
3.各部分功能进行过程11
第五章问题及收获14
1.遇至U的问题14
2.收获14
总结14
参考文献15
摘要
本文利用MicrosoftVisualC++2008的C++编写程序,实现了高校对实验员、
教师、行政人员、教师兼行政人员的多项管理操作。
本系统主要采用优越的动态链表进行信息装载,功能菜单为“添加人员信息”、“查询人员信息”、“统计人员数目”、“退出系统”,子菜单功能可对输入数据进行证件,对某一特定信息进行修改,对文件的自动读写,统计不同类别和性别的信息。
已经过全面的系统测试,能够很好的运行,达到了预期的效果。
关键词:
系统设计类信息人员管理string动态链表
第一章绪论
1.1学习C+啲目地
学习C++,不仅在于学习语言本身的语法规则,更在于掌握计算机是如何工作的,程序在计算机是如何运行的等知识。
特别是要了解C++语言程序如何通过
编译后调入内存、在内存中如何分配各种数据、程序在运行时如何对内存的控制等内容。
对内存等概念掌握的重要性对于程序员来讲,就像城市地图对于司机一样,出租车司机可以仅凭脑海里零碎道路的印象开车,但远不及脑海里有一张城市地图的轮廓效率高。
本次课设从常量、变量在内存的存放、变量的赋值、函数的调用以及参数的传递、指针与数组的内存映像,到对象在内存里的存放,始终贯穿着内存的概念。
1.2课程设计的目地
课程设计是课程教学必不可缺的一个重要环节,可加深学生对该课程所学内
容的进一步的了解与巩固,是将计算机课程与实际问题相连接的关键步骤。
此次程序设计综合运用所学知识解决实际问题,将课堂的书本知识有效的在程序中体现出来,让学生更理解了C++功能之强大,进一步让学生对面向对象的方法以及C++的编程思想有了较好了解和认识。
1.3课程设计的背景
本次课程设计,主要研究类的继承、抽象类、多态、虚基类以及对文件进行各项操作(如添加、修改、删除、查询、显示等)。
通过这次课程设计掌握面向对象的程序设计思路,着重掌握在C++中对文件进行查找、删除、修改等操作。
1.理论研究基础
(1)C+■面向对象程序设计中类与对象的使用
(2)类的封装性和继承性。
(3)C++I/O流库的处理,二进制文件的创建与保存
2.技术层面的支持
(1)定义基类与派生类,将数据成员与成员函数封装在类中。
(2)定义指向对象的指针,设计删除、查询、更改的算法。
(3)C++异常处理的功能与输入输出流。
1.4课程设计的意义
(1)通过课程设计的综合训练,培养了学生分析解决实际问题和编程等实际动手能力。
帮助了同学系统的掌握C++课程的主要内容。
2)通过详细的实例分析,循环渐进的描述,启发学生顺利的完成设计。
课程设计将设计要求、需求分析、算法设计、编程和实例测试运行分开,为学生创造分析问题、独立思考的条件。
(3)通过编写一个较长的程序,实现了对人员信息的管理,激发了学生学习编程的兴趣。
1.5课程设计环境
在MicrosoftVisualC++2008开发平台上编写程序源代码,修改,增加功
能,通过编译、连接,直到完全无误,最终执行程序,反复输入新的数据进行验证并进一步完善。
第二章课程设计题目详细要求
题目1“高校人员信息管理系统设计”
1、问题描述
某高校有四类员工:
教师、实验员、行政人员,教师兼行政人员;
共有的信息包括:
编号、姓名、性别、年龄等。
其中,教师还包含的信息有:
所在系部、专业、职称;
实验员还包含的信息由:
所在实验室、职务;
行政人员还包含的信息有:
政治面貌、职称等。
2、功能要求
(1)添加功能:
程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。
(2)查询功能:
可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。
(3)显示功能:
可显示当前系统中所有记录,每条记录占据一行。
(4)编辑功能:
可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。
(5)删除功能:
主要实现对已添加的人员记录进行删除。
如果当前系统中没有相应的人员记录,则提示“记录为空!
”并返回操作;
否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。
(6)统计功能:
能根据多种参数进行人员的统计。
能统计四类人员数量以
及总数,
统计男、女员工的数量。
(7)保存功能:
可将当前系统中各类人员记录存入文件中,存入方式任意。
(8)读取功能:
可将保存在文件中的人员信息读入到当前系统中,供用户进行使用。
3、问题的解决方案
根据系统功能要求,可以将问题解决分为以下步骤:
(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;
(2)分析系统中的各个实体及它们之间的关系;
(3)根据问题描述,设计系统的类层次;
(4)完成类层次中各个类的描述;
(5)完成类中各个成员函数的定义;
(6)完成系统的应用模块;
(7)功能调试;
(8)完成系统总结报告。
第三章需求分析
1.对数据形式的设计
根据问题要求可做如下的数据层次分析:
根据类可继承的的思想,可判断总基类应含有以下数据:
编号,姓名,年龄,性别;
教师类含有:
所在系部,专业,职称;
行政人员类含有:
政治面貌,职称;
实验员类含有:
实验室,职务;
教师兼行政人员不含有私有成员,分别继承于教师和行政人员。
所有子类均从基类继承编号,姓名,年龄,性别。
结构图如下:
但是,在实际操作中出现了矛盾,教师兼行政人员在继承教师类和行政人员时出现了数据重叠的情况,所以我又创新的采用了另一种更为抽象和统一的数据设计,结构如下:
「一条复I合数据/
\/
总基类保有的数据仍为编号,姓名,年龄,性别,在用户输入完成后返回一个字符串;
专门写一条函数为用户选择服务,后台分类别的显示每一类别所需的输入信息,记录为一条统一的字符串,和基类信息汇总,将所有信息保存为一条长度可控的字符串,为之后的其他功能提供便利。
2.文件存储分析
为方便用户查看每一类别信息,将分别建立“jiaoshi.txt
“xingzhengrenyuan.txt”,“shiyanrenyuan.txt”,“jiaoshijianxingzhengrenyuan.txt”储存信息。
3.数据结构
针对新构思的特殊的数据形式,采用了动态链表作为信息载体。
相对于由编程者在编程时就确定存储容量的数组来说,动态链表的优点在于不需要向电脑申请一大块连续的内存,由用户确定需要内存容量且不必连续,减少程序因内存问题报错的概率,节省程序占有内存,提高运行稳定性。
其结构如下:
W行程库土皿1三
丄二3
123
4的创建过程用图示细下:
第一步・第二步.
Pl—・但
尸屋空废.将斷节点am*头,
bend
4.程序功能分析
1)添加功能:
鉴于前面的数据形式和储存结构,这一部分要求多次询问用户,要对数据(字符串)的长度进行最大程度控制,姓名长度这部分最难控制需要留意,其它可由数组转化字符串实现,与链表的衔接要完整,不能出现却丢数据的情况。
※第一次添加函数(完成对基类四项输入和储存),第二次添加函数(完成对其他项的输入),数组转字符串函数,向文件输入数据的函数。
2)查询功能:
分为两部分:
要建立在链表的基础上,对链表中的每一节点进行对比查找,并显示查找到的节点中的数据,找不到需要报错。
建立在对文件的读取上,先将文件中储存的数据以字符串(string)的形式读出,再查询搜索用户所需信息。
※链表查询函数,翻译函数(将字符串中的后部分数字信息翻译为汉字),读取
文档函数,字符串查找函数。
3)显示功能:
要建立在链表的基础上,遍历整个链表,在显示时调用翻译函数。
建立在对文件的读取上,询问用户显示哪个类别信息,先将相应文件中储存的数据以字符串(string)的形式读出,经翻译函数处理后显示给用户。
(若需要可以建立显示全部信息的独立函数)
※遍历链表显示函数,翻译函数,读取文件函数。
4)编辑功能:
对特定查询结果进行重新编辑,即对特定节点的数据进行重新录入。
并更新文本内储存的内容,注意影响汇总结果。
※链表修改函数(可能调用查询函数)。
5)删除功能:
对特定查询结果进行删除,处理前后节点的衔接,更新文本内储存的内容,注意影响汇总结果。
※量表删除函数(可能调用查询函数)。
6)汇总功能:
跟踪输入信息,应用类的静态数据成员统计输入信息。
※性别汇总函数,类别汇总函数。
7)保存功能:
对汇总信息自动输入相应类别文档。
※读入文档函数。
8)读取功能:
从文档中读取数据,返回字符串。
※读取文档函数。
第四章系统设计详细演示说明
1.系统功能演示
a)主菜单界面
添加人员界面
人员查询演示
添加人员信息2.查询人员信息、3、统计人员信息皋统
曹希入您的选择’2
4、显示人员信息5.退岀
MJtJOtMJHKM:
HMBLJCKKJtJCKJIJtJtMJtKKM:
HXJCJOtKJtXKJtJC
Cy/ri)
从刚辅入信息中查询吗?
您的选择—M■输入查询信息.
蛊:
MKKJCtXaoeJCXJCJBJCJtxKMJCMltKKKJCtKICKXXJCltJCJtxJOCXMLJOCKJtJCIt卷号I56
叶卷:
daxiancf
年龄;
34
n:
甜机学院
Hh岡络工程
W=助离ifki;
无!
!
尖聲邑无!
!
***丄、fit釦J去操作是’
囂作孕重新填写3>遞回主菜単—
I瘵加人员信息2>查询人员信息3、统计人员信息4、系统
请输人您的选择:
4
统计人员演示
=1、添加人员信息2、査询人员信息3、统计人员信息4、显示人员信息5,退出系统"
=
请输入您的选择|3
MKMKMKWKMM-KMtCWKMKMMMXMMKMKMXMMMMMHKHKWXMKYXMMfeC
您想要哪种统计方式?
—去別2.性別您的选率
MKKKMMXMMMKMMXMMMKMMXKM'
KMMMKMMMMKM'
KWMMKMMMMKWK
r—I—■■——■-■■•-—"
“"
"
-
灘锻礙1--
2.各类间关系
Person
*前阿。
+stringYear十stringNum0P
+chari>
eji
*rfri'
igIiijL/Tihg+inir«
isftg|6]
十sTMumt
+st#匚mtEeadherg
*mtp.ing^hynb
+mtMingzhe-ngg
*KTjilcinrshlytiint)+striiicentsniyang十型刑c«
ntjiani«
i|>
+3t-3fticint|iani«
igi
t[RerscnQ
■t-^PergtriO
pAddDdfbilrilldimue.^uid
*Unt'
cSxingiirt&
■伽^卞wj垢lil爭(intaXv^d
iLinkILiiil
十stailcfjetleachelbiintbsldii匚jelxingzhengSttTil
*st.aflcg&
ishi^anb(|irrl卞叮尹1阳ntaibQ.iiM+■stJiticqiPi^aehPTjdint
*sMggitnnQ^tiengg^m于stalegeWily3ng(]'
Mf
十和口Um*-sad=NLlL±
+乩鼻匸mrt
furmUon
■intdiMCGf心acft?
P^i$0ri*T+1lrH£
|J5iw
■*mainbcxx()nnt
*bookiDim
+g#tchoic<
i2(jiiiL
*wNangiript陰I闾muimjivCH^
3.各部分功能进行过程
第五章问题及收获
1.遇到的问题
1)刚开始设计的时候也是照着传统思路来的,为每一个类别创建一个类,
再给他们每个相应的函数,当遇到了“教师兼行政人员”要分别继承教师和行政人员的职称的时候,后面的调用会出现一系列矛盾(报错)的地方。
解决方式:
发现了虽然四个类别有细微差别,但可以用一个一定长度的字符串作为框架来装下所有的信息,也方便链表的储存接和文本中数据的准确显示。
2)在初期构思的时候想过用二维数组做数据载体,也想过用动态的数组,但在数据存入文档的时候发现不太方便,用于存储数字的数组和用来储存字符的数组必须形影不离,在实现的时候写入和读出都出现了问题,相对字符数组和整形数组string类具有很多更为方便的功能可以使用。
忽然想到我之前做过有关链表的报告,针对链表的很多函数功能正式该系统所需要的,所以决定使用链表作为数据在内存中的载体。
3)在决定用链表之后,原有的所有设计思路几乎全部推翻,怎样将数据输入与节点插入结合很是头疼(因为我的数据是分两次输入,在两个函数中),还有链表的很多函数,例如查找,删除,修改要全部重写。
链表的结构是很清晰,但生于应用,在长时间的梳理、编写、修改、调试后终于可以运行,又在可运行的前提下进行功能验证,调整,对显示进行美化(加入翻译函数)后,有了现在的系统。
4)统计系统,由于数据在内存中存在形式特殊,计数系统无从下手。
考虑到性别的输入要经过Person类,所以考虑到要用静态数据成员(用来做统计),由于考虑要统计男、女,所以分别定义了八个静态数据成员分别统计各类的男女数目,又修改了链表的删除和修改以解决男女数
量的变化。
2.收获
熟练了动态链表的复合和使用,对string类的输入
(cin,cin.getline()),输出以及多种函数原型(find(),assign()等)
有了一定的认识,应用了cin,cin.get(),cin.getline()和其它格式控
制的标识,巩固了对于文件的输入输出的控制(能输进去,能读出来)及其和string类的搭配使用(与一般的读出略有把不同)。
总结
两个星期的课程设计,经历了野心勃勃(本来想自学做个更漂亮的界面,遇到了一些不可克服的障碍)、迷茫(翻阅资料,构思)、着手做(尝试)、受打击(遇到障碍,受打击)、转换思路再次动手、调试修改、完美运行这样一个过程,体会了一次编程人员的生活,知道自己的知之甚少,还只是博海一舟。
但有了这次难得的课设机会我相信我会做的更好。
参考文献
张永宝,《数据结构第二版》,清华大学出版社,2013
沈显君、杨进才、张勇等人,《C++语言程序设计教程(第二版)》,清华大学出版社,2006
StephenPrata著,孙建春、韦强译,《C++PrimerPlus(第四版)》,人民邮电出版社,2002