C语言职工信息管理系统

        学了两个月的C语言和数据结构,花了三天时间,10月30号到11月1号,做了一个职工管理系统。这算是我人生中第一个项目吧,特此写下这篇文章来纪念这一时刻。(≧0≦)虽然我做的系统只能人工导入,大佬的好像都是数据库导入的’(°ー°〃)。但毕竟是个初学者,下面我就来分享一下我写的代码。<(* ̄▽ ̄*)/写的可能很烂,但能跑(bushi)。


#include<stdio.h>
#include<string.h> //strcmp()函数和strcpy()函数 
#include<stdlib.h> //system()函数  //向控制台输入DOS命令 
#include<conio.h>  //getch()函数   //控制台不显示输入的数据

        ↑↑↑上面四个是这次系统要导入的函数包

#define MaxSize 100
typedef struct{
	char num[11];//职工号                  
	char name[10];//姓名                          
	char sex[2];//性别 
	int age;//年龄 
	char phonenum[12];//手机号
	char position[5];//职位
	int money;//月薪 
}ElemType; //职工基本信息 

typedef struct{
	ElemType data[MaxSize];//存放顺序表数据
	int length;//存放顺序表长度
}SqList; 

        ↑↑↑首先,职工表为顺序表,所以先定义顺序表中各节点的结构,这里的职工信息包括职工号,姓名,性别,年龄,手机号,职位,月薪。至于其他一些像出生日期,家庭住址之类,是可以加上上去的,但系统不正式,而且需要手动输入数据,为了测试方便,就不加入这些信息。另外C语言中开辟字符数组空间,长度应为实际空间n再加1,因为C语言字符数组在数组之后要加上字符"\0",会占据一个空间。我刚开始写这里的时候,以为字符有多长就开辟多大空间 ,所以在后期调试的时候,一直焦头烂额。这个应该是C语言基本知识,想不到,实在惭愧。

void InitList(SqList &L){
	L.length = 0;
}

       ↑↑↑ 初始化顺序表。

//参数x发生变化,所以要加 &
void Input(ElemType &x){
	printf("请输入职工号:");
	scanf("%s",x.num);
	printf("请输入姓名:");
	scanf("%s",x.name);//char型 %s , 无 & 
	printf("请输入性别:");
	scanf("%s",x.sex);
	printf("请输入年龄:");
	scanf("%d",&x.age);//int型 %d , 有 & 
	printf("请输入手机号:");
	scanf("%s",x.phonenum);
	printf("请输入职位:");
	scanf("%s",x.position);
	printf("请输入月薪:");
	scanf("%d",&x.money);
} 

       ↑↑↑ 因为每名职工的基本信息有很多,所以这里写一个函数,把所有要输入的信息包起来,让代码看起来更简洁。

//把实现某一功能的操作封装起来
void Printf_(){
	printf("------------------------------------------------------------------------------------------------------------------------");
	system("pause");
	system("cls");
}
//1.1插入职工信息,顺序插入 
int InsElem(SqList &L , ElemType x , int i){
	L.data[ i - 1 ] = x; //将数据录入每一个节点
	L.length++; //每录入一个数据,顺序表表长+1
	return 1;
}

//1.2判断输入的信息是否有相同职工号
int Locate(SqList L,char number[11]){
	int i = 0;//全局变量 
	while( i < L.length && strcmp(L.data[i].num,number) != 0 ) //找不到目标索引往后移 
		i++; 
	if ( i >= L.length)
		return 0;  
	else{
		return i + 1; //找到目标则返回数据的逻辑下标 
	} 
} 

