C语言课程设计职工信息管理系统设计.docx

上传人:b****1 文档编号:2423442 上传时间:2022-10-29 格式:DOCX 页数:29 大小:46.26KB
下载 相关 举报
C语言课程设计职工信息管理系统设计.docx_第1页
第1页 / 共29页
C语言课程设计职工信息管理系统设计.docx_第2页
第2页 / 共29页
C语言课程设计职工信息管理系统设计.docx_第3页
第3页 / 共29页
C语言课程设计职工信息管理系统设计.docx_第4页
第4页 / 共29页
C语言课程设计职工信息管理系统设计.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

C语言课程设计职工信息管理系统设计.docx

《C语言课程设计职工信息管理系统设计.docx》由会员分享,可在线阅读,更多相关《C语言课程设计职工信息管理系统设计.docx(29页珍藏版)》请在冰豆网上搜索。

C语言课程设计职工信息管理系统设计.docx

C语言课程设计职工信息管理系统设计

C语言课程设计题目及要求

题目:

职工信息管理系统设计

职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。

试设计一职工信息管理系统,使之能提供以下功能:

1、职工信息录入功能(职工信息用文件保存)。

2、职工信息浏览功能。

3、查询功能:

可以按“职工号”、“姓名”、“电话”、“工资”等方式查询记录;如果查询信息不存在,显示没有找到信息;

4、删除功能:

可以根据职工号或姓名删除一条已经存在的职工信息;

5、排序功能:

能对姓名、年龄、工资进行排序,并显示;

6、修改功能:

改变记录项的一个或多个属性,并用新的记录项覆盖已经存在的记录项;

7、数据存、取:

数据以文件形式存储在磁盘上,因此在程序运行中需要对文件进行读取操作。

编程人员可以根据实际需要自己定义文件的存储格式,在数据读写时必须精确定位,以免破坏文件的正确性。

除此之外,程序中还要不停处理用户的输入,对输入数据的容错性进行检查,可以保证数据的合法性,避免恶意和非恶意的操作对用户数据的破坏。

8、系统以菜单方式工作。

 

1.设计目的

在今天这个高速信息时代,许多繁杂的办公事务都由计算机代劳,例如职工信息管理等重复劳动越来越需要计算机来处理。

本系统就是为提高企业管理职工信息的效率而设计的,现在职工信息管理系统发挥无可取代的作用。

职工信息管理系统是一个可以用来进行职工工号、姓名等自然信息以及各项工资构成进行录入、查询、修改、删除、增加和排序浏览等操作的应用软件。

2.设计的总体思想

本系统是用VisualC进行设计与开发,总体思想是结构化、模块化的程序设计。

由于主要实现的是管理系统的增、删、改、查和排序等功能,因此应用到程序设计中的基本控制结构,如循环和选择,还使用到C语言最具特色的语言成分——指针,高效地使用数组、字符串和结构体,采用经典的排序方法——冒泡法进行排序,并且包含对文件的读、写等基本操作。

3.功能模块描述

职工信息管理系统是为企业进行职工信息管理提供辅助而设计的,需要为用户提供一个简单的人机界面以便操作,各功能模块如下。

1)登录模块:

根据输入的登录密码判断是否允许该用户使用本系统,输入密码正确才能进入管理界面,管理职工信息。

2)创建模块:

当第一次使用本系统时,根据提示输入职工的工号、姓名、性别、年龄、学历、职位、工资、电话和住址,可一次性输入多条职工的信息记录。

浏览模块:

可以浏览经输入、修改、删除、添加、排序、读取后的职工信息。

3)查询模块:

分为根据工号、姓名、电话、工资查询的四个具体需求,分别提示管理员要查询的职工信息的的工号、姓名、电话或工资。

4)修改模块:

分为根据工号、姓名修改的两个具体需求,分别提示管理员要修改的职工信息的工号和姓名,如果有对应职工的信息记录存在,则逐项列出对应职工的信息。

