高校信息管理系统.docx

上传人:b****5 文档编号:7384937 上传时间:2023-01-23 格式:DOCX 页数:18 大小:508.46KB
下载 相关 举报
高校信息管理系统.docx_第1页
第1页 / 共18页
高校信息管理系统.docx_第2页
第2页 / 共18页
高校信息管理系统.docx_第3页
第3页 / 共18页
高校信息管理系统.docx_第4页
第4页 / 共18页
高校信息管理系统.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

高校信息管理系统.docx

《高校信息管理系统.docx》由会员分享,可在线阅读,更多相关《高校信息管理系统.docx(18页珍藏版)》请在冰豆网上搜索。

高校信息管理系统.docx

高校信息管理系统

高校信息管理系统

课程设计报告

 

2014-7-2

网络工程13013130610025

郭凯迪

目录

摘要2

第一章绪论2

1.1学习C++的目地2

1.2课程设计的目地2

1.3课程设计的背景3

1. 理论研究基础3

2. 技术层面的支持3

1.4课程设计的意义3

1.5课程设计环境3

第二章课程设计题目详细要求4

1、问题描述4

2、功能要求4

3、问题的解决方案4

第三章需求分析5

1.对数据形式的设计5

2.文件存储分析6

3.数据结构6

4.程序功能分析7

1)添加功能:

7

2)查询功能:

7

3)显示功能:

7

4)编辑功能:

7

5)删除功能:

8

6)汇总功能:

8

7)保存功能:

8

8)读取功能:

8

第四章系统设计详细演示说明8

1.系统功能演示8

2.各类间关系10

3.各部分功能进行过程11

第五章问题及收获14

1.遇到的问题14

2.收获14

总结14

参考文献15

摘要

本文利用Microsoft Visual C++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课程设计环境 

在Microsoft Visual C++ 2008开发平台上编写程序源代码,修改,增加功能,通过编译、连接,直到完全无误,最终执行程序,反复输入新的数据进行验证并进一步完善。

第二章课程设计题目详细要求

题目1“高校人员信息管理系统设计”

1、问题描述

某高校有四类员工:

教师、实验员、行政人员,教师兼行政人员;共有的信息包括:

编号、姓名、性别、年龄等。

其中,教师还包含的信息有:

所在系部、专业、职称;实验员还包含的信息由:

所在实验室、职务;行政人员还包含的信息有:

政治面貌、职称等。

2、功能要求

(1)添加功能:

程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。

(2)查询功能:

可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。

(3)显示功能:

可显示当前系统中所有记录,每条记录占据一行。

(4)编辑功能:

可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。

(5)删除功能:

主要实现对已添加的人员记录进行删除。

如果当前系统中没有相应的人员记录,则提示“记录为空!

”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。

(6)统计功能:

能根据多种参数进行人员的统计。

能统计四类人员数量以及总数,

统计男、女员工的数量。

(7)保存功能:

可将当前系统中各类人员记录存入文件中,存入方式任意。

(8)读取功能:

可将保存在文件中的人员信息读入到当前系统中,供用户进行使用。

3、问题的解决方案

根据系统功能要求,可以将问题解决分为以下步骤:

(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;

(2)分析系统中的各个实体及它们之间的关系;

(3)根据问题描述,设计系统的类层次;

(4)完成类层次中各个类的描述;

(5)完成类中各个成员函数的定义;

(6)完成系统的应用模块;

(7)功能调试;

(8)完成系统总结报告。

第三章需求分析

1.对数据形式的设计

●根据问题要求可做如下的数据层次分析:

Ø根据类可继承的的思想,可判断总基类应含有以下数据:

编号,姓名,年龄,性别;

Ø教师类含有:

所在系部,专业,职称;

Ø行政人员类含有:

政治面貌,职称;

Ø实验员类含有:

实验室,职务;

Ø教师兼行政人员不含有私有成员,分别继承于教师和行政人员。

●所有子类均从基类继承编号,姓名,年龄,性别。

结构图如下:

●但是,在实际操作中出现了矛盾,教师兼行政人员在继承教师类和行政人员时出现了数据重叠的情况,所以我又创新的采用了另一种更为抽象和统一的数据设计,结构如下:

总基类保有的数据仍为编号,姓名,年龄,性别,在用户输入完成后返回一个字符串;

专门写一条函数为用户选择服务,后台分类别的显示每一类别所需的输入信息,记录为一条统一的字符串,和基类信息汇总,将所有信息保存为一条长度可控的字符串,为之后的其他功能提供便利。

2.文件存储分析

为方便用户查看每一类别信息,将分别建立“jiaoshi.txt”,“xingzhengrenyuan.txt”,“shiyanrenyuan.txt”,“jiaoshijianxingzhengrenyuan.txt”储存信息。

3.数据结构

针对新构思的特殊的数据形式,采用了动态链表作为信息载体。

相对于由编程者在编程时就确定存储容量的数组来说,动态链表的优点在于不需要向电脑申请一大块连续的内存,由用户确定需要内存容量且不必连续,减少程序因内存问题报错的概率,节省程序占有内存,提高运行稳定性。

其结构如下:

4.程序功能分析

1)添加功能:

鉴于前面的数据形式和储存结构,这一部分要求多次询问用户,要对数据(字符串)的长度进行最大程度控制,姓名长度这部分最难控制需要留意,其它可由数组转化字符串实现,与链表的衔接要完整,不能出现却丢数据的情况。

※第一次添加函数(完成对基类四项输入和储存),第二次添加函数(完成对其他项的输入),数组转字符串函数,向文件输入数据的函数。

2)查询功能:

分为两部分:

要建立在链表的基础上,对链表中的每一节点进行对比查找,并显示查找到的节点中的数据,找不到需要报错。

建立在对文件的读取上,先将文件中储存的数据以字符串(string)的形式读出,再查询搜索用户所需信息。

※链表查询函数,翻译函数(将字符串中的后部分数字信息翻译为汉字),读取文档函数,字符串查找函数。

3)显示功能:

分为两部分:

要建立在链表的基础上,遍历整个链表,在显示时调用翻译函数。

建立在对文件的读取上,询问用户显示哪个类别信息,先将相应文件中储存的数据以字符串(string)的形式读出,经翻译函数处理后显示给用户。

(若需要可以建立显示全部信息的独立函数)

※遍历链表显示函数,翻译函数,读取文件函数。

4)编辑功能:

对特定查询结果进行重新编辑,即对特定节点的数据进行重新录入。

并更新文本内储存的内容,注意影响汇总结果。

※链表修改函数(可能调用查询函数)。

5)删除功能:

对特定查询结果进行删除,处理前后节点的衔接,更新文本内储存的内容,注意影响汇总结果。

※量表删除函数(可能调用查询函数)。

6)汇总功能:

跟踪输入信息,应用类的静态数据成员统计输入信息。

※性别汇总函数,类别汇总函数。

7)保存功能:

对汇总信息自动输入相应类别文档。

※读入文档函数。

8)读取功能:

从文档中读取数据,返回字符串。

※读取文档函数。

第四章系统设计详细演示说明

1.系统功能演示

a)主菜单界面

添加人员界面

人员查询演示

统计人员演示

2.各类间关系

如图:

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

 

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

当前位置:首页 > 农林牧渔 > 林学

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

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