职工管理系统

在这里插入图片描述
本次用到的头文件

#include <stdio.h>
#include <stdlib.h>//malloc申请空间
#include<string.h>//string类函数
#include<windows.h>//sleep函数使用

构建结构体,显示元素

typedef struct worker
{	char num[100];//职工号	
char name[10];//姓名	
char sex[10];//性别	
char age[10];//年龄	
char edu[20];//学历	
char major[20];//职务	
char wag[10];//工资	
char address[100];//地址	
char tel[20];//电话	
struct worker *next;
} worker;

构建链表,头结点。
插入功能

worker *head;//头指针
void LinkedList()
{
head=(worker*)malloc(sizeof(worker));	
head->next=NULL;//初始化链表
}
void insert()//插入职工信息
{
worker *newworker=(worker*)malloc(sizeof(worker));	//插入职工信息	
printf("请输入职工的职工号   \n");	
scanf("%s",newworker->num);	
printf("请输入职工的姓名   \n");	
scanf("%s",newworker->name);	
printf("请输入职工的性别   \n");	
scanf("%s",newworker->sex);	//性别判断,是否合法	
while(strcmp(newworker->sex,"男")!=0&&strcmp(newworker->sex,"女")!=0)	
{
printf("非男非女。。。你认真的吗,再输一遍吧\n");		
scanf("%s",newworker->sex);	}	
printf("请输入职工的年龄   \n");	("%s",&newworker->age);	
printf("请输入职工的学历   \n");	
scanf("%s",newworker->edu);	
printf("请输入职工的职务   \n");	
scanf("%s",newworker->major);	
printf("请输入职工的工资   \n");	
scanf("%s",&newworker->wag);	
printf("请输入职工的住址   \n");	
scanf("%s",newworker->address);	
printf("请输入职工的电话   \n");	
scanf("%s",newworker->tel);	//把新职工的信息插入链表	
newworker->next=head->next;	
head->next=newworker;	
printf("录入成功!\n");
}

修改职工信息。
提供一种查改方法。

void change()//修改职工的信息
{
char worknum[100];	
int emp;	
int flag=0;//标识符,初始值为0,匹配到对象置换为1;	
printf("请输入需要修改的职工的职工号    \n");	
scanf("%s",worknum);	
worker *flagp=head->next;	while(flagp!=NULL)//遍历,保证链表不为空	
{		
if(strcmp(flagp->num,worknum)==0)//比中目标		
{		
flag=1;//标识为1,表示比中目标			
printf("\t\t\t------ 1.修改姓名------\n");			
printf("\t\t\t------ 2.修改性别------\n");			
printf("\t\t\t------ 3.修改年龄------\n");			
printf("\t\t\t------ 4.修改学历------\n");			
printf("\t\t\t------ 5.修改工资------\n");			
printf("\t\t\t------ 6.修改住址------\n");			
printf("\t\t\t------ 7.修改电话------\n");			
printf("\t\t\t------ 8.退出菜单------\n");			
printf("\t\t\t请输入您要进行的操作对应的编号\n");			scanf("%d",&emp);			while(emp!=8)			
{
switch(emp)				
{
case 1:					
printf("\t\t\t修改前的职工姓名:%s\n",flagp->name);					
printf("\t\t\t请输入修改后的姓名   \n");					
scanf("%s",flagp->name);					
break;				
case 2:					
printf("\t\t\t修改前的职工性别:%s\n",flagp->sex);					
printf("\t\t\t请输入修改后的姓别   \n");					
scanf("%s",flagp->sex);					
break;				
case 3:
printf("\t\t\t修改前的职工年龄:%s\n",flagp->age);					
printf("\t\t\t请输入修改后的年龄   \n");					
scanf("%s",&flagp->age);					
break;				
case 4:					
printf("\t\t\t修改前的职工学历:%s\n",flagp->edu);					
printf("\t\t\t请输入修改后的学历   \n");					
scanf("%s",flagp->edu);					
break;				
case 5:					
printf("\t\t\t修改前的职工工资:%s\n",flagp->wag);					
printf("\t\t\t请输入修改后的工资   \n");					
scanf("%s",&flagp->wag);					
break;				case 6:					
printf("\t\t\t修改前的职工住址:%s\n",flagp->address);					
printf("\t\t\t请输入修改后的住址   \n");					
scanf("%s",flagp->address);					
break;				
case 7:					
printf("\t\t\t修改前的职工电话:%s\n",flagp->tel);					
printf("\t\t\t请输入修改后的电话   \n");					
scanf("%s",flagp->tel);					
break;					
default:						
printf("你tm故意找茬是吧,重来!");				}				
printf("请在菜单中选择您要进行的操作\n");				
scanf("%d",&emp);			
}			
break;		
}		
flagp=flagp->next;	
}	
if(flag==0)
{		
printf("没有这个人啊!\n");
}
}

删除模块,此处提供两种查删方法