5)删除模块:

分为根据工号、姓名删除的两个具体需求,分别提示管理员要删除的职工信息的工号和姓名,如果有则删除此职工对应的信息记录。

6)添加模块:

可在原有职工信息记录的基础上增加新的职工信息记录,并保存至磁盘中。

7)排序模块:

分为根据姓名、年龄、工资排序的三个具体需求,分别提示管理员选择排序的方式。

8)保存模块:

将2)3)4)5)6)7)8)模块中改动的数据保存至文件中,以便进行管理、查找和备份。

9)读取模块:

将文件中的数据读取至内存中。

10)

4.概要设计

系统模块结构图

根据模块功能描述,职工信息系统可以分为11个模块,系统模块结构如图1所示。

5.详细设计

5.1数据结构设计

本程序定义结构体staffinfo,用于存放职工的相关信息。

定义的结构体如下(每个变量后面/**/中的内容为各个变量的含义):

structstaffinfo

{

charnum[10];/*工号*/

charname[9];/*姓名*/

charsex[3];/*性别*/

charage[3];/*年龄*/

charedu[5];/*学历*/

charrole[5];/*职位*/

charsalary[6];/*工资*/

chartel[16];/*电话*/

charaddr[30];/*住址*/

}sta[N];

由于工号、姓名、电话、住址等信息是用来描述职工这个有机整体,为了表示这些字段不是孤立的,而是共同描述一个完整的事物,因此用结构体来实现。

5.2各函数说明

1)voidgotoxy(intx,inty)

功能:

用于在屏幕上定位,其中整型数x代表列数,整型数y代表行数,其中0≤x≤80,0≤y,(0,0)代表左上角。

2)voidshowtable1()

voidshowtable2()

功能:

分别打印表头与表尾。

3)voidenter()

功能:

进入系统登录界面,验证管理员输入的密码。

输入:

登录密码。

处理:

①接收管理员输入的密码,存放到相应变量中进行判断。

②判断密码是否正确,如果相符,则进入主菜单。

③如果不相符,则提示用户重新输入。

4)intfind(charstr[30],intt)

功能:

查找指定记录,str[30]表示需管理员输入的职工的某一项信息,t表示通过哪一项来查找,例如通过工号、姓名来查找。

若找到与输入的信息相同的记录,则返回找到的记录号,若找不到就返回-1。

输入:

职工信息的某一项和想查找的途径。

处理:

①接收管理员输入的职工信息与查找方式,并存入相应的变量中。

②将内存中的数据与输入信息逐条比对,直到找到相同的记录,返回找到的记录号。

③若没找到该职工的记录,就返回-1。

5)voidcreat()

功能:

创建职工信息。

将管理员输入的若干条信息记录存入内存中。

输入:

①需创建的信息记录条数。

②若干条职工信息记录(工号、姓名、职位、电话等信息)。

处理:

①提示管理员逐条输入职工信息。

②获取管理员输入的信息,存入内存中。

③提示管理员录入成功。

6)voiddisplay()

功能:

浏览经过改动的信息记录,即打印出内存中的数据。

7)voidsearch()

功能:

查询所需职工信息记录。

四种方式查询:

工号、姓名、电话和工资。

根据管理员输入的职工信息和查找方式,按不同方式查找记录,列表显示查找到的记录内容。

输入:

①想要查找的方式。

②要查询的职工的某一项信息。

处理:

①提示管理员要查询的方式和要查询职工的对应信息。

②循环品牌查找对应记录。

③如果找找,则列表显示结果。

8)voidmodify()

功能:

修改原有的职工信息记录。

两种查找匹配记录的方式:

工号和姓名。

根据管理员输入的查找方式和职工信息查找是否存在匹配记录,若存在,则将此职工的信息改为管理员输入的内容。

输入:

①想要查找匹配记录的方式。

②要修改的职工的某一项信息。

