C++程序设计.docx
- 文档编号:3680872
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:40
- 大小:125.01KB
C++程序设计.docx
《C++程序设计.docx》由会员分享,可在线阅读,更多相关《C++程序设计.docx(40页珍藏版)》请在冰豆网上搜索。
C++程序设计
《高级语言程序设计
(2)》
课程设计任务书
题目
中介公司信息管理
学生姓名
孙宝琳
学号
200701030124
专业班级
数学0701
设
计
内
容
与
要
求
【问题描述】
找工作难现在是社会的一大难题,中介公司也随之出现。
中介公司的信息管理包括招聘单位与应聘者的需要是否相匹配,这可以通过各种方式的查询来实现,如果匹配将双方的信息存入成功记录中,以便增加公司的信誉。
【软件功能】
1可以实现对管理员身份的认定;
2可以对招聘单位/应聘者登记注册管理;
3可以对已登记人员的信息进行修改;
4能根据招聘单位/应聘者的要求进行查询;
5并可以对不同的用户授予不同的权利;
【基本要求】
1招聘单位/应聘者类通过信息类的派生来实现,会员通过普通用户类的继承派生来实现;
2用户界面采用菜单形式,所需要输入或输出的数据通过I/O流保存在磁盘文件中并在屏幕上显示;
3对招聘单位/应聘者的查询要多元化,可实现不同方式的查询;
【提交成果】
1.“《C++语言程序设计》课程设计任务书”一份,打印装袋;
2.“《C++语言程序设计》课程设计报告”一份,打印装袋;
3、上面两项内容的word文档,通过电子邮件交到指导教师。
起止时间
2008年12月20日至2008年12月26日
指导教师签名
年月日
系(教研室)主任签名
年月日
学生签名
孙宝琳2008年12月29日
任务书限定一页
《高级语言程序设计
(2)》课程设计
专业数学与应用数学班级数学0701学号200701030124
姓名孙宝琳完成日期12.29指导教师(签名)
1、程序设计说明书
【设计题目】中介公司信息管理
【问题描述】
找工作难现在是社会的一大难题,中介公司也随之出现。
中介公司的信息管理包括招聘单位与应聘者的需要是否相匹配,可以通过各种方式的查询来实现,如果匹配将双方的信息存入成功记录中,以便增加公司的信誉。
【软件功能】
1可以实现对管理员身份的认定;
2可以对招聘单位/应聘者登记注册管理;
3可以对已登记人员的信息进行修改;
4能根据招聘单位/应聘者的要求进行查询;
5并可以对不同的用户授予不同的权利;
【基本要求】
1招聘单位/应聘者类通过信息类的派生来实现,会员通过普通用户类的继承派生来实现;
2用户界面采用菜单形式,所需要输入或输出的数据通过I/O流保存在磁盘文件中并在屏幕上显示;
3对招聘单位/应聘者的查询要多元化,可实现不同方式的查询;
【程序技巧】
1.将多个类对象同时进行操作,并授予不同的权限。
2.登陆界面的设计实现了信息的安全性;
3.将登记注册的人员信息存入相应的文件,可以节省内存的管理;
4.成功记录的设计让用户对本公司更有信任感;
5.为使得信息的安全人员信息用二进制存入文件;
【模块划分及调用关系】
【模块流程图】
查找函数:
接收用户的权限
普通招聘单位
会员招聘单位
应聘者
直接查找
录入信息,直接查找符合全部要求的人员
按符合条件的pay查找
录入信息,查找出符合要求的人员,并按pay排序
按符合条件的age查找
录入信息,查找出符合要求的人员,并按age排序
登记注册函数:
接收用户权限
普通招聘单位
会员招聘单位
会员招聘单位
接收用户信息
检查信息是否正确以及是否超越权限
信息正确
信息错误
信息存入返回用户界面
退出程序
修改函数:
接收用户权限
普通招聘单位
会员招聘单位
会员招聘单位
接收关键字,并查找
找到信息
未找到信息
修改信息并保存
退出至用户界面
【程序使用方法】
在程序的文件夹内新建四个文本文件,成功记录,普通招聘,会员招聘以及应聘者,运行程序并按提示进行操作,在登陆时使用默认用户名及密码登陆;在登记注册时要注意电话号码必须是整形数据;在各个界面内如果选择错误,则执行退出或返回上一页;
2、程序上机调试报告
【语法错误及其排除】
1.调用strcmp()函数,strcpy()函数时没有加头文件名string
排错:
加#include
2sex的赋值用strcpy()函数
排错:
sex为字符形不能用字符串赋值函数
【算法错误及其排除】
1输出类对象时直接用cout
排错;定义重载的<<输出类的内容
2类外直接使用私有成员变量
排错:
在类内定义get函数,返回私有成员
3在调用switch()语句中,没有加break
排错:
在每个case语句后加break;
3、程序测试结果
以下为部分测试结果,其他的可按提示运行
1登陆的检测
2登记注册的检测
3修改信息的测试
【收获及体会】
刚拿到题目时,觉得很简单,但当自己开始编程时,却出现了许多错误,查找了很多书才搞清楚题目的难度,和应该注意的问题。
借助此次编程对C++语言有了更深的了解和认识,并对课本进行了一次复习,并认识到C++的高深,当然我也深知自己的程序不够标准;
4、源程序代码(要求有尽可能多的注释语句)
#include
#include
#include
#include
usingnamespacestd;
constintM=100;
constintN=100;
constintL=100;//对象的最大个数设定
voidsecsurface(inta);
voidusersurface(intn,intc);
voidmodify(intn,intc);
voidsuccessrecord();//函数声明
classmessage//定义信息类
{
private:
charname[10];//联系人
charjobname[10];//工作职称
chare_mail[20];//邮箱地址
intphonenum;//联系电话
public:
message(){}
~message(){}
voidinput1()
{
cout<<"请输入联系人姓名:
";
cin>>name;
cout<<"请输入职务名称:
";
cin>>jobname;
cout<<"请输入邮箱地址:
";
cin>>e_mail;
cout<<"请输入联系电话号码:
";
cin>>phonenum;
}
char*get_name()
{
returnname;
}
char*get_jobname()
{
returnjobname;
}
intget_phonenum()
{
returnphonenum;
}
char*get_e_mail()
{
returne_mail;
}//定义成员变量的get函数,以便后面用到私有变量
voidshow1()
{
cout< "< cout< "< cout< "< cout< "< } }; classemployer: publicmessage//定义普通招聘单位,公有继承信息类 { private: charcomplanyname[30];//公司名称 intage1,age2;//招聘年龄段 intpay1,pay2;//招聘工资段 charaddress[50];//公司地址 charsex;//招聘人员性别 public: employer(){} voidinput() { intt; cout<<"请输入公司/单位名称: "; cin>>complanyname; cout<<"请输入要招聘的年龄段: "; cin>>age1>>age2; if(age1>age2) { t=age1; age1=age2; age2=t; }//如果年龄段数据输入颠倒,则调换位置 cout<<"请输入要招聘的工资段: "; cin>>pay1>>pay2; if(pay1>pay2) { t=pay1; pay1=pay2; pay2=t; }//如果工资段数据输入颠倒,则调换位置 cout<<"请输入公司/单位的地址: "; cin>>address; cout<<"请输入要招聘的人员的性别: 男(M),女(W),如不做要求(0)";cin>>sex; input1(); } charget_sex() { returnsex; } intget_age1() { returnage1; } intget_pay1() { returnpay1; } intget_pay2() { returnpay2; } intget_age2() { returnage2; } char*get_complanyname() { returncomplanyname; } char*get_address() { returnaddress; }//定义成员变量的get函数,以便后面用到私有变量 voidshow() { cout< "< cout< "< cout< "< cout< "< cout< "< show1(); cout<<"W(女),M(男),0(不做要求);"< } friendostream&operator<<(ostream&output,employer&c) { c.show(); returnoutput; }//重载<<使得可以直接输出普通招聘类 }; classVip_employer: publicemployer//定义会员招聘类,公有继承普通招聘类 { private: intpeoplenum;//招聘人数 public: voidinput() { employer: : input(); cout<<"请输入公司/单位要招聘的人数: "; cin>>peoplenum; } intget_peoplenum() { returnpeoplenum; }//定义成员变量的get函数,以便后面用到私有变量 voidshow1() { show(); cout< "< } friendostream&operator<<(ostream&output,Vip_employer&c) { c.show(); returnoutput; }//重载<<使得可以直接输出会员招聘类 }; classemployee: virtualpublicmessage//定义应聘者类,虚继承信息类 { private: charsex;//应聘人员性别 intage;//应聘人员年龄 intpay;//应聘工资 charaddress[50];//应聘人员家庭地址 public: voidinput() { cout<<"请输入您的性别,男(M),女(W)"; cin>>sex; cout<<"请输入您的年龄: "; cin>>age; cout<<"请输入您要招聘的最低工资: "; cin>>pay; cout<<"请输入您现在的居住地址: "; cin>>address; input1(); } voidset_pay(inta) { pay=a; }//修改pay intget_age() { returnage; } charget_sex() { returnsex; } intget_pay() { returnpay; } char*get_address() { returnaddress; }//定义成员变量的get函数,以便后面用到私有变量 voidshow() { show1(); cout< "< cout< "< cout< "< cout< "< } friendostream&operator<<(ostream&output,employee&c) { c.show(); returnoutput; }//重载<<使得可以直接输出应聘类 }; voidcheck1(intn,intc)//普通招聘者登记函数 { employera,employ[N]; inti=0,j; ifstreamfp("普通招聘.txt",ios: : binary); if(! fp) { cout<<"can'topen'普通招聘.txt'! ! ! "< exit (1); } while(! fp.eof()) { fp.read((char*)&employ[i],sizeof(employ[i])); i++; } a.input(); if(a.get_age1()<=0||a.get_age2()<0||a.get_age1()>70||a.get_age2()>70||a.get_pay1()<=0||! (a.get_sex()=='0'||a.get_sex()=='M'||a.get_sex()=='W')) { cout<<"输入的相关信息错误! ! ! ! !
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序设计