《面向对象程序设计》人员信息管理系统

合集下载

面向对象程序设计实训说明书 企业人事管理系统

面向对象程序设计实训说明书 企业人事管理系统

中北大学面向对象程序设计实训说明书学院、系:软件学院专业:软件工程学生班级:13140xxx学生姓名:学号:131401xxxx 设计题目:企业人事管理系统起迄日期: 2015年6月29日- 2015年7月10日指导教师:洪军2015 年 7月 8 日一、需求分析1、引言需求规格说明书是需求分析的产物,它是软件系统生存期中软件定义阶段的最后一个步骤。

作为整个软件开发过程的指南,它也是软件开发人员开发出符合用户要求的软件的基础。

1.1 编写目的软件需求说明书的编制目的是为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解,使之成为整个开发工作的基础。

本软件需求说明书的读者是系统开发人员或合同约定的人员。

1.2 背景说明(1)本系统的名称是:企业人事管理系统。

(2)本系统能为其他的系统提供人事数据。

1.3 定义数据字典:关于数据的信息的集合,也即是对数据流图中包含的元素的定义的集合。

2、任务概述2.1 项目背景人事档案管理是现代企业人事资源管理中的重要内容,也是人力资源开发利用的基础性工作。

人事档案管理在信息化之前,在人员进出、离退休、升迁、岗位变动、职称变动、学位变动,以及档案管理人员的变动等方面存在诸多不利于管理的地方,不适应现代的企业管理形势和人力资源开发利用的要求。

开发人事档案管理系统使企业的人事档案管理工作实现了信息化、规范化,不仅使企业能够高效率完成人事管理的日常工作,还使企业深入开发利用人力资源成为可能。

2.2 用户的特点本产品面向的客户为企业的人事管理部门,其最终用户是企业人事部门的工作人员。

部门有专职的人事数据录入人员,具有一定的计算机操作知识;系统的维护人员是企业的信息中心的信息维护员,对网络和数据库的操作比较熟悉;数据录入员负责人事数据的录入及日常更新,信息维护员负责人事数据的备份和其他管理工作。

企业的人员调进与调出比较频繁。

在企业竞争日趋激烈的情况下,企业越来越重视发掘蕴含在人事管理中的信息,并且利用这些信息为企业服务,提高企业的市场竞争力。

2019年JAVA面向对象程序设计学生个人信息管理系统

2019年JAVA面向对象程序设计学生个人信息管理系统

软件学院课程设计报告书课程名称面向对象程序设计设计题目学生个人信息管理系统专业班级嵌入式软件09-2学号04姓名王翀指导教师2011 年6 月目录1 设计时间 .............................................................. 错误!未定义书签。

2 设计目的 .............................................................. 错误!未定义书签。

3设计任务 ............................................................... 错误!未定义书签。

4 设计内容 .............................................................. 错误!未定义书签。

需求分析 ............................................................ 错误!未定义书签。

问题描述 ........................................................ 错误!未定义书签。

基本要求 ........................................................ 错误!未定义书签。

总体设计 ............................................................ 错误!未定义书签。

包的描述 ........................................................ 错误!未定义书签。

类的描述 ........................................................ 错误!未定义书签。

面向对象课程设计高校人事管理系统

面向对象课程设计高校人事管理系统

面向对象课程设计高校人事管理系统人事管理是企业和机构中关键的重要部门,其重要性不言而喻。

高校作为一种特殊的组织机构,在人事管理方面也存在着一些特殊性,因此需要一套高校人事管理系统来满足其管理需求。

本文就面向对象课程设计一个高校人事管理系统进行详细说明。

一、系统需求分析1.1 用户需求高校人事管理系统的用户主要包括人事管理人员、教师、技术人员和学生。

他们对系统的需求分别如下:- 人事管理人员:需要对教职工的档案信息、部门信息、职称晋升等进行管理,能够快速查询各种信息、对信息进行增删改查等操作。

- 教师:需要查询自己的个人信息、工资、加班记录等,申请请假等。

- 技术人员:需要查询自己的个人信息、工资、加班记录等,申请请假等。

- 学生:需要查询教职工的一些基本信息,如姓名、职称、招生计划等。

1.2 功能需求高校人事管理系统主要包括以下功能:- 人事管理:包括对教职工档案信息的管理、部门信息的管理、职称晋升的管理等。

- 工资管理:包括计算教职工工资并进行发放等。

- 假期管理:包括对教职工假期进行管理,如请假申请、审核、已请假等操作。

- 考勤管理:包括对教职工考勤记录的管理,如请假记录、加班记录、缺勤记录等。

- 招聘管理:包括对招聘计划、面试安排等进行管理。

- 统计分析:能够快速查看人事信息、工资信息、假期信息等,进行统计分析。

二、系统设计2.1 技术栈高校人事管理系统采用Java语言开发,使用SpringMVC框架作为前端开发框架,Mybatis作为后端持久化框架,使用MySQL数据库进行数据存储。

2.2 系统架构高校人事管理系统采用B/S架构,前端使用HTML、CSS、JavaScript等技术开发,后端采用Java语言开发。

2.3 系统模块高校人事管理系统主要分为以下模块:- 登录管理:包括用户登录、用户认证等功能。

- 人事管理:包括人事档案信息管理、部门信息管理、职称晋升管理等。

- 工资管理:包括工资计算、工资发放等功能。

大学c++面向对象课程设计--公司人员管理系统

大学c++面向对象课程设计--公司人员管理系统

