《c++课程设计报告书(共20页).doc》由会员分享,可在线阅读,更多相关《c++课程设计报告书(共20页).doc(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上安徽工业大学面向对象程序设计课程设计报告书 设 计 题 目:企业人事管理系统指 导 老 师:汤亚玲 学 生 学 号:学 生 姓 名:黄飞时 间:2012年12月21日专心-专注-专业第1章 选 题1.1 题目背景企业人事管理系统是企业管理中的一个重要内容,随着时代的进步,企业人员数量也不断增加、分工的不断细化、各个行业间联系的不断密切,对人事管理的要求也不断提高。早期的人工方式的管理系统已不适合现代企业的公司的发展,实现企业人事管理的系统化、规范化、自动化,是现代企业管理的首选。1.2系统实现的具体分工系统分为职工类、职工数据类、权限设置类以及主函数等几大模块,其中职
2、工类实现对公司职工个人基本信息的描述,职工数据类实现公司对职工的维护,权限设置类实现对使用者的操作权限设置功能,main() 函数实现对程序主界面的引导。1.2.1 标题企业人事管理系统1.2.2 题目要求设计一个小型人事管理系统,假设公司只有经理、业务经理、普通职工,需要描述他们的信息,如职工编号、姓名、电话、住址等信息,且需要设置系统操作权限,实现界面的转换,增、删、查、改、显示功能。1.3开发环境Visual C+ 6.0第2章 设计内容2.1实现功能系统主要包括企业系统管理人员对企业职工信息的增、删、查、改等功能和普通职工对职工信息的查看功能。用户只需在进入操作界面后选择相应的登陆身份
3、就可以进行相应的操作。2.2 概要设计(涉及类的框图)企业人事管理系统用户身份验证类 Jusrition职工信息类Employee职工数据类 Database主程序main设置帐号、密码setData判断权限操作judge职工基础信息定义职工基础信息设置职工基础信息的增加、删除 、显示 构造Database()函数系统的主界面输出由主界面进入子界面或退出增、删、全删、查、改、显示职工信息void empdata()职工维护2.3 界面设计界面设计在工作流程上分为结构设计、交互设计、视觉设计三个部分。结构设计 Structure Design结构设计也称概念设计 (Conceptual Desi
4、gn),是界面设计的骨架。该人事管理系统运行时界面上的目录体系和词语定义易于用户理解和操作,例如主界面的目录体系包括1操作、0返回。选择1操作又会进入登陆界面,其目录体系包括 1系统管理员、2 职工。选择 1系统管理员会进入管理员操作界面,其目录体系包括1增加2更改3删除4查找5显示6全删7 帮助0退出,选择2会进入职工操作界面,其目录包括1查找 2退出,然后选择相应的操作进行操作。这些都充分体现了结构化的界面设计理念。交互设计 Interactive Design 交互设计的目的是使产品让用户明白、清楚,且能简单使用。 任何产品功能的实现都是通过人和机器的交互来完成的。该人事管理系统中包含1
5、)清楚的错误提示,误操作后,系统提供有针对性的提示。例如管理员输入的帐号或密码错误时,系统会给出相应的提示,以指导管理员进行正确的操作。以及增、删、查、改等功能实现中的提示信息。2) 使用用户的语言,而非技术的语言。 3)方便退出。4)导航功能。随时转移功能,很容易从一个功能跳到另外一个功能。例如操作者所需各服务间功能转换。人的因素被作为设计的核心体现出来。视觉设计 Visual Design 该管理系统界面清晰明了,在结构设计的基础上,参照目标群体的心理模型和任务达成进行了视觉设计。 第3章 系统实现3.1 涉及知识点类封装、面向对象程序设计、字符串的应用、条件语句、循环语句的使用、库函数(
6、屏幕清零函数)的应用、过程化设计的思想等。源代码#include #include #include #include #includeusing std:map;const int Maxr=100;class Jusrition/身份验证类private:char zh11;/用户帐号char mm21;/用户密码int mi;public:void setData(char a,char b)strcpy(zh,a);strcpy(mm,b);int judge()/用户权限判断函数 int s,t,i=1; docoutsetw(20)zh;coutsetw(20)mm;s=strcm
7、p(zh,abc);t=strcmp(mm,1234);if(s|t)cout您输入的信息错误,请重新输入!n;else return 0; i+;while(i);class Employee /职工类int tag;/删除标记 int no;/职工编号 char name20;/职工姓名 char zw20;/职务 int salary;/职工工资 char cellphone20;/职工电话 char address50;/家庭住址public: Employee() char *getname() return name;/获取名字 int gettag() return tag;/获
8、取标记 int getno() return no;/获取编号 int getsalary()return salary; char *getaddress()return address; char *getcellphone()return cellphone; void setzw(char q)/设置职务 strcpy(zw,q); void setname(char na)/设置名字 strcpy(name,na); void setaddress(char a) strcpy(address,a); void setcellphone(char c) strcpy(cellphon
9、e,c); void getsalary(int sa)salary=sa; void delna()tag=1;cout删除成功!endl;/删除 void addemp(int n,int sa,char *na,char *q,char *a,char* c)/增加 tag=0; no=n; salary=sa; strcpy(name,na); strcpy(zw,q); strcpy(address,a); strcpy(cellphone,c);void disp()/显示职工信息coutsetw(5)nosetw(8)namesetw(8)salarysetw(10)zwsetw
10、(15)cellphonesetw(15)addressendl;class Database/职工数据类 int top; Employee readMaxr;Jusrition user;/用户权限对象定义public:Database()/将职工信息从employee.txt读取到read中 Employee s; top=-1; fstream file(employee.txt,ios:in); while (1) file.read(char *)&s,sizeof(s); if (!file) break; top+; readtop=s; file.close(); void
11、clear()/删除所有 top=-1; int addemp (int n, int sa,char *na,char*q,char *a,char* c) /增加职工 Employee *p=query(n); if (p=NULL) top+; readtop.addemp(n,sa,na,q,a,c); return 1; return 0; Employee *query(int empid) for (int i=0;i=top;i+) if (readi.getno()=empid & readi.gettag()=0) return &readi; return NULL; E
12、mployee *query1(char empna20) for (int i=0;i=top;i+) if (readi.getname()=empna) & readi.gettag()=0) return &readi; return NULL; Employee *query2(char empa50)for (int i=0;i=top;i+) if (readi.getaddress()=empa & readi.gettag()=0) return &readi; return NULL; Employee *query3(char empc20)for (int i=0;i=
13、top;i+) if (readi.getcellphone()=empc & readi.gettag()=0) return &readi; return NULL; void disp() /职工信息显示 for (int i=0;i=top;i+) if (readi.gettag()=0)readi.disp(); void empdata(); Database() /将read中的信息读入到employee.txt中 fstream file(employee.txt,ios:out); /文件操作for (int i=0;ik;if(k=1) user.setData(abc,
14、1234); user.judge();system(cls);/屏幕清零while(choice!=0)if(k=1)cout; cinchoice; system(cls);/屏幕清零switch (choice) case 1: .(新增)break;case 2: (修改)break; case 3: cout; cinempid;r=query(empid); if (r=NULL) cout该职工不存在delna();break; case 4: cout请输入需要查找的职工的编号:n;coutsetw(50) -n; coutsetw(50) 请选择您所需的操作 n; couts
15、etw(50) 按编号查找1,并按回车键 n; coutsetw(50) 返回 2,并按回车键 n; coutsetw(50)b; system(cls);/屏幕清零switch(b)case 1:coutempid; r=query(empid); if (r=NULL) cout该职工不存在endl;break; coutsetw(5) 编号setw(8) 姓名setw(8) 工资setw(10) 职务 setw(15) 电话setw(15) 家庭地址disp();break;case 2:break;break;case 5: .break; case 6: clear(); break
16、;/删除所有case 7: cout工资计算方式:n1.经理:基本工资(8000)+奖金.n2.业务经理:基本工资(4000)+提成.n3.普通员工:基本工资n;break;else if(k=2)cout; cinchoice;system(cls);/屏幕清零switch (choice)case 1: coutsetw(50)-n; coutsetw(50) 请选择您所需的操作 n; coutsetw(50) 按编号查找1,并按回车键 n; coutsetw(50) 返回 2,并按回车键 n; coutsetw(50)b;system(cls);/屏幕清零switch(b)case 1:
17、coutempid;r=query(empid); if (r=NULL) cout该职工不存在endl; break; coutsetw(5) 编号setw(8) 姓名setw(8) 工资setw(10) 职务setw(15) 电话setw(15) 家庭地址disp();break;case 2:break;break;case 0:break;void main()int choice=1;Database EmpDB;while(choice!=0)cout*endl;coutendl;coutendl;coutendl;coutsetw(50)欢迎进入人事管理系统endl;couten
18、dl;coutendl;coutendl;coutsetw(20)*endl;coutendl;coutendl;coutsetw(50) -n; coutsetw(50) 请选择您所需的操作 n;coutsetw(50) n; coutsetw(50) 操作 1.并按回车键 n;coutsetw(50) n; coutsetw(50) 返回 0.并按回车键 n; coutsetw(50)choice; system(cls);/屏幕清零switch(choice) case 1:while(1)coutsetw(50) *n; coutsetw(50) * 请选择您的登陆身份! 并以回车结束
19、 *n; coutsetw(50) * *n;coutsetw(50) * 1.系统管理员 *n; coutsetw(50) * *n;coutsetw(50) * 2. 职工 *n; coutsetw(50) *n; coutsetw(20);EmpDB.empdata();break;case 0:coutendlendlendl;cout *endl;coutendlendl;cout 谢 谢 使 用 !endl;coutendlendlendl;cout *endl;coutendlendlendl;break;第4章 结束语(心得体会)通过这一个段时间的学习,发现了自己的很多不足,自
20、己知识的很多漏洞,也有很多闻所未闻的东西,从而更加明白知识扎实的重要性,理解实践能力的重要性!因为基础知识的不扎实让我在这次课程设计中走了许多弯路,不过我认为是值得的,它大大的补充了我知识不足的那一面,我始终相信付出必有收获。 这次的课程设计,可以说是苦乐交加。在程序设计过程中,不仅检验、巩固了我所学的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。 它为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来
21、,锻炼学生的分析解决实际问题的能力。提高学生运用所学知识解决实际问题的能力。课程设计这类实践训练是我们迈向社会,从事职业工作前一个必不少的过程。“千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义。我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。通过这次人事管理系统的设计,我在多方面都有所提高。首先,整体与局部的把握,在系统设计前,需要整体思考人事管理系统所包含的信息及其实现的功能,在设计过程中,再思考局部功能实现的完整性与整个程序的结合。其次,在实现用户权限设置这个功能时,通过查阅课本、资料,实践,对字符串的使用更加熟
22、悉、了解,能够熟练运用字符串,而且加强了对类中参数传值的使用,巩固了类定义,函数成员使用等知识,并通过条件语句实现不同的人设置不同的操作。再者,实现删除功能时,通过查询资料、借鉴前人的经验,明白由于使用的是文件链表操作,可以使用标记实现删除功能,且保证删除和全删的标记不同。然后,在实现查找功能时,更熟练了指针对象的使用。最后,在整个程序运行时,考虑到屏幕出现的效果,查阅资料及其前人的登录系统代码,了解了库函数中的屏幕清零函数并能正确使用。课程设计使我对c+课程又进行了系统的复习,独立思考的能力也有了提高。在此感谢我们的汤亚玲老师对我们细心的指导,同时也非常感谢对我帮助过的同学们,谢谢你们对我的帮助和支持,让我感受到同学的友谊。参考文献1.C+语言程序设计(第四版)2.高质量c+编程指南3.深入浅出MFC4.c+primer