面向对象技术课程设计.docx

上传人:b****5 文档编号:7183919 上传时间:2023-01-21 格式:DOCX 页数:20 大小:419.13KB
下载 相关 举报
面向对象技术课程设计.docx_第1页
第1页 / 共20页
面向对象技术课程设计.docx_第2页
第2页 / 共20页
面向对象技术课程设计.docx_第3页
第3页 / 共20页
面向对象技术课程设计.docx_第4页
第4页 / 共20页
面向对象技术课程设计.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

面向对象技术课程设计.docx

《面向对象技术课程设计.docx》由会员分享,可在线阅读,更多相关《面向对象技术课程设计.docx(20页珍藏版)》请在冰豆网上搜索。

面向对象技术课程设计.docx

面向对象技术课程设计

 

《面向对象技术》课程设计

 

题目:

职工信息管理系统

专业:

学号:

姓名:

指导老师:

完成日期:

 

 

1前言

编写一个程序处理职工信息。

通过一个结构体数组来存放输入的每一位同学的记录(包括工号、姓名、性别、年龄、学历、住址、电话、工资),然后将其信息存入文件中。

输入一个姓名查询该同学的信息,并显示在屏幕上。

2需求分析

2.1要求

(1)用C++语言实现程序设计;

(2)画出查询模块的流程图;

(3)系统的各个功能模块要求用函数的形式实现;

(4)界面友好,程序有注释。

(5)利用类进行相关信息的处理。

2.2任务

(1)定义一个类类型,输入每一位职工的记录(包括工号、姓名、性别、年龄、学历、住址、电话、工资);

(2)输入工号查询该职工的信息,显示在屏幕上;

(3)画出流程图;

(4)编写代码;

(5)程序分析与调试;

2.3运行环境

(1)Windows2000/xp系统

(2)vc6.0编译环境

2.4开发工具

C++语言

3概要设计与详细设计

3.1系统流程图

如图3.1所示。

 

(1)

 

主函数main

为用户提供了选择功能界面,通过选择,实现功能。

代码如下:

cout<<"职工信息管理:

"<

cout<<"1.新增职工"<

cout<<"2.修改职工信息"<

cout<<"3.删除职工信息"<

cout<<"4.查询职工"<

cout<<"5.显示所有职工信息"<

cout<<"0.退出"<

cin>>choice;

Y

 

4.编码与实现

4.1分析

本程序定义了两个类employee类和Edatabase类,其中Edatabase类用来存放职工信息,employee类用来实现对职工信息的删除、修改、增添。

在employee类中定义了一个空的构造函数employee(),然后通过各个公有成员函数实现对职工姓名信息的获取。

通过函数intgettag(){returetag;}获取删除标记。

通过函数addemployee()实现了对新增职工的添加

在Edatabase类中的析构函数~Edatabase实现吧职工信息写入文件employee.txt在~Edatabase中先用写的方式打开文件。

然后用一个for循环写入职工信息到employee.txt文件中,最后关闭。

4.2具体代码实现

#include

#include

#include

#include

usingnamespacestd;

constintmax=200;

#defineNull0

classEmployee

{

private:

charage[max];

inttag;//职工删除标记

charsalary[max];//薪水

charxueli[max];

charname[30];

intno;//职工号

charaddress[max];

charsex[max];

chartelephone[max];

public:

Employee(){}

chargetname(){returnname[max];}//获取名字

chargettelephone(){returntelephone[max];}//获取电话号码

intgetno(){returnno;}//获取职工号

chargetaddress(){returnaddress[max];}//获取家庭地址

chargetsalary(){returnsalary[max];}//获取工资信息

chargetxueli(){returnxueli[max];}//获取学历信息

chargetage(){returnage[max];}//获取年龄

chargetsex(){returnsex[max];}//性别

intgettag(){returntag;}//获取删除标记

voidsetname(charna[max])

{

strcpy(name,na);

}

voidsetaddress(chardizhi[max])

{

strcpy(address,dizhi);

}

voidsetsalary(charx[max])

{

strcpy(salary,x);

}

voidsettelephone(charma[max])

{

strcpy(telephone,ma);

}

voidsetxueli(charl[max])

{

strcpy(xueli,l);

}

voidaddemployee(char*na,intn,char*x,char*a,char*l,char*g,char*ad,char*t)

{tag=0;

strcpy(name,na);

no=n;

strcpy(sex,x);

strcpy(age,a);

strcpy(xueli,l);

strcpy(salary,g);

strcpy(address,ad);

strcpy(telephone,t);

}

voiddelemployee()

{

tag=1;

}

voiddisp()

{

cout.flags(ios:

:

left);

cout<

}

};

classEdatabase//职工信息库

