C++实习报告-职工管理信息系统

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

C++实习报告-职工管理信息系统
学号
面向对象应用程序设计课程设计
设计说明书
职工管理信息系统
起止日期:2020年7 月6日至2020 年7 月10日
学生姓名
班级
成绩
指导教师(签字)
计算机与信息工程学院
2020 年7 月10日
目录
1、设计目的 (3)
2、总体设计 (3)
3、详细设计: (3)
3.1、程序具体功能 (3)
3.2、调试分析 (3)
4、源程序和运行结果 (4)
4.1、源程序 (4)
4.2、运行结果.............................. 错误!未定义书签。

4.3、心得体会 (4)
职工管理信息系统
1、设计目的
○1.通过实验实现对学生信息系统的管理操作;
○2.进一步掌握和利用C++进行程设计的能力;
○3.进一步理解和运用结构化程序设计的思想和方法;○4.初步掌握开发一个小型实用系统的基本方法;
○5.学会利用流程图或N-S图表示算法;
○6.掌握书写程设计开发文档的能力(书写课程设计报告);
2、总体设计
3、详细设计:
3.1、程序具体功能:(要求详细写明)
职工信息包括:职工ID、姓名、性别、出生日期、籍贯、学历、职称、工资、家庭住址、电话等、职务、类型(机关、教师、实验室、研究员等)。

试用面向对象程序设计思想,设计奖学金申请管理信息系统,使之能提供以下功能:
1、职工信息录入功能
2、职工信息文件读取功能
3、职工信息文件保存功能
4、职工信息浏览功能
5、查询功能:
1)按ID查询
2)按职工类型查询
6、修改功能:
根据ID修改相应信息;
7、删除职工功能:
删除相应ID的职工信息。

8、排序功能(由用户指定按照职工类型或ID;指定升序或降序)
9、退出
3.2、调试分析(要求详细写明)
上机调试之前我们对所编的程序作了纸面上的检查,先改正一些不该犯错误,如{ }没有搭配完整,漏写,拼写错误等,这些都是我们通过认真的态度在运行之前可以解决、避免的。

而且还可以减少机器时间。

往往一连串的错误是由于漏写或写错一个字符引起的。

在上机调试过程中,对文件这一节的知识还不够熟悉,所以在解决输入输出流的过程中出了很多问题。