//设计者hxd//完成时间6小时//完成日期3013/12/19//主要功能:/*完成了公司的四类人员:经理、技术人员、销售人员和销售经理的管理输入功能显示功能读取功能保存功添加功能删除功能计算功能查询功能统计功能*/#include <iostream>#include <fstream>#include <string>#include <iomanip>#include <stdlib.h>#include <stdio.h>using namespace std;const Sell_Manager_MAXSPACE=200; //销售经理数组最大容量const Sell_Manager_MAXNUM=2; //销售经理数组当前容量int Sell_Manager_count_num=Sell_Manager_MAXNUM-1; //用于增加删除double Sell_Manager_rate=0.03; //销售经理销售提成(用于计算销售经理手下的员工总销售额为销售经理带来的利润)const Clerk_MAXSPACE=200; //员工数组最大容量const Clerk_MAXNUM=2; //员工数组当前容量int Clerk_count_num=Clerk_MAXNUM-1; //用于增加删除和读取文件double Clerk_rate=0.2; //员工销售提成const Technicist_MAXSPACE=200; //技数组最大容量const Technicist_MAXNUM=2; //技工数组当前容量int Technicist_count_num=Technicist_MAXNUM-1; //用于增加删除double Technicist_rate=80; //技工每小时工资const Manager_MAXSPACE=200; //经理数组最大容量const Manager_MAXNUM=2; //经理数组当前容量int Manager_count_num=Manager_MAXNUM-1; //用于增加删除double Manager_rate=80; //经理每小时工资class Person{protected:string name;string sex;char age[10];char num[10]; //工作编号char time[10];string department;string level;char wage[10]; //基本工资public:virtual void print()=0;virtual void set();virtual void show()=0;virtual void present();virtual void read()=0;virtual void save()=0;virtual void add()=0;virtual void del()=0;virtual void modify()=0;};class Clerk:virtual public Person{protected:char overtime_wage[10]; //员工加班费char sell_wage[10]; //员工销售额public:void print();void show();void read();void save();void add();void del();void modify();int calculate();friend int Sell_Manager_calculate(int); //是Cleck和Mamger的友元函数用于计算销售经理的总收入friend void Statistics();friend void inquire();};class Technicist:virtual public Person{protected:char Technicist_sun_wage[9];public:void print();void show();void read();void save();void add();void del();void modify();int calculate();friend void Statistics();friend void inquire();};class Sell_Manager:virtual public Person //总销售经理{protected:char sum_sell_wage[10]; //销售经理总销售额public:friend int Sell_Manager_calculate(int);void print();void show();void read();void save();void add();void del();void modify();friend void Statistics();friend void inquire();};class Manager:virtual public Person{public:void print();void show();void read();void save();void add();void del();void modify();friend void Statistics();friend void inquire();};Clerk c2[Clerk_MAXSPACE];Sell_Manager c1[Sell_Manager_MAXSPACE];Technicist c3[Technicist_MAXSPACE];Manager c4[Manager_MAXSPACE];void Sell_Manager_menu();void menu();void Clerk_menu();void Technicist_menu();void Manager_menu();void goodbuy();void wellcome();void Statistics();void inquire();int main(){wellcome();Person *p=NULL;while(1){int n,m;menu();cout<<"请输入选项以继续"<<endl;cin>>m;if(m==7){ goodbuy();break;}else{switch(m){case 1 :{p=c2;while(1){Clerk_menu();cout<<"请输入选项以继续"<<endl;cin>>m;if(m==8){cout<<"操作成功!"<<endl;break;}else{switch(m){case 1 :p->print();cout<<"操作成功!"<<endl;break;case 2 :p->show();cout<<"操作成功!"<<endl;break;case 3 :p->read();cout<<"操作成功!"<<endl;break;case 4 :p->save();cout<<"操作成功!"<<endl;break;case 5 :p->add();p->save();cout<<"操作成功!"<<endl;break;case 6 :p->del();p->save();cout<<"操作成功!"<<endl;break;case 7 :p->modify();p->save();cout<<"操作成功!"<<endl;break;}}}};break;case 2 :{p=c1;while(1){Sell_Manager_menu();cout<<"请输入选项以继续"<<endl;cin>>n;if(n==8){cout<<"操作成功!"<<endl;break;}else{switch(n){case 1 :p->print();cout<<"操作成功!"<<endl;break;case 2 :p->show();cout<<"操作成功!"<<endl;break;case 3 :p->read();cout<<"操作成功!"<<endl;break;case 4 :p->save();cout<<"操作成功!"<<endl;break;case 5 :p->add();p->save();cout<<"操作成功!"<<endl;break;case 6 :p->del();p->save();cout<<"操作成功!"<<endl;break;case 7 :p->modify();p->save();cout<<"操作成功!"<<endl;break;}}}};break;case 3 :{p=c3;while(1){Technicist_menu();cout<<"请输入选项以继续"<<endl;cin>>m;if(m==8){cout<<"操作成功!"<<endl;break;}else{switch(m){case 1 :p->print();cout<<"操作成功!"<<endl;break;case 2 :p->show();cout<<"操作成功!"<<endl;break;case 3 :p->read();cout<<"操作成功!"<<endl;break;case 4 :p->save();cout<<"操作成功!"<<endl;break;case 5 :p->add();p->save();cout<<"操作成功!"<<endl;break;case 6 :p->del();p->save();cout<<"操作成功!"<<endl;break;case 7 :p->modify();p->save();cout<<"操作成功!"<<endl;break;}}}};break;case 4 :{p=c4;while(1){Manager_menu();cout<<"请输入选项以继续"<<endl;cin>>m;if(m==8){cout<<"操作成功!"<<endl;break;}else{switch(m){case 1 :p->print();cout<<"操作成功!"<<endl;break;case 2 :p->show();cout<<"操作成功!"<<endl;break;case 3 :p->read();cout<<"操作成功!"<<endl;break;case 4 :p->save();cout<<"操作成功!"<<endl;break;case 5 :p->add();cout<<"操作成功!"<<endl;break;case 6 :p->del();p->save();cout<<"操作成功!"<<endl;break;case 7 :p->modify();cout<<"操作成功!"<<endl;break;}}}};break;case 5 :{Statistics();}break;case 6:{inquire();break;}}}}return 0;}void inquire(){cout<<"输入1从文件中读取数据,输入0跳过"<<endl;Person *p2=NULL;int nnn;cin>>nnn;if(nnn==1){p2=c2;p2->read();p2=c1;p2->read();p2=c3;p2->read();p2=c4;p2->read();}cout<<"根据编号查询请输入1"<<endl;cout<<"根据姓名查询请输入2"<<endl;char inquire_num[10];string inquire_name;int nu,i;cin>>nu;if(nu==1){int ii=0;cout<<"请输入被查询对象的编号:"<<endl;cin>>inquire_num;for(i=0;i<Clerk_MAXNUM;i++){if (!strcmp(inquire_num,c2[i].num)){cout<<"该对象为员工"<<endl;c2[i].present();cout<<"对象的加班工资"<<c2[i].overtime_wage<<setw(30)<<"对象的销售额"<<c2[i].sell_wage<<endl;cout<<"总工资为:"<<c2[i].calculate()<<endl;ii++;}}for(i=0;i<Sell_Manager_MAXNUM;i++){if (!strcmp(inquire_num,c1[i].num)){cout<<"该对象为销售经理"<<endl;c1[i].present();cout<<"总工资为:"<<Sell_Manager_calculate(i)<<endl;ii++;}}for(i=0;i<Technicist_MAXNUM;i++){if (!strcmp(inquire_num,c3[i].num)){cout<<"该对象为技工"<<endl;c3[i].present();cout<<"总工资为:"<<c3[i].calculate()<<endl;ii++;}}for(i=0;i<Manager_MAXNUM;i++){if (!strcmp(inquire_num,c4[i].num)){cout<<"该对象为经理"<<endl;c4[i].present();ii++;}}if(ii!=1){cout<<"没有该对象的记录!"<<endl;}}if(nu==2){int ii=0;cout<<"请输入被查对象的姓名"<<endl;cin>>inquire_name;for(i=0;i<Clerk_MAXNUM;i++){if (inquire_name==c2[i].name){cout<<"该对象为员工"<<endl;c2[i].present();cout<<"对象的加班工资"<<c2[i].overtime_wage<<setw(30)<<"对象的销售额"<<c2[i].sell_wage<<endl;cout<<"总工资为:"<<c2[i].calculate()<<endl;ii++;}}for(i=0;i<Sell_Manager_MAXNUM;i++){if (inquire_name==c1[i].name){cout<<"该对象为销售经理"<<endl;c1[i].present();cout<<"总工资为:"<<Sell_Manager_calculate(i)<<endl;ii++;}}for(i=0;i<Technicist_MAXNUM;i++){if (inquire_name==c3[i].name){cout<<"该对象为技工"<<endl;c3[i].present();cout<<"总工资为:"<<c3[i].calculate()<<endl;ii++;}}for(i=0;i<Manager_MAXNUM;i++){if (inquire_name==c4[i].name){cout<<"该对象为经理"<<endl;c4[i].present();ii++;}}if(ii!=1){cout<<"无该对象的记录!"<<endl;}}}void Statistics(){cout<<"输入1从文件中读取数据,输入0跳过"<<endl;Person *p1=NULL;int nnn;cin>>nnn;if(nnn==1){p1=c2;p1->read();p1=c1;p1->read();p1=c3;p1->read();p1=c4;p1->read();}int i,j,f2=0,m2=0,f1=0,m1=0,f3=0,m3=0,f4=0,m4=0;for(i=0;i<Clerk_MAXNUM;i++){if (c2[i].sex=="男")f2++;elsem2++;}cout<<"男员工数量为:"<<f2<<setw(43)<<"女员工数量为:"<<m2<<endl;for(i=0;i<Sell_Manager_MAXNUM;i++){if (c1[i].sex=="男")f1++;elsem1++;}cout<<"男销售经理数量为:"<<f1<<setw(43)<<"女销售经理数量为:"<<m1<<endl;for(i=0;i<Technicist_MAXNUM;i++){if (c3[i].sex=="男")f3++;elsem3++;}cout<<"男技工数量为:"<<f3<<setw(43)<<"女技工数量为:"<<m3<<endl;for(i=0;i<Manager_MAXNUM;i++){if (c4[i].sex=="男")f4++;elsem4++;}cout<<"男员工数量为:"<<f4<<setw(43)<<"女员工数量为:"<<m4<<endl;cout<<"男员工总数为:"<<f1+f2+f3+f4<<setw(44)<<"女员工总数为:"<<m1+m2+m3+m4<<endl;intmax_wage1=0,min_wage1,max_wage2=0,min_wage2,max_wage3=0,min_wage3,max_wage4 =0,min_wage4;for(i=0;i<Clerk_MAXNUM;i++)if(c2[i].calculate()>max_wage2){max_wage2=c2[i].calculate();j=i;}cout<<"职员的最高工资为:"<<max_wage2<<setw(30)<<"姓名为:"<<c2[j].name<<endl;min_wage2=max_wage2;for(i=0;i<Clerk_MAXNUM;i++)if(c2[i].calculate()<min_wage2){min_wage2=c2[i].calculate();j=i;}cout<<"职员的最低工资为:"<<min_wage2<<setw(30)<<"姓名为:"<<c2[j].name<<endl;for(i=0;i<Sell_Manager_MAXNUM;i++)if(Sell_Manager_calculate(i)>max_wage1){max_wage1=Sell_Manager_calculate(i);j=i;}cout<<"销售经理的最高工资为:"<<max_wage1<<setw(25)<<"姓名为:"<<c1[j].name<<endl;min_wage1=max_wage1;for(i=0;i<Sell_Manager_MAXNUM;i++)if(Sell_Manager_calculate(i)<min_wage1){min_wage1=Sell_Manager_calculate(i);j=i;}cout<<"销售经理的最低工资为:"<<min_wage1<<setw(25)<<"姓名为:"<<c1[j].name<<endl;for(i=0;i<Technicist_MAXNUM;i++)if(c3[i].calculate()>max_wage3){max_wage3=c3[i].calculate();j=i;}cout<<"技工的最高工资为:"<<max_wage3<<setw(28)<<"姓名为:"<<c3[j].name<<endl;min_wage3=max_wage3;for(i=0;i<Technicist_MAXNUM;i++)if(c3[i].calculate()<min_wage3){min_wage3=c3[i].calculate();j=i;}cout<<"技工的最低工资为:"<<min_wage3<<setw(30)<<"姓名为:"<<c3[j].name<<endl;for(i=0;i<Manager_MAXNUM;i++)if(atoi(c4[i].wage)>max_wage4){max_wage4=atoi(c4[i].wage);j=i;}cout<<"经理的最高工资为:"<<max_wage4<<setw(28)<<"姓名为:"<<c4[j].name<<endl;min_wage4=max_wage4;for(i=0;i<Manager_MAXNUM;i++)if(atoi(c4[i].wage)<min_wage4){min_wage4=atoi(c4[i].wage);j=i;}cout<<"的最低工资为:"<<min_wage4<<setw(34)<<"姓名为:"<<c4[j].name<<endl;int sum_wage=0,num=0;for(i=0;i<Clerk_MAXNUM;i++){sum_wage=c2[i].calculate()+sum_wage;num++;}for(i=0;i<Sell_Manager_MAXNUM;i++){sum_wage=Sell_Manager_calculate(i)+sum_wage;num++;}for(i=0;i<Technicist_MAXNUM;i++){sum_wage=c3[i].calculate()+sum_wage;num++;}for(i=0;i<Manager_MAXNUM;i++){sum_wage=atoi(c4[i].wage)+sum_wage;num++;}cout<<"总工资为:"<<sum_wage<<" 总人数为:"<<num<<" 平均工资为:"<<sum_wage/num<<endl;}void Person::present(){cout<<"对象的名字为:"<<this->name<<setw(26)<<"对象的性别为:"<<this->sex<<endl;cout<<"对象的年龄为:"<<this->age<<setw(30)<<"对象的编号为:"<<this->num<<endl;cout<<"对象的工作时间为:"<<this->time<<setw(26)<<"对象的部门为:"<<this->department<<endl;cout<<"对象的级别为:"<<this->level<<setw(30)<<"对象的基本工资为:"<<this->wage<<endl;}void Person::set(){cout<<"请输入对象的名字:";cin>>this->name;while (1){ cout<<"请输入对象的性别(请输入“男”或者“女”):";cin>>this->sex;if(this->sex=="男"||this->sex=="女")break;elsecout<<"输入错误!"<<endl;}while (1){cout<<"请输入对象的年龄(0-100):";cin>>this->age;if (atoi(this->age)>0&&atoi(this->age)<100)break;elsecout<<"输入错误!"<<endl;}while(1){cout<<"请输入对象的编号(9位数):";cin>>this->num;if(atol(this->num)>99999999&&atol(this->num)<1000000000)break;elsecout<<"输入错误!"<<endl;}while(1){cout<<"请输入对象的工作时间(小时/天):";cin>>this->time;if(atol(this->time)>=0&&atol(this->time)<=24)break;elsecout<<"输入错误!"<<endl;}cout<<"请输入对象的部门:";cin>>this->department;cout<<"请输入对象的级别:";cin>>this->level;while(1){cout<<"请输入的基本工资(元):";cin>>this->wage;if(atol(this->wage)>0)break;elsecout<<"输入错误!"<<endl;}}int Clerk::calculate(){int ss;Clerk *p2=c2;if(atol(c2[0].wage)==0)p2->read();ss=atoi(overtime_wage)+atoi(sell_wage)*Clerk_rate+atoi(wage);return ss;}void Clerk::print(){int i;for(i=0;i<Clerk_MAXNUM;i++){c2[i].set();while(1){cout<<"请输入对象的加班工资";cin>>c2[i].overtime_wage;if(atol(c2[i].overtime_wage)>0)break;elsecout<<"输入错误!"<<endl;}while(1){cout<<"请输入对象的销售额";cin>>c2[i].sell_wage;if(atol(c2[i].sell_wage)>0)break;elsecout<<"输入错误!"<<endl;}}}void Clerk::show(){int i;for(i=0;i<Clerk_count_num+1;i++){c2[i].present();cout<<"对象的加班工资"<<c2[i].overtime_wage<<setw(30)<<"对象的销售额"<<c2[i].sell_wage<<endl;cout<<"总工资为:"<<c2[i].calculate()<<endl;}}void Clerk::read(){fstream Clerkfile("员工信息.dat",ios::in|ios::out);int i;if(!Clerkfile){cerr<<"打开错误!"<<endl;exit(1);}for(i=0;i<Clerk_count_num+1;i++)Clerkfile>>c2[i].name>>c2[i].sex>>c2[i].age>>c2[i].num>>c2[i].time>>c2[i].department >>c2[i].level>>c2[i].wage>>c2[i].overtime_wage>>c2[i].sell_wage;Clerkfile.close();}void Clerk::save(){ofstream Clerkfile;Clerkfile.open("员工信息.dat");for(int i=0;i<Clerk_count_num+1;i++)Clerkfile<<c2[i].name<<" "<<c2[i].sex<<" "<<c2[i].age<<" "<<c2[i].num<<" "<<c2[i].time<<" "<<c2[i].department<<" "<<c2[i].level<<" "<<c2[i].wage<<" "<<c2[i].overtime_wage<<" "<<c2[i].sell_wage<<endl;Clerkfile.close();}void Clerk::add(){Clerk_count_num++;c2[Clerk_count_num].set();while(1){cout<<"请输入对象的加班工资:";cin>>c2[Clerk_count_num].overtime_wage;if(atol(c2[Clerk_count_num].overtime_wage)>0)break;elsecout<<"输入错误!"<<endl;}while(1){cout<<"请输入对象的销售额:";cin>>c2[Clerk_count_num].sell_wage;if(atol(c2[Clerk_count_num].sell_wage)>0)break;elsecout<<"输入错误!"<<endl;}}void Clerk::del(){int i;int n;for(i=0;i<Clerk_count_num+1;i++){cout<<i+1<<". 对象名字为:"<<c2[i].name<<endl;}cout<<"请输入要删除的序号"<<endl;cin>>n;for(i=n-1;i<Clerk_count_num+1;i++){c2[n]=c2[n-1];}Clerk_count_num--;}void Clerk::modify(){int n,i;for(i=0;i<Clerk_count_num+1;i++){cout<<i+1<<". 对象的名字为:"<<c2[i].name<<endl;}cout<<"请输入要更改的序号"<<endl;cin>>n;c2[n-1].set();cout<<"对象的加班工资";cin>>c2[i-1].overtime_wage;cout<<"对象的销售额";cin>>c2[i-1].sell_wage;}int Sell_Manager_calculate(int d){int i;double sum1=0,sum2;Clerk *p1=c2;if(atol(c2[0].sell_wage)==0)p1->read();for(i=0;i<Clerk_count_num+1;i++)sum1=atol(c2[i].sell_wage)+sum1;sum2=sum1*Sell_Manager_rate+atol(c1[d].wage);return sum2;}void Sell_Manager::print(){int i;for(i=0;i<Sell_Manager_MAXNUM;i++){c1[i].set();}}void Sell_Manager::show(){int i;for(i=0;i<Sell_Manager_count_num+1;i++){c1[i].present();cout<<"总工资为:"<<Sell_Manager_calculate(i)<<endl;}}void Sell_Manager::read(){fstream Sell_Managerfile("销售经理信息.dat",ios::in|ios::out);int i;if(!Sell_Managerfile){cerr<<"打开错误!"<<endl;exit(1);}for(i=0;i<Sell_Manager_count_num+1;i++)Sell_Managerfile>>c1[i].name>>c1[i].sex>>c1[i].age>>c1[i].num>>c1[i].time>>c1[i].dep artment>>c1[i].level>>c1[i].wage;Sell_Managerfile.close();}void Sell_Manager::save(){ofstream Sell_Managerfile;Sell_Managerfile.open("销售经理信息.dat");for(int i=0;i<Sell_Manager_count_num+1;i++)Sell_Managerfile<<c1[i].name<<" "<<c1[i].sex<<" "<<c1[i].age<<" "<<c1[i].num<<" "<<c1[i].time<<" "<<c1[i].department<<" "<<c1[i].level<<" "<<c1[i].wage<<endl;Sell_Managerfile.close();}void Sell_Manager::add(){Sell_Manager_count_num++;c1[Sell_Manager_count_num].set();}void Sell_Manager::del(){int i;int n;for(i=0;i<Sell_Manager_count_num+1;i++){cout<<i+1<<". 对象的名字为:"<<c1[i].name<<endl;}cout<<"请输入要删除的序号"<<endl;cin>>n;for(i=n-1;i<Sell_Manager_count_num+1;i++){c1[n]=c1[n-1];}Sell_Manager_count_num--;}void Sell_Manager::modify(){int n,i;for(i=0;i<Sell_Manager_count_num+1;i++){cout<<i+1<<". 对象的名字为:"<<c1[i].name<<endl;}cout<<"请输入要更改的序号"<<endl;cin>>n;c1[n-1].set();}int Technicist::calculate(){int ww;ww=atol(wage)+atol(time)*Technicist_rate;return ww;}void Technicist::print(){int i;for(i=0;i<Technicist_MAXNUM;i++){c3[i].set();}}void Technicist::show(){int i;for(i=0;i<Technicist_count_num+1;i++){c3[i].present();cout<<"总工资为:"<<c3[i].calculate()<<endl;}}void Technicist::read(){fstream Technicistfile("技工信息.dat",ios::in|ios::out);int i;if(!Technicistfile){cerr<<"打开错误!"<<endl;exit(1);}for(i=0;i<Technicist_count_num+1;i++)Technicistfile>>c3[i].name>>c3[i].sex>>c3[i].age>>c3[i].num>>c3[i].time>>c3[i].depart ment>>c3[i].level>>c3[i].wage;Technicistfile.close();}void Technicist::save(){ofstream Technicistfile;Technicistfile.open("技工信息.dat");for(int i=0;i<Technicist_count_num+1;i++)Technicistfile<<c3[i].name<<" "<<c3[i].sex<<" "<<c3[i].age<<" "<<c3[i].num<<" "<<c3[i].time<<" "<<c3[i].department<<" "<<c3[i].level<<" "<<c3[i].wage<<endl;Technicistfile.close();}void Technicist::add(){Technicist_count_num++;c3[Technicist_count_num].set();}void Technicist::del(){int i;int n;for(i=0;i<Technicist_count_num+1;i++){cout<<i+1<<". 对象的名字为:"<<c3[i].name<<endl;}cout<<"请输入要删除的序号"<<endl;cin>>n;for(i=n-1;i<Technicist_count_num+1;i++){c3[n]=c3[n-1];}Technicist_count_num--;}void Technicist::modify(){int n,i;for(i=0;i<Technicist_count_num+1;i++){cout<<i+1<<". 对象的名字为:"<<c3[i].name<<endl;}cout<<"请输入要更改的序号"<<endl;cin>>n;c3[n-1].set();}void Manager::print(){int i;for(i=0;i<Manager_MAXNUM;i++)c4[i].set();}}void Manager::show(){int i;for(i=0;i<Manager_count_num+1;i++){c4[i].present();}}void Manager::read(){fstream Managerfile("经理信息.dat",ios::in|ios::out);int i;if(!Managerfile){cerr<<"打开错误!"<<endl;exit(1);}for(i=0;i<Manager_count_num+1;i++)Managerfile>>c4[i].name>>c4[i].sex>>c4[i].age>>c4[i].num>>c4[i].time>>c4[i].departm ent>>c4[i].level>>c4[i].wage;Managerfile.close();}void Manager::save(){ofstream Managerfile;Managerfile.open("经理信息.dat");for(int i=0;i<Manager_count_num+1;i++)Managerfile<<c4[i].name<<" "<<c4[i].sex<<" "<<c4[i].age<<" "<<c4[i].num<<" "<<c4[i].time<<" "<<c4[i].department<<" "<<c4[i].level<<" "<<c4[i].wage<<endl;Managerfile.close();}void Manager::add(){Manager_count_num++;c4[Manager_count_num].set();}void Manager::del(){int i;int n;for(i=0;i<Manager_count_num+1;i++)cout<<i+1<<". 对象的名字为:"<<c4[i].name<<endl;}cout<<"请输入要删除的序号"<<endl;cin>>n;for(i=n-1;i<Manager_count_num+1;i++){c4[n]=c4[n-1];}Manager_count_num--;}void Manager::modify(){int n,i;for(i=0;i<Manager_count_num+1;i++){cout<<i+1<<". 对象的名字为:"<<c4[i].name<<endl;}cout<<"请输入要更改的序号"<<endl;cin>>n;c4[n-1].set();}void Sell_Manager_menu(){cout<<"********************************"<<endl;cout<<" 1.输入公司销售经理信息"<<endl;cout<<" 2.显示公司销售经理信息"<<endl;cout<<" 3.读取公司销售经理信息"<<endl;cout<<" 4.保存公司销售经理息"<<endl;cout<<" 5.增加公司销售经理信息"<<endl;cout<<" 6.删除公司销售经理信息"<<endl;cout<<" 7.更改公司销售经理信息"<<endl;cout<<" 8.退出当前菜单"<<endl;cout<<"********************************"<<endl; }void menu(){cout<<"********************************"<<endl;cout<<" 1.公司员工管理"<<endl;cout<<" 2.公司销售经理管理"<<endl;cout<<" 3.公司技工管理"<<endl;cout<<" 4.公司经理管理"<<endl;cout<<" 5.统计各数据"<<endl;cout<<" 6.查询公司人员"<<endl;cout<<" 7.退出系统"<<endl;cout<<"********************************"<<endl;}void Clerk_menu(){cout<<"********************************"<<endl;cout<<" 1.输入公司员工信息"<<endl;cout<<" 2.显示公司员工信息"<<endl;cout<<" 3.读取公司员工信息"<<endl;cout<<" 4.保存公司员工信息"<<endl;cout<<" 5.增加公司员工信息"<<endl;cout<<" 6.删除公司员工信息"<<endl;cout<<" 7.更改公司员工信息"<<endl;cout<<" 8.退出当前菜单"<<endl;cout<<"********************************"<<endl;}void Technicist_menu(){cout<<"********************************"<<endl;cout<<" 1.输入公司技工信息"<<endl;cout<<" 2.显示公司技工信息"<<endl;cout<<" 3.读取公司技工信息"<<endl;cout<<" 4.保存公司技工信息"<<endl;cout<<" 5.增加公司技工信息"<<endl;cout<<" 6.删除公司技工信息"<<endl;cout<<" 7.更改公司技工信息"<<endl;cout<<" 8.退出当前菜单"<<endl;cout<<"********************************"<<endl;}void Manager_menu(){cout<<"********************************"<<endl;cout<<" 1.输入公司经理信息"<<endl;cout<<" 2.显示公司经理信息"<<endl;cout<<" 3.读取公司经理信息"<<endl;cout<<" 4.保存公司经理信息"<<endl;cout<<" 5.增加公司经理信息"<<endl;cout<<" 6.删除公司经理信息"<<endl;cout<<" 7.更改公司经理信息"<<endl;cout<<" 8.退出当前菜单"<<endl;cout<<"********************************"<<endl;}void wellcome(){cout<<" ** ** "<<"欢"<<endl;cout<<" ****** ****** "<<endl;cout<<" ********** ********** "<<endl;cout<<" ************* ************* "<<"迎"<<endl;cout<<" ***************************** "<<endl;cout<<" *************************** "<<endl;cout<<" *********************** "<<"使"<<endl;cout<<" ******************* "<<endl;cout<<" ************* "<<endl;cout<<" ******* "<<"用"<<endl;cout<<" *** "<<endl;cout<<" * "<<"!"<<endl; }void goodbuy(){cout<<" ┆┏┓┏┓┆"<<endl;cout<<" ┆┏┛┻━━━┛┻┓┆谢"<<endl;cout<<" ┆┃┃┆"<<endl;cout<<" ┆┃━┃┆谢"<<endl;cout<<" ┆┃┳┛┗┳┃┆"<<endl;cout<<" ┆┃┃┆使"<<endl;cout<<" ┆┃┻┃┆"<<endl;cout<<" ┆┗━┓┏━┛┆用"<<endl;cout<<" ┆┃┃┆"<<endl;cout<<" ┆┃┗━━━┓┆!"<<endl;cout<<" ┆┃┣┓┆"<<endl;cout<<" ┆┃┏┛┆"<<endl;cout<<" ┆┗┓┓┏━┳┓┏┛┆"<<endl;cout<<" ┆┃┫┫┃┫┫┆"<<endl;cout<<" ┆┗┻┛┗┻┛┆"<<endl;}。

人员信息管理系统

人员信息管理系统

面向对象的程序设计课程设计报告*名:**学号: *********班级:大类1002班院系:数学与计算机学院日期: 2011.12.30题目2:人员信息管理系统本设计题目的任务是设计一个人员信息管理系统,并使用虚函数实现多态性,完成显示不同人员信息的任务。

设计employee类,用来存储雇员的编号,级别,月薪等信息,能够对其进行操作和显示。

以employee为基类派生出technician类,表示兼职技术人员,以及manager类,表示经理,以及salesman类,表示兼职推销员。

利用manage类和salesman类派生出salesmanager 类,表示销售经理。

注意使用虚基类。

进一步使用虚函数和抽象类改进上面的程序。

本设计题目的目的是让学生进一步理解和掌握C++中类的继承,虚基类,多态性,虚函数以及抽象类技术及实现方法。

2、源程序:#include<iostream>#include<cstring>using namespace std;class employee{protected:char name[20]; //姓名int individualEmpNo; //个人编号int grade; //级别float accumPay; //月薪总额static int employeeNo; //本公司职员编号目前最大值public:employee(); //够造函数~employee(); //void pay();void promote(int);void SetName(char *);char * GetName();int GetindividualEmpNo();int Getgrade();float GetaccumPay();};class technician:public employee{private:float hourlyRate;int workHours;public:technician();void SetworkHours(int wh);void pay();};class salesman:virtual public employee{protected:float CommRate;float sales;public:salesman();void Setsales(float sl);void pay();};class manager:virtual public employee{protected:float monthlyPay;public:manager();void pay();};class salesmanager:public manager,public salesman {public:salesmanager();void pay();};int employee::employeeNo=1000; employee::employee(){individualEmpNo=employeeNo++;grade=1;accumPay=0.0;}employee::~employee(){}void employee::pay(){}void employee::promote(int increment){grade+=increment;}void employee::SetName(char * names){strcpy(name,names);}char * employee::GetName(){return name;}int employee::GetindividualEmpNo(){return individualEmpNo;}int employee::Getgrade(){return grade;}float employee::GetaccumPay(){return accumPay;}technician::technician(){hourlyRate=100;}void technician::SetworkHours(int wh) {workHours=wh;}void technician::pay(){accumPay=hourlyRate*workHours;}salesman::salesman(){CommRate=0.04;}void salesman::Setsales(float sl){sales=sl;}void salesman::pay(){accumPay=sales*CommRate;}manager::manager(){monthlyPay=8000;}void manager::pay(){accumPay=monthlyPay;}salesmanager::salesmanager(){monthlyPay=5000;CommRate=0.005;}void salesmanager::pay(){accumPay=monthlyPay+CommRate*sales;}void main(){manager m1;technician t1;salesmanager sm1;salesman s1;char namestr[20];cout<<"请输入下一个雇员的姓名:"<<endl;cin>>namestr;m1.SetName(namestr);cout<<"请输入下一个雇员的姓名:"<<endl;cin>>namestr;t1.SetName(namestr);cout<<"请输入下一个雇员的姓名:"<<endl;cin>>namestr;sm1.SetName(namestr);cout<<"请输入下一个雇员的姓名:"<<endl;cin>>namestr;s1.SetName(namestr);m1.promote(3);m1.pay();cout<<"请输入兼职技术人员"<<t1.GetName()<<"本月的工作时数:";int ww;cin>>ww;t1.SetworkHours(ww);t1.promote(2);t1.pay();cout<<"请输入销售经理"<<sm1.GetName()<<"所管辖部门本月的销售总额:"; float sl;cin>>sl;sm1.Setsales(sl);sm1.pay();sm1.promote(2);cout<<"请输入推销员"<<s1.GetName()<<"本月的销售额:";cin>>sl;s1.Setsales(sl);s1.pay();//显示m1信息cout<<m1.GetName()<<"编号"<<m1.GetindividualEmpNo()<<"级别为"<<m1.Getgrade()<<"级,本月工资"<<m1.GetaccumPay()<<endl;//显示t1信息cout<<t1.GetName()<<"编号"<<t1.GetindividualEmpNo()<<"级别为"<<t1.Getgrade()<<"级,本月工资"<<t1.GetaccumPay()<<endl;//显示sml的信息cout<<sm1.GetName()<<"编号"<<sm1.GetindividualEmpNo()<<"级别为"<<sm1.Getgrade()<<"级,本月工资"<<sm1.GetaccumPay()<<endl;//显示s1信息cout<<s1.GetName()<<"编号"<<s1.GetindividualEmpNo()<<"级别为"<<s1.Getgrade()<<"级,本月工资"<<s1.GetaccumPay()<<endl;}3、编译结果:4、小结对于第二个课题,原本以为很简单的事,忽然发现运行时总是提醒调用了private的数据成员,搞得我很迷糊,虽然很努力的整天对着电脑修改错误,但结果收效甚微,错误没改好,貌似又出现了更多的错误,简直是一团乱麻,当时真想放弃,最终在同学的帮忙下终于做完,有点身心疲惫的感觉。

