首页 > 其他分享 >C语言员工信息管理系统[2023-03-01]

C语言员工信息管理系统[2023-03-01]

时间:2023-03-01 20:23:16浏览次数:50  
标签:请假 03 01 界面 信息 员工 char 2023 next

C语言员工信息管理系统[2023-03-01]

物联网工程专业 程序设计基础课程设计

员工信息管理系统

学 院(系): 信息与通信工程学院
专 业: 物联网工程
学 生 姓 名:
学 号:
指 导 教 师:
完 成 日 期:

大连民族大学

目 录
1 任务与目标 1
1.1 开发背景 1
1.2 问题描述 1
2 分析与设计 1
2.1 需求分析 1
2.2 系统设计 2
2.2.1 系统模块划分 2
2.2.2 系统总体设计 2
2.2.3各功能模块设计 3
2.2.4 数据结构设计 5
2.2.5 主要函数介绍 6
2.3 编码与调试 7
3 系统实现 9
4 总结与体会 14
5 参考书目 14

1 任务与目标
1.1 开发背景
任务目标是综合运用C语言知识设计并制作一个员工信息管理系统。系统需包含部门信息管理、员工信息管理、请假信息管理等功能模块,以达到解决客户的问题、满足客户需求的目的。
1.2 问题描述
本次课设的内容是运用C语言知识制作员工信息管理系统,系统的具体要求如下:
(1) 系统以菜单方式工作,包括系统主菜单,子菜单。
(2) 系统包括员工管理模块,请假管理模块,部门管理模块,信息统计查询模块。
○1员工管理模块,包括员工信息录入,员工信息包括员工号、部门名称、姓名、性别、年龄、学历、工资、电话等(员工号不能重复);员工信息修改;删除员工;查询员工信息(按工号查询);查询所有员工信息。
○2请假管理模块,录入员工请假信息,包括员工号,员工姓名,部门名称,请假日期,请假天数,请假原因;查询所有员工请假信息;查询某个员工请假信息,删除请假记录。
○3部门管理模块,部门信息录入,包括部门编号,部门名称,部门负责人,部门地点;修改部门信息;查看某一部门信息(按部门编号查询);查看所有部门信息。
○4信息统计查询模块,将所有员工按工资排序;如果输入部门名称,统计该部门下员工的信息和人数;按学历统计员工人数。
(3) 创新要求,在基本要求达到后,进行创新设计。
2 分析与设计
2.1 需求分析
企业中有大量的员工且各员工所属不同的部门,每个员工的信息需要独立且具有一定的隐私性,而管理者则需要掌握员工和部门的详细信息,针对这些问题一个员工信息管理系统应具有以下功能:
(1) 以员工号为账号的注册登录功能。
(2) 员工个人信息查看修改功能。
(3) 员工个人请假信息的提交和查看功能。
(4) 员工个人对部门信息的查阅功能。
(5) 管理员对员工信息的查阅删除功能。
(6) 管理员对部门信息的添加修改及查阅功能。
(7) 管理员对员工的请假信息审核和查看功能。

源码

https://pan.baidu.com/s/1pq1Nwwo0hlc_J84F93HM4A?pwd=1111

2.2 系统设计
2.2.1 系统模块划分
根据以上需求分析,图书管理系统分为以下功能模块,如图2.1所示。

图2.1 系统功能结构图

2.2.2 系统总体设计
  进入系统先显示系统主菜单,用户在系统主菜单中选择子菜单,在子菜单中选择具体操作,在菜单中用户可以选择退出或返回主菜单继续操作,系统整体流程图如图2.2所示。

图2.2 系统整体流程图

2.2.3各功能模块设计
(1) 系统主菜单设计
用户进入系统首先看见的是系统主菜单,主菜单的数据流程图如图2.3所示。
图2.3 主菜单数据流程图

(2) 录入员工信息功能设计
在进入员工操作模块前需要先进行员工信息的录入,录入流程如图2.4所示。
图2.4 录入员工信息数据流程图

其他功能流程图与以上流程图类似,在此省略。

2.2.4 数据结构设计
  对于员工信息数据的设计如表2.1所示:

表2.1 员工信息数据设计

