当前位置:文档之家› 《职工工资信息管理系统》的设计与实现.doc

《职工工资信息管理系统》的设计与实现.doc

苏州科技学院天平学院

二○一〇~二○一一学年第二学期

机电工程系

课程设计报告书

课程名称:程序设计基础实践

班级:软件

学号:

姓名:范佳

指导教师:张宗杰

二○一一年四月

.题目

《职工工资信息管理系统》的设计与实现

.功能

()创建存储职工工资信息的存储系统。

()添加职工的工资信息(增加新职工时用)

()删除某职工的工资信息(职工离职或者死亡时用)

()修改某职工的部分工资信息(当月开始增加或减少某些项工资或扣款数变化)

()输出指定编号职工的工资信息(查询用)

()输出当月全体职工的工资信息(发工资用) *

.要求

()整个系统均用语言实现;

()利用指针、结构体来实现员工编号姓名工资的数据结构设计;

()系统具有数据载入、追加数据、插入数据、排序、删除数据、查找,显示数据、数据保存基本功能;

()系统的各个功能模块都用函数的形式来实现;

()可以将员工编号工资信息保存在文件中。

()可以将员工信息从文件中读取出来。

.设计内容

整个系统除了主函数外,另外还有个函数,实现八大功能:输入功能、显示功能、查找功能、排序功能、插入功能、保存功能、读取功能。各个函数的详细设计说明分别如下:主函数()

利用无限次循环(;;)和()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。

菜单选择函数()

这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的九大功能,根据每个功能前面的序号进行选择,。等执行完每一个函数功能后,按任一键回到主界面!

追加记录函数( * *)

这是一个有参函数,用来执行员工编号工资的输入,当员工为时停止输入,函数结束后,最后指针把后移,再把*赋值到前面即可,可反复追加。

算法:利用指针,首先使指向第一个数组的首地址,然后找到所在的位置最后指针把后移,再把*赋值到前面。

插入数据函数( * *)

这是一个不返回值的有参函数,形参有三个,两个结构体指针和一个整形变量。主要功能为给结构体数组给定位置插入新结构体。形参接收原结构体数组,所需插入的位置以及待插入结构体。

算法:利用指针,首先使指向第一个数组的首地址,然后找到要插入的位置,然后将该位置及其后的数据全部往后移一位,最后插入该数据流程图如下:

数据排序函数( *)

这是一个不返回值的有参函数,形参为“结构体数组”,实现按学姓名手机号前三位对某个学生进行排序,并显示排好的记录。

算法:采用指针指向数组的首地址,再利用冒泡法进行排序。

删除记录函数( * )

这是一个有参函数,形参为“结构体数组”,先输入要删除的同学记录的位置,找到后利用覆盖的方式进行删除。

算法:从指向数组的首地址,找到要删除记录的的同学位置,然后将该项的后面一项覆盖该项,依次类推。直到遇到号为止。

.数据查找函数( [] * )

这是一个有参函数,形参为“结构体指针和指针”,利用指针逐个查找,直到找到与要查数据具有相同的数据并输出该数据算法:利用键盘输入一个学生姓名,再与结构体数组中的每一个域进行比较,相同则输出该域所在的行,否则输出输出无此元数。

显示数据函数( [])

这是一个有参函数,形参是结构体数组,利用数组将数据显示到显示屏上。

数据保存函数( [] * )

这是一个不返回值的有参函数,形参为“结构体数组、指针”,可以把学生记录保存在电脑上由主程序命名的文本文件中。

算法:打开指定文件,若打不开则输出文件打开失败,若打的开则将其内容赋给指针,然后将学生以写的方式存入指定文件中,最后关闭文件。

流程图如下:

.调试分析

,输入记录模块主要完成将数据存入数组中的工作。记录可以从以二进制形式存储的数据文件中读入,也可以从键盘逐个输入记录。

,查询记录模块主要完成在数组中查找满足相关条件的记录。在查询记录模块中,用户可以按照职工编号或者姓名在数组中进行查找。

,更新记录模块主要完成对记录的维护。在此工资管理系统中,实现对记录的修改、删除、插入、排序操作。

,统计记录模块主要完成对公司员工的工资在各等级的人数统计。

,输出记录模块主要完成两个任务:

第一,它实现对记录的存盘操作,将数组中各元素的存储的记录信息写入数据文件中。

第二,它实现将数组中存储的记录信息以表格的形式在屏幕上打印出来。

,从键盘输入功能模块主要实现记录从键盘上输入函数实现。首先把文件中存在的记录全部显示出来,而后从键盘接收多次输入记录,如果职工编号重复则提醒重新输入,输入的记录暂保存到结构体数组中,输入回到主菜单。

,查询模块主要实现在结构体数组中按职工编号或姓名查找满足条件的记录的功能,通过()函数来实现。提供两种方式查询:为按照编号来查询,按照姓名来查询;如找到查询内容则输出记录值,找不到则提示无此项记录。

,更新记录模块主要是实现对记录的修改、删除、插入、排序操作。所有这些操作都在数组中完成。

,记录操作需要对数组中目标元素的数据域中的值进行修改,分三步完成:首先显示所有的记录,然后输入要修改的职工编号,调用()函数定位该职工的编号记录,第三步,若找到该记录,则修改职工编号之外的各字段的值。

,插入记录操作完成在指定职工编号的随后位置插入新的记录。首先,它要求用户输入某个员工的职工编号,新的记录将插入在该记录之后;然后提示用户输入一条新的记录信息。

,排序操作主要实现按照实发工资降序排序。分两步,首先输出所有的记录,而后按照冒泡排序法的思想进行排序,输出排序的结果。

,统计记录模块的实现比较简单,首先输出所有的记录,而后根据实发工资进行判断,完成工资在各个等级的人数统计。

.总结

经过几天的语言课程设计,感觉自己收获不少!

首先是:这次实践用的最多的是函数,函数很重要也很方便,经过这次实践要掌握了不少函数方面的知识,还有指针也用的很多,但有的比较难不易懂,所以在这方面我很了很多的时间看课本和参考课外书,使语言的知识强化了不少。

其次,在做课程设计的过程中,发现了平时很多没有注意到的问题,例如:返回值函数和不返回值函数两者在主函数中的调用是不同的…………

更重要的是,这次课程设计虽然花了我不少时间,但正是这些时间,让我见识到了语言的重要性。这个学生成绩管理系统都是在自己知识范围内完成的,所以界面清晰简单,可能不是很好看,但绝对实用!

从这里我也得到一个体会,做一个程序,或者开发一个软件,应该着重从它的后台制作入手,不能做出一个中看不中用的程序或者软件。

相信这次的课程设计为我以后继续从事计算机工作打了一个小小的开头。

由于这是第一次进行设计,写文档写的很烂。

希望张老师让我通过,谢谢!!

相关主题
文本预览
相关文档 最新文档