//1.创建职工信息表
void Create(SqList &L){
	if ( L.length != 0 ){
		printf("\n>>职工表已存在,是否重新创建职工表。\t0否\t1是\n");
		char k = getch(); //getch()函数,控制台接收一个字符,但不显示 
		if( k == '1' ){
			printf("     >>开始创建新的职工信息表!\n");
			system("pause"); //system()函数,向控制台输入一个DOS命令 
			InitList(L);
			Create(L);
		}else if ( k == '0' ){
			printf("     >>拒绝创建新的职工信息表!\n");
			Printf_(); 
		}else{
			printf("     >>非法输入\n");
			Printf_(); 
		}
	}else{
		int n;//接收要输入信息的职工人数 
		ElemType x;//定义职工基本信息 
		printf("\n     >>职工人数:");scanf("%d",&n);
		printf("\n开始录入%d个职工信息:\n",n);
		for ( int i = 1 ; i <= n ; i++){
			Input(x);
			int k = Locate(L,x.num);//1.2
			if ( k > 0){
				printf("该职工号已存在,请重新输入!\n");
				i--; //索引 i 减 1,重新输入刚刚的数据 
				continue;
			}
			InsElem(L,x,i); //插入线性表中 
			system("pause"); //每录完一个数据,系统暂停一下,提醒用户该数据以被录入系统 
		}
		system("cls"); //录完所有数据后,用"cls"命令清屏,保持控制台美观	
	}
} 

        ↑↑↑这个就是建表函数,如果顺序表已存在,会先提示表已存在,是否重新创建顺序表,若选择重新创建顺序表,则清空原来的表,重新执行建表函数。如果开始顺序表不存在,则询问录入多少个职工基本信息,然后人工依次输入职工基本信息,倘若途中输入的职工号重复,则提示职工号已存在,请重新输入刚刚的数据。

        这里用到了strcmp()函数,用于比较两个字符串是否相等,若相等,返回 0;不相等则 !0 。 实际上是比较两个字符串中,每个字符ANSI码是否相同,若相同ANSI码的差值为0。

        这里还用到了system()函数,用于向控制台输入DOS命令,善于使用system()函数可以让控制台更~~好看?我在写代码的时候就是不断调整system()函数的位置,来让控制台看起来更~~好看?

//5.输出所有职工信息
void DispList(SqList L){
	if ( L.length == 0 ){
		printf("\n     >>当前职工信息表为空!\n\n");		
	}else{	
		printf("\n当前职工信息:\n");
		printf("\t  职工号\t 姓名\t性别\t年龄\t  手机号\t职位\t月薪\n");
		for ( int i = 0 ; i < L.length ; i++){
			printf("\t%s\t%s\t %s\t %d\t%s\t%s\t%d\n",L.data[i].num,L.data[i].name,L.data[i].sex,L.data[i].age,L.data[i].phonenum,L.data[i].position,L.data[i].money);
		}
		printf("\n");
	}
} 

        ↑↑↑这个是输出总表的函数,非常简单,依次遍历每一个数据,然后输出即可。