变量名	数据类型	长度	描述
number	字符串(char[])	10	员工号
password	字符串(char[])	20	密码
name	字符串(char[])	20	姓名
gender	字符串(char[])	10	性别
age	字符串(char[])	10	年龄
ex	字符串(char[])	20	学历
salary	双精度浮点型(double)		工资
tel	字符串(char[])	20	电话
department	字符串(char[])	20	部门编号

定义对应的员工信息的储存类型为inflist:

typedef struct inf{
char number[10]; //员工号
char password[20]; //密码
char name[20]; //姓名
char gender[10]; //性别
char age[10]; //年龄
char ex[20]; //学历
double salary; //工资
char tel[20]; //电话
char department[20]; //部门编号
struct inf *next;//指针
}inflist;

相类似地,定义请假信息储存类型为leaveinflist:

typedef struct leaveinf{
char number[10]; //员工号
char liyou[80]; //请假理由 
char days[20]; //请假天数 
char year[10]; //请假日期
char month[10];
char day[10];      
char yn[10];//请假是否通过 
truct leaveinf *next;//指针
}leaveinflist;

定义部门信息储存类型为departmentinflist:

typedef struct departmentinf{
char number[10]; //部门编号 
char name[20]; //部门名称 
char fuzeren[20]; //部门负责人员工号 
struct departmentinf *next;//指针
}departmentinflist;

2.2.5 主要函数介绍
本系统各模块对信息的处理所用的函数内容类似,仅选择部分有特点函数进行展示(表2.2),其余函数省略。

表2.2 员工管理系统主要模块函数设计
函数名 功能描述

void mainmenu( )	调用主菜单
void membermenu(char s[])	调用员工菜单
void admenu( )	调用管理员菜单
void enter_inflist(int n)	注册员工信息
void pinformation(char s[])	个人信息管理
void askforleave(char s[])	调用请假模块
inflist *creatlist()	创建员工信息链表
void savelist(inflist *head)	保存链表信息
void adinformationdet()	删除员工信息

2.3 编码与调试
(1) 系统主界面编码

void mainmenu(){
		/*登录面板显示*/
	printf("\t\t========欢迎使用员工信息管理系统========\n");
	printf("\t\t           >1.登录\n"); 	
	printf("\t\t           >2.注册\n");
	printf("\t\t           >3.退出系统\n");
	printf("\t\t===============请选择1—3===============\n"); 
	printf("\t\t");
	int in;                                                 //界面控制 
	scanf("%d",&in); 
	switch(in){
		case 1:choicelogon(1);break;                           //登录系统 
		case 2:registe(1);break;                              //注册系统 
		        case 3:printf("\t\t用户退出"); break;
	}	                                    
}    

(2)定义creatinflist创建员工信息链表,编码如下:

inflist *creatlist(){
      inflist *head, *node, *end;             //定义头节点,普通节点,尾部节点;
      head = (inflist*)malloc(sizeof(inflist));   //分配地址
      end = head;                                 //若是空链表则头尾节点一样
      FILE *fp;
      if((fp=fopen("date.txt","r"))==NULL){       //文件打开 
      printf("创建链表时文件载入失败。");	 
	exit(0);
	}    
	while(!feof(fp)){
		node = (inflist*)malloc(sizeof(inflist));
fscanf(fp,"%s %s %s %s %s %s %lf %s %s\n",node->number,node->password,node->name,node->gender,node->age,node->ex,&node->salary,node->tel,node->department);
        end->next = node;
        end = node;
	} 
     if(fclose(fp)){                           //文件关闭 
	printf("创建链表时文件关闭失败。");
	exit(0); 
	}
      end->next = NULL;//结束创建
      return head;
}

(3) 定义maopao对员工信息链表进行排序:

void maopao(inflist *head){
      inflist  *p,*q,*tail;
      tail=NULL;
      while((head->next->next) != tail)
      {
        p=head;
        q=head->next;
        while(q->next != tail)
        {
        if((q->salary) < (q->next->salary))
            {
                p->next = q->next;
                q->next = q->next->next;
                p->next->next = q;
                q = p->next;
            }
            q = q->next;
            p = p->next;
          }
          tail = q;
      }
}

