c 课程设计报告.docx
《c 课程设计报告.docx》由会员分享,可在线阅读,更多相关《c 课程设计报告.docx(32页珍藏版)》请在冰豆网上搜索。
![c 课程设计报告.docx](https://file1.bdocx.com/fileroot1/2023-5/30/bd002a28-9203-4eee-b3ac-52a47d333593/bd002a28-9203-4eee-b3ac-52a47d3335931.gif)
c课程设计报告
面向对象程序设计实践设计报告
学院:
计算机科学与工程学院
专业:
计算机科学与技术
学号:
姓名:
面向对象技术与C++课程设计任务书
课程
面向对象技术与C++
班级
100601--604
指导教师
姜虹
题目
企业工资管理
完成时间
2011年8月29日至2011年9月2日
主要内容
对员工信息和工资进行管理,员工分为经理、销售人员、技术人员、销售经理和技术总监,完成五类人员信息的添加、删除、修改、查询、浏览、保存和计算工资等功能。
具体模块化分如下:
设计报告要求
1.封面:
(格式附后)
2.课程设计任务书
3.课程设计报告:
⑴系统总体方案
⑵设计思路和主要步骤
⑶各功能模块和流程图
⑷设计代码
⑸心得体会和参考资料
说明:
学生完成课程设计后,提交课程设计报告及软件,要求文字通畅、字迹工整(也可用以打印),文字不少于5000字,并装订成册。
版面要求
1.题目用黑体三号,段后距18磅(或1行),居中对齐;
2.标题用黑体四号,段前、段后距6磅(或0.3行);
3.正文用小四号宋体,行距为1.25倍行距;
4.标题按“一”、“㈠”、“1”、“⑴”顺序编号。
上机时间安排
星期
周次
一
二
三
四
五
六
日
第2周
1-4
1-4
1-4
1-4
1-4
指导时间地点
上机时间,E506
企业工资管理系统
一.内容提要
随着我国国民经济建设的蓬勃发展和具有中国特色的社会主义市场经济体制的迅速完善,各个行业都在积极使用现代化的管理工具,不断改善企业的服务质量,提高工作效率。
无论是行政职能,还是生产运作的管理要求的不断提高,在很大程度上使企业不得不改变传统的经营管理方式以适应快速发展的社会主义市场经济,改变企业管理方式、方法已经成为企业发展的先决条件。
建设一个科学高效的信息管理系统是解决这一问题的必由之路。
我们设计的这个信息管理系统详细介绍了一个公司的工资管理系统的整个开发过程,包括系统分析、系统设计、系统实施等方面。
在整个系统的开发过程中,综合运用信息管理和信息系统开发的方法、技术,并充分结合在工作中遇到的实际情况。
本系统的主要功能是用计算机对各种工资信息进行日常的管理,对员工信息和工资进行管理,员工分为经理、销售人员、技术人员、销售经理和技术总监,完成五类人员信息的添加、删除、修改、查询、浏览、保存和计算工资等功能,迅速准确地完成各种工资信息的统计、计算和汇总工作,实现企业工资信息的集中管理。
本系统采用的开发工具是MicroSoftVisualFoxpro6.0,充分利用了它的功能,设计出本系统的详细过程,提出实现企业工资信息管理、资源共享的基本目标,使企业的工资管理工作系统化、规范化、自动化,从而达到提高企业规范管理的目的,推动企业现代化管理的水平。
关键字:
VC工资管理系统信息管理系统vc应用系统
二.目录
(一).企业工资管理系统的研究意义
(二).企业工资管理系统的基本要求与内容
(三).企业工资管理系统的主要功能
(四).企业工资管理系统的设计思路和主要步骤
(五).此管理系统中本人所作的工作
(六).管理系统的功能结构框图
(七).C++语言源程序代码
(八).管理系统的使用说明
(九).做管理系统的心得体会
(十).参考文献
(一).管理系统的研究意义
1.通过面向对象程序设计实践的训练,使我们更系统掌握面向对象程序设计思想和方法,并熟练地应用C++语言编写解决实际应用问题的程序,提高学生的编程能力及程序调试能力。
2.通过面向对象程序设计实践的训练,使我们养成良好的程序设计习惯,初步熟悉软件开发的过程,为后续课程的学习和将来进行软件开发打下良好的基础。
3.通过面向对象程序设计实践的训练,使我们在分析问题、解决问题等方面得到锻炼,增强学生调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。
(二).管理系统的基本要求与内容
1.对学生进行分组,每组完成一个题目。
2.每组对所做题目进行分析,完成题目所要求完成的功能。
3.描述并绘制出所做题目的功能结构框图。
4.设计一个程序,掌握C++设计程序的一些流程,综合的运用C++使用。
对流的使用,这个程序运用了一个流类的类库用继承的方法建立起来的。
5.编写“课程设计报告”。
6.尽可能的使界面友好、直观、易操作。
7.源程序要有适当的注释,使程序容易阅读。
(三).企业工资管理系统的主要功能
1.用户登录界面设计。
2.定义一个员工类,然后在定义五个员工对象分别为经理、销售人员、技术人员、销售经理和技术总监。
3.对于员工人员的信息进行添加、删除。
一个单位的职工不会是一成不变的,总是在不断地变化:
有调出、有调入、也有职工在本单位内部调动。
因此,设计时应考虑到这些情况。
4.五类人员信息的修改、查询。
可以对职工的工资档案进行个别、部分和批量修改。
查询要求既可以单项查询,比如查看某个职工的工资情况,也可以以多项查询,比如某部门工资数在某一范围的职工的工资情况等。
5.五类人员信息的浏览、保存。
6.计算工资。
以对职工的工资进行计算
(四).企业工资管理系统的设计思路和主要步骤
1.建立iostream/iomanip/fstream、输入、输出、输入输出流对象,
2.建立Worker类,构建PRIVATE私有成员和PUBLIC公有成员
3.建open函数,建立输入输出文件,如何打开文件
4.建立show_menu函数,请输入序号、名字、电话号码构建电话号码本
5.建立modify函数,可以更改序号、名字、电话号码本功能项
6.建立check函数,制作输入查询电话号码的序号功能项
7.建立DeleteData函数,制作输入可以删除的电话号码的序号
8.建立save函数,写入电话号码二进制文件,写入电话号码本
9.建立menu函数,用cout界面制作界面
10.建立一个主函数main(),#include"Worker.h"
voidmain(void)
{
Workerobj;
obj.menu();
}
11.运行主函数main,程序运行就可以了
(五).此管理系统中本人所作的工作
我在这个企业工资管理系统中,主要负责的是员工信息和工资的查询与
修改。
查询功能,就是在运行界面上,无论输入员工的编号或者姓名,都能显示出要查员工的信息和工资。
此功能代码的设计思想如下:
这个系统用的是文件和链表,当要查询某一个编号时,先定义一个指针,指向头指针(第一个节点),然后判断这个指针指向的对象成员编号是否是要找的编号,若是,则查找成功,若不是,则将移动指针指向后一位,以此类推,直到找到为止,如果到最后都没找到,则查找失败。
修改功能,就是对企业员工的信息进行调整或其他啥情况是修改员工的信息。
它也是先找到要修改的编号的节点,然后在修改此对象的对象成员。
无论是进行查询还是修改功能,均可用其他的对象成员进行操作,比如,输入所要查找或修改人的姓名,也可做到相应的功能,只需在编代码时用指针运算符->即可。
然后,用链表将写入的这些功能函数连接起来,就构成了这个企业工资管理系统。
(六).管理系统的功能结构框图1.本系统的结构图如下:
开始
进入系统
输入员工的信息
用户身份验证
调入主菜单
菜单选择
删除或添加信息
查询或修改信息
浏览员工的信息
保存员工的信息
计算员工的工资
退出系统
结束
输出出错信息
是否重新输入
N
N
Y
Y
2.查找功能的流程图
我在小组中负责的是查找功能和修改功能,这两个功能从编译思想上来说都是一样的,所以,这里只画出一个功能的流程图。
开始
输入编号no
输入第一个节点i.id
输入节点数n
输出“查找成功”
No=id?
Id++
I++
I<=n
Yesno
yes
no
、结束
输出“查找失败”
其下查询功能的代码如下:
Worker*Worker:
:
check(Worker*p)//查找
{Worker*h;
h=p;
stringd;
cout<<"请输入要查找的员工的编号:
";
cin>>d;
if(h==null)
{cout<<"查找失败."<cout<<"===>提示:
没有员工资料,请先输入员工资料."<}
else
{while(p->next!
=null)
{if(p->Id==d)
{
break;
}
else
{
p=p->next;
}
}
if(p->next!
=null)
{
cout<<"查找成功."<cout<<"编号"<cout<<"姓名"<cout<<"性别"<cout<<"年龄"<cout<<"底薪"<cout<<"提成"<cout<<"总工资"<cout<Id<cout<Name<cout<Sex<cout<Age<cout<basePay<cout<basePay<cout<sumPay<}
elseif(p->next==null&&p->Id==d)
{cout<<"查找成功."<cout<<"编号"<cout<<"姓名"<cout<<"性别"<cout<<"年龄"<cout<<"底薪"<cout<<"提成"<cout<<"总工资"<cout<Id<cout<Name<cout<Sex<cout<Age<cout<basePay<cout<basePay<cout<sumPay<}
else
{cout<<"查找不成功."<cout<<"===>提示:
你要查的资料,系统里没有记录."<}
}
return(h);
}
(八).管理系统的使用说明
1、计算机硬件配置:
1.CPU:
IntelPentiumⅢ500MHz(或更高)
2.内存:
256M(或以上)
3.硬盘:
10G(或以上)
4.显示器:
17英寸VGA彩显
5.标准键盘和鼠标器
2.计算机系统软件配置
1、MICROSOFTWINDOWSXP中文版
2、VisualFoxpro6.0中文版(或以上)
3、使用说明
1、首先打开软件安装包,在电脑上安装软件完毕后打开该软件。
2、运行本软件,出现系统登录界面,如图所示:
3.输入需要的操作编号,例如:
1。
如图:
4.选择其他需要的操作,如5,
6.做完所有操作后,选择退出系统:
(九).做管理系统的心得体会
经过独立设计开发这样一个比较完整的信息管理系统,使我深刻体会到信息系统开发的复杂和艰巨。
在开发过程中,虽然工作繁忙,但是通过辅导老师和小组同学的大力指导和帮助,终于完成了本系统的设计开发,再次深表感谢。
开发过程中的感想主要有以下几点体会:
1.对信息系统开发的全过程有了一个更深刻的认识。
不单单是流程上,更包含了许多开发过程中细节上的认识。
2.经过此次系统设计,加深了对理论知识的理解,使理论和实际联系起来。
锻炼了自己的编程技巧和基本技能。
从宏观上掌握了信息系统开发的基本思路和框架,锻炼了自己的逻辑思维。
3.基本掌握了VisualFoxPro6.0这种开发工具的使用方法。
能够应用VisualFoxPro6.0进行一般的信息系统的开发。
4.在开发的过程中,走了不少弯路以及出了不少错误,但是这些经验和教训使我增长了见识,必定会给以后的工作和学习带来很大益处。
5.广泛的积累素材,一本好的参考资料往往能够使系统的开发工作事半功倍,并使我们眼界不至于只局限于一个特定的框架体。
最后,再次向老师表示感谢!
(十).参考文献
1.c语言程序设计(第三版)谭浩强著清华大学出版社
2.c+面向对象程序设计(第二版)中国铁道出版社
(七).C++语言源程序代码
#include
#include
#include
#include
#include
#definenull0
usingnamespacestd;
classWorker{
public:
stringId;
stringName;
charSex;
intAge;
floatsumPay;
floatbasePay;
floatotherPay;
Worker*next;//链接指针
public:
Worker*creat();//建立信息库
Worker*check(Worker*);//查找模块
Worker*del(Worker*);//删除模块
Worker*add(Worker*);//添加模块
Worker*show_menu(Worker*);//显示模块
Worker*modify(Worker*);//修改模块
Worker*save(Worker*);//保存模块
Worker*open();//读出模块,自动执行
//floatsum(Worker*,string);//
};
Worker*Worker:
:
show_menu(Worker*p)//输出信息
{Worker*h;
h=p;
if(h==null)//链表为空
{cout<<"系统里没有资料记录."<else{
cout<<"编号"<cout<<"姓名"<cout<<"性别"<cout<<"年龄"<cout<<"底薪"<cout<<"提成"<cout<<"总工资"<while(p->next!
=null)
{
cout<Id<cout<Name<cout<Sex<cout<Age<cout<basePay<cout<basePay<cout<sumPay<p=p->next;
}
if(p->next==null)
{
cout<Id<cout<Name<cout<Sex<cout<Age<cout<basePay<cout<basePay<cout<sumPay<}
}
cout<return(h);
}
voidmenu()//输出主菜单
{
//登陆界面
cout<<"****************欢迎进入企业工资管理系统****************\n";
cout<<"\n";
cout<<"1.建立企业员工工资信息库;"<cout<<"2.查询员工资料;"<cout<<"3.删除员工资料;"<cout<<"4.添加员工资料;"<cout<<"5.显示员工资料;"<cout<<"6.修改员工资料;"<cout<<"7.保存员工资料;"<cout<<"8.退出系统;"<cout<<"请选择编号(1-8),进入相应操作:
\n";
}
voidinput(Worker*p)//录入信息
{cout<<"请输入编号:
";cin>>p->Id;
cout<<"请输入姓名:
";cin>>p->Name;
cout<<"请输入性别(m/f):
";cin>>p->Sex;
cout<<"请输入年龄:
";cin>>p->Age;
cout<<"请输入底薪:
";cin>>p->basePay;
cout<<"请输入提成:
";cin>>p->otherPay;
}
Worker*Worker:
:
creat()//建立资料库
{
Worker*Worker:
:
show_menu(Worker*p);
Worker*head,*p,*p1=null;
intn;
strings;
while(n<=0)
{
cout<<"请输入员工的个数:
";
cin>>n;
if(n<=0)
{
cout<<"没有员工资料."<return(head);
}
else
{
head=p=newWorker;
p->Id=s;
input(p);
p->sumPay=p->basePay+p->otherPay;
for(inti=1;i{
Worker*r;
p1=newWorker;
r=p;
p=p->next=p1;
p->Id=s;
while(r->Id==p->Id)//对编号的判断
{if(r->Id==p->Id)
{
cout<<"你的输入有误,请重新输入."<cout<<"===>提示:
编号不能相同."<cin>>p->Id;
}
}
input(p);
p->sumPay=p->basePay+p->otherPay;
}
}
}
p->next=null;
head->show_menu(head);
return(head);
}
Worker*Worker:
:
check(Worker*p)//查找
{Worker*h;
h=p;
stringd;
cout<<"请输入要查找的员工的编号:
";
cin>>d;
if(h==null)
{cout<<"查找失败."<cout<<"===>提示:
没有员工资料,请先输入员工资料."<}
else
{while(p->next!
=null)
{if(p->Id==d)
{
break;
}
else
{
p=p->next;
}
}
if(p->next!
=null)
{
cout<<"查找成功."<cout<<"编号"<cout<<"姓名"<cout<<"性别"<cout<<"年龄"<cout<<"底薪"<cout<<"提成"<cout<<"总工资"<cout<Id<cout<Name<cout<Sex<cout<Age<cout<basePay<cout<basePay<cout<sumPay<}
elseif(p->next==null&&p->Id==d)
{cout<<"查找成功."<cout<<"编号"<cout<<"姓名"<cout<<"性别"<cout<<"年龄"<cout<<"底薪"<cout<<"提成"<cout<<"总工资"<cout<Id<cout<Name<cout<Sex<cout<Age<cout<basePay<cout<basePay<cout<sumPay<}
else
{cout<<"查找不成功."<cout<<"===>提示:
你要查的资料,系统里没有记录."<}
}
return(h);
}
Worker*Worker:
:
del(Worker*p)//删除
{Worker*Worker:
:
show_menu(Worker*p);
Worker*h,*q;
q=h=p;
cout<<"请输入要删除的员工的编号";
stringt;
cin>>t;
if(h==null)
{
cout<<"删除失败."<cout<<"===>提示:
没有员工资料,请先输入员工资料."<