void del()//删除职工信息
{	
char workernum[100],workername[100];	
printf("\t\t---你想怎么删除呢?---\n");	
printf("\t\t---1.通过职工号删除---\n");	
printf("\t\t---2.通过职工名删除---\n");	
printf("\t\t---3.退出这个小菜单---\n");	
int emp;	
while(1)	
{		
printf("你想干啥,看着小菜单选吧\n");		
scanf("%d",&emp);		
switch(emp)		
{		
case 1:		
{			
printf("想删谁的,把他工号打出来   \n");			
scanf("%s",workernum);			
worker *p1=head;			
worker *p2=head->next;			
while(p2!=NULL)			
{				
if(strcmp(p2->num,workernum)==0)//比中目标对象				

{					
p1->next=p2->next;//使p1指向p2下一个结点,释放p2.					
free(p2);					p2=NULL;//防止野指针出现					
printf("\t\t删除成功,他没了\n");					
break;				
}				
p1=p2;				
p2=p2->next;			
}			
break;		
}		
break;		
case 2:		
{			
printf("想删谁的,把他名字打出来   \n");			
scanf("%s",workername);			
worker *p1=head;			
worker *p2=head->next;			
while(p2!=NULL)			
{				
if(strcmp(p2->num,workername)==0)//比中目标对象				
{					
p1->next=p2->next;//使p1指向p2下一个结点,释放p2.					
free(p2);					p2=NULL;//防止野指针出现					
printf("\t\t删除成功,他没了\n");					
break;				
}				
p1=p2;
p2=p2->next;			
}			
break;		
}		
case 3:			
return;			
default:				
printf("又来?好好输入。");		
}	
}
}

职工查找系统
此处提供两种查找方式

void sear1()
{	
int emp;	
printf("\t\t\t---你想怎么找人呢?---\n");	
printf("\t\t\t---1.通过职工号查找---\n");	
printf("\t\t\t---2.通过职工名查找---\n");	
printf("\t\t\t---3.退出这个小菜单---\n");	
while(1)	
{		
printf("从小菜单里面选一个吧   \n");		
scanf("%d",&emp);		
switch (emp)		
{			
case 1://按工号查找			
{				
printf("请输入你想找的职工的工号  \n");				
char workernumber[100];				
scanf("%s",workernumber);				
worker *flagp1=head->next;				
while(flagp1!=NULL)				
{					
if(strcmp(flagp1->num,workernumber)==0)					
{						
printf("工号:%s\n姓名:%s\n性别:%s\n年龄:%s\n学历:%s\n工资:%s\n住址:%s\n电话:%s\n"							
,flagp1->num,flagp1->name,flagp1->sex,flagp1->age,flagp1->edu,flagp1-
>wag,flagp1->address,flagp1->tel);						
break;					
}					
else					
{						
printf("查无此人!");					
break;					
}					
flagp1=flagp1->next;				}				
break;			
}		
case 2:		
{			
printf("请输入你想找的职工的名字  \n");			
char workername[40];			
scanf("%s",workername);			
worker *flagp1=head->next;			
while(flagp1!=NULL)			
{				
if(strcmp(flagp1->name,workername)==0)				
{					
printf("工号:%s\n姓名:%s\n性别:%s\n年龄:%s\n学历:%s\n工资:%s\n住址:%s\n电话:%s\n",
flagp1->num,flagp1->name,flagp1->sex,flagp1->age,flagp1->edu,flagp1->wag,flagp1->address,flagp1->tel);					
break;				
}				
else					
printf("查无此人");				
break;				
flagp1=flagp1->next;			
}			
break;		
}
case 3:
return;//退出			
default:				
printf("不是吧阿sir,你又输错了???,再来一遍。");		
}	
}
}

显示所有职工信息

void sear2()

{
worker *flagP=head->next;	while(flagP!=NULL)	
{		
printf("职工号:%-15s 姓名:%-20s 性别:%-10s 年龄:%-20s 学历:%-20s 工资:%-20s 地址:%-10s 电话:%-10s\n",
&flagP->num,&flagP->sex,&flagP->age,&flagP->edu,&flagP->wag,&flagP->address,&flagP->tel);//向左对齐		    
flagP=flagP->next;	
}	
system("pause");	
system("cls");}

职工信息保存模块


void savefile()
{	
FILE *file=NULL;	
file=fopen("worker.txt","w+");//可读写	
if(!file)	
{		
printf("这个文件好像打不开啊\n");	}	
else	
{		
struct worker *p;		
for(p=head->next;p!=NULL;p=p->next)		
{			
fprintf(file,"职工名:%s\t姓名:%s\t性别:%s\t年龄:%s\t学历:%s\t工资:%s\t住址:%s\t电话:%s\t\n",				
p->num,p->name,p->sex,p->age,p->edu,p->wag,p->address,p->tel);		}		
fclose(file);		
printf("震惊!居然储存成功了\n");	
}
}

主菜单以及欢迎页面
欢迎页面通过sleep实现暂时停留

//主菜单目录