其余部分编码结构类似或结构较为简单,略。
(5) 编码中遇到的问题与解决方法:
○1在运用switch函数时,遇到了program received signal SIGSEGV故障,在网上查阅资料:SIGSEGV(Segment fault)意味着指针所对应的地址是无效地址,没有物理内存对应该地址。经过调试发现是switch(n),在给n赋值时缺少了&产生的错误,添加后解决了这个问题。
○2制作账号登录部分时,进行密码核对时容易出现若两个员工密码重复也可以登录的问题,后经过修改将密码核对改为:账号和密码同时核对。只有输入账号和密码和date文件中账号密码对应吻合才可登陆成功,解决了这个问题。
3 系统实现
员工信息管理系统的主界面如图3.1,选择1时进入登录界面,选择2时进入注册界面 ,选择3退出系统。

图3.1 主界面

员工注册界面如图3.2和3.3所示,键盘输入员工号,若账号已被注册显示重复退回主菜单。

图3.2 员工注册界面(账号已注册)

账号未注册进行信息逐步输入完成注册(学历输入时仅限专科、本科、硕士、博士)。

图3.3 员工注册界面(账号注册)

登录界面如图3.4,选择1进入员工登录界面,选择2进入管理员登录界面。

图3.4 系统登陆界面
员工登录界面如图3.5,输入账号和密码。若登录时密码错误显示密码错误,账号未注册显示未注册,无错误进入员工界面。

图3.5 员工登录界面(密码错误)

管理员登录界面如图3.6,管理员账号和密码如图所示,无错误进入管理员界面。

图3.6 管理员登陆界面

员工操作界面如图3.7,选择1进入个人信息操作界面,选择2进入部门信息查询界面,选择3进入请假功能界面。

图3.7 员工操作界面

个人信息管理界面如图3.8,选择1查看个人信息,选择2修改个人信息。

图3.8 个人信息管理界面
个人信息修改如图3.9,选择对应想修改的项目编号进行修改。

图3.9 个人信息修改

员工部门信息图略,进入该界面后输入要查询的部门编号即可得到该部门员工信息。
员工请假模块如图3.10,选择1提交请假信息,选择2查看请假记录。

图3.10 员工请假界面

请假信息提交如图3.11,依次输入请假信息即可。

图3.11 请假申请提交界面

管理员操作界面如图3.12。

图3.12 管理员界面

选择1进入员工信息管理如图3.13,可查看全体员工信息(按工资从高到低排序)。

图3.13员工信息总览

进入员工信息删除界面后,输入要删除员工号可删除员工的注册信息和请假记录。
选择2进入部门管理系统(图略),输入信息添加部门,部门信息和对应员工信息进行总览。选择3进入员工请假管理图3.14,查看全部员工请假记录,对员工请假申请进行处理。

图3.14 员工请假信息管理(请假信息审核)

各部分在操作系统内部有详细的文字指引,不再赘述。
4 总结与体会
程序最终完成,功能完善运行流畅,各模块功能设计严谨相辅相成,成品效果令人满意。经过一个月的设计与制作终于把自己设计的员工信息管理系统实现了,做完程序之后五味杂陈。第一时间的涌现的是兴奋与自豪,虽然制作过程磕磕绊绊,但是制作出人生中第一个近千行代码的程序那种喜悦是无法描述的。在喜悦之后是对这次程序设计过程的反思,在设计过程中暴露了许多问题,例如对知识综合运用略显生涩、现有的知识储备不足、设计时对细节的关注度不够、对程序整体的规划不完美等等。在以后的软件开发工作中会吸取经验,借鉴这次经历的问题解决方案不断提高自己的开发能力,拓展自己知识储量,丰富自己的开发经验。最后很感谢学校开设的这门课程,感谢导师的悉心教导与付出。在这门课中我受益匪浅,希望以后的自己也能如现在一样怀着对编程的热情和对知识的渴求不断奋进,成为更优秀的自己。
5 参考书目
[1] 何钦铭.颜晖.C语言程序设计(第三版)[M].北京:高等教育出版社,2015.
[2] https://bbs.csdn.net/