//指令报错
void Error(){
	printf("\n     >>非法指令,请输入指令 1 ~ 8\n\n");
	Printf_();
}
//2.查询功能
int Search(SqList L){	
	if ( L.length == 0){
		printf("\n     >>请先创建职工信息表!\n\n");
		Printf_();
	}else{
		system("cls");//先清屏,再进入该菜单栏
	    printf("**************************\n");
	    printf("-----1.按职工号查询-------\n");
	    printf("-----2.按职工姓名查询-----\n");
	    printf("-----3.按职工性别查询-----\n");
	    printf("-----4.按职工年龄查询-----\n");
	    printf("-----5.按职工手机号查询---\n");
	    printf("-----6.按职工职位查询-----\n");
	    printf("-----7.按职工月薪查询-----\n");
	    printf("-----8.退出本菜单---------\n");
	    printf("**************************\n");
	    while(1){
	    	int i;//全局变量,用于保存符合条件的索引
	        printf("请输入指令!\n");     
	        char order = getch();
	        switch(order){
		        case '1':
		        	char number[11];//存入输入的职工号,下面同理 
					printf("\n     >>请输入要查询职工号:");scanf("%s",number);
					printf("\t  职工号\t 姓名\t性别\t年龄\t  手机号\t职位\t月薪\n"); 
					for ( i = 0 ; i < L.length ; i++ ){
						if ( strcmp(L.data[i].num,number) == 0){
							printf("\t%s\t%s\t %s\t %d\t%s\t%s\t%d\n",L.data[i].num,L.data[i].name,L.data[i].sex,L.data[i].age,L.data[i].phonenum,L.data[i].position,L.data[i].money);
						}
					}
		        	Printf_();
		        	return Search(L); 
		        	break;
		        case '2':
					char name[10];
					printf("\n     >>请输入要查询姓名:");scanf("%s",name);
					printf("\t  职工号\t 姓名\t性别\t年龄\t  手机号\t职位\t月薪\n"); 
					for ( i = 0 ; i < L.length ; i++ ){
						if ( strcmp(L.data[i].name,name) == 0){
							printf("\t%s\t%s\t %s\t %d\t%s\t%s\t%d\n",L.data[i].num,L.data[i].name,L.data[i].sex,L.data[i].age,L.data[i].phonenum,L.data[i].position,L.data[i].money);
						}
					}
		        	Printf_();
		        	return Search(L); 
		        	break;
		        case '3':
					char sex[2];
					printf("\n     >>请输入要查询性别:");scanf("%s",sex);
					printf("\t  职工号\t 姓名\t性别\t年龄\t  手机号\t职位\t月薪\n"); 
					for ( i = 0 ; i < L.length ; i++ ){
						if ( strcmp(L.data[i].sex,sex) == 0){
							printf("\t%s\t%s\t %s\t %d\t%s\t%s\t%d\n",L.data[i].num,L.data[i].name,L.data[i].sex,L.data[i].age,L.data[i].phonenum,L.data[i].position,L.data[i].money);
						}
					}
		        	Printf_();
		        	return Search(L); 
		        	break;
		        case '4':
				 	int age;
					printf("\n     >>请输入要查询年龄:");scanf("%d",&age);
					printf("\t  职工号\t 姓名\t性别\t年龄\t  手机号\t职位\t月薪\n"); 
					for ( i = 0 ; i < L.length ; i++ ){
						if ( L.data[i].age == age ){
							printf("\t%s\t%s\t %s\t %d\t%s\t%s\t%d\n",L.data[i].num,L.data[i].name,L.data[i].sex,L.data[i].age,L.data[i].phonenum,L.data[i].position,L.data[i].money);
						}
					}
		        	Printf_();
		        	return Search(L); 
		        	break;
		        case '5':
		        	char phonenum[12];
					printf("\n     >>请输入要查询的手机号:");scanf("%s",phonenum);
					printf("\t  职工号\t 姓名\t性别\t年龄\t  手机号\t职位\t月薪\n"); 
					for ( i = 0 ; i < L.length ; i++ ){
						if ( strcmp(L.data[i].phonenum,phonenum) == 0){
							printf("\t%s\t%s\t %s\t %d\t%s\t%s\t%d\n",L.data[i].num,L.data[i].name,L.data[i].sex,L.data[i].age,L.data[i].phonenum,L.data[i].position,L.data[i].money);
						}
					}
		        	Printf_();
		        	return Search(L); 
		        	break;
		        case '6':
		        	char position[5];
					printf("\n     >>请输入要查询职位:");scanf("%s",position);
					printf("\t  职工号\t 姓名\t性别\t年龄\t  手机号\t职位\t月薪\n"); 
					for ( i = 0 ; i < L.length ; i++ ){
						if ( strcmp(L.data[i].position,position) == 0){
							printf("\t%s\t%s\t %s\t %d\t%s\t%s\t%d\n",L.data[i].num,L.data[i].name,L.data[i].sex,L.data[i].age,L.data[i].phonenum,L.data[i].position,L.data[i].money);
						}
					}
		        	Printf_();
		        	return Search(L); 
		        	break;
		        case '7':
		        	int money;
					printf("\n     >>请输入要查询月薪:");scanf("%d",&money);
					printf("\t  职工号\t 姓名\t性别\t年龄\t  手机号\t职位\t月薪\n"); 
					for ( i = 0 ; i < L.length ; i++ ){
						if ( L.data[i].money == money ){
							printf("\t%s\t%s\t %s\t %d\t%s\t%s\t%d\n",L.data[i].num,L.data[i].name,L.data[i].sex,L.data[i].age,L.data[i].phonenum,L.data[i].position,L.data[i].money);
						}
					}
		        	Printf_();
		        	return Search(L); 
		        	break;
		        case '8':
		        	system("cls");
		        	return 0;	
		        default:
					Error();//指令报错
					return Search(L); 
					break;
	        }
		}
    }
}

        ↑↑↑查询功能就是职工信息系统的重头戏了。想使用肯定要建立顺序表先的。有顺序表则进入查询功能的菜单栏,输入想要查询的对象,然后再输入查询的值。系统依次遍历顺序表,然后输出符合条件的数据。基本每个查询都是一样的思路。

        字符串就用strcmp()函数比较,整型就直接判断就好。查询完返回该菜单栏下,如果不想查询,按下8即可。

