《数据结构与算法》工资管理系统综合实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数据结构与算法》工资管理系统综合实验报告

《数据结构与算法》

综合实验报告

课程名称:《数据结构与算法》综合实验

专业:运算机科学与技术

班级学号:********

*名:**

指导教师:***

成绩:

完成日期:2020 年月日

一、实验题目

工资治理系统

二、实验时刻地

时刻:2012/6/10

地点:506ATA机室

三、实验目的

1. 明白得线性表的定义、线性表的顺序储备结构和链式储备结构。

2. 明白得线性表的逻辑结构特点

3. 深入把握线性表的两种储备方法,即顺序表和链式表。体会这两种储备结构之间

的差异。

4. 重点把握线性表和链表上各种差不多运算的实现。

5. 综合运用线性表解决一些复杂的实际问题。

四、实验内容

(一)、功能关系介绍

1添加功能,通过它能够添加新的职员信息,专门方便,输入1即可进入添加页面,添加完以后,输入4储存。

2查询功能,通过它能够查询是否有那个职员,他能够通过两种方式进行查询,一是id号查询,二是姓名查询。

3删除功能,通过它能够删除离开的职员,它也能够通过两种方式进行删除,一是通过id删除,二是通过姓名删除。

6修改功能,通过它能够修改职员信息,譬如,工资等,可输入id号进行修改,修改完以后返回主页面输入4进行储存。

5插入功能,与添加功能有区别,它可选择性的插入,随意插,他也是添加新的职员,专门方便,返回主页面,输入4储存。

4储存功能,它可储存添加,插入和修改的职员信息。

7显示功能,通过它能够显示所有职员的详细信息。

0返回功能,通过它可返回主页面,进行其他操作。

(二)、采纳数据结构

该职职员资治理系统采纳了单链表的建立,输入,插入,查找,删除,输出等功能

(三)、语言工具

C语言编程

五、预习内容

(一)、单链表分线性单链表和静态的单链表。

线性单链表是用一组不连续的储备单元来存放线性表中的数据,因此链表中结点的逻辑次序和物理次序不一定相同。为了正确的表示结点间的逻辑关系,在

储备线、性表时,储备每个数据元素值的同时,还要储备指示其后继结点的地址

信息,这两部分信息组成的储备映像称为结点。

一个结点有两个域组成:数据域和指针域。

1)、创建单链表:

1、扦插法建表

2、尾插法建表

2)、在单链表中查找给定的元素:

1、按每个元素的定位序号查找

2、按值查找

(二)、单链表的长度

刻意采纳“数”结点的方法求出单链表的长度,用指针p依次指向各个结点,从第一个元素开始”数“,一直”数“到最后一个结点(p->next=NULL)。单链表插入操作在单链表L中第i个位置插入一个数据元素e,第一找到单链表中的第i-1个结点,然后申请一个新的结点由指针s指示,s结点数据域为e。修改第-1个结点的指针使其指向s,然后使s结点的指针域指向原第i个结点。

(三)、单链表的删除

注意:删除算法中的循环条件(p-next!NULL)&&(k

1、开创一块连续空间,初始化为闲暇静态链表。

2、闲暇链上的结点分配。

3、闲暇链上的回收分配。

4、静态单链表结点的分配与开释

六、算法描述(流程图与说明)

(一)、详细描述

工资治理系统(要求)

该系统能够实现工资治理。系统包括录入、游玩、查询、统计等功能。其中录入功能要求能够添加新的工资信息到文件;游玩功能要求能按照工资卡号、姓

名分类游玩,提供分屏显示;有排序功能,排序后按照工资卡号升序或实发工资

降序输出;查询功能要求能够按照工资卡号、姓名查询;统计功能要求能够按照

月份累计统计某职工在某时刻段实发工资总金额。(提示)

(1)文件中一行数据对应一个职工工资信息。

(2)工资信息的数据结构采纳结构体数据,一个数组元素对应一条工资单记录。

(3)工资单信息包括工资卡号、姓名、月份、应发工资、水费、电费、税金、实发工资等。

(4)实发工资=应发工资-水费-电费-税金,其中税金运算方法为:

1)、应发工资应发工资〈800元,税金=0

2)、800〈应发工资〈1400元,税金=(应发工资-800)*5%

3)、应发工资〉1400元,税金=(应发工资-1400)*10%

该系统分:菜单函数、查询函数、添加函数、删除函数、显示函数、修改函数、

储存函数、插入函数、和主函数九个模块。

菜单函数的要紧显示的是主菜单,你能够通过菜单函数选择你要选择的模块,选

择你要执行的方法,菜单函数共有八个选择,在0~7之间你人选择一个,就会进

入到相应的模块。

选择1带你进入添加模块;

选择2带你进入查询模块;

选择3带你进入删除模块;

选择4带你进入储存模块;

选择5带你进入插入模块;

选择6带你进入修改模块;

选择7带你进入显示函数;

选择0带你返回菜单函数;

职员的信息包括职工卡号、职员id、职员姓名、性别、部门、技术职称编号、、差不多工资、职务工资、应发工资、实发工资、税金、补助。

(二)、数据结构的采纳

添加模块和插入模块都运用到单链表的输入和插入,查询模块运用到了单链表的查找,删除模块运用到了单链表的删除,储存模块,修改模块,返回模块还有

显示模块都运用到了单链表的输入和输出

(三)、算法的描述

本系统一开始就运用了结构体类型,定义了一个结构体类型变量worker,来定义职员的各种信息,还定义了一个数据节点,用于创建单链表。

菜单函数:显示功能总页面,用cprintf()程序输出,system("cls")功能是清屏,清除所有显示的信息,

定位函数:Node *locate(Link m,char find[],char fangshi[]) {},m为链表,find,fangshi为两个数组,利用strcmp(fangshi,"id")程序,假如strcmp()==0,

表示利用id完成查询、删除或修改,本程序要紧是完成用Id或name方式选择查

询、删除或修该

查询函数:chaxun(Link m),完成是否又该工人的查询,假如m的指针域为空,表

示没有工人的记录,否则通过id或name查询,调用lacate()函数,假如lacate()

的值不为空,输入职员信息,按任意键终止。

添加函数:add(Link m),若m的指针域不为空,连续输入数值,申请节点,用节

点存放输入数值,若职工卡号输入0,返回主页面,否则连续输入

删除函数:delete(Link m),r若m的指针域为空,表示没有记录,通过调用lacate()

确定用哪一种方式进行删除,若找到则执行删除,否则没有该记录。

修改函数:modify(Link m),若m的指针域为空,表示没有记录,用get()输入

id,用id得到想要修改的数据,修改完显示修改成功,否则显示失败。

显示函数:xianshi(Link m)若m的指针域为空,表示没有记录,显示所有职员的

信息。

相关文档
最新文档