void menu()
{	
printf("\t\t\t\t|**************************************************|\n");	
printf("\t\t\t\t|*****************职工信息管理系统*****************|\n");	
printf("\t\t\t\t|**************************************************|\n");	
printf("\t\t\t\t|-----------------1.新增职工信息-------------------|\n");	
printf("\t\t\t\t|-----------------2.修改职工信息-------------------|\n");	
printf("\t\t\t\t|-----------------3.删除职工信息-------------------|\n");	
printf("\t\t\t\t|-----------------4.查找职工信息-------------------|\n");	
printf("\t\t\t\t|-----------------5.查看所有职工信息---------------|\n");	
printf("\t\t\t\t|-----------------6.保存职工信息-------------------|\n");	
printf("\t\t\t\t|**************************************************|\n");	
printf("\t\t\t\t|==================================================|\n");}
//初始界面
void welcome()
{	
printf("\t\t\t\t*********欢迎进入职工信息管理系统**********\n");	
printf("\t\t\t\t*******************************************\n");	
printf("\t\t\t\t******请按照菜单所对应的数字进行操作*******\n");

指令输入操作模块

//操作系统


void operation()
{	
system("cls");	
int ad;	welcome();	
Sleep(1100);	
system("cls");	
int op;	menu();	
printf("请输入你想进行的操作  \n");	ad=scanf("%d",&op);	
while(ad!=1)	
{		
while((getchar())!='\n');		
printf("提示:只能输入数字!\n");		
ad=scanf("%d",op);	}
	while(op!=7)	
	{		
	switch (op)		
	{		
	case 1:		
		printf("\t\t\t------插入职工信息------\n");			
		insert();			break;		case 2:			
		printf("\t\t\t------修改职工信息------\n");			
		change();			
		break;		
case 3:			
		printf("\t\t\t------删除职工信息------\n");			
		del();		
		break;		
case 4:			
			printf("\t\t\t------查找职工信息------\n");		
			sear1();			
			break;		
case 5:			
				printf("\t\t\t----查看所有职工信息----\n");			
			sear2();			
			break;		
case 6:			
			printf("\t\t\t------职工信息保存------\n");			
			savefile();			
			break;			
			default:				
		
	printf("\t\t\t指令不合法,系统看不懂\n");						}		
	
		system("pause");		
		system("cls");		
		menu();		
		printf("请输入你要进行的操作  \n");		
		scanf("%d",&op);	}
				}

登陆系统


int login(char username[],char password[])

{
	
	//默认初始用户名
	
	char adminUsername[30]="admin";
	
	//默认初始密码
	
	char 
	adminUserPassword[30]="pass";
	
	if(strcmp(username,adminUsername)==0&&strcmp(password,adminUserPassword)==0)
	
	{
		
		return 1;
	}
	
	else
	
	{
		
		return -1;
	
	}

}

主函数,含有密码校验



int main()
{	
LinkedList();	//输入用户名 密码	
char username[30],password[30];	
int loginSuccessTime=0;	//判断是否登录成功	
int FauleTime=0;	//记录登录失败次数	
while(loginSuccessTime!=1)	
{		
printf("\t\t\t初始账号: admin\n\t\t\t初始密码:pass\n\n");		
printf("\t\t\t请输入用户名:");		
scanf("%s",username);		
printf("\t\t\t请输入密码  ");		
scanf("%s",password);		
loginSuccessTime=login(username,password);		
if(loginSuccessTime==1)		
{			//登陆成功进入系统			
operation();		
}		
else if(loginSuccessTime==-1)		
{			
printf("\t\t\tshit! 对着抄你都抄不对\n\n");			
FauleTime++;		}		
if(FauleTime>=3)		
{			
printf("\n你已经输错了三次,你没机会了。哎,你走吧。");		
break;		
}	
}	
return 0;
}


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
系统根据B/S,即所谓的电脑浏览器/网络服务器方式,运用Java技术性,挑选MySQL作为后台系统。系统主要包含对客服聊天管理、字典表管理、公告信息管理、金融工具管理、金融工具收藏管理、金融工具银行卡管理、借款管理、理财产品管理、理财产品收藏管理、理财产品银行卡管理、理财银行卡信息管理、银行卡管理、存款管理、银行卡记录管理、取款管理、转账管理、用户管理、员工管理等功能模块。 文中重点介绍了银行管理的专业技术发展背景和发展状况,随后遵照软件传统式研发流程,最先挑选适用思维和语言软件开发平台,依据需求分析报告模块和设计数据库结构,再根据系统功能模块的设计制作系统功能模块图、流程表和E-R图。随后设计架构以及编写代码,并实现系统能模块。最终基本完成系统检测和功能测试。结果显示,该系统能够实现所需要的作用,工作状态没有明显缺陷。 系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。进入银行卡列表,管理员可以进行查看列表、模糊搜索以及相关维护等操作。用户进入系统可以查看公告和模糊搜索公告信息、也可以进行公告维护操作。理财产品管理页面,管理员可以进行查看列表、模糊搜索以及相关维护等操作。产品类型管理页面,此页面提供给管理员的功能有:新增产品类型,修改产品类型,删除产品类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值