同学:

  1. 实践性要求(占30%)
    □优秀 □良好 □中等 □及格 □不及格

  2. 自主性、创新性要求(占20%)
    □优秀 □良好 □中等 □及格 □不及格

  3. 展示性要求(占30%)
    □优秀 □良好 □中等 □及格 □不及格

  4. 自律性、协作性要求(占20%)
    □优秀 □良好 □中等 □及格 □不及格

总评成绩:

同学:
5. 实践性要求(占30%)
□优秀 □良好 □中等 □及格 □不及格

  1. 自主性、创新性要求(占20%)
    □优秀 □良好 □中等 □及格 □不及格

  2. 展示性要求(占30%)
    □优秀 □良好 □中等 □及格 □不及格

  3. 自律性、协作性要求(占20%)
    □优秀 □良好 □中等 □及格 □不及格

总评成绩:

源码

https://pan.baidu.com/s/1pq1Nwwo0hlc_J84F93HM4A?pwd=1111

标签:请假,03,01,界面,信息,员工,char,2023,next
From: https://www.cnblogs.com/codewriter/p/17169584.html

相关文章

  • 2023.3.1AcWing蓝桥杯集训·每日一题
    今日的知识点为\(BFS\)(广度优先搜素)。\(BFS\)简要介绍下\(BFS\)算法。首先,\(BFS\)算法适用于边权为\(1\)的图论问题。\(BFS\)算法的解题思路也比较固定。确定......
  • SRTP_Log_20230301
    WorkingContent:1.第一个是参数1,第二个是噪声1,第三个是参数2,第四个是噪声2如果没加噪声(以下情况),所以照理来说噪声1和噪声2的量级应该分别比参数1和参数2小得多,现在看......
  • P8631 [蓝桥杯 2015 国 AC] 切开字符串 题解
    P8631[蓝桥杯2015国AC]切开字符串题解前言看到这题没有人写题解,就打算写一篇。这也是蒟蒻的第一篇题解。前置知识\(manacher\),\(SA\)。如果不会可以转至mana......
  • C/C++职工工作量统计系统[2023-03-01]
    C/C++职工工作量统计系统[2023-03-01]题目17:职工工作量统计系统设计编写一个程序,该程序能输入职工工号、完成的产品数量、产品名称、产品种类,程序允许同一职工有多次输......
  • 2023-03-01 react-native 实现 复制功能 @react-native-community/clipboard 报错:Type
    我的react-native(下称rn)版本为0.68,要实现这个功能主要用到rn的clipboard,在21年的时候他就已经提示clipboard会在未来的版本中上去掉,官方的建议是不要再从react-native引入,......
  • 2023 年最值得玩的 Xbox 主机游戏推荐 All In One
    2023年最值得玩的Xbox主机游戏推荐AllInOne新游WoLong:FallenDynasty/卧龙:苍天陨落RPG/角色扮演游戏《卧龙:苍天陨落》(日语:ウォーロンフォールンダ......
  • 2023 年适用于 Mac 的最佳 IDE 应用程序推荐
    "IDE"是集成开发环境的简称,一般包括编辑器,编译器,调试器等。而一个好用的IDE不仅能提升代码质量,还能使管理开发工作更简单。五个美观好用的全能性IDE应用推荐给大家,需要的......
  • 2023年3月最新全国省市区县和乡镇街道行政区划矢量边界坐标经纬度地图数据 shp geojso
    发现个可以免费下载全国 geojson 数据的网站,推荐一下。支持全国、省级、市级、区/县级、街道/乡镇级以及各级的联动数据,支持导入矢量地图渲染框架中使用,例如:D3、Echarts......
  • Gym101252B-Kakuro题解
    题目传送门题意:有一个矩阵,每个格子为黑色或白色。你需要向白色格子中填\(1\sim9\)的整整睡。从某一个黑色格子的右侧往右连续的一段极长的白色格子被称为一个run,往下......
  • C语言员工信息管理系统[2023-03-01]
    C语言员工信息管理系统[2023-03-01]员工信息管理系统1.设计目标使用C语言技术设计并开发一款员工信息管理系统2.系统要求1)系统以菜单方式工作,包括以下模块:(1)员工......