ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:191.96KB ,
资源ID:4585322      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4585322.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c++课程设计 10.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c++课程设计 10.docx

1、c+课程设计 10辽 宁 工 业 大 学C+语言程序设计课程设计(论文)题目: 高校人事管理系统 院(系): 软 件 学 院 专业班级: 指导教师: 翟宝峰 教师职称: 副教授 起止时间:2011.12.12-2011.12.25课程设计(论文)任务及评语院(系):软件学院 教研室:软件教研室学 号专业班级软件工程113班课程设计(论文)题目高校人事管理系统课程设计(论文)任务程序设计的任务与要求:(1). 掌握面向对象程序设计语言C+的基本语法(2). 掌握C+面向对象设计的思想(3). 掌握VC+6.0与DEV C+ 开发工具的使用 (4). 运用标准C+规范设计应用程序设计过程中,要严格

2、遵守设计的时间安排,听从指导教师的指导。正确地完成上述内容,规范完整地撰写出设计报告。指导教师评语及成绩 成绩: 指导教师签字: 年 月 日 目 录第1章 课程设计目的与要求 11.1 设计目的 11.2实验环境 11.3预备知识 11.4设计要求 1第2章 课程设计内容 22.1 课题描述 22.2 系统设计 32.2.1功能分析 32.2.2面向对象设计 42.2.2类成员描述 62.3程序实现 92.3.1源码分析 92.3.2运行结果 17第3章 课程设计总结 19参考文献 20第1章 课程设计目的与要求1.1 设计目的将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构

3、、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。通过课程设计,学生在下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程C+语言教程的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。(3)利用所学知识,开发小型应用系统,掌握运用C+语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。(5)掌握面向对象程序设计的方法。(6)熟练掌握C+语言的基

4、本语法,灵活运用各种数据类型。(7)进一步掌握在集成环境下如何调试程序和修改程序。1.2实验环境硬件要求能运行Windows 操作系统的微机系统。C+语言应用程序开发软件使用:VC+ 系统,或其他C+语言应用程序开发软件。1.3预备知识熟悉C+语言程序设计的基本知识及VC+编辑器的使用方法。1.4设计要求1.仔细分析设计题目,画出程序流程图,编写程序源代码。2.积极上机调试源程序,增强编程技巧与调程能力。3.认真书写课程设计预习报告,课程设计说明书。4.遵守课程设计要求和机房管理制度,服从指导教师的安排,确保课程设计的顺利完成课程设计内容。第2章 课程设计内容2.1 课题描述C+系统作为信息管

5、理系统的一个分支,已逐渐成为现代信息化建设的重要组成 部分,为高校提供了一个功能强大、安装部署方便、使用成本低、操作简捷的人事管 理系统。 经过分析,使用c+开发工具,通过实现数据的输入、查找、统计、输出等功能,进一步了解和学习面向对象程序设计的思想和理念;并且被广泛地应用于各种程序设计中。该程序运用图形界面操作方式,方便各行个业的人使用,也避免了不了解计算机的人不会操作这个系统的麻烦,并且功能齐全。通过c+这种面向对象程序设计结构化语言特点可以将高校人事管理系统做成操作窗口清 新、大方,操作方便。现在绝大多的高校人事管理系统还处于手工作业状态, 效率很低,而且容易出错,不便于管理,还不排除有

6、不真实的现象。我们认为有必要开发一个中小型高校人事管理系统的管理软件。本系统开发实现的模块有添加人员信息、修改人员信息、删除人员信息、查找人员信息、数据库装入、等。其中添加人员信息模块主要是用来添加人员的编号和个人简历相关信息,删除已经离职的人员信息。同时本文还分析了软件工程、数据库技术的相关理论。本系统具有良好的可移植性和可修改性。系统简单,易于操作,对相关的具有对人员信息管理的企业具有一定的使用价值。算法设计方面:本系统在算法方面采用了类的概念,其中有类的定义,类的构造函数的定义,析构函数的定义,内联函数的定义,类的初始化。在ID号查找过程中采用了编号查找法,能够快速的找到所要找的数据,在

7、程序中还广泛使用了函数的实参和形参的调用方法,循环语句,条件判断语句等技术。程序设计中的技术重点:本程序中应用了动态数据结构,在程序运行期间根据需要动态申请内存,并建立元素之间的线形关系。链表是一种动态数据结构,可以用来表示顺序访问的线形群体。链表是由一系列的结点组成,结点在运行说产生。每一个结点包括数据域和指向链表中下一个结点的指针。1.问题识别(1)功能需求:明确所开发的软件必须具备什么样的功能。(2)性能需求:明确待开发的软件的技术性能指标。(3)用户界面需求:明确人机交互方式、输入输出数据格式。2.分析与综合,导出软件的逻辑模型分析人员对获取的需求,进行一致性的分析检查,在分析、综合中