{

private:

inttop;

Employeeworker[max];

public:

Edatabase()

{

Employeee;

top=-1;

fstreamfile("Employee.txt",ios:

:

in);

while

(1)

{

file.read((char*)&e,sizeof(e));

if(!

file)break;

top++;

worker[top]=e;

}

file.close();

}

intaddEmployee(char*na,intn,char*x,char*a,char*l,char*g,char*ad,char*t)

{

Employee*p=query(n);

if(p==Null)

{top++;

worker[top].addemployee(na,n,x,a,l,g,ad,t);

return1;

}

return0;

}

Employee*query(intemployeeid)

{

for(inti=0;i<=top;i++)

if(worker[i].getno()==employeeid&&worker[i].gettag()==0)

{

return&worker[i];

}

returnNull;

}

voiddisp()

{

for(inti=0;i<=top;i++)

if(worker[i].gettag()==0)

worker[i].disp();

}

~Edatabase()

{

fstreamfile("Employee.txt",ios:

:

out);

for(inti=0;i<=top;i++)

if(worker[i].gettag()==0)

file.write((char*)&worker[i],sizeof(worker[i]));

file.close();

}

};

voidmain()

{

Edatabaseemployeedate;

charchoice;

charename[30];

intemployeeid;

Employee*e;

charxingbie[max];

charage[max];

charxueli[max];

chargongzi[max];

chardizhi[max];

chartelephone[15];

charq;

while(choice!

=0)

{

cout<<"职工信息管理:

"<

cout<<"1.新增职工"<

cout<<"2.修改职工信息"<

cout<<"3.删除职工信息"<

cout<<"4.查询职工"<

cout<<"5.显示所有职工信息"<

cout<<"0.退出"<

cin>>choice;

switch(choice)

{

case'1':

cout<<"请输入职工工号:

"<

cin>>employeeid;

cout<<"请输入职工名字:

"<

cin>>ename;

cout<<"请输入职工性别:

"<

cin>>xingbie;

cout<<"请输入职工年龄:

"<

cin>>age;

cout<<"请输入职工工资:

"<

cin>>gongzi;

cout<<"请输入职工电话号码:

"<

cin>>telephone;

cout<<"请输入职工的学历:

"<

cin>>xueli;

cout<<"请输入职工的家庭地址:

"<

cin>>dizhi;

employeedate.addEmployee(ename,employeeid,xingbie,age,xueli,gongzi,dizhi,telephone);break;

case'2':

cout<<"请输入你找的工号:

"<

cin>>employeeid;

e=employeedate.query(employeeid);

if(e==Null)

{

cout<<"对不起!

你的工号有误,请核实后再输入"<

break;

}

cout<<"请输入你想更改的职工信息:

"<

cout<<"1:

输入你的新姓名"<

cout<<"2:

输入你的新工资"<

cout<<"3:

输入你的新的电话号码"<

cout<<"4:

输入你的新的家庭住址"<

cout<<"0:

退出"<

cin>>q;

switch(q)

{

case'1':

cout<<"输入你的新名字"<

cin>>ename;

e->setname(ename);

break;

case'2':

cout<<"输入你的新工资"<

cin>>gongzi;

e->setsalary(gongzi);

break;

case'3':

cout<<"输入你的新电话号码"<

cin>>telephone;

e->settelephone(telephone);

break;

case'4':

cout<<"输入你的新的家庭地址"<

cin>>dizhi;

e->setxueli(dizhi);

break;

case'0':

break;

}break;

case'3':

cout<<"请输入删除的职工号:

"<

cin>>employeeid;

e=employeedate.query(employeeid);

if(e==Null)

{

cout<<"该职工不存在,请核实后再输入"<

break;

}

chartg1;

cout<<"确定要删除此记录吗?

(Y|N)"<

cin>>tg1;

if(tg1!

='N'&&tg1!

='N')

{

e->delemployee();

cout<<"已成功删除此记录!

"<

break;

}

case'4':

cout<<"请输入你想查找的职工工号";

cin>>employeeid;

e=employeedate.query(employeeid);

if(e==Null)

{

cout<<"该职工不存在,请核实后再输入"<

break;

}

cout<<"名字工号性别年龄学历工资家庭地址电话号码\n";

e->disp();

break;

case'5':

cout<<"名字工号性别年龄学历工资家庭地址电话号码\n";

employeedate.disp();

break;

case'0':

break;

}

}

4.3系统运行结果样例

 

 

 

5课程设计总结

在这次课程设计中,主要的问题是对编译环境的不熟悉,导致出现一些程序问题无法解决,使得结果无法达到预期的效果,甚至是无法运行。

这个程序只实现了一些基本的问题,局限性很大。

所以在以后的学习中,我们要多加练习,使得自己对那些常用的程序熟练掌握,以至于在用到的时候能轻松应用。

通过本次课程设计,巩固了自己所学的知识,收获颇丰,受益良多。

也初步学会了如何做课程设计。

这个程序虽然实现了老师要求的一些功能,但还有一些地方不够完美。

所以在以后的学习中我会更加努力。

6参考文献

 

指导老师评语:

 

成绩:

签名:

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

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

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