//3.删除某一职工信息(信息表改变,要加 & ) 
void DelElem(SqList &L,int i){
	if ( L.length == 0 ){
		printf("\n     >>当前职工表为空!无法删除职工信息!\n\n");
		Printf_();
	}else{
		system("cls");
		DispList(L); 
		printf("\n>>删除第i个职工信息:\n");
		printf(">>>请输入i:");scanf("%d",&i);
		if ( i < 1 || i > L.length){
			printf("索引错误!\n");//想删除数据,当然要合法才行
			Printf_();
		}else{
			for ( int j = i ; j < L.length ; j++){
				L.data[ j - 1 ] = L.data[j]; //数据前移
			}
			L.length--;//长度-1
			printf("删除成功!\n");
			printf("\n     >>职工表变为:\n\n");
			DispList(L); 
			Printf_();
		}	
	}	
}

        ↑↑↑这个就是删除数据的算法,当然要先有顺序表才可以使用的。使用这个功能,先清屏,保持美观,然后输出总表,查看要删除的数据,最后输入要删除的数据即可。删除完后,再输出一次总表,查看删除后的数据。

//4.获取职工人数 
void GetLength(SqList L){
	printf("\n     >>当前职工人数为:%d\n\n",L.length); //得到职工人数 
	Printf_();
} 

        ↑↑↑输出职工人数,算法也十分简单。

//6.插入职工信息 
void HalfInsElem(SqList &L , ElemType x , int i){
	if( L.length == 0 ){
		printf("\n     >>请先创建职工信息表!\n\n");
		Printf_();
	}else{
		system("cls");
		DispList(L); 
		printf("\n >>插入职工信息:\n");
		printf(">>>请输入插入位置:");scanf("%d",&i);	
		if ( i < 0 || i > L.length + 1){
			printf("索引错误!\n"); 
			Printf_();
		}else{
			Input(x);
			int k = Locate(L,x.num);
			if( k == 0 ){
				for (int j = L.length ; j >= i ; j--)
					L.data[ j ] = L.data[ j - 1];
				InsElem(L,x,i);
				printf("插入成功!\n");
				printf("\n     >>职工表变为:\n\n");
				DispList(L); 
			}else{
				printf("此职工号已存在,不能插入该信息!\n");
			}
			Printf_();
		}
	}		
} 

        ↑↑↑这个是,具有原表的基础上再插入职工数据的算法,和创建职工表的算法类似——就是上方Create()函数。先清屏,保持控制台美观,然后输出总表,看看想要把数据插到哪个位置。