8、逐步细化软件功能,划分成各个子功能。用图文结合的形式,建立起新系统的逻辑模型。3.编写文档(1)编写“功能规格说明书”,把双方共同的理解与分析结果用规范的方式描述出来,作为今后各项工作的基础。(2)编写初步目的与需求,着重反映被开发软件的用户功能界面和用户使用的具体要求,需求能强制分析人员从用户使用的观点考虑软件。(3)编写确认测试计划,作为今后添加信息和删除信息的依据。(4)修改完善软件开发计划。在需求分析阶段对待开发的系统有了更进一步的了解,所以能更准确地估计开发成本、进度及资源要求,因此对原计划要进行适当修正。2.2 系统设计2.2.1功能分析一、目的与要求:1目的: 能够利用所学的基本

9、知识和技能,解决简单的面向对象程序设计问题。 2基本要求: (1)要求利用面向对象的方法以及C+的编程思想来完成系统的设计; (2)要求在设计的过程中,建立清晰的类层次; (3)在系统设计中要分析和定义各个类,每个类中要有各自的属性和方法; (4)在系统的设计中,要求运用面向对象的机制(类)来实现系统功能。 二、设计方法和基本原理:1功能要求: 某高校,主要人员有:在职人员(行政人员、教师、一般员工)、退休人员、返聘人员和临时工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、来院时间。要求: (1)添加删除功能:能根据学院人事的变动情况,添加删除

10、记录;(2)查询功能:能根据编号和姓名进行查询;(3)编辑功能(高级):根据查询对相应的记录进行修改,并存储;(4)保存功能:能对输入的数据进行相应的存储,要求重载插入和提取符以完成数据的保存和打开。(5)人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。 2问题的解决方案: 根据系统功能要求,可以将问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系包括属性和行为; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述(包括属性和方法); (5)完成类中各个成员函数的定义; (6

11、)完成系统的应用模块; (7)功能调试。2.2.2面向对象设计面向对象程序设计方法是通过增加软件的可扩充性和可重用性来提高程序员的 编程能力的。面向对象程序的基本元素是对象面向对象的主要结构特点是: 第一,程序一般由类的定义和类的使用两部分组成,在主程序中定义各对象并规 定它们之间传递消息的规律; 第二, 程序间的一切操作都是通过向对象发送消息来实现的, 对象接收到消息后, 启动有关方法完成相应的操作; 第三,类由继承关系产生相互间的联系。一个程序中涉及到的类,可以由程序设 计者自己定义,也可以使用现成的类。尽量使用现成的类,是面向对象程序设计范型 所倡导的程序设计风格。本系统定义两个类,一个

12、person类,包含在职人员(行政人员、教师、一般员工)、退休人员、返聘人员和临时工。员工信息包括编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、来院时间。定义一个school类,在里面实现数据的添加、删除、修改、查找、显示和退出。这个程序是用派生,继承来实现people,date,student,teacher,garduate之间的联系; 具体的是student从people里面继承它的公有和保护部分,teacher从people里面继承它的公有和保护部分;graduate从student里面继承它的私有和保护部分;图2.1继承类和派生类(1)设计一个人事管理的People(人员)

