职工信息管理系统裴新慧.docx

上传人:b****6 文档编号:6120895 上传时间:2023-01-03 格式:DOCX 页数:8 大小:215.36KB
下载 相关 举报
职工信息管理系统裴新慧.docx_第1页
第1页 / 共8页
职工信息管理系统裴新慧.docx_第2页
第2页 / 共8页
职工信息管理系统裴新慧.docx_第3页
第3页 / 共8页
职工信息管理系统裴新慧.docx_第4页
第4页 / 共8页
职工信息管理系统裴新慧.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

职工信息管理系统裴新慧.docx

《职工信息管理系统裴新慧.docx》由会员分享,可在线阅读,更多相关《职工信息管理系统裴新慧.docx(8页珍藏版)》请在冰豆网上搜索。

职工信息管理系统裴新慧.docx

职工信息管理系统裴新慧

《高级语言程序设计》

课程设计报告

设计题目职工信息管理系统

专业计算机科学与技术(软件)

班级软件

姓名裴新慧

学号061124013

 

2007年6月5日

目录

 

1.设计目标…………………………………………………3

2.设计思想…………………………………………………6

3.类及对象设计……………………………………………6

4.程序源代码………………………………………………19

5.调试记录…………………………………………………22

6.总结………………………………………………………22

 

职工信息管理系统

1.设计目标

设计一个实用的小型职工信息管理系统,用链表来存储职工的基本信息和工资信息,完成对工资的录入、插入、删除、查询、统计、输出等操作。

2.设计思想

⑴设计职工工资信息的数据结构表

序号成员名数据类型长度含义

1numint职工编号

2namechar8职工姓名

3sexchar6职工性别

4ageint职工年龄

5base_salaryfloat基本工资

6post_salaryfloat岗位工资

7bonusfloat奖金

8deal_salaryfloat应发工资

9fundfloat医疗住房基金

10taxfloat税金

11fact_salaryfloat实发工资

(2)以结构体建类,以类为结点建立链表

(3)用类的成员函数对链表的数据进行操作

1)构造函数workers();

2)建立链表函数voidcreat();//新建职工纪录

3)统计函数voidstatisticdeal();//统计应发工资

4)统计函数voidstatisticfact();//统计实发工资

5)插入函数voidinsert();//在指定位置插入职工信息

6)查询函数voidlookup();//查询指定编号的职工信息 

7)删除函数voidcancel();//在指定位置删除职工信息

8)输出函数voidoutput();//输出所有职工信息

9)平均函数voidaverager();//平均工资

10)写文件函数voidwritefile1();//向文件写入职工信息(覆盖)

11)写文件函数voidwritefile2();//向文件写入职工信息(附加)

12)读文件函数voidreadfile();//从文件中读取职工信息

13)结束函数voidExit();//退出

14)析构函数~workers();

(4)设计菜单来实现功能设计

1)新建职工信息表

2)向职工信息表中插入职工信息

3)在职工信息表中删除职工信息

4)在职工信息表中查询职工信息

5)在屏幕中输出全部职工信息

6)向文件中写入职工信息

7)从文件读取职工信息

8)计算所有职工平均工资

9)退出(并保存修改)

3.设计类及对象

(1)本程序先定义结构体datatype和worker,然后用结构体worker建立类workers,定义如下:

classworkers

{

worker*head;//头指针

worker*temp;//当前指针

worker*tail;//尾指针

public:

workers();//构造

voidcreat();//新建职工纪录

voidstatisticdeal();//统计应发工资

voidstatisticfact();//统计实发工资

voidinsert();//插入

voidlookup();//查询

voidcancel();//删除

voidoutput();//输出

voidaverager();//平均工资

voidwritefile1();//从文件中读取职工信息(附加)

voidwritefile2();//从文件中读取职工信息(覆盖)

voidreadfile();//向文件写入职工信息

voidExit();//退出

~workers();

};

(2)在主函数里说明了一个对象workerswork,通过使用对象来调用成员函数实现功能设计。

case'1':

work.creat();break;//1、新建职工信息表

case'2':

cout<<"现在学生的信息如下:

"<

work.statisticdeal();

work.statisticfact();

work.output();

work.insert();break;

case'3':

cout<<"现在学生的信息如下:

"<

work.statisticdeal();

work.statisticfact();

work.output();

work.cancel();break;

case'4':

cout<<"现在学生的信息如下:

"<

work.statisticdeal();

work.statisticfact();

work.output();

work.lookup();break;

case'5':

work.statisticdeal();//5、在屏幕中输出全部学生信息

work.statisticfact();

work.output();break;

case'6':

work.writefile2();break;//6、向文件中写入职工信息

case'7':

work.readfile();break;//7、从文件中读取职工信

case'8':

work.averager();break;

case'9':

work.statisticfact();//退出(并保存修改)

work.Exit();break;

4.程序源代码

5.调试纪录

(1)创建函数voidcreat()的测试

Error:

输入女或男时运行屏幕上字体乱跳。

改正:

把charsex改为charsex[6]。

(2)插入函数insert()

(3)删除函数cancel()

(4)查询函数()

错误:

输出的编号与要查询的不同

原因:

用intnum来存储编号可能造成数据溢出

错误:

判断输入的工号和要查询的工号相等时出错.

改正:

用strcmpy(str1,str2)==0

Error:

在进行查询操作时,屏幕上许多代码在跳。

原因:

在查找成功后没用break跳出,导致死循环。

(5)写文件和读文件函数

(6)输出函数和计算平均工资

最初设计的域宽不适当,导致输出时若输入的工资大排版就不清晰,两项数据连在一起。

(7)错误:

编译时无法识别exit,errorC2065:

'exit':

undeclaredidentifier.

原因:

没加头文件

6.总结

这次课程设计是对我的很好自我检测机会,通过一年的学习,虽然掌握了很多新知识,但在编程上很容易眼高手低,刚进行测试编译时,出现了各种各样的错误,自己感到很苦恼,例如少加了一个}导致出现编译错误:

errorC2601:

'writefile':

localfunctiondefinitionsareillegal;errorC2601:

'readfile':

localfunctiondefinitionsareillegal;errorC2601:

'Exit':

localfunctiondefinitionsareillegal。

当时导致运行不出结果,我深切感受到调试程序的经验不足,在输入源代码时一定要仔细、认真。

由于时间紧迫,该职工信息管理系统还存在许多不完善的地方,我列出主要的几个不足:

(1)只能在指定位置插入和删除某个职工纪录,不能插入和删除指定工号的职工纪录。

(2)虽然通过插入和删除可以修改某个职工纪录,但没有修改函数直接进行操作。

(3)利用二进制文件的形式对结构体进行读写操作时,无法直接打开磁盘文件查看职工信息。

在这次课程设计中,感受最深的一个字就是“难”,同时感到自己知识方面还存在许多漏洞,但经过老师和同学的帮助,学到了许多。

我也深切体会若到想在计算机方面有所成就,就必须有锲而不舍的精神和认真端正的态度。

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

当前位置:首页 > 总结汇报 > 学习总结

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

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