//7.1封装某一功能的函数,用于函数 7 的使用 
void Printf_7(SqList L,int i){
	printf("修改成功!\n");
	printf("\n     >>该职工信息修改后变为:\n");
	printf("\n\t  职工号\t 姓名\t性别\t年龄\t  手机号\t职位\t月薪\n");
	printf("\t%s\t%s\t %s\t %d\t%s\t%s\t%d\n\n",L.data[i].num,L.data[i].name,L.data[i].sex,L.data[i].age,L.data[i].phonenum,L.data[i].position,L.data[i].money); 
	Printf_();
} 

//7.修改信息(表信息被修改,所以要加上 & ) 
int Modification(SqList &L){
	if ( L.length == 0 ){
		printf("\n     >>请先创建职工信息表!\n\n");
		Printf_();
	}else{
		system("cls");
		DispList(L);//列出职工表,方便查看需要修改的数据 
		int i = 0;//定义一个全局变量,用来保存符合条件的职工数据的存储下标 
		char number[11];//存储输入的职工号 
		printf("\n     >>需要修改信息的职工的职工号为:");scanf("%s",number);
		while ( i < L.length && strcmp(L.data[i].num,number) != 0 )
			i++;//获得数据下标 
		if ( i < L.length ){
			system("cls"); //找到则进行修改 
			printf("\n\t  职工号\t 姓名\t性别\t年龄\t  手机号\t职位\t月薪\n");//单独输出,方便查看要修改的内容 
			printf("\t%s\t%s\t %s\t %d\t%s\t%s\t%d\n\n",L.data[i].num,L.data[i].name,L.data[i].sex,L.data[i].age,L.data[i].phonenum,L.data[i].position,L.data[i].money);   
			printf("\n\tXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n");
			printf("\t======= 1.修 改 职 工 号 =======\n");
			printf("\t======= 2.修 改 姓 名 ==========\n");
			printf("\t======= 3.修 改 性 别 ==========\n");
			printf("\t======= 4.修 改 年 龄 ==========\n");
			printf("\t======= 5.修 改 手 机 号 =======\n");
			printf("\t======= 6.修 改 职 位 ==========\n");
			printf("\t======= 7.修 改 月 薪 ==========\n");
			printf("\t======= 8.退 出 本 菜 单 =======\n");
			printf("\tXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n");
			while (1){
				int k;
				printf("     >>请输入指令!\n");     
	        	char order = getch();  
				switch (order){
					case '1':
						char number[11];//存入输入的职工号,下面同理 
						printf("请输入新的职工号:");scanf("%s",number);
						k = Locate(L,number);
						if ( k != 0 && strcmp(L.data[i].num,number) != 0 ){//若输入的职工号,信息表中存在且不和要修改的职工号相等,则报错 
							printf("\n     >>该职工号已存在,修改失败!\n\n");
							system("pause");
							return Modification(L);//返回该菜单栏下,重新要修改数据,下同 
						}else{
							strcpy(L.data[i].num,number);//strcpy(a,b)函数,b复制给a,下面同理 
							Printf_7(L,i);	
						}
						return 0; //修改完毕,返回首页主菜单,下同						
						break;
					case '2':
						char name[10];
						printf("请输入新的姓名:");scanf("%s",name);
						strcpy(L.data[i].name,name);
						Printf_7(L,i);
						return 0;
						break;
					case '3':
						char sex[2];
						printf("请输入新的性别:");scanf("%s",sex);
						strcpy(L.data[i].sex,sex);
						Printf_7(L,i);
						return 0;
						break;
					case '4':
						int age;
						printf("请输入新的年龄:");scanf("%d",&age);
						L.data[i].age = age;
						Printf_7(L,i);
						return 0; 
						break;
					case '5':
						char phonenum[12];
						printf("请输入新的手机号:");scanf("%s",phonenum);
						strcpy(L.data[i].phonenum,phonenum);
						Printf_7(L,i);
						return 0;
						break;
					case '6':
						char position[5];
						printf("请输入新的职位:");scanf("%s",position);
						strcpy(L.data[i].position,position);
						Printf_7(L,i);
						return 0;
						break;
					case '7':
						int money;
						printf("请输入新的月薪:");scanf("%d",&money);
						L.data[i].money = money;
						Printf_7(L,i);
						return 0;
						break;
					case '8':
						system("cls");
						return 0;
					default: 
						Error();
						break;
				}
			}
		}else{
			printf("\n     >>未找到职工号为%s的职工\n\n",number);
			system("pause");
			return Modification(L);
		}
	}
} 

        ↑↑↑这个是修改职工信息的函数,可以修改职工的任意信息。修改信息的操作都类似,先定义一个参数接收,然后再找到修改的值,覆盖即可。字符串运用到了strcpy(a,b)函数,将右边的字符串复制给左边。整型数据的修改,重新赋值即可。

        注意:因为是修改数据,所以表中的数据发生了改变,所以函数的参数L要带&,我刚开始写的时候,忘记加&了,导致一直不成功,花了许多时间,想了各种操作。最后是这些细节问题,我的水平还有待提高。(┬_┬)↘

//8.系统说明
int Help(){
	system("cls");
	printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^欢迎使用职工信息管理系^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n");
	printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^下面是该系统的功能介绍和一些注意事项^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n");
	printf("========================================================================================================================\n");
	printf("\n     >>0:退出菜单\n\n");
	printf("--------------------------------------------------------功能介绍--------------------------------------------------------\n\n");
	printf("       >>1.创建职工信息表\n\n");
	printf("       >>>本系统可以创建职工信息表,职工信息包括:职工号,姓名,性别,年龄,手机号,职位,月薪。\n\n");
	printf("       >>>如果职工表存在,再次创建系统会提示是否重新建立职工表,若重新建立则会覆盖原表,请慎重操作!\n\n");
	printf("       >>>此系统录入的信息,默认职工号为10位阿拉伯数字,姓名为2~3位汉字,性别为1位汉字,年龄2位阿拉伯数字,手机号为11位数字,职位为2位汉字,月薪位4~5位阿拉伯数字。若不按规则输入,输出数据时可能会错位。作者水平有限,不能解决此问题,十分抱歉。\n\n"); 
	printf("       >>>录入数据时,一定要要依次录完为止。例如录入5名职工信息,一定要输入5次,不可中途退出。而且录入数据时,识别不出非法字符,若输错,只能删除该信息,重新输入或进行修改。若有不便,请包涵。\n\n");
	printf("       >>>其他的一些信息例如出生年月,家庭住址等,可以加入此信息,但系统不是很专业,暂不录入此信息。因此给您带来不便,还请多多包涵。\n\n");
	printf("------------------------------------------------------------------------------------------------------------------------\n\n");
	printf("       >>2.查找职工信息\n\n");
	printf("       >>>此功能可以进行职工号查找,姓名查找,性别查找,年龄查找,手机号查找,职位查找,月薪查找。\n\n");
	printf("------------------------------------------------------------------------------------------------------------------------\n\n");
	printf("       >>3.删除信息\n\n");
	printf("       >>>本系统给用户提供删除数据的功能\n\n");
	printf("       >>>删除数据只能按数据索引删除,不能指定某一信息进行删除。比如:无法指定删除姓名为'张三'的数据\n\n");
	printf("       >>>一旦输入删除命令,若存在信息表,则必须选择删除的位置,若反悔,可输入超过信息表索引的值(进入该功能时,会显示完整的信息表),以此退出该功能。\n\n");
	printf("       >>>数据一旦删除,将无法修复,请慎重使用该功能\n\n");
	printf("------------------------------------------------------------------------------------------------------------------------\n\n");
	printf("       >>4.获取职工人数\n\n");
	printf("       >>>本系统给用户提供获取职工人数的功能\n\n");
	printf("------------------------------------------------------------------------------------------------------------------------\n\n");
	printf("       >>5.输出职工表\n\n");
	printf("       >>>本系统给用户提供获取职工信息表的功能\n\n");
	printf("       >>>若不安规则输入(规则详见上方功能1的第三项),输出信息表时,数据会错位!\n\n");
	printf("------------------------------------------------------------------------------------------------------------------------\n\n");
	printf("       >>6.插入数据\n\n");
	printf("       >>>本系统给用户提供插入职工信息的功能\n\n");
	printf("       >>>一旦输入插入命令,若存在信息表,则必须选择插入的位置,若反悔,可输入超过信息表索引的值(进入该功能时,会显示完整的信息表),以此退出该功能。\n\n");
	printf("------------------------------------------------------------------------------------------------------------------------\n\n");
	printf("       >>7.修改信息\n\n");
	printf("       >>>本系统给用户提供修改职工信息的功能\n\n");
	printf("       >>>一旦输入修改指令,若存在信息表,则必须选择需要修改数据的职工的职工号,选择后,若反悔,可按8退出该功能。\n\n");
	printf("=======================================================================================================================\n");
	while(1){
	    char order = getch();
	    switch(order){
		    case '0':
		    	system("cls"); 
				return 0;
				break;	
		} 
	}
} 

        ↑↑↑这个是系统说明,类似于每个产品的使用说明书。

      


        接下来就是主函数部分了,主函数尽量简洁,不要有多余的代码,不然调试的时候非常的累。尽量把操作写成函数的形式,主函数和操作函数尽量分不同的文件写,然后把操作函数导入主函数的文件里来运行。