13、类,考虑到通用性。这里只抽象出所有类型人员都具有的属性:name(姓名),number(编号),sex(性别),等。其中“编号”定义为一个“日期”类(具有属性:year(年)内嵌子对象,用成员函数实现对人员信息的录入和显示等必要功能操作(自己独立思考设计),要求包括:构造函数和析构函数,拷贝构造函数,内联成员函数。图2.2 person类UML图(2)从People(人员)类派生出person类,添加属性;编号;从People类派生出name(教师)类,添加属性:职务,部门;从student类中派生出sex(性别)类,添加属性;导师teacher adviser(为(教师类内嵌子对象);注意虚

14、基类的使用,重载相应的成员函数。图2.3 school类UML图(3)定义一个对People类对象数组按编号排序的函数,一个按编号查找people对象的函数。2.2.2类成员描述这个程序是高校人事的一个管理程序,通过屏幕的提示和键盘的输入来实现对于高校人事信息的添加,修改,删除,查找等效果。并且在输入数据之后可以整理查看,实现人事系统的管理。高校人事管理系统是针对各个学校对现有员工和学生管理平台。主页功能模块主要包括以下功能模块:人员管理:主要包括浏览人员信息、添加人员信息、人员信息的修改、存储数据库、删除人员信息等功能。 图2.4高校人事管理系统模块图根据类的操作设计系统流程图:(1)Per

15、son:add()图2.5 Person:add部分流程图(2)Person:delete()图2.6 Person: delete部分流程图(3)Person:change()图2.7 Person: change部分流程图(4)Person:find()图2.8 Person: find部分流程图2.3程序实现2.3.1源码分析一、主函数部分#include#include#include#include#includeperson.h#includeSchool.hvoid main() School obj; int c; do /选择界面 couttt高校人事管理系统endl; co

16、utt1.增加人员资料endl; coutt2.删除人员信息endl; coutt3.修改人员信息endl; coutt4.查询人员信息endl; coutt5.统计人员信息endl; coutt6.数据存盘endl; coutt7.数据装入endl; coutt8.显示所有信息endl; coutt9-退出endl;coutc; switch(c) case 1:obj.add(); break; /调用添加函数,添加爱人员 case 2:obj.removedatnum(); break; /调用删除函数,删除人员 case 3:obj.upperson(); break; /调用修改函数

17、,修改人员信息 /按选定参数查询 case 4: int nm; coutnm; if(nm=1) obj.find1(); else obj.find2(); ; break; case 5: obj.stat(); break; /调用统计函数,统计人员信息 case 6: obj.save(); break; /调用保存数据函数,数据存盘 case 7: obj.load(); break; /调用载入数据函数,数据装入 case 8: obj.pri(); break; /调用输出函数,显示所有信息到屏幕 while(c!=9);二、定义person类部分class person/人员

18、类 似有数据成员private:int no;char type20;char name20;char sex10;int age;char time120;char time220;char pos20;char techpos20;char party20;char study30;person *mynext;public:/构造函数一 person(int nnum,char ntype,char nname,char nsex,int nage,char ntime1,char ntime2,char npos,char ntechpos,char nparty,char nstud

19、y) no=nnum; strcpy(type,ntype); strcpy(name,nname); strcpy(sex,nsex); strcpy(time1,ntime1); age=nage; strcpy(time2,ntime2); strcpy(pos,npos); strcpy(techpos,ntechpos); strcpy(party,nparty); strcpy(study,nstudy); mynext=NULL; /构造函数二 person(int nnum,char ntype,char nname,char nsex,int nage,char ntime1

20、,char ntime2, char npos,char ntechpos,char nparty,char nstudy,person *next) /*某高校,主要人员有:在职人员(行政人员、教师、一般员工)、退休人员、返聘人员和临时工。 现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间。*/ no=nnum; strcpy(type,ntype); strcpy(name,nname); strcpy(sex,nsex); strcpy(time1,ntime1); age=nage; strcpy(time2,ntime2

21、); strcpy(pos,npos); strcpy(techpos,ntechpos); strcpy(party,nparty); strcpy(study,nstudy); mynext=next; void setnext(person *next) mynext=next; person *getnext() return mynext; 三、定义school类部分class Schoolprivate:person *myfirst;int firstnum;public:School() myfirst=NULL; /构造函数,将数据初始化 School(int nnu,cha

22、r ntyp,char nnam,char nse,int nag,char ntim1,char ntim2,char npo,char ntechpo,char npart,char nstud) myfirst=new person(nnu,ntyp,nnam,nse,nag,ntim1,ntim2,npo,ntechpo,npart,nstud); /在最后插入新成员 函数 void insertatlast(int nnum,char ntype,char nname,char nsex,int nage,char ntime1,char ntime2,char npos,char

23、ntechpos,char nparty,char nstudy) person *next=myfirst; if(next=NULL) myfirst=new person(nnum,ntype,nname,nsex,nage,ntime1,ntime2,npos,ntechpos,nparty,nstudy); else while(next-getnext()!=NULL) next=next-getnext(); next-setnext(new person(nnum,ntype,nname,nsex,nage,ntime1,ntime2,npos,ntechpos,nparty,

24、nstudy,next-getnext(); /-/从键盘输入数据,并创建相应对象 函数, void input(int r) int nage; char ntype20,nname20,nsex20,ntime120,ntime220,npos20,ntechpos20,nparty20,nstudy20; cout请输入编号为r的成员的信息endl; cout输入职工分类码行政人员,教师,一般员工,退休人员,返聘人员,临时工:ntype; cout输入姓名:nname; cout输入性别:nsex; cout输入年龄:nage; cout参加工作时间:ntime1; cout输入来院时间

25、:ntime2; cout输入职务无,科级,处级,地级:npos; cout输入职称无,初级,中级,高级:ntechpos; cout输入加入党派群众,中共党员,民主党派:nparty; cout输入学历小学,初中,高中,大专,大学,硕士,博士:nstudy;insertatlast(r,ntype,nname,nsex,nage,ntime1,ntime2,npos,ntechpos,nparty,nstudy); /从键盘输入数据,并创建相应对象 函数二, void input1(person *ahead) cout编号:setiosflags(ios:left) getname()en

26、dl; cout性别:setiosflags(ios:left) getsex()endl; cout年龄:setiosflags(ios:left) getage()endl; cout职工类型:setiosflags(ios:left) gettype()endl; cout职务:setiosflags(ios:left) getpos()endl; cout职称:setiosflags(ios:left) gettechpos()endl; cout学历:setiosflags(ios:left) getstudy()endl; cout政治面貌:setiosflags(ios:left

27、) getparty()endl; cout来院时间:setiosflags(ios:left) gettime1()endl; cout参加工作时间:setiosflags(ios:left)gettime2()endl; /- /增加员工函数 void add() int i,a,b; person *p1=myfirst; if(p1=NULL) couti; input(i); else if(p1-getnext()=NULL) a=p1-getnum()+1; input(a); else while(p1-getnext()!=NULL) p1=p1-getnext(); b=p1-getnum()+1; input(b); /查找人员函数 bool find1() int id; person *ahead=myfirst; person *follow=ahead; cout请输入编号:id; coutendl; cout信息如下:endl; if(ahead=NULL)

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

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