⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cpp1.c

📁 人机交互信息查询系统
💻 C
📖 第 1 页 / 共 2 页
字号:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
#define N 100
struct employee//职工基本情况
{   int num;//工号
	int position;//职位1、总经理 2、副总经理 3、业务经理等
	char name[20];//姓名
	char sex[5];//性别[F]为女[M]为男
	int age;//年龄
	int cult;//文化程度1、研究生以上 2、本科 3、专科 4、中专 5、其它
	int salary;//工资
	int state;//健康情况分为1、好 2、一般 3、差
}em[N];
struct communication//职工通讯录
{   char name[8];
	char officetel[13];
	char hometel[13];
	char handtel[11];
	char address1[30];
	char address2[30];
}empc[N];
struct empsalary//职工工资与姓名的文件
{   char name[8];
	int salary;
}emps[N];
void manage();
void query();
void communicate();
void input();
void display();
void change();
void delAll();
void del();
void add();
void count();
int changeposition();
int changecult();
int changesalary();
int changestate();
void sortEmployee();
void sortName();
void sortNum();
void swap(struct employee *e1, struct employee *e2);
void inputcommunicate();
void displaycommunicate();
void querycommunicate();
void changecommunicate();
void changetel1(int ii);
void changetel2(int ii);
void changetel3(int ii);
void changetel4(int ii);
void changetel5(int ii);
void delcommunicateOne();
void delcommunicateAll();
void sortcommunicate();
void swapcommunicate(struct communication *c1,struct communication *c2);
int main()
{   int choice;
	do
{ printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
		printf("\t\t欢迎进入企业职工管理系统中文版\n\n\n");
		printf("\t制作人:马敬旭\t学号:5406212048\n\n");
		printf("\t天津大学\n\n");
	printf("\t%%%%%%%%%%%%%%%%%%%%%%%%%%%\n");
		printf("\t\t请你选择操作类型:\n");
		printf("\t==============\t\t==============\n");
		printf("\t\t1 进入职工基本信息管理系统\n");
		printf("\t\t2 进入职工信息查询系统\n");
		printf("\t\t3 进入职工通讯录管理系统\n");
		printf("\t\t0 退出职工管理系统\n");
		printf("\t==============\t\t==============\n\n");
	printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
         printf("请输入0-3进行选择操作类型-");
		scanf("%d",&choice);
		switch(choice)
		{    case 1:
			manage();
			break;
		case 2:
			query();
			break;
		case 3:
			communicate();
			break;
		case 0:
			{   printf("谢谢使用再见\n");
				exit(0);
			}
		default:
			{
				printf("输入有错误请重新输入:\n");
			}
		}
	}while(1);
}
void manage()
{   int choicemanage;
	char choice='y';
	while(toupper(choice)!='N')
	{   printf("\t\t欢迎进入职工基本信息管理系统\n");
		printf("=====================\n");
		printf("\t\t请你选择操作类型:\n");
		printf("\t\t1输入/追加职工信息\n");
		printf("\t\t2显示职工信息\n");
		printf("\t\t3修改职工信息\n");
		printf("\t\t4删除一个职工信息\n");
		printf("\t\t5删除所有职工信息\n");
		printf("\t\t6排序职工信息\n");
		printf("\t\t7统计职工信息\n");
		printf("\t\t0退出职工信息管理系统\n");
		printf("=====================\n");
                printf("请输入0-7进行选择操作类型-");
		scanf("%d",&choicemanage);
		switch(choicemanage)
		{
		case 1:
			input();//输入/追加职工信息
			break;
		case 2:
			display();//显示职工信息
			break;
		case 3:
			change();//修改职工信息
			break;
		case 4:
			del();//删除一个职工信息
			break;
		case 5:
			delAll();//删除全体职工信息
			break;
		case 6:
			sortEmployee();//排序职工信息
			break;
		case 7:
			count();//统计职工信息
			break;
		case 0:
			printf("谢谢你的使用再见\n");
			return;
		default:
			printf("你的输入有错请重新输入\n");
		}
		printf("是否继续管理?(Y/N)");
		scanf("%s",&choice);
	}
		printf("输入完毕,任意键返回\n");
		getch();
}
void input() //输入职工信息
{   FILE *fp;
	char choiceinput='y';
	int i=0;
	if((fp=fopen("employee.txt","ab+"))==NULL)
	{   printf("不能打开文件\n");
		printf("操作完毕,按任意键返回\n");
		getch();
	}
	while(fread(&em[i],sizeof(struct employee),1,fp) != 0)
		i++;
	printf("%d请输入职工的基本信息\n",i);

	while(toupper(choiceinput)!='N')
	{   i++;
		printf("第%d个职工\n",i);
		em[i].num=i+1000;
		printf("\n");
		printf("请你选择其职位:\n");
		printf("1、总经理 2、副总经理 3、业务经理\n");
		printf("4、技术负责人 5、进出口负责人 6、秘书\n");
		printf("7、会计 8、跟单员 9、员工\n");
		printf("请你输入职位代号:");//输入职位
		scanf("%d",&em[i].position);  
		printf("\n");
		printf("请你输入姓名:");//输入姓名
		scanf("%s",em[i].name);
		printf("\n");
		printf("请你选择性别:[M]为男 [F]为女\n");  
		printf("请你输入性别代码: ");//输入性别
		scanf("%s",em[i].sex);  
		printf("请你输入年龄:");//输入年龄
		scanf("%d",&em[i].age);
		printf("\n");
printf("请你选择文化程度:1研究生以上 2本科 3专科 4中专 5其他\n"); 
		printf("请你输入文化程度代码:");//输入文化程度
		scanf("%d",&em[i].cult);
		printf("\n");
		printf("请你输入工资:");//输入工资
		scanf("%d",&em[i].salary);
		printf("\n");
		printf("请你选择身体情况:1、好 2、一般 3、差\n");  
		printf("请你输入身体情况代码:");//身体情况
		scanf("%d",&em[i].state); 
		fwrite(&em[i],sizeof(struct employee),1,fp);
		printf("\n");
		printf("是否继续输入?(Y/N)\n");
		scanf("%s",&choiceinput);
	}
	fclose(fp);
	printf("输入完毕,任意键返回\n");
	getch();
}
void display()//显示职工信息
{   FILE *fp;
	int i;
	if((fp=fopen("employee.txt","rb"))==NULL)
	{
		printf("对不起,目前无数据可读!\n");
		return;
    }
	printf("输出结果:\n");
	printf("工号\t职位\t姓名\t性别\t年龄\t文化程度\t工资\t身体情况\n");
	for(i=0;fread(&em[i],sizeof(struct employee),1,fp)!=0;i++)
	{  
		printf("%d\t",em[i].num);
		printf(" %d\t",em[i].position);
		printf("%s\t",em[i].name);
		printf("  %s\t",em[i].sex);
		printf(" %d\t",em[i].age);
		printf("   %d\t",em[i].cult);
		printf("        %d\t",em[i].salary);
		printf("   %d\n",em[i].state);
	}
	fclose(fp);
	if(i == 0) printf("无记录!");
	printf("\n");
	printf("职位说明:    1、总经事     2、副总经理     3、业务经理\n");
	printf("              4、技术负责人 5、进出口负责人 6、秘书\n");
	printf("              7、会计       8、跟单员       9、员工\n");
	printf("性别说明:    其中[M]为男 [F]为女\n");
	printf("\n");
printf("文化程度说明:1、研究生以上 2、本科 3、专科 4、中专 5、其他\n");
	printf("\n");
	printf("身体状况说明:1、 好  2、一般 3、差\n");
	printf("\n");
	printf("完毕按任意键返回\n");
	getch();
 }