#include "SqList.cpp" 
int main(){		
	ElemType x;SqList L;InitList(L);//三件套
	int cycle = 1;
	while(cycle == 1){
		int i;//函数执行参数 
		printf("======================================================================\n");
		printf("*******************使用该系统前,请先仔细阅读系统说明******************\n");		
		printf("**********************┍ -----------------------┑ *********************\n");
		printf("********************** 欢迎使用职工信息管理系统  *********************\n");
		printf("**********************┕------------------------┙ *********************\n");
		printf("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx菜单xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n");
		printf("======================================================================\n");
		printf(".......       1.创建新表        .....          2.查找信息      .......\n");
		printf(".......       3.删除信息        .....          4.获取人数      .......\n");
		printf(".......       5.输出总表        .....          6.插入信息      .......\n");
		printf(".......       7.修改信息        .....          8.系统说明      .......\n");
		printf("请输入指令!\n");
		char order = getch();//接收一个指令,控制台不显示该指令 
		switch(order){
			case '1':
				Create(L); //建表 
				break;
			case '2':
				Search(L); //查询		
				break;				
			case '3':
				DelElem(L,i); //删数据 
				break;
			case '4':
				GetLength(L);//获得职工人数 
				break;
			case '5': 
				DispList(L); //输出职工表 
				Printf_(); 
				break;
			case '6':
				HalfInsElem(L,x,i); //插入数据 
				break;
			case '7':
				Modification(L);//修改信息 
				break;
			case '8':
				Help();//系统说明文档 
				break;
			case '0':
				system("cls");
				printf("\n          >>删库跑路!<<\n");//秘密指令,欸嘿 
				cycle = 0;
				break;												
			default:
				Error();//指令报错 
				break;				
		}
	}
	return 1; 	
}

        ↑↑↑以上就是主函数部分,因为我把操作函数都放在了“SqList.cpp"文件里面,所以使用主函数时要先导入该文件。这里的菜单栏我参考了CSDN上一位大佬的写法,觉得不错就拿来改了改,不然菜单栏就会很难看,什么框架也没有。

        这就是职工信息管理系统的源码了。第一次写博客,也是第一次写职工管理系统,可能有很多错误的地方,代码可能写的不是特别好,反正没人看(bushi)。如果有错误的地方,还望读者指出,也可以提些意见。

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值