面向对象课程设计报告人事管理系统

面向对象课程设计报告人事管理系统

《面向对象的编程技术》课程设计实验报告(人事管理系统)姓名:学号:班级:指导老师:日期: 2010-12-31目录一、设计主题与目的 (3)二、应用程序简介 (3)1.设计目的 (3)2.功能介绍 (3)3.基本内容 (3)4. 主要技术 (4)5. 运行环境 (5)三、界面设计 (5)1.总体设计结构图 (5)2.类层次图 (5)3.主要运行界面及介绍 (6)四、创新和难点 (11)五、目前仍存在的问题 (11)六、心得体会 (11)附录 (12)使用说明 (12)课程设计名称:人事管理系统一、设计主题与目的1、使学生巩固和加强《面向对象程序设计》课程的理论知识。

2、使学生掌握C++语言的基本概念、语法、类与对象的使用特点。

3、进一步理解和运用面向对象设计的思想和方法。

4、使学生掌握调试程序的基本方法及上机操作方法。

5、掌握书写程设计开发文档的能力,使学生学会撰写课程设计总结报告。

课程设计的思想和方法还可以作为学生做毕业论文时的参考资料。

6、通过查阅手册和文献资料,培养学生独立分析问题和解决问题的能力。

为学生做毕业设计打好基础。