void change() //修改职工信息
{    FILE *fp;
	int i;
	int count = 0;
	char chname[8];
	int choicechange;
	if((fp=fopen("employee.txt","rb"))==NULL)
	{
		printf("文件为空,不能够打开\n");
		printf("按任意键返回\n");
		getch();
	}
	for(i=0;fread(&em[i],sizeof(struct employee),1,fp)!=0;i++)
		count++;
	fclose(fp);
	printf("请你输入要修改的人的姓名:\n");
	scanf("%s",&chname);
	if((fp=fopen("employee.txt","wb"))==NULL)
	{
		printf("不能够打开这个文件\n");
		return;
	}
	for(i = 0;i<count; i++)
	{     if(strcmp(chname,em[i].name)==0)
		{	printf("这是你要修改的人的信息\n");
printf("工号为 %d 职位为 %d 姓名为 %s 性别为 %s 文化程度为 %d 工资为 %d 身体为 %d\n",em[i].num,em[i].position,em[i].name,em[i].sex,em[i].cult,em[i].salary,em[i].state);
		printf("------------------------------------------------------------\n");
			printf("请你输入要修改的部分:\n");
			printf("======================\n");
			printf("1修改职位\n");
			printf("2修改文化程度\n");
			printf("3修改工资\n");
			printf("4修改身体情况\n");
			printf("0退出系统\n");
			printf("======================\n");
			printf("请输入0-4进行选择操作类型-");
			scanf("%d",&choicechange);
			switch(choicechange)
			{
			case 1:
				em[i].position=changeposition();
				break;
			case 2:
				em[i].cult=changecult();
				break;
			case 3:
				em[i].salary=changesalary();
				break;
			case 4:
				em[i].state=changestate();
				break;
			case 0:
				break;
			default :
				printf("输入有错误");
			}   
		}	
	fwrite(&em[i],sizeof(struct employee),1,fp);
	}
	fclose(fp);
	printf("操作完成按任意键返回\n");
	getch();
}
int changeposition()//输入新职位信息
{
	int newposition;
	printf("请你输入新职位:\n");
	printf("1、总经理 2、副总经理 3、业务经理\n");
	printf("4、技术负责人 5、进出口负责人 6、秘书\n");
	printf("7、会计 8、跟单员 9、员工\n");
	scanf("%d",&newposition);
	return(newposition);
}
int changecult()//输入新的文凭信息
{
	int newcult;
	printf("请你输入新的文凭:\n");
	printf("1、研究生以上 2、本科 3、专科 4、中专 5、其他\n");
	scanf("%d",&newcult);
	return newcult;
}
int changesalary()//输入新的工资信息
{
	int newsalary;
	printf("请你输入新的工资:\n");
	scanf("%d",&newsalary);
	return newsalary;
}
int changestate()//输入新的身体情况信息
{
	int newstate;
	printf("请你输入现在的身体情况:\n");
	printf("1、好 2、一般 3、差\n");
	scanf("%d",&newstate);
	return newstate;
}
void del()//删除一个职工信息
{   int i=0;
	int count = 0;
	char delname[8];
	FILE *fp;
	if((fp=fopen("employee.txt","rb"))==NULL)
	{   printf("文件为空,不能够打开\n");
		printf("按任意键返回\n");
		getch();
	}
	printf("请你输入要删除的人的姓名:\n");//删除的职工的信息
	scanf("%s",delname);
	for(i=0;fread(&em[i],sizeof(struct employee),1,fp)!=0;i++)
		count++;
	fclose(fp);
	if((fp=fopen("employee.txt","wb+"))==NULL)//显示新的职工的信息
	{   printf("不能够打开这个文件\n");
		printf("按任意键返回\n");
		getch();
	}
	for(i=0;i<count;i++)
	{	if(strcmp(em[i].name,delname)!=0)
			fwrite(&em[i],sizeof(struct employee),1,fp);		
	}
	fclose(fp);
	printf("删除完毕,按任意键返回\n");
	getch();
} 
void delAll()//删除全体职工信息
{   FILE *fp;
	if((fp=fopen("employee.txt","wb"))==NULL)
	{   printf("文件为空,不能够打开\n");
		printf("按任意键返回\n");
		getch();
	}
	printf("删除完毕,按任意键返回\n");
	getch();
	fclose(fp);
}
void count()//统计信息
{   FILE *fp;
	int i=0;
	int num=0;//总人数统计
	int mnum=0,fnum=0;//性别人数统计
	int expernum=0,doctornum=0,masternum=0,bechelornum=0,othernum=0;//学位人数统计
	int dsznum=0,zglnum=0,fzglnum=0,glnum=0,fglnum=0;//职位人数统计
	int mishunum=0,jsynum=0,lbnum=0,ygnum=0;
	if((fp=fopen("employee.txt","rb"))==NULL)
	{
		printf("不能够打开这个文件\n");
		printf("按任意键继续\n");
		getch();
	}
	do
	{   fread(&em[i],sizeof(struct employee),1,fp);
		if(feof(fp))
			break;
		num++;
		if(strcmp(em[i].sex,"m")==0)
			mnum++;
		if(strcmp(em[i].sex,"f")==0)
			fnum++;
		if(em[i].cult==1)
			expernum++;
		if(em[i].cult==2)
			doctornum++;
		if(em[i].cult==3)
			masternum++;
		if(em[i].cult==4)
			bechelornum++;
		if(em[i].cult==5)
			othernum++;
		if(em[i].position==1)//职位统计
			dsznum++;
		if(em[i].position==2)
			zglnum++;
		if(em[i].position==3)
			fzglnum++;
		if(em[i].position==4)
			glnum++;
		if(em[i].position==5)
			fglnum++;
		if(em[i].position==6)
			mishunum++;
		if(em[i].position==7)
			jsynum++;
		if(em[i].position==8)
			lbnum++;
		if(em[i].position==9)
			ygnum++;
		i++;
	}while(1);
	printf("总人数为%d\n",num);
	printf("====性别分类=====\n");
	printf("男人数为%d\n",mnum);
	printf("女人数为%d\n",fnum);
	printf("=====文凭分类=====\n");
	printf("研究生以上人数为%d\n",expernum);
	printf("大学本科人数为%d\n",doctornum);
	printf("大学专科人数为%d\n",masternum);
	printf("中专人数为%d\n",bechelornum);
	printf("其他人数为%d\n",othernum);
	printf("=====职位分类========\n");
	printf("总经理人数为%d\n",dsznum);
	printf("副总经理人数为%d\n",zglnum);
	printf("业务经理人数为%d\n",fzglnum);
	printf("技术负责人人数为%d\n",glnum);
	printf("进出口负责人人数为%d\n",fglnum);
	printf("秘书人数为%d\n",mishunum);
	printf("会计人数为%d\n",jsynum);
	printf("跟单员人数为%d\n",lbnum);
	printf("员工人数为%d\n",ygnum);
	fclose(fp);
}
void query()//查询职工信息
{   FILE *fp;
	int i=0;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -