C++人事管理系统设计程序.doc_第1页
C++人事管理系统设计程序.doc_第2页
C++人事管理系统设计程序.doc_第3页
C++人事管理系统设计程序.doc_第4页
C++人事管理系统设计程序.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C+语言程序设计课程设计(论文)题目: 人事管理系统 院(系): 软 件 学 院 专业班级: 学 号: 学生姓名: 指导教师: 教师职称: 起止时间:课程设计(论文)任务及评语院(系):软件学院 教研室:软件教研室学 号学生姓名专业班级课程设计(论文)题目人事管理系统课程设计(论文)任务(1). 掌握面向对象程序设计语言C+的基本语法(2). 掌握C+面向对象设计的思想(3). 掌握VC+6.0与DEV C+ 开发工具的使用 (4). 运用标准C+规范设计应用程序设计过程中,要严格遵守设计的时间安排,听从指导教师的指导。正确地完成上述内容,规范完整地撰写出设计报告。指导教师评语及成绩成绩: 指导教师签字: 年 月 日辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)目 录第1章课程设计目的与要求11.1 课程设计目的11.2 课程设计的实验环境11.3 课程设计的预备知识11.4 课程设计要求1第2章课程设计内容22.1 C+语言程序设计-人事管理系统问题分析22.1.1 功能分析22.2 算法设计及程序设计中技术重点32.2.1程序运行平台32.2.2模块分析32.2.3程序类说明32.2.4比较有特色的函数52.2.5存在的不足与对策62.3程序中涉及的类的UML类图和主要函数流程图或框图。72.3.1UML类图72.3 程序源代码9第3章课程设计总结21参考文献22第1章 课程设计目的与要求1.1 课程设计目的将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。通过课程设计,学生在下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程C+语言教程的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。 (2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。 (3)利用所学知识,开发小型应用系统,掌握运用C+语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。 (5)掌握面向对象程序设计的方法。(6)熟练掌握C+语言的基本语法,灵活运用各种数据类型。(7)进一步掌握在集成环境下如何调试程序(单步调试,设置断点、观察表达式,分块调试)和修改程序。1.2 课程设计的实验环境硬件要求能运行Windows 操作系统的微机系统。C+语言应用程序开发软件使用:VC+ 系统,或其他C+语言应用程序开发软件。1.3 课程设计的预备知识熟悉C+语言程序设计的基本知识及VC+编辑器的使用方法。1.4 课程设计要求1. 仔细分析设计题目,画出程序流程图,编写程序源代码。2. 积极上机调试源程序,增强编程技巧与调程能力。3. 认真书写课程设计预习报告,课程设计说明书。4. 遵守课程设计要求和机房管理制度,服从指导教师的安排,确保课程设计的顺利完成课程设计内容第2章 课程设计内容2.1 C+语言程序设计-人事管理系统问题分析在现代化的企业管理中,人事管理系统有着十分重要的作用,然而,用大型软件系统来于小型的企事业单位,不啻于“杀鸡用牛刀”,因此小型的的软件对于这种单位自然有十分重要作用。某小型企业出与这种目的制作了这个人事管理系统, 在企业管理中,人事管理无疑也是最核心的部分。人事管理系统可以及时准确得对员工信息进行记录,可分类或在同一界面查看员工在企业工作期间的所有信息(包括各类基本信息,如姓名、年龄、联系方式、员工照等,以及记录员工的教育培训经历、家庭情况等其他信息);可根据企业实际需要自定义员工档案项目;跟踪管理员工从进入企业到离职全过程的历史记录,包括薪资变动、职位变动、奖惩情况等;可挂接与员工相关的各类文档,如Word 文件, Excel文件,扫描文件等;提供多种不同形式的员工信息报表;强大的排序,过滤,定位查询等功能,能快速方便地从众多数据中定位到所需的信息。机关和事业单位现在存在着诸多的人事管理方面问题,可以通过开发一个基于J2SE架构的人事管理系统。使用计算机对人事信息进行管理;具有着手工管理所无法比拟的优点例如:检索迅速,查找方便,可靠性高,存储量大,保密性好等。2.1.1 功能分析1、添加功能:添加一个职员的基本信息,包括姓名,工作证号,身份证号码,生日,家庭住址,家庭电话号码,部门,薪水,性别,职务。2、删除功能:能够对一个职员的信息进行删除按姓名进行删除。3、除全部职员信息:能够对于全部职员的信息进行删除!4、显示功能:显示所有职员的主要信息包括姓名,身份证号码,工作证号,生日。5、查找功能:根据你键入的职员姓名,显示其详细信息!6、修改功能:对职员的信息进行修改。2.2 算法设计及程序设计中技术重点2.2.1程序运行平台BC30。具体操作如下:首先进入bc,打开原代码person.cpp,然后进入原程序,接着选择Options下的Linker,选择Libraries,弹出一个对话框,再选择Graphics library,然后确认即可!2.2.2模块分析1. 添加模块系统将提示用户输入新添加的职员的信息,插入在链表中2. 显示模块显示模块将输出所有职员的主要资料 。3. 修改模块首先由用户输入要修改的职员的姓名,然后系统用修改函数查找,显示该名职员的资料,然后系统提示用户输入需要修改的项目和新的资料。4. 查找模块首先由用户输入要查找的职员姓名,然后系统用查找函数查找,然后系统就调用输出函数,输出所查找的职员资料。5. 删除模块首先由用户输入要删除的单个职员姓名,然后调用删除函数,删除该名职员的资料。6. 清空模块系统将会把所有职员的资料全部删除,将链表清空。2.2.3程序类说明 Date类的声明class Date public: Date(); /Date类的构造函数 void set(); /Date类的设置函数 friend istream & operator (istream &in,Date &da); /重载“”friend ostream & operator (ostream &out,Date d); /重载“ void operator =(Date d); 重载“=” private:int year; /年int month; /月int day; /日; people类的声明class people public:people(); /people类的构造函数friend ostream & operator (istream &in,people &p); /重载“”void operator =(people p); /重载“=”void set(); /people类的设置函数char *getname(); /获得姓名char *getsex(); /获得性别char *getid(); /获得idchar *gettelephone(); /获得电话号码Date getbirthday(); /获得生日char *getnumber(); /获得工作证号void setname(char *); /设置姓名void setsex(char *); /设置性别void setid(char *); /设置id void setnumber(char *); /设置工作证号void setaddress(char *); /设置家庭地址void settelephone(char *); /设置电话号码void setbirthday(Date); /设置出生日期void setsalary(char *); /设置薪水void setpost(char *); /设置职务void setdepartment(char *); /设置工作部门protected:char name20; /姓名char sex5; /性别char id20; /身份证号char telephone10; /电话号码Date birthday; /出生日期char number20; /工作证号char address100; /家庭地址char salary10; /薪水char post20; /职务char department30; /工作部门public:people *next; /下一个节点people *previous; /上一个节点; cclass peoplelist:public people public: peoplelist(); /peoplelist类的构造函数 void set(); /peoplelist类的设置函数void add(); /添加函数void display(); /显示函数 void find(); /查找函数void deleteAll(); /清空函数void save(); /写入文件void load(); /读进内存void modify(); /修改函数void remove(); /删除函数private:people *start; /链表头people *end; /链表尾;2.2.4比较有特色的函数void peoplelist:remove()textmode(C80);textbackground(BLUE);clrscr();gotoxy(10,10);coutn;clrscr();people *temp;temp=start;while(temp)if(strcmp(temp-getname(),n)=0)break;if(temp=NULL)gotoxy(20,10);coutthe student name dosenot exist!previous)/删除的节点不是第一个 temp-previous-next=temp-next; if(temp-next)/删除的节点不是最后一个 temp-next-previous=temp-previous; else end=temp-previous; else/删除的节点是第一个if(temp-next)/删除的节点不是最后一个temp-next-previous=NULL;start=temp-next;elsestart=end=NULL;/删除节点是最后一个,链表只有一个节点gotoxy(30,10); coutremove succeed!endl;getch();2.2.5存在的不足与对策由于设计者水平有限及时间等方面的原因,该系统的功能比较简单,查错能力也不强,对于一些不正确的输入可能会造成一些难以预料的结果,因此,请不要故意输入错误信息。这些不足请老师多多谅解。今后会更多的学习编程技巧,不断的提高程序设计水平。2.3程序中涉及的类的UML类图和主要函数流程图或框图。2.3.1UML类图图2.3.1UML类图图2.3.2主函数图图2.3.3主函数框图2.3 程序源代码#includeiostream.h#includestring.h#includestdlib.h#includestdio.h#includefstream.h#includeconio.h#includegraphics.h#includedos.h#includeprocess.h#define TURE 1#define FALSE 0#define KB_S_N_DOWN 80#define KB_S_N_UP 72#define KB_S_N_ENTER 28#define KB_S_N_D 32#define KB_S_N_Q 16#define KB_S_N_M 50#define KB_S_N_A 30#define KB_S_N_F 33#define KB_S_N_R 19#define KB_S_N_E 18void Welcome();int get_key();int getitem(int);void light_bar();void box(int x,int y,int wi,int hi,char bkcolor,char color);int row,item_num=7;unsigned size;void * buf;/void box(int x,int y,int wi,int hi,char bkcolor,char color) textbackground(bkcolor);textcolor(color);int i;gotoxy(x,y);putch(0xda);for(i=1;iwi;i+)putch(0xc4);putch(0xbf);for(i=1;ihi;i+)gotoxy(x,i+y);putch(0xb3);gotoxy(x+wi,i+y);putch(0xb3);gotoxy(x,y+hi);putch(0xc0);for(i=1;iwi;i+)putch(0xc4);putch(0xd9);/void Welcome()int graphdriver=VGA;int graphmode=VGAHI;initgraph(&graphdriver,&graphmode,d:bcbgi); int dotx,doty,h,w,color,maxcolor;maxcolor=getmaxcolor();w=getmaxx();h=getmaxy();srand(seed);for(int i=0;i(istream &in,Date &da); friend ostream & operator (istream &in,Date &da)A: int y,m,d; inymd; if(y2002) couterror!12|m1) couterror!daysmonthm|d1) couterror!endl; goto A; Else da.day=d; else if(y%100=0)|y%4=0&y%100!=0) if(d29) couterror!endl; goto A; else da.day=d; else if(d28) couterror!endl; goto A; else da.day=d; return in;/ostream & operator (ostream &out,Date d)outd.year/d.month/d.dayendl;return out;/void Date:operator =(Date d)year=d.year;month=d.month;day=d.day;/class people public:people();friend ostream & operator (istream &in,people &p);void operator =(people p);void set();void change();char *getname();char *getsex();char *getid();char *gettelephone();Date getbirthday();char *getnumber();void setname(char *);void setsex(char *);void setid(char *);void setnumber(char *);void setaddress(char *);void settelephone(char *);void setbirthday(Date);void setsalary(char *);void setpost(char *);void setdepartment(char *);protected:char name20;char sex5;char id20;char telephone10;Date birthday;char number20;char address100;char salary10;char post20;char department30;public:people *next;people *previous;/void people:setdepartment(char *d) strcpy(department,d);/void people:setpost(char *p)strcpy(post,p);void people:setsalary(char *s)strcpy(salary,s);/void people:setname(char *n)strcpy(name,n);/void people:setsex(char *s)strcpy(sex,s);/void people:setid(char *i)strcpy(id,i);/void people:setnumber(char *n)strcmp(number,n);/void people:setaddress(char *a)strcpy(address,a);/void people:settelephone(char *t)strcpy(telephone,t);/void people:setbirthday(Date d)birthday=d;MENU:graphdriver=VGA;graphmode=VGAHI;initgraph(&graphdriver,&graphmode,d:bcbgi);cleardevice();size=imagesize(0,0,90,22);if(size!=1)buf=malloc(size);setfillstyle(1,YELLOW);bar(0,0,90,22);getimage(0,0,90,22,buf);setfillstyle(1,BLACK);bar(0,0,91,23);setcolor(YELLOW);rectangle(0,0,639,479);setfillstyle(1,BLUE);rectangle(542,20,635,89);bar(543,21,634,88);setcolor(YELLOW);for(int k=0;kitem_num;k+)rectangle(542,90+k*25,635,115+k*25);floodfill(544,92+k*25,YELLOW); settextstyle(1,HORIZ_DIR,4);setcolor(LIGHTRED);outtextxy(548,40,MENU);settextstyle(0,HORIZ_DIR,1);setcolor(WHITE);outtextxy(548,100,Display);outtextxy(548,125,Add);outtextxy(548,150,Find);outtextxy(548,175,Modify);outtextxy(548,200,Remove);outtextxy(548,225,DEleteAll);outtextxy(548,250,Quit);setcolor(LIGHTRED);outtextxy(548,100,D);outtextxy(548,125,A);outtextxy(548,150,F);outtextxy(548,175,M);outtextxy(548,200,R);outtextxy(548,225, E);outtextxy(548,250,Q); setbkcolor(DARKGRAY);settextstyle(GOTHIC_FONT,HORIZ_DIR,10);outtextxy(30,150,Welcome);light_bar();row=0;row=getitem(row);switch(row) case 0:closegraph();p.display();goto MENU;case 1:closegraph();p.add();goto MENU;case 2:closegraph();p.find();goto MENU;case 3:closegraph();p.modify();goto MENU;case 4:closegraph();p.remove();goto MENU;case 5:closegraph();p.deleteAll();goto MENU;case 6:closegraph();break; p.save();第3章 课程设计总结通过课程设计,培养了我的动手能力以及综合运用所学的C+语言基础理论,掌握了C+的基础知识,基本技能,进行程序分析和程序开发,提高在实际开发中解决问题的能力,达到了能够利用C+语言进行应用程序的规划,分析,设计和实施,更能进一步使我对这门语言有深刻的理解和更好的得到巩固,更能对我所学的知识得到检验。这次课程设计

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论