7、培养学生的创新能力和创新思维。

学生可以根据指导书和相关文献上的参考算法,自己设计出相应的应用程序。

二、应用程序简介1.设计目的:制作人数管理系统,创建人事管理数据表,该表反映职工的基本信息,其中包含职工编号、职工姓名、职工性别、所在部门、职工年龄、工作日期、基本工资、职称、简历等字段。

并能进行以下操作:①能够输入职工的综合情况的输入;②能够实现对职工信息的删除;③能够实现对职工进行修改;④能够实现对职工进行排序;⑤能够实现对职工进行查询。

2.功能介绍:人事管理系统功能有:增加记录,删除记录,修改记录,排序记录,筛选记录。

通过主窗体调用其他窗体,主窗口包含了职工信息显示,也包含了对人事管理的操作。

在显示的信息下有五个功能选项,一一对应,包括增加记录、删除记录、修改记录、排序记录、筛选记录等功能模块。

《面向对象程序设计》课程设计任务书

《面向对象程序设计》课程设计任务书

《面向对象程序设计》课程设计任务书一、课程设计目的《面向对象程序设计》是一门重要的计算机专业课程,通过本课程设计,旨在让学生更深入地理解和掌握面向对象程序设计的基本概念、原理和方法,提高学生运用面向对象技术解决实际问题的能力。

具体而言,课程设计的目的包括以下几个方面:1、巩固和加深学生对面向对象程序设计中类、对象、继承、多态等核心概念的理解,培养学生的抽象思维和逻辑思维能力。

2、让学生熟悉面向对象程序设计的开发流程,包括需求分析、设计、编码、测试和维护等阶段,提高学生的软件开发能力。

