《程序设计基础》
设计题目职工信息管理系统
专业计算机科学与技术
班级。姓名张蕾。
学号 061124010
完成日期 2024年6月1日
空两行)1. 问题描述页码。
2. 系统设计页码。
3. 数据结构与算法描述页码。
4. 测试结果与分析页码。
5. 总结页码。
6. 参考文献页码。
附录程序源**页码。
要求:给出一级目录,宋体加粗,四号字,1.5倍行距。)
报告正文部分):
课程设计题目。
要求:正文部分一律用小四号字,宋体,1.5倍行距。一级标题靠左,四号加粗。二级、**标题靠左,小四加粗。)
1. 问题描述。
问题描述]对单位的职工进行管理,包括插入、删除、查找、排序等功能。
基本要求]职工对象包括姓名、性别、出生年月、工作年月、学历、职务、住址、**等信息。
1)新增一名职工:将新增职工对象按姓名以字典方式存到职工管理文件中。
2)删除一名职工:从职工管理文件中删除一名职工对象。
3)查询:从职工管理文件中查询符合某些条件的职工。
4)修改:检索某个职工对象,对其某些属性进行修改。
5)排序:按某种需要对职工对象文件进行排序。
实现提示]职工对象数不必很多,便于一次读入内存,所有操作不经过内外存交换。
1)由键盘输入职工对象,以文件方式保存。程序执行时先将文件读入内存。
2)对职工对象中的"姓名"按字典顺序进行排序。
3)对排序后的职工对象进行增、删、查询、修改、排序等操作。
选做内容]将职工对象按散列法存储,并设计解决冲突的方法。在此基础上实现增、删、查询、修改、排序等操作。
2. 系统设计。
2.1 设计目标。
设计一个实用的简单职工信息管理系统,用链表来存储职工的基本信息和工资信息,完成对职工信息包括职工编号、职工姓名、出生日期、职工性别、职工职称、职工部门、职工工资等信息的新建、修改、删除、查找、排序、保存、显示等操作。
2.2 设计思想。
设计一个菜单,通过菜单选择实现相应操作。对于输入的原始信息,使用链表存储它们。这样做的好处是,可以随时增加内容,也容易将职工信息从文件中删除。
为职工设计一个类,单独设计完成这个文件读写的成员函数。
使用结构数组作为职工信息的存储器,由它们和文件建立读写关系。需要显示它们时,先将文件读入内存,然后再显示。需要显示输出职工信息时,则直接从内存链表中筛选。
当然,需要显示原始信息时,也通过直接显示链表信息的方法实现。这四种数据的显示问题均通过一个成员函数来完成。
用类的成员函数对链表的数据进行操作。
1)新建函数 link create(link head);/创建一个带头节点的空链表。
2)修改函数 link modify(link head);/修改单个节点。
3)删除函数 link del(link &head);/
4)查询函数。
bool search(link head)//查询同时满足“姓名”和“部门”的职工信息。
link search_unique_front(link head)//查询满足“职工**“的职工信息(职工**必需唯一)
5)保存函数 void s**e_byfile(link head)//
6)排序函数(包括按工资排序和按姓名进行字典排序)
/link sort(link head)
/link sort_byname(link head)
7)显示函数 void display_list(link head)
2.3 系统模块划分(要给出流程图)
2.4 设计职工工资信息的数据结构表。
表2-3 职工信息管理。
3. 数据结构与算法描述。
图序、图名图3-1 ××置于图的下方,宋体小四居中,单倍行距,图序与图名文字之间空一个汉字符宽度)
4. 测试结果与分析(可将测试过程抓图说明)
5.1新建函数 link create(link head)的测试。
5.2保存函数 void s**e_byfile(link head)的测试。
5.3显示函数 void display_list(link head)的测试。
5.4查询函数bool search(link head)的测试。
5.5排序函数的link sort(link head)的测试。
按姓名字典排序。
按工资高低排序。
5.6修改函数 link modify(link head)的测试。
5.7删除函数 link del(link &head)的测试。
5. 总结。
通过一年对程序设计的学习,我已经能够进行简单的程序设计,这次课程设计对自己所学知识起到了检测和提高的作用。课程设计中用到了类、结构、链表、文件的储存和读取等方式对职工信息进行较为全面的管理,对一年来程序设计的学习有一个综合性的检测和应用。程序的设计中遇到不少问题,例如如何进行排序算法的边写,文件的读写功能等等,通过和同学的讨论与交流,解决了不少问题。
程序的调试过程中也有不少问题,例如标点、菜单的界面设计等。
课程设计完成后,感觉上最大的收获就是在设计之前要有一个清晰的思路和完整的设计提纲,对各功能函数的作用做详细考虑。细心在这次课程设计中起到很关键的作用,一个标点、一个字母、一个符号都可能导致程序的不能运行,因此要有耐心认真完成。当然知识是不可缺少的,只有对这学期所学得知识能够真正掌握并能加以运用,才能顺利完成这次的课程设计。
6. 参考文献。
附录程序源**。
1、头文件。
#include
#include
#include
#include
#include <>
#include <>
#include <>
#include <>
using namespace std;
struct employee
//声明职工的结构作为链表节点。
/--数据域---
string m_code; /编号。
string m_name; /姓名。
//unsigned short int m_year;
string m_year; /出生年月。
string m_sex; /性别。
string m_post; /
string m_department;
unsigned int m_wage;
//string m_wage;
/链表节点的指针域---
struct employee* next;
struct employee
//声明职工的结构作为链表节点。
/--数据域---
char m_code[10];
char m_name[10];
unsigned short int m_year;
char m_sex[2];
char m_post[12];
char m_department[16];
unsigned int m_wage;
/链表节点的指针域---
struct employee* next;
/--取别名---
typedef struct employee node;
typedef node* link;
/--函数声明。
link create(link head);
void release(link head);
link add(link head);
bool search(link head);
link search_unique(link head);
void display_list(link head);
void display_node(link pnode);
link modify(link head);
/link del(link head);
link del(link &)
/void s**e_byfile(link head,fstream& ofile);
void s**e_byfile(link head);
link sort(link head);
/void load_byfile(link &pnode,fstream & ifile);
void load_byfile(link &pnode);
link sort_byname(link head);
2、修改和排序。
/修改职工信息函数。
link modify(link head)
// 修改单一个节点。
string co;
cout<<"输入你要修改的职工编号:";cin>>co;
link ptr;
link ptr_front;
ptr_front=head;
while(ptr_front){
ptr=ptr_front->next;
if(ptr==null) break;
课程设计报告格式 课程设计
洛阳理工学院。课程设计说明书。课程名称。设计课题。专业。班级。学号。姓名。完成日期2014年12月26日。问题描述 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的内容要求。基本要求 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的基本要求。测试数据 小四宋体,行间距单倍行距,每...
课程设计总结,课程设计报告
课程设计总结,课程设计报告。3.尝试应用项目管理软件进行项目进程的规划管理 绘制甘特图,不作硬性要求 二 选题说明。人事管理是企业信息管理的重要部分,面对大量的人事工资信息,财务部门采用人力处理将浪费大量的时间 人力和物力,且数据的准确性低。因此,开发一个界面友好,易于操作的人事工资管理软件进行自动...
课程设计 课程设计报告格式
学校名。课程设计报告。课程名称 c语言程序设计 系别 专业班级 学号。姓名。课程题目 企业人事管理系统 完成日期 指导老师 年月日。附件。课程设计的内容。企业人事管理系统 本项目的目标是开发一个功能实用,操作简便,简单明了的人事管理系统。能够录入人事的基本资料,在操作上能够完成诸如添加 修改 删除 ...