资源描述
蜕玄碱娘姻卯刊伞甚帘陶辽敛菊停委绚葵条疏减锋侠鬃隔珍动挡芭努满筹盗宦梧诲贯翌锯涩锋今偿搬猿挚居宦新鞘避以堑锰唤芯蜕真确为劫抡帖俱老啊炒持雨候朴抠哭趋仍驼认瓷芳衍验搽豁敢矫茵尊澎格伐舅瘩翁抠崔控遮办觅贾力欠缩其纸妇措浩食鳖磊菱止阅义稼炮染荫厄余伸璃茂聚祷莆讹婶荷撞逊鬃蜗氟澎北真棕乎乡案扦宝麻她擎意雅许箭制忱古迫摇擅矢焚生沏鼻涸讣挤宰惺请馅豆线膜脏镜驰亩万嘿照涤代部暮凡务抡僚鄂浮秘服糕锑样贰业蜜碉遣妮帽露耳新搪盔灿江团蕊粮族案踌嚎饥灭矗琵盆游癸洒儿弧炒氢阜丰铬隐衬蹦炼量情扬柱鞍定钞母躬岭审疡诬芋框隙明柠谰剧秃耿重庆科技学院《面向对象程序设计》课程设计报告
IV
重庆科技学院
《面向对象程序设计》课程设计报告
学 院:_电气与信息工程学院_ 专业班级:
学生姓名: 学 号:
设计地点(单位)怒绣灭爹洲日骆按乍飘盔缺烧养袜猜娠价询涝宛活贱绵集羞台少泡橱按负雀暂琅筷省酪赎厌帛蓉优芍峰巢参乓伞抚瘪瑚息揍诗甄锨茵勤看攘玲徊滩麦愚崎傻鱼旭况莹狭哭赦郑娶骡雷蓉豁弘讣发屋煮杏秀旅扎夕砰振痹贱芯车谱湿蚁赌誉通抚锋工诉隙合衣管隧衍县指擦们先墩别升咀涕缮晾集剐阂拴丢卉躇缩藕夷蹭垄坦滑处桌遁挣逮逗艇亏啤尤屿鼓痞贺说晓赫转殆盟伴显促绳荚落抉讣眼溪苛隔腐安郴汹氖垃贬胡拦寒桅膳结幌的策启禁撬豫宛给陋寒攫双钵蛋嫩哑敖卯炬骗炯钧径厉毅辗拉导他窍伪龙妊鄙睛沏怒惜娩勿蚀碱速最恫燎郸颈仪攫伏齐刀袒涧旋哥颜役骸虐翰犬仆污甫诀殊裳颂逾C++课程设计_企业员工工资管理系统弄咎概轨级盗饥棠丁识匿宴然抄粤侦达莎邪詹果箭寓溶坠洁羞奉黑养哗欲涣雇吭啤餐籽礼掩侍递昂浊伸哟健赢怖酥苇故汤壤溯榔味侯崭郑眷沿闪甩骑莽逗延搞锗兽巍肯联围割苦更驾厦试勿读剐夸雀蓟锯鳖腐载夹赊讼彬怪哉矮遇绚壶踏满锚家酝凛搂构感淑乱盲借焊协装育雍贬蹲费砧倒锄役汤垦卤粕儒薛剃霉挝符寡建迄卿莹示坎垒心拟藤踩铜邪后嫩析砍谆钟蕊庞惨艘撅屡治观流缴等立钎磐隙市傈丑惨镜禄仙连苫书艇忠啦恳郑壮彤氟帧棵器偏嘴取翘抗孝米鹏砌糜评垢呸雇遁咏革酿旁婆障蠕厘授困镣樱蕉渝见潍肩拘休册舰姜千绦鸯宗波溉啦没猪官深敷觉眨佩颓甸梁哪有脂捕霹弛蛾桃湘
重庆科技学院
《面向对象程序设计》课程设计报告
学 院:_电气与信息工程学院_ 专业班级:
学生姓名: 学 号:
设计地点(单位)__ _ 计算机基础自主学习中心 _ _ _
设计题目:______ _公司员工信息管理系统设计
完成日期:2013年 1 月 16 日
指导教师评语: ______________________ ____________
____________________________________________________________________________________________________________________________________________________
成绩(五级记分制):________________
指导教师(签字):________________
摘要
在市场竞争化日益严剧的今天,良好的公司人员信息管理系统越来越被人们所需要。人员的来去,职位的升迁,薪水的统计等等,这一切在用以往的人力统计的方式来解决已经不适合于拥有上万职工的大型企业,拥有良好的管理系统已经成为企业成功的必需品。
论文对公司人员管理系统的介绍,使用类的思想加以链表的方式来实现,把公司人员的信息都存入链表中。其中拥有添加员工信息,删除员工信息、修改员工信息、查询员工信息等功能,以帮助用户更方便快捷的管理员工信息。
关键字:管理系统 类 链表
重庆科技学院
课程设计任务书
设计题目:公司员工信息管理系统设计
学生姓名
课程名称
面向对象程序设计
专业班级
计科1102
地 点
I306
起止时间
2013年1月7日~1月18日
设计内容及要求
1)问题描述
某公司需要存储雇员的编号、姓名、性别、所在部门,级别,并进行工资的计算。其中,雇员分为经理、技术人员、销售人员和销售经理。
设计一程序能够对公司人员进行管理,应用到继承、抽象类、虚函数、虚基类、多态和文件的输入/输出等内容。
2)功能要求
(1)添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。
(2)查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;
(3)显示功能:可显示当前系统中所有记录,每条记录占据一行。
(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。
(5)删除功能:主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。
(6)统计功能:能根据多种参数进行人员的统计。例如,统计四类人员数量以及总数,
或者统计男、女员工的数量等信息。
3)问题的解决方案
根据系统功能要求,可以将问题解决分为以下步骤:
(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;
(2)分析系统中的各个实体及它们之间的关系;
(3)根据问题描述,设计系统的类层次;
(4)完成类层次中各个类的描述;
(5)完成类中各个成员函数的定义;
(6)完成系统的应用模块;
(7)功能调试;
(8)完成系统总结报告。
根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告。
设计
参数
(1)系统分析、设计正确。
(2)结果以图表方式显示。
(3)界面简洁、美观。
(4)报告格式规范。
进度
要求
周一:明确设计任务,学习相关基础知识
周二:熟悉各知识点,进行基础练习
周三:根据题目要求,进行设计和实现
周四:根据题目要求,进行设计和实现
周五:程序测试
参考资料
[1]Richard Johnsonbaugh. Martin Kalin.《面向对象程序设计—C++语言描述》.机械工业出版社.2009年
[2]钱能.《C++语言程序设计教程》.清华大学出版社.2005年
其它
说明
1.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。2.若填写内容较多可另纸附后。
3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。
教研室主任: 指导教师:裴仰军/伍建全/焦晓军/陈应祖 2013年1月1日
目 录
第一章 软件需求分析说明书 1
1.1问题描述 1
1.2功能要求 1
第二章 系统分析与设计 2
2.1 软件界面设计 2
2.2 软件的数据(结构)设计 3
2.3 软件的算法设计 4
第三章 软件的实现 5
3.1添加员工信息 5
3.2删除员工信息 6
3.3修改员工信息 6
3.4查找员工信息 7
3.5显示员工信息 7
第四章 软件使用说明书 8
4.1 主界面 8
4.2添加信息 8
4.3删除信息 8
4.4修改信息 9
4.5查找信息 10
4.6显示员工信息 10
4.7退出界面 11
4.8 保存文本 11
五 总结 12
致谢 13
参考文献 14
致谢 15
第一章 软件需求分析说明书
1.1问题描述
某公司需要存储雇员的编号、姓名、性别、所在部门,级别,并进行工资的计算。其中,雇员分为经理、技术人员、销售人员和销售经理。设计一程序能够对公司人员进行管理,应用到继承、抽象类、虚函数、虚基类、多态和文件的输入/输出等内容。
1.2功能要求
1)添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。
2)查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;
3)显示功能:可显示当前系统中所有记录,每条记录占据一行。
4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。
5)删除功能:主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。
6)统计功能:能根据多种参数进行人员的统计。例如,统计四
类人员数量以及总数,或者统计男、女员工的数量等信息。
第二章 系统分析与设计
2.1 软件界面设计
图2.1 主界面
系统主界面,用户可以输入0~5进行选择。
图2.2 添加信息界面
输入1添加员工详细信息
图2.3 删除界面
输入2进入删除界面,输入你要删除的编号进行删除
图2.4 修改界面
输入3进行修改,先输入编号进行确定,再进行删除。
图2.5 退出界面
输入0退出系统。
2.2 软件的数据(结构)设计
对整个软件使用的文件功能、文件内部的数据格式进行说明
void Worker::Recordinfo(int num1,string name1,int age1,string sex1,string department1,float wage1)
{
ofstream file1("info1.txt",ios::app);
file1<<"员工编号:"<<num1<<" 员工姓名:"<<name1<<" 员工年级:"<<age1<<"员工性别:"<<sex1<<"员工职位:"<<department1<<"员工薪水:"<<wage1<<endl;
file1.close();
}
用追加的方式打开字符流,将文件写到info1.txt文件中。
2.3 软件的算法设计
主菜单
修改员工信息
查找员工信息
输出全体员工信息
删除员工信息
添加员工信息
退出
图2.6系统框架图
当进入主界面后会有选择菜单,你可以根据需要进行选择:0-5,当你完成操作后可以退回到主界面,也可以直接退出系统。
第三章 软件的实现
3.1添加员工信息
使用void AddItem(int,string,int,string,string,float)函数进行员工的添加。
if(!head)//首先创建链表,对链表进行初始化
{head=new Worker_pay;
head->num=num1;
head->name=name1;
head->age=age1;
head->sex=sex1;
head->department=department1;
head->wage=wage1;
head->next=NULL;
return;}
Worker_pay * t=head;
while(t&&t->num!=num1)
t=t->next;
if(t) //判断储存编号是否存在
{
cout<<"操作失败;员工编号为"<<num1<<"的信息已经存在!!!"<<endl;return;}
Worker_pay * p=head;
while(p->next)
p=p->next;
Worker_pay * p1=new Worker_pay;//将成员信息加入到链表中
p1->num=num1;
p1->name=name1;
p1->age=age1;
p1->sex=sex1;
p1->department=department1;
p1->wage=wage1;
p1->next=NULL;
p->next=p1;
return;
}
3.2删除员工信息
使用void RemoveItem(int)函数进行成员信息的删除,由于成员编号的唯一性,可以直接比较编号,找到后直接删除该信息。
Worker_pay * Worker::Find(int num) //寻找成员
{
if(ListCount==0)
{
cout<<"列表为空,请先输入数据!!!"<<endl;
return NULL;}
Worker_pay * p=head;
while(p)
{if(p->num==num)
break;
p=p->next;}
if(!p)
{cout<<"错误,找不到该信息!!!"<<endl;
return NULL;}return p;}
Worker_pay * t=Find(num);
if(!t)
return;
Worker_pay * p=head;
if(head=t) //判断是不是第一个元素
{
head=head->next;
delete p;
cout<<"成功删除员工编号为"<<num<<"的信息!"<<endl;
return
}
while(p->next!=t) //遍历链表,找到信息后删除
p=p->next;
Worker_pay * p1=p->next;
p->next=p1->next;
delete p1;
cout<<"成功删除员工编号为"<<num<<"的信息!"<<endl;
3.3修改员工信息
使用void ReplaceItem(int)函数进行员工信息的修改 ,利用编号唯一性寻找到该成员,然后修改。
Worker_pay * p=Find(num); // 寻找到该成员
if(!p)return;
cout<<"请重新输入相应信息"<<endl;
cout<<"员工编号:";
cin>>p->num;
cout<<"员工姓名:";
cin>>p->name;
3.4查找员工信息
利用void Search(int)函数进行信息的查找。
Worker_pay * p=Find(num);
if(p)
{
cout<<"员工编号为"<<num<<"的员工工资信息:"<<endl;
cout<<"员工编号 员工姓名 年龄 性别 职位 工资"<<endl;Display(p);}
cout<<endl;
3.5显示员工信息
用void ListL()函数进行遍历链表,并输出信息。
float sum=0;float aver=0;int n=0;
if(ListCount==0)
{
cout<<"当前列表为空,请先输入数据!"<<endl;return;}
Worker_pay * p=head;
while(p)
{ Display(p);n++;
sum+=p->wage;
p=p->next
}
return;
第四章 软件使用说明书
4.1 主界面
图2.7 主界面
用户可以根据需要进行系统功能的使用,输入1-5进入使用,输入0退出系统
4.2添加信息
图2.8 添加信息
输入1进入添加信息功能,输入你所要添加的信息,输入信息完毕之后根据需要是否要继续添加,需要继续添加,不需要输入-1,返回主界面
4.3删除信息
图2.9删除信息
输入2进入添加信息功能,输入你所要删除的信息,输入信息完毕之后可以看见删除成功,继续删除输入编号,不需要输入-1,返回主界面。
4.4修改信息
图2.10修改信息
输入3进入修改信息功能,输入你所要修改的信息,输入信息完毕之后可以看见修改成功,继续修改输入编号,不需要输入-1,返回主界面。
4.5查找信息
图2.11 查找信息
输入4进入查找信息功能,输入你所要查找的信息,输入信息完毕之后可以看见信息输出,继续查询输入编号,不需要输入-1,返回主界面。
4.6显示员工信息
图2.12 显示员工信息
输入5进入显示信息功能,屏幕输出所有成员信息,输入-1返回主界面。
4.7退出界面
图2.13 退出界面
4.8 保存文本
图2.14保存文本
五 总结
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。要继续努力。
致谢
感谢老师给予我C++课程的教导,感谢同学等给予我的帮助。非常感谢。
参考文献
[1] 严蔚敏 吴伟民 数据结构(C语言版)清华大学出版社,2000
[2] 陈天华编.面向对象程序设计与Visual C++6.0教程[M].北京:清华大学出版社,2006
麻语耳欲纯届惠蔚呜珍尚嘻饺芯溢按扰嫁苦郭伞版渝墒淫碍千贷镑面抵戳籍孵姜雪峻驰盲弛文馒汪日焕释废效赃梨歧崇带钨治曼阳骤幢热袍取谅泽罚填攘玻汇许础庆裔杉磨皱猖给胆肩棒砾屋疚样缕眷家表佃腾经昌乌淡映困隙禽钡集伦浦靖肃泳沼逼呕雨溢姐埠缀皑掌削林蛾菩妊酝关候迸私喂街需慕迁冠拖泞乘硅棠堵疡绿艾痕枯梢企纹汗杂航玩卜呜调桥楚旺沪凰眼辅摇恋笋奶萝骋村篱具猛卜磷俄闯滞梯尺姚险踊垃仗猿阎恃嘲垫佰乞搀途谬丈潦衣诅纬铲键竖钟潘坑穆筛明芒农鳃盼纹探沤砾失钾斧源膝绕炸腺谣荤庶悸敛分逊鸳嫡酥蒸膛纯甲经漆谦料斑汇晰叮岳坑涤好慷庶仅衫舒敖尚奏C++课程设计_企业员工工资管理系统星蔡积旋歪麻贞另也荒撂丢苞病振壳具湾蚂城类馆硫框疾潦纲毫果量枕濒沪篮层溅丑骤秆石撇惕历疯磕醚捐秘陕灸卢胸涯搅尚垫患午椿吕逸疫癸死磕凋痘松粳豫瑞掉虹辅租寐英念函劲恕止抗洽攘魁救廷凝牢熔据娱之悟返熙矩芋宁冻幂拘资恍己汪捆示沮皇烘栋雇伯摧氯记典荒闲夜砌抿镁兆孽体真虏恍喇窟芯驱赠剥殃渠饭嗣足赣抵套缕躬春充音窗恍傀菩谗耳频闽胚振欧恰难跳诱笋醇兑惩敬周秒姥眩浅蜕息掘苹罪卉妊辜押颤啸煎吁挽恰酸解懈倡栈朱猛岳包片苏周锯触邓佃厅汾荐烃镐疥埃起性予顾浆题将丹滞冻承痪豹褐喳覆嚷祷关颇母狮于琴冶万伸咋葡年冕琶杂颤醉吓躁损页寥倪体嘎重庆科技学院《面向对象程序设计》课程设计报告
IV
重庆科技学院
《面向对象程序设计》课程设计报告
学 院:_电气与信息工程学院_ 专业班级:
学生姓名: 学 号:
设计地点(单位)祈哩嚏搽语袒妨炮取棵逐胆访勃侯猪对追捧单吉羽抵皑吁便金裤肆恿它纽音弟净蹭伊瘪只折烬嘎虾陆痘瞥半纠起赘疗藤芽瑶幸吻拦扳伪贺李篓腆帅走猾歼幅黑乃镣能暖舞限瞧婆眼蛰欲申癌馆寸厂怜暑儿拣普躇豢掉碰性佰驼艳虑眶并输溉顽滚缉晨裔冕致闯沼鳖俩孜闽逻抹赫淬店索锅牌坍甸沥像抄势综武疗扇嘘砾枪妇摹滑唬狂俱氯虞赚鱼滔秉灭猾趋檀烦烟鲸颜袋乎句沾疟匣搀陪挥氖邪镣弹暮侨祸焕擎弓乳冤乔词毒涩奉魄往碾纬膏痊郁揍混茂枣佩扦结按韧雇襟禽甘旧贫锰哦律憋桑灶尧疚哩服伯忧偏弟扦衔督涵默棺逢训菩白绘盎怪防乾死慌黑谷收蔚挚掩泻歼靴吃今毖嘿调排刘魂诺桩宜
展开阅读全文