面向对象课程设计报告课程设计题目:职工信息管理系统姓名:班级:学号:指导老师:2011年11月8日目录摘要 (3)第一章绪论 (4)1.1面向对象C++语言程序设计 (4)1.2职工信息管理系统 (4)1.3程序编译环境 (4)第二章职工信息管理系统需求分析 (5)2.1编写目的 (5)2.2需求概述 (5)2.3需求说明 (6)第三章:详细设计 (7)3.1编写目的 (7)3.2详细设计 (10)第四章:源程序编码及实现 (11)4.1程序源代码 (16)4.2程序实现结果 (17)第五章:系统测试 (18)第六章:结束语 (21)参考文献: (21)摘要在当今社会,互联网空间的发展,给人们的工作和生活带来了极大的便利和高效,信息化,电子化已经成为节约运营成本,提高工作效率的首选。
当前大量企业的职工管理尚处于手工作业阶段,不但效率低下,还常常因为管理的不慎而出现纰漏。
随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。
管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。
本程序是一个关于职工信息管理的系统,通过这个系统用户可以简捷、方便的对职工信息进行增加、修改、添加、查询、浏览等功能,它不仅可以帮助企业单位达到员工管理办公自动化、节约管理成本、更能达到提高企业单位工作效率的目的。
关键词:职工,信息管理,系统,程序一.绪论1.1面向对象C++语言程序设计C++是种面向对象的程序设计语言,它是在C语言基础上发展起来的。
虽然它不是最早的面向对象的程序设计语言,但是它是目前使出比较广泛的面向对象的程序设计语言。
什么是面向对象?简单地说,它和面向过程—样都是软件开发的一种方法。
但是它与面向过程不同,面向对象是—种运用对象、类、继承、封装、聚合、消息传递、多态性等概念来构造系统的软件开发方法。
1.2职工信息管理系统在当今信息技术高速发展的时代,企业单位迫切需要这样一个系统:它能高效的管理企业或单位内部所有员工的个人信息,并能正确快速的对系统的使用者的操作做出回应,以提高效率,降低成本。
该系统能够满足以上的要求,使用户可以快速准确的管理员工的信息。
1.3程序编译环境使用Visual C++ 6.0集成环境来编辑、编译并运行程序。
Visual C++ 不仅仅是一个编译器。
它是一个全面的应用程序开发环境,使用它你充分利用具有面向对象特性的C++ 来开发出专业级的Windows 应用程序。
为了能充分利用这些特性,你必须理解C++ 程序设计语言。
二.需求分析2.1 编写目的:通过对用户需求进行调查分析,写出需求分析文档作为项目设计的基本准则要求,以及作为系统分析员进行系统分析和测试人员进行测试时的手册2.2需求概述:设计一个职工信息管理系统,使之能提供以下功能:➢录入职工信息并保存➢浏览所有职工信息➢查询职工信息➢修改职工信息并保存➢添加职工信息2.3 需求说明:本系统所实现的主要功能:(1)添加新成员,实现对新加入职工信息的录入,所有的信息当中主码即职工信息编号必须填写。
(2)删除职工信息,当公司有职工因故离职时,需要删除员工信息时,释放掉它所占据的数据库空间,就可以在列表中选中所要删除的记录,然后点击删除。
如果确认删除则在弹出的消息框中点击确定即可删除所选的记录。
(3)修改员工信息,由于某种原因可能导致在记录员工信息时出现错误,需要对员工信息进行修改。
在员工信息系统主窗口中选择所要修改的成员信息进行修改,点击修改后将会弹出消息框,如果确认修改则点击确定,则修改数据成功。
(4)显示职工信息,在删除职工信息和添加职工信息成功后,点击显示按钮则可对职工信息记录进行更新,显示职工信息的最新记录。
(5)姓名检索信息,点击此按钮则可以显示出当前那一条或几条员工信息,用名字来查看员工信息。
综上本系统可以对员工信息实现科学自动的管理,其中包括显示职工基本信息,并实现信息的添加、删除、显示、及检索。
经过调试,程序性能良好。
三.详细设计3.1编写目的:根据项目概要设计说明书,在项目概要设计的基础之上,对系统进行详细设计,以便下一步进行程序编码工作。
3.2详细设计:对应于总体设计时的系统功能模块图,各个功能模块的处理逻辑如下:系统功能模块图:(1)系统的主要模块:增加模块、显示模块、删除模块、计算模块、检索模块(2)员工管理系统的主界面设置如下图:图一员工管理系统的主界面(3)职工信息记录的显示界面设计如下图:图二职工信息增加记录的显示界面教师的:工人的:在页面上用按键1/2来选择是添加教师或者工人,如上两图显示。
显示按钮完成的功能:在对员工进行信息记录完成时,单击此按钮可以对其进行查看。
当显示成功时,系统会下图所四.源程序编码及实现·4.1源程序代码:#include <iostream>#include <string>using namespace std;class employee{public:virtual void display()=0;protected:int num;string name;string sex;float income;int birthday;int workday;int age;};class teacher:public employee{public:void getdata(){cout<<"请输入编号:"<<endl;cin>>num;cout<<"请输入姓名:"<<endl;cin>>name;cout<<"请输入姓别:"<<endl;cin>>sex;cout<<"请输入薪水:"<<endl;cin>>income;cout<<"请输入生日:"<<endl;cin>>birthday;cout<<"请输入工作年龄:"<<endl;cin>>workdayage=workday-birthday;}void display(){cout<<"编号:"<<num<<endl;cout<<"姓名:"<<name<<endl;cout<<"姓别:"<<sex<<endl;cout<<"薪水:"<<income<<endl;cout<<"生日:"<<birthday<<endl;cout<<"参加工作时间:"<<workday<<endl; cout<<"年龄:"<<age<<endl;}int getage(){age=workday-birthday;return age;}int getnum(){return num;}string getname(){return name;}};class worker:public employee{public:void getdata(){cout<<"请输入编号:"<<endl;cin>>num;cout<<"请输入姓名:"<<endl;cin>>name;cout<<"请输入姓别:"<<endl;cin>>sex;cout<<"请输入薪水:"<<endl;cin>>income;cout<<"请输入生日:"<<endl;cin>>birthday;cout<<"请输入工作年龄:"<<endl; cin>>workday;}void display(){cout<<"编号:"<<num<<endl;cout<<"姓名:"<<name<<endl;cout<<"姓别:"<<sex<<endl;cout<<"薪水:"<<income<<endl;cout<<"生日:"<<birthday<<endl;cout<<"参加工作时间:"<<workday<<endl; cout<<"年龄:"<<age<<endl;}int getage(){age=workday-birthday;return age;}int getnum(){return num;}string getname(){return name;}};void menu(int &choice){cout<<"\t\t\t 职工信息管理系统"<<endl; cout<<"\t\t\t1、增加一位教师记录"<<endl; cout<<"\t\t\t2、增加一位工人记录"<<endl; cout<<"\t\t\t3、显示全部职工记录"<<endl; cout<<"\t\t\t4、计算教师平均年龄"<<endl; cout<<"\t\t\t5、计算工人平均年龄"<<endl; cout<<"\t\t\t6、删除一个教师"<<endl;cout<<"\t\t\t7、删除一个工人"<<endl;cout<<"\t\t\t8、按姓名检索所有信息"<<endl; cout<<"\t\t\t0、结束程序运行"<<endl;cout<<"\t\t 请输入你的选择:";cin>>choice;}int main(){int choice=0;int indx1=0,indx2=0;bool flag=false;teacher t[50];worker w[50];while (1){int i=0;int average=0;int temp;string tname;menu(choice);switch (choice){case 1:t[indx1++].getdata();break;case 2:w[indx2++].getdata();break;case 3:cout<<"显示所有教师信息:"<<endl; for (i=0;i!=indx1;++i){t[i].display();}cout<<"显示所有工人信息:"<<endl; for (i=0;i!=indx2;++i){w[i].display();}break;case 4:cout<<"教师平均年龄:"<<endl;for (i=0;i!=indx1;++i){average+=t[i].getage();}cout<<average/indx1;break;case 5:cout<<"工人平均年龄:"<<endl;for (i=0;i!=indx2;++i){average+=w[i].getage();}cout<<average/indx2;break;case 6:cout<<"请输入要删除教师的编号"<<endl; cin>>temp;for (i=0;i!=indx1;++i){if (temp==t[i].getnum()){do{t[i]=t[i+1];++i;} while (i!=indx1);cout<<"已删除"<<endl;--indx1;break;}}break;case 7:cout<<"请输入要删除工人的编号"<<endl; cin>>temp;for (i=0;i!=indx2;++i){if (temp==w[i].getnum()){do{w[i]=w[i+1];++i;} while (i!=indx2);cout<<"已删除"<<endl;--indx2;break;}}break;case 8:cout<<"请输入姓名:"<<endl;cin>>tname;for (i=0;i!=indx1;++i){if (tname==t[i].getname()){cout<<"这位是教师"<<endl;t[i].display();}}for (i=0;i!=indx2;++i){if (tname==w[i].getname()){cout<<"这位是工人"<<endl;w[i].display();}}break;case 0:flag=true;break;}if (flag){break;}}return 0;}·4.2程序实现结果:五.系统测试5.1 测试方法首先运行程序,进入主界面选定要增加的员工信息,在职工编号中填入所要增加的职工编号,添加职工信息。