3、培养学生运用面向对象编程语言(如 C++、Java 等)进行实际编程的能力,提高学生的代码编写规范和调试能力。

4、培养学生的团队合作精神和沟通能力,让学生在团队中共同完成一个较为复杂的项目,学会分工协作和相互交流。

5、激发学生的创新意识和解决实际问题的能力,让学生能够将所学知识应用到实际场景中,开发出具有一定实用价值的软件系统。

二、课程设计要求1、学生需独立完成课程设计任务,不得抄袭他人成果。

2、课程设计题目应具有一定的实用性和挑战性,能够涵盖面向对象程序设计的主要知识点。

3、学生在进行课程设计时,应严格按照面向对象的方法进行分析、设计和实现,确保程序的结构清晰、可读性强、可维护性好。

4、学生需提交课程设计报告,报告内容应包括需求分析、总体设计、详细设计、编码实现、测试结果以及总结等部分。

5、课程设计报告应书写规范、条理清晰、图表完整、数据准确。

三、课程设计题目以下是几个可供选择的课程设计题目,学生可根据自己的兴趣和实际情况选择其中一个进行设计:题目 1:学生成绩管理系统设计一个学生成绩管理系统,能够实现对学生成绩的录入、查询、修改、统计等功能。

系统应具备良好的用户界面,方便用户操作。

题目 2:图书管理系统设计一个图书管理系统,能够实现对图书的入库、借阅、归还、查询等功能。

系统应能够记录图书的基本信息、借阅记录以及读者信息等。

Java面向对象程序设计课程设计--学生信息管理系统程序设计

Java面向对象程序设计课程设计--学生信息管理系统程序设计

课程实践任务书信息技术的快速发展的同时也带来了社会各个行业的发展。

它的发展已经深入到社会的各个角落。

作为社会发展的前沿技术,各行各业只要对其合理的进行运用,必将会带来巨大的便捷。

成功的运用信息技术将为各类学校学生信息管理带来无限便利。

作为计算机应用的一部分,使用学生信息管理系统对学生档案进行管理,有着手工管理所无法比拟的优点,如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等,大地提高学生档案管理的效率。

本文介绍了系统开发的全过程。

该系统以Windows为操作平台,Java为开发语言,Access为数据库,Eclipse为开发工具,使用JDBC技术进行连接,实现了在可视化的基础上,利用数据库进行后台管理。

系统由学生和老师基本信息添加、学生和老师基本信息查询、学生和老师基本信息删除、学生和老师基本信息修改及退出系统等功能模块组成,基本功能较全面。

用户界面友好、清晰、操作简便,易学易用;系统可读性好,易于维护、更新,安全性较好。

采用传统下拉菜单功能选择,方便、快捷、一目了然,并且在一个窗体中进行操作,可视化强。

采用链入数据库进行存储,可动态进行查看、操作,这样的系统可修改性较强。

关键字:面向对象;Eclipse;JDBC1 前言 (1)1.1 课题简介 (1)1.2 设计目的 (1)2 需求分析 (2)2.1业务需求分析 (2)2.2功能需求分析 (2)2.2.1 学生信息 (2)2.2.2 教师信息 (2)2.2.3 成绩管理 (3)3 数据库设计 (4)3.1 Java连接数据库 (4)3.1.1 关系数据库概述 (4)3.1.2 通过JDBC访问数据库 (4)3.2 数据库与基本表设计 (4)4 系统设计与实施 (7)4.1 Eclipse Java Neon 3 (7)4.2 结构设计 (7)4.3 文件组织结构 (7)4.4 登录模块 (8)4.4.1 设计构想 (8)4.4.2 实现登录模块 (8)4.5 学生信息模块 (11)4.5.1 设计构想 (11)4.5.2 实现学生信息模块主界面 (11)4.5.3添加信息 (12)4.5.4 删除信息 (14)4.5.5修改信息 (15)4.5.6 基本信息查询 (17)4.5.7 成绩查询 (19)4.5.8 退出系统 (21)4.6 教师信息模块 (22)结束语 (26)参考文献 (27)附录A............................................. 错误!未定义书签。

python面向对象编程例题 学生信息管理系统

python面向对象编程例题 学生信息管理系统

python面向对象编程例题学生信息管理系统一、介绍Python是一门高级编程语言,广泛用于数据分析、人工智能、网络编程等领域。

Python的面向对象编程(Object-Oriented Programming,简称OOP)是其重要的编程范式之一。

本文将介绍一个基于Python面向对象编程的例题——学生信息管理系统。

二、需求分析学生信息管理系统是一个常见的应用场景,我们需要实现以下功能:1. 添加学生信息:包括学号、姓名、性别、年龄等2. 查询学生信息:可以按照学号或姓名进行查询3. 修改学生信息:可以修改学号、姓名、性别、年龄等4. 删除学生信息:可以按照学号或姓名进行删除5. 显示所有学生信息:按照添加顺序显示所有学生信息三、设计思路根据需求分析,我们可以设计以下类:1. 学生类(Student):成员变量包括学号(id)、姓名(name)、性别(gender)、年龄(age),成员函数包括构造函数(__init__)和字符串表示函数(__str__)2. 学生信息管理类(StudentManager):成员变量包括所有学生信息列表(students),成员函数包括添加学生信息函数(add_student)、查询学生信息函数(query_student)、修改学生信息函数(modify_student)、删除学生信息函数(delete_student)和显示所有学生信息函数(show_all_students)四、具体实现1. 学生类```pythonclass Student:def __init__(self, id, name, gender, age):self.id = id = nameself.gender = genderself.age = agedef __str__(self):return f"学号:{self.id},姓名:{},性别:{self.gender},年龄:{self.age}"```2. 学生信息管理类```pythonclass StudentManager:def __init__(self):self.students = []def add_student(self, student):self.students.append(student)def query_student(self, keyword):result = []for student in self.students:if keyword in (student.id, ):result.append(student)return resultdef modify_student(self, keyword, id=None, name=None, gender=None, age=None):for student in self.students:if keyword in (student.id, ):if id is not None:student.id = idif name is not None: = nameif gender is not None:student.gender = genderif age is not None:student.age = agedef delete_student(self, keyword):for i in range(len(self.students)):if keyword in (self.students[i].id, self.students[i].name): del self.students[i]breakdef show_all_students(self):for student in self.students:print(student)```五、测试代码```python# 创建学生信息管理对象manager = StudentManager()# 添加学生信息manager.add_student(Student("001", "张三", "男", 18)) manager.add_student(Student("002", "李四", "女", 19)) manager.add_student(Student("003", "王五", "男", 20))# 查询学生信息result = manager.query_student("张三")for student in result:print(student)# 修改学生信息manager.modify_student("李四", age=20) manager.show_all_students()# 删除学生信息manager.delete_student("王五")manager.show_all_students()```六、总结通过本例题,我们了解了Python面向对象编程的基本概念和实现方式,并且实现了一个简单的学生信息管理系统。

Java课程设计报告——员工信息管理系统

Java课程设计报告——员工信息管理系统
序中错误的解决方法,明确JAVA在实际程序设计中的应用。使课堂中学习到理
1.的2. Nhomakorabea3.4.
4.1员工类的定义
4.2主模块的设计
4.3员工信息录入模块的实现
4.4员工信息修改模块的实现
4.5员工信息查询模块的实现
4.6员工信息删除模块的实现
5.
参考文献
JAVA是一个面向对象的程序设计软件,它将重点放在数据和对象的接口上,与C++相比的主要不同在于多继承,在JAVA中,取而代之的是简单的接口,以及JAVA
的元类模型。这也很大程度上给我们初学编程的人带来很呆的方便,也使我们更 容易掌握JAVA编程的一些基本要领和深层知识。
该程序是利用文件来实现的,程序的重要作用是对员工信息进行管理,包括 员工信息的添加、查询、修改、删除。通过该课程设计,使同学们进一步理解概JAVA的基本概念、理论和方法,初步掌握JDK、Eclipse的调试和应用,以及程
学号
1308020123
2014-2015学年 第二学期
《面向对象程序设计》
课程设计报告
题目:员工信息管理系统分析与设计
专业:网络工程
班级:13级(1)班
姓名: 指导教师:
计算机学院
2015
引言
JAVA不仅是一门最为流行的计算机语言,而且已经形成一种专门的技术,带
来了20世纪末和本世纪初网络科技和网络经济超常发展。JAVA的与平台无关性、
高可靠性、安全机制和内嵌网络支持等特性使它成为编写网络应用程序的首选工 具之一。
从另一方面来看,软件开发的规模也日渐扩大,对软件质量的要求越来越高,
与之相对应的是, 各种软件技术和工具层出不穷,各种软件开发、软件质量控制、

