超简单的c语言课程设计《员工管理系统》

#include<STDIO.H>
#include<WINDOWS.H>
#include<STDLIB.H>
#include<STRING.H>
typedef struct St{
	int bianhao;
	char name[20];
	char sex[20];
	char xueli[20];
	char bumen[10];
 	char st[10];
	struct St *next;
}St,*List;
void Read(List &T);
void Save(List T);
void Welcome();
void Addstudent(List &T);
void Deletestudent(List &T);
void Fixstudent(List &T);
void Searchstudent(List T);
void Viewstudent(List T);
void paixu(List &T);
void CSh(List &T)//初始化头结点
{
	T=(St*)malloc(sizeof(St));
	T->next=NULL;
}
void main()
{
	List T;
	CSh(T);
	Read(T);
	int choice=1;
	while (choice!=0)
	{
		Welcome();
		scanf("%d",&choice);
		system("cls");
		switch (choice)
		{
		case 1:Addstudent(T);
			break;
		case 2:Deletestudent(T);
			break;
		case 3:Fixstudent(T);
			break;
		case 4:Searchstudent(T);
			break;
		case 5:Viewstudent(T);
			break;
		case 6:Save(T);
			break;
		case 7:paixu(T);
			break;
		case 0:
			printf("退出成功\n");
			return;
		}
	}


}
void Welcome()//页面信息
{
	printf("\t\t\t\t*******************************************\n");
	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************7.排序----成绩*****************\n");
	printf("\t\t\t\t************0.退出----系统*****************\n");
	printf("\t\t\t\t*******************************************\n");
	printf("请输入选项(数字):\n");
}
void Addstudent(List &T)//添加操作
{
	int x=1;
	printf("添加员工信息\n");
	while (x)
	{
		St *p;
		p=(St*)malloc(sizeof(St));
		printf("请输入员工编号:");
		scanf("%d",&p->bianhao);
		printf("请输入员工姓名:");
		scanf("%s",&p->name);
		printf("请输入员工性别:");
		scanf("%s",&p->sex);
		printf("请输入员工学历:");
		scanf("%s",&p->xueli);
		printf("请输入员工所属部门:");
		scanf("%s",&p->bumen);
		printf("请输入员工健康情况:");
		scanf("%s",&p->st);
		p->next=NULL;
		p->next=T->next;
		T->next=p;
		printf("是否继续添加\n");
		printf("1.继续    0.退出\n");
		scanf("%d",&x);
	}
	printf("添加成功\n");
}
void Deletestudent(List &T)//删除
{
	int u=0;
	int x;
	St *p=T;
	printf("请输入选项\n");
	printf("1.按编号删除   2.按姓名删除\n");
	scanf("%d",&x);
	switch (x)
	{
	    case 1:
			int q;
			printf("请输入你要删除的编号\n");
			scanf("%d",&q);
			while (p->next!=NULL)
			{
				if (p->next->bianhao==q)
				{
					u=1;
					St *m;
					m=p->next;
					p->next=m->next;
					free(m);
					break;
				}
				p=p->next;
			}
			break;
		case 2:
			char h[20];
			printf("请输入你要删除的员工姓名\n");
			scanf("%s",&h);
			while (p->next!=NULL)
			{
				if (!strcmp(h,p->next->name))
				{
					u=1;
					St *m;
					m=p->next;
					p->next=m->next;
					free(m);
					break;
				}
				p=p->next;
			}
			break;
	}
	if (u==1)
	{
		printf("删除成功\n");
	}else if(u==0){
		printf("未查询到,删除失败\n");
	}

	
}
void Fixstudent(List &T)//修改
{
	int m=0;
	char x[20];
	St *w;
	w=T;
	printf("请输入要查找的员工姓名\n");
	scanf("%s",&x);
	system("cls");
	while(w->next!=NULL)
	{
		if(!strcmp(x,w->next->name))
		{
			m=1;
			int p=0;
			printf("请输入你要修改的选项\n");
			printf("1.修改编号 2.修改部门 3.修改健康情况\n");
			scanf("%d",&p);
			switch(p)
			{
			case 1:
				printf("%d\n",w->next->bianhao);
				printf("请输入编号\n");
				scanf("%d",&w->next->bianhao);
				break;
			case 2:
				printf("%s\n",w->next->bumen);
				printf("请输入新部门\n");
				scanf("%s",&w->next->bumen);
				break;
			case 3:
				printf("%d\n",w->next->st);
				printf("请输入新的健康情况\n");
				scanf("%d",&w->next->st);
				break;
			}
		}
		w=w->next;
	}
	if(m==0)
	{
		printf("该员工不存在\n");
	}else if (m==1)
	{
		printf("修改成功!\n");
	}

	
}
void Searchstudent(List T)//查询
{
	int a,b=1;
	printf("请输入选项:\n");
	while(b)
	{
		printf("1.按编号查询  2.按姓名查询\n");
		scanf("%d",&a);
		system("cls");
		if(a==1)
		{
			int x,m=0;
			printf("请输入要查找的员工编号\n");
			scanf("%d",&x);
			system("cls");
			while(T->next!=NULL)
			{
				if(T->next->bianhao==x)
				{
					m=1;
					printf("%d %s %s %s %s %s\n",T->next->bianhao,T->next->name,T->next->sex,T->next->xueli,T->next->bumen,T->next->st);
				}
				T=T->next;
			}
			if(m==0)
			{
				printf("该编号不存在\n");
			}
		}
		else if(a==2)
		{
			char x[20];
			int m=0;
			printf("请输入要查找的员工姓名\n");
			scanf("%s",&x);
			system("cls");
			while(T->next!=NULL)
			{
				if(!strcmp(x,T->next->name))
				{
					m=1;
					printf("%d %s %s %s %s %s\n\n",T->next->bianhao,T->next->name,T->next->sex,T->next->xueli,T->next->bumen,T->next->st);
				}
				T=T->next;
			}
			if(m==0)
			{
				printf("该员工不存在\n");
			}

		}
		printf("是否继续查找\n");
		printf("1.继续    0.退出\n");
		scanf("%d",&b);
		system("cls");
	}
}
void Viewstudent(List T)//访问
{
	printf("  编号 | 姓名  | 性别 | 学历 | 部门 | 健康情况\n");
	while(T->next!=NULL)
	{
		printf("------------------------------\n");
		printf("|%d |%s |%s | %s | %s | %s |\n",T->next->bianhao,T->next->name,T->next->sex,T->next->xueli,T->next->bumen,T->next->st);
		T=T->next;
	}
	printf("\n");
	system("pause");
	system("cls");
	
}
void Read(List &T)
{
	FILE *fp;
	fp=fopen("D://yuangong.txt","r");
	St p;
	St *q;
	St *m=T;
	if (fp==NULL)
	{
		printf("打开失败\n");
	}else{
		while(fscanf(fp,"%d%s%s%s%s%s",&p.bianhao,&p.name,&p.sex,&p.xueli,&p.bumen,&p.st)!=EOF)
		{
			q=(St*)malloc(sizeof(St));
			*q=p;
			m->next=q;
			m=q;
			m->next=NULL;
		}
	}
	printf("\n\n");
}
void Save(List T)//保存
{
	FILE *fp;
	fp=fopen("D://yuangong.txt","w");
	if(fp==NULL)
	{
		printf("保存失败!\n");
	}else{
		while(T->next!=NULL)
		{
			fprintf(fp,"%d %s %s %s %s %s\n",T->next->bianhao,T->next->name,T->next->sex,T->next->xueli,T->next->bumen,T->next->st);
			T=T->next;
		}
		printf("保存成功!\n");
		
	}

}
void paixu(List &T)//排序
{
	St *p,*q,*m;
	p=T;
	q=T->next->next;
	p->next->next=NULL;
	while (q!=NULL)
	{
		m=q;
		q=q->next;
		m->next=NULL;
		while (p!=NULL)
 		{
			if (p->next==NULL)
			{
				p->next=m;
				break;
			}
			if (p->next->bianhao>=m->bianhao)
 			{
 				m->next=p->next;
 				p->next=m;
 				break;
 			}
			p=p->next;			
		}
		p=T;
	}
	printf("排序成功\n");
	system("pause");
	system("cls");
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值