问题如下:
1.对于函数不是很了解,例如排序时遇到困难,找了好多资料,
请教别人才写出来
2.对于程序某些地方不是理解透彻,写的时候困难重重
3.排序函数写了好长时间才写出来
4.调试过程中发现输出的文字不够美观,对程序进行优化
5.从最初的90多个错误逐渐到0个
4、源程序和运行结果
4.1、源程序
#include
#include
#include
using namespace std;
class Date
{
private:
int year,month,day;
public:
void display();
int get_year();//获取year值
int get_month();//获取month值
int get_day();//获取day值
void set_year();//设置year值
void set_month();//设置month值
void set_day();//设置day值
void set_all(int y,int m,int d);
};
void Date::set_all(int y,int m,int d)
{
year = y;
month = m;
day =d ;
}
void Date::display()
{
cout<<year<<"年"<<month<<"月"<<day<<"日"<<=""> int Date::get_year()
{
return year;
}
int Date::get_month()
{
return month;
}
int Date::get_day()
{
return day;
}
void Date::set_year()
{
cout<<endl<<"年:";< p="">
cin>>year;
}
void Date::set_month()
{
cout<<"月:";
cin>>month;
void Date::set_day()
{
cout<<"日:";
cin>>day;
}
class Employee
{
public:
Employee();
Employee(int n,string na,char s,string p,Date b);
~Employee();
void input_Employee();
void output_Employee();
void set_Position(string p);//设置职位值
int get_num();//获取职工号
string get_name();
char get_sex();
string get_position();
Date get_birthday();
void set_allE(int n,string na,char s,string p,int year, int month,int day); private:
int num;
string name;
char sex;
string position;
Date birthday;
};
string Employee::get_name()
{
return name;
}
char Employee::get_sex()
{
return sex;
}
string Employee::get_position()
{
return position;
}
Date Employee::get_birthday()
return birthday;
}
void Employee::set_allE(int n,string na,char s,string p,int year, int month,int day)
{
num=n;
name=na;
sex=s;
position = p;
birthday.set_all(year,month,day);
}
Employee::Employee()
{
num=0;
name=" ";
sex=' ';
position=" ";
}
void Employee::input_Employee()
{
cout<<"职工号:";
cin>>num;
cout<<"姓名:";
cin>>name;
cout<<"性别:";
cin>>sex;
cout<<"职位:";
cin>>position;
cout<<"出生日期:";
birthday.set_year();
birthday.set_month();
birthday.set_day();
}
void Employee::output_Employee()
{
cout<<"职工号姓名性别职位出生日期"<<endl;< p="">
cout<<num<<' '<<birthday.get_year()<<'-'<<birthday.get_month()<<'-'<<birthday.get_day()<<endl;<="" '<<name<<'="" '<<position<<'="" '<<sex<<'="" p=""> }
void Employee::set_Position(string p)
{
position=p;
int Employee::get_num()
{
return num;
}
Employee::Employee(int n,string na,char s,string p,Date b):num(n),name(na),sex(s),position(p),birthday(b){}
Employee::~Employee()
{
}
class EmployeeSys{
private:
Employee e[2];
public:
EmployeeSys();
void menu();//显示菜单
void input_all();//输入所有职工信息
void output_all();//输出所有职工信息
void modify_position();//修改指定职工职位
int search_num();//查找指定职工号
void read_fromfile();
void save_tofile();
void op();//所有操作
};
EmployeeSys::EmployeeSys()
{
}
void EmployeeSys::menu()
{
cout<<endl<<endl<<" p="" 职工信息管理系统*(主要功能示例)"<<endl;<="">
cout<<"1、职工信息的录入"<<endl;< p="">
cout<<"2、职工信息的显示"<<endl;< p="">
cout<<"3、修改人员的职位信息"<<endl;< p="">
cout<<"4、通过编号进行人员查询"<<endl;< p="">
cout<<"5、读取信息"<<endl;< p="">
cout<<"6、保存信息"<<endl;< p="">
cout<<"7、退出"<<endl;< p="">
cout<<"*注:本程序仅作为老师讲解的样例程序,包含了课设题目的主要功能。

同学们
请严格按照课设题目要求进行设计和编写。

"<<endl<<endl<<="">
void EmployeeSys::input_all()
{
for(int i=0;i<2;i++)
e[i].input_Employee();
}
void EmployeeSys::output_all()
{
for(int i=0;i<2;i++)
e[i].output_Employee();
}
void EmployeeSys::modify_position() {
int i=search_num();
if(i<2)
{
string modifyp;
cout<<"请输入新的职位:";
cin>>modifyp;
e[i].set_Position(modifyp);
e[i].output_Employee();
}
}
int EmployeeSys::search_num()
{
int searchnum;
cout<<"要查找的编号:";
cin>>searchnum;
for(int i=0;i<2;i++)
{
if(e[i].get_num()==searchnum)
{
e[i].output_Employee();
break;
}
}
if(i>=2)
cout<<"not find";
return i;
}
void EmployeeSys::read_fromfile()
{
int num;
string name;
char sex;
string position;
int year,month,day;
ifstream infile("employee.txt",ios::in);
if(!infile)
{
cerr<<"err!"<<endl;< p="">
exit(1);
}
for(int i=0;i<2;i++)
{
infile>>num>>name>>sex>>position>>year>>month>> day;
e[i].set_allE(num,name,sex,position,year,month,day);
}
infile.close();
}
void EmployeeSys::save_tofile()
{
ofstream outfile("employee.txt",ios::out);
if(!outfile)
{
cerr<<"err!"<<endl;< p="">
exit(1);
}
for(int i=0;i<2;i++)
{
outfile<<e[i].get_num()<<" ";<="" "<<e[i].get_name()<<"="" "<<e[i].get_position()<<"="" "<<e[i].get_sex()<<"="" p="">
outfile<<e[i].get_birthday().get_year()<<"
"<<e[i].get_birthday().get_day()<<endl;<=""
"<<e[i].get_birthday().get_month()<<"="" p="">
}
outfile.close();
}
void EmployeeSys::op()
{
while(1)
{
menu();
cout<<"请输入操作序号:";
int n;
cin>>n;
switch(n)
{
case 1:input_all();break;
case 2:output_all();break;
case 3:modify_position();break; case 4:search_num();break;
case 5:read_fromfile();break;
case 6:save_tofile();break;
case 7:exit(1);break;
}
}
}
int main()
{
EmployeeSys em;
em.op();
return 0;
}
4.3、心得体会
</e[i].get_birthday().get_year()<<"> </e[i].get_num()<<">
</endl;<>
</endl;<>
</endl<<endl<
</endl;<>
</endl;<>
</endl;<>
</endl;<>
</endl;<>
</endl;<>
</endl;<>
</endl<<endl<<">
</num<<'>
</endl;<>
</endl<<"年:";<>
</year<<"年"<<month<<"月"<<day<<"日"<。

相关文档
最新文档