面向对象程序设计技术在信息管理系统中的应用

面向对象程序设计技术在信息管理系统中的应用

面向对象程序设计技术在信息管理系统中的应用随着信息技术的不断进步和发展,信息管理系统成为了各行各业都必不可少的组成部分。

信息管理系统通过对各种信息的收集、存储、处理和分析,提高了工作效率、提升了管理水平和服务质量。

而面向对象程序设计技术则是一种高效、灵活、易于维护的程序设计方式,可以很好地应用到信息管理系统中,从而提升信息管理系统的整体性能和质量。

一、面向对象程序设计技术的基本概念和特点面向对象程序设计技术是一种基于对象的程序设计方式,它将程序中的各个模块封装成一个个独立的对象,并通过对象之间的交互来完成程序的功能。

面向对象程序设计具有以下特点:1.封装性:将数据和功能组合成一个整体,并对外部隐藏其实现细节,只向外部提供有限的接口和方法,从而保证程序的安全性和稳定性。

2.继承性:通过继承机制,可以避免代码的重复性,提高程序的复用性和可维护性。

同时,继承也可以方便地扩展程序的功能和修改程序的行为。

3.多态性:同一个方法可以被不同的对象调用,根据对象的不同,方法的实现也不同。

多态性可以大大提高程序的灵活性和可扩展性。

二、1.对数据进行封装在信息管理系统中,数据是系统的核心,因此对数据的封装是非常重要的。

面向对象程序设计技术可以将数据封装成对象,只提供有限的接口和方法,从而保证了数据的安全性和稳定性。

同时,封装还可以方便地对数据进行管理和修改,提高了系统的可维护性。

2.利用继承机制提高代码复用性信息管理系统通常包含很多模块和功能,其中不可避免地会出现类似的代码段。

使用面向对象程序设计技术可以通过继承机制避免代码的重复,提高程序的复用性和可维护性。

例如,使用继承机制可以将数据访问模块的公共代码封装在父类中,子类继承父类即可获得公共代码,从而减少代码的冗余,提高代码的可读性和维护性。

3.利用多态机制提高程序的灵活性和可扩展性信息管理系统通常需要面对各种不同的操作和用户需求,使用面向对象程序设计技术可以通过多态机制灵活地处理这些情况。

JAVA-面向对象程序设计-学生个人信息管理系统

JAVA-面向对象程序设计-学生个人信息管理系统

JAVA-面向对象程序设计-学生个人信息管理系统————————————————————————————————作者:————————————————————————————————日期:软件学院课程设计报告书课程名称面向对象程序设计设计题目学生个人信息管理系统专业班级嵌入式软件09-2学号0920010214姓名王翀指导教师2011 年6 月目录1 设计时间 (6)2 设计目的 (6)3设计任务 (6)4 设计内容 (6)4.1需求分析 (6)4.1.1问题描述 (6)4.1.2基本要求 (6)4.2总体设计 (7)4.2.1包的描述 (9)4.2.2类的描述 (10)4.2.3类之间的关系 (11)类MainTest继承JFrame。

(11)类jenter实现接口ActionListener。

(11)4.3 详细设计 (11)4.3.1类图 (15)4.3.2页面设计 (15)4.4 测试与分析 (15)4.5 程序代码 (17)5 总结与展望 (32)参考文献 (33)课程设计成绩评定 (34)1 设计时间2012年6月13日——6月19日2 设计目的《面向对象程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。

其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力3设计任务设计一个简单学生个人信息管理系统,该系统具有录入,查询,修改三项基本功能。

要求如下:(1)具有简单的录入,查询和修改功能。

(2)修改学生信息必须输入学号,然后对姓名、性别和专业等进行修改;(3)使用文件存储数据。

(也可用数据库)(4)学生个人信息必须包括:学号、姓名、性别、出生日期、身份证号、专业、班级自我简介,其余可自行丰富。

4 设计内容4.1需求分析学生管理系统需要对学生的基本信息进行简单的录入,查询,修改三项基本功能。

面向对象职工信息管理系统

面向对象职工信息管理系统

前言随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。

管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。

本文介绍了在Microsoft Visual C++ 6.0环境下开发一个职工信息管理系统的过程。

本系统界面友好,操作简单,比较实用。

目录前言0摘要2第一章问题描述3第二章需求分析42.1需求陈述42.2建立对象模型42.3建立功能模型4第三章概要设计53.1系统设计5系统分析5系统设计思想53.2系统类层次与流程图6第四章详细设计74.1类与对象的设计7类属性的详细分析7类行为的详细分析84.2类的详细继承关系9第五章测试与维护105.1程序的测试105.2程序的维护15设计总结16参考文献17致谢18附录代码19摘要该系统是以C++语言实现的一个职工信息管理系统。

采用面向对象的编程方法,通过定义了职工类,以与对类的成员进行操作的相关函数,该系统实现了对职工信息进行计算机化的管理,实现了职工信息的录入、浏览、查询、修改和删除等功能。

在该系统中职工的信息以文件的形式保存,最后整个操作界面以菜单的形式展现给用户。

关键词:面向对象类录入浏览查询第一章问题描述该系统要求以某企业职工信息管理业务为背景,设计、开发一套“职工信息管理系统”软件。

职工信息包括职工号(职工号不重复)、XX、性别、年龄、学历、工资、住址、等,并要求设计的“职工信息管理系统”,能够提供以下功能:1) 系统以菜单方式工作;2) 职工信息录入功能(职工信息用文件保存);3) 职工信息浏览功能;4) 查询和排序功能:(至少一种查询方式) 按工资查询、按学历查询等;5) 职工信息的删除与修改。

第二章需求分析2.1需求陈述通过问题描述可以知道,本系统所要求的职工信息包括:职工号、XX、年龄、工资、等。

并且要求系统实现对职工信息的新建,对指定的职工信息进行查询、修改、删除。

高校人员信息管理系统

高校人员信息管理系统

面向对象程序设计说明书题目高校人员信息管理系统学院:工学院专业名称:软件工程班级:软件工程学生姓名:**指导老师:***日期:2017.23~2017.12.26一、基本功能描述高校人员信息管理系统主要包括以下8个功能:1、添加功能add():可任意添加不同人员的记录,要求编号唯一。

2、查询功能select():可根据编号、姓名等对已添加记录进行查询。

3、显示功能show():可显示当前系统中所有记录。

4、编辑功能modify():可根据查询结果对相应的记录进行修改。

5、删除功能deleted():主要实现对已添加的人员记录进行删除。

6、统计功能count():能根据多种参数进行人员的统计。

7、保存功能:可将当前系统中各类人员记录存入文件中。

8、读取功能read():可将保存在文件中的人员信息读入到当前系统。

二、设计思路高校人员包括教四类人员,所以要有一个基类和四个派生类。

每个派生类都有继承自基类的7个成员函数和四个成员数据以及它们自己特有的数据成员。

在每个类之后对这些函数进行实现,最后通过选择结构调用这些函数,实现相应功能。

三、程序实现1、设计过程创建一个人员基类People,教师派生类Teacher,实验员派生类Texter,行政人员派生类Xingzheng和教师兼行政人员派生类TeaXing。

基类包括添加函数add()、显示函数show()、选择哈部署select()、修改函数modify()、删除函数deleted()、统计函数count()、读取函数read()、编号num、姓名name、性别sex、年龄age。

教师类增加数据成员所在系xi、专业zhuanye、职称zhicheng,实验员类增加数据成员职务zhiwu、所在实验室shiyanshi,行政人员类增加数据成员政治面貌mianmao、职称zhicheng。

教师类、实验员类、行政人员类共有继承自人员类。

教师兼行政人员类共有继承自教师类和行政人员类。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

南京工程学院课程设计说明书(论文)题目人员管理信息系统课程名称面向对象程序设计B院(系、部、中心)通信工程学院专业多媒体通信班级媒体通信111学生姓名崔学号 208110502设计地点信息楼C322指导教师郭丽红设计起止时间:2013年5月27日至2013年5月31日目录1.系统设计的目的和意义 (3)2.系统总框架图 (4)3.软件功能描述 (4)4.软件代码的设计 (5)4.1数据结构描述与定义 (5)4.2模块设计 (6)5.软件使用说明 (9)6.测试结果与分析 (9)7.比较有特色的函数 (13)8.存在的不足与对策 (14)9.课程设计总结 (15)附录:源程序清单 (15)(正文,宋体,小四,1.5倍行距,每个段落开头空两格)(字数要求:5000字左右,页数10页左右。

)课程设计题目1.系统设计的目的和意义随着现代高科技的迅速发展,计算机技术也有了突飞猛进的快速发展,因此为各个行业的普及应用奠定了基础。