③确认修改的选项字母。

④所要修改记录的内容值(工号、姓名等)。

处理:

①接收管理员输入的查找匹配记录的方式和要修改职工的某一项信息。

②判断是否有匹配职工记录,若有,则列表显示该记录并提示管理员是否确认修改。

③提示管理员输入该职工方的各项信息。

④提示管理员是否修改成功。

9)voiddelet()

功能:

删除指定的职工信息记录。

两种查找匹配记录的方式:

工号和姓名。

根据管理员输入的查找方式和职工信息查找匹配记录,若找到,则列表显示,经提示后删除该条记录。

输入:

①想要查找匹配记录的方式。

②要删除的职工的某一项信息。

③确认删除的选项字母。

处理:

①接收管理员输入的查找匹配记录的方式和要修改职工的某一项信息。

②判断是否有匹配职工记录,若有,则列表显示该记录并提示管理员确认删除。

③提示管理员是否删除成功。

10)voidadd()

功能:

增加新的职工信息记录。

判断所输入的工号是否已存在,若不存在,则将管理员输入的若干条信息记录存入内存中。

输入:

①想要添加职工的工号。

②新的职工信息记录(姓名、学历等)。

处理:

①提示管理员输入新职工的工号。

②判断职工号是否存在,若不存在,则提示管理员逐条输入职工信息。

③获取管理员输入的信息,存入内存中。

④提示管理员添加成功。

11)voidorder()

功能:

给职工信息记录排序(升序)。

三种排序方式:

姓名、年龄和工资。

根据管理员输入的排序方式排序,列表显示排序结果。

输入:

想要的排序方式。

处理:

①提示管理员输入排序方式。

②按照指定方式排序。

③列表显示排序结果。

12)voidsave()

功能:

保存职工信息记录及记录条数至文件中。

输入:

确认保存的选项字母。

处理:

①提示管理员确认保存。

②若确认保存,则将内存中的数据保存至指定文件中。

③提示管理员保存成功。

13)voidload()

功能:

从文件中读取职工信息记录及记录条数。

输入:

确认读取的选项字母。

处理:

①提示管理员确认读取。

②将文件中的数据读取至内存中。

③提示管理员读取成功。

14)voidquit()

功能:

确认保存过数据后,安全退出系统。

输入:

①确认保存的选项字母。

②确认退出系统的选项字母。

处理:

①提示管理员确认保存。

②若确认保存,则将内存中的数据保存至指定文件中。

③提示管理员是否退出系统,若是则退出。

15)voidmain()

功能:

根据主菜单上的各项指令,调用1)至14)的各个函数。

系统控制图如图1所示。

6.程序分析

6.1程序预处理

包括加载头文件,定义结构体,宏定义,全局变量,并对他们进行初始化。

#include/*输入/输出函数*/

#include/*其他说明*/

#include/*字符串函数*/

#include/*系统操作函数*/

#include/*屏幕操作函数*/

#defineN20/*系统记录的职工数,可根据不同企业的需要更改*/

structstaffinfo

{

charnum[10];/*工号*/

charname[9];

charsex[3];

charage[3];

charedu[5];/*学历*/

charrole[5];/*职位*/

charsalary[6];

chartel[16];/*电话*/

charaddr[30];/*住址*/

}sta[N];

intn=0;/*实际录入的职工信息记录总条数*/

6.2主函数voidmain()

主要实现对整个程序的运行控制。

详细分析可参考图3。

/********************************************

*主函数

*********************************************/

voidmain()

{

voidgotoxy(intx,inty);/*光标定位*/

voidshowtable1();/*打印表头*/

voidshowtable2();

voidenter();

intfind(charstr[30],intt);

voidcreat();/*录入职工信息*/

voiddisplay();/*浏览职工信息*/

voidsearch();

voidmodify();

voiddelet();

voidadd();

voidorder();

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

当前位置:首页 > 求职职场 > 面试

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

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