由于学校教师学生的数目众多,传统的手工作业已经不再适合学校统计人员信息的需要。

传统的手工作业要处理巨额的数据,由于人员不停地改动,例如教工的调职、离职、新教师的加入,学生的入学、毕业等,人事部门要不停的更新数据,进行抄写。

由于数据庞大,难免会出现错误,这对于员工管理非常不利。

而利用计算机技术可以方便的、准确的、动态的对企业内部员工进行管理,减轻了人事部门的任务,节约人力资源,降低了企业的成本。

基于计算机技术的优越性,几乎所有的企业都使用计算机技术来实现对员工基本信息的管理。

本系统将利用计算机技术模拟实现对企业员工的基本信息管理,主要实现对人员基本信息的管理,包括教师的姓名、年龄、籍贯、职称、学历、工作日期,学生的姓名、学号、年龄、籍贯、入学日期。

如果有新人员加入该学校,可在添加新人员模块进行添加新人员操作。

如果有人员辞职或退休,学生毕业或退学,也可以进行删除操作,同时可以通过列表查看所有人员的资料,也可以单独查询某个人员的信息,若是发现某个人员的信息有误,也可以对进行修改操作。

2.系统总框架图3.软件功能描述(或设计目标或需求分析)对问题的描述应避开具体的算法和涉及的数据结构,描述系统实现功能及达到的目标。

首先增加一个对话窗口,插入自己设计好的图片,做一个人员信息管理系统的界面,然后级联一个窗口,做登录界面。

实现用户名/密码的登录。

登录界面:通过输入正确的用户名和密码,进入到人员管理系统的选择界面窗口。

通过选择四个Button按钮,分别级联到教师信息窗口,学生信息窗口,全体教师信息窗口,全体学生信息窗口。

查询:通过Button按钮,编写查询代码。

可以通过输入关键字对人员信息进行查询。

添加:通过Button按钮,编写添加代码。

可以输入相应的人员信息加入到数据库中。

删除:通过Button按钮,编写删除代码。

可以删除掉需要删除的人员信息。

修改:通过Button按钮,编写修改代码。

可以对查询到的人员信息进行信息修改。

退出:控件自带的Button按钮,可以退出界面。

全体教师信息,和全体学生信息:窗口是通过Listctrl(列表控件)实现的,在新建的类中添加一个oninitdialog()函数,然后在函数中写初始化代码,以及数据库中信息映射到列表中的代码,实现全体人员信息的查询,便于管理员管理。

4.软件代码的设计说明算法(程序)中用到的所有各种数据结构的描述与定义,核心模块设计,每个模块的算法描述及流程图(用WORD,或画图板,或Visio画图软件)建议用Visio。

流程图要规范(有开始,结束,一个入口,一个出口)。

4.1数据结构描述与定义所用的到的主要数据结构的描述,标准C++语言定义数据结构void CCQWDlg::OnOK() //在类CCQWDlg中定义用户登录函数void studentinfo::OnSadd() //在类studentinfo中定义增加函数void studentinfo::OnSearch()//在类studentinfo中定义查询函数void studentinfo::OnSchange()//在类studentinfo中定义修改函数void studentinfo::OnSdelete()//在类studentinfo中定义删除函数void teacherinfo::OnSearch2()//在类teacherinfo中定义查询函数void teacherinfo::OnAdd2() //在类teacherinfo中定义增加函数void teacherinfo::OnDelete2()//在类teacherinfo中定义删除函数void teacherinfo::OnChange2()//在类teacherinfo中定义修改函数BOOL allstu::OnInitDialog() //在类allstu中定义InitDialog函数BOOL alltea::OnInitDialog() //在类alltea中定义InitDialog函数4.2模块设计系统共分几个模块,每个模块的算法描述及流程图(核心模块)。

1、登录界面流程图2、查询模块流程图3、增加模块流程图4、修改模块流程图5、删除模块流程图6、列表控件(listctrl控件)流程图5.软件使用说明使用本软件之前必须先到数据源里映射下数据库,使它们连接起来。

登录时先进入登录界面的程序查询一下登陆的用户名和密码。

6.测试结果与分析按系统功能描述(设计目标)测试软件运行是否正确,测试数据的选择要代表性,列出所有测试用的输入数据和相应的输出数据以及测试结果。

原始数据库:程序运行结果:登录界面:按登录键进入选择界面:以教师信息查询为例,输入关键字赵一,点击查询:点击确定键,结果如下图:在选择界面点击全体教师信息或全体学生信息如下:7.比较有特色的函数void CCQWDlg::OnOK(){// TODO: Add extra validation herethis->UpdateData(true);if(this->m_name=="cuiqianwen" && this->m_passward=="4321") {select dlg;dlg.DoModal();}else{MessageBox("登录有误");CCQWDlg dlg;dlg.DoModal();}}BOOL allstu::OnInitDialog(){CDialog::OnInitDialog();// TODO: Add extra initialization herem_list.InsertColumn(0,"姓名",LVCFMT_LEFT,100);m_list.InsertColumn(1,"年龄",LVCFMT_LEFT,100);m_list.InsertColumn(2,"学号",LVCFMT_LEFT,100);m_list.InsertColumn(3,"籍贯",LVCFMT_LEFT,100);m_list.InsertColumn(4,"入学日期",LVCFMT_LEFT,100);// return TRUE unless you set the focus to a control// EXCEPTION: OCX Property Pages should return FALSE student s(&d1);CString str="select * from student";s.Open(student::dynaset,_T(str));while(!s.IsEOF()){ int nIndex = m_list.GetItemCount();nIndex = m_list.InsertItem(nIndex, (char*)(LPCTSTR)str);m_list.SetItemText(nIndex,0,s.m_name);m_list.SetItemText(nIndex,1,s.m_age);m_list.SetItemText(nIndex,2,s.m_number);m_list.SetItemText(nIndex,3,s.m_birth_place);m_list.SetItemText(nIndex,4,s.m_entrance_time);s.MoveNext();}s.Close();return TRUE;}8.存在的不足与对策系统相对来讲还是较简洁的,若是要进行修改操作的话,需先进行查找,然后在每一个记录上修改,这样实行起来比较麻烦,可以设置一个弹出窗口,在弹出的窗口上修改记录。

另外,查找时仅仅可以使用主键进行查找,例如学生仅仅可以通过学号进行查找某个学生信息,教师仅仅可以通过姓名查找某个教师信息,我们可以通过多写几个语句,可以通过其他的方式查找。

9.课程设计总结总结可以包括 : 课程设计过程的收获、遇到问题、遇到问题解决问题过程的思考、程序调试能力的思考、对C++这门课程的思考、在课程设计过程中对C++课程的认识等内容本次课程设计,使我加深了对C++面向对象程序设计的理解。

通过本次课程设计,我学到了很多知识,C++面向对象是通过类来实现的。

由于我们对vcMFC 编程不熟悉,只通过上课看老师演示一遍是不够的,所以刚开始感觉无从下手,一片茫然,所以就先看了一些教程,再看了一些关于MFC的操作,然后自己尝试做一些重要的模块,比如窗口的级联,然后熟悉了MFC。

在做课程设计的时候,我遇到LE 一些问题。

有些问题,和同学一讨论就可以解决,比如星期一的时候,我们就尝试做窗口的级联,怎么在主窗口之前插入一个对话框,做了好多遍都不成功,运行时都是直接跳出主窗口,然后上网查了一下资料,在MAINFARM.CPP中插入对话框类的对象,解决了问题。

我们在网上也搜寻解决问题的方法,许多问题都可以解决,比如列表框,即Listctrl控件的使用,也得到了解决。

在这次课程设计中,我学到了很多知识,不仅仅是关于VC++的知识,还学到了遇到困难不能光着急,要积极寻求解决问题的方法。

要懂得和同学交流,然后去共同解决问题。

也可以去网上搜寻解决该方案。

毕竟一个人的能力有限,不可能一个人解决所有的问题。

课程设计其实很能锻炼学生解决问题的能力,可以提高我们对C++的整体认识。

在这次课程设计中我锻炼了我的实际编程能力,以前我只是学习简单的语法知识,学习对面向对象的理解,其实只有在试验中,才能体会到它的模块性,它的封装性。

相关文档
最新文档