大一c语言课程设计雇员管理系统easy version(非链表)

2022年1月更新:
有小朋友找我讨论代码问题,我也发现以前写的许多地方有很多bug和不足。我这里展示的最新的代码就是他修改后的代码。非常感谢他! @gsr
第一版代码在我的GitHub上。github

======================
大一第二学期c语言课程设计自己做的雇员管理系统,由于对链表不是特别熟悉,所以用结构体数组来储存信息,由于才疏学浅,只有添加&删除&更改&查询&显示雇员信息这5个基本功能,然后几个小点:

  • 密码使用了掩码登录,但是手抖输错了密码的某位是无法删除的
  • 利用文件来存储雇员数据

大一c语言课程设计雇员管理系统easy version(非链表)_第1张图片
大一c语言课程设计雇员管理系统easy version(非链表)_第2张图片大一c语言课程设计雇员管理系统easy version(非链表)_第3张图片大一c语言课程设计雇员管理系统easy version(非链表)_第4张图片


#include 
#include 
#include 
#include 

//**************************
struct worker{
	char num[20];	//雇员工号
	char name[20];	//雇员姓名
	char sex[6];	//雇员性别
	char age[6];	//雇员年龄
	char worksection[20];//雇员所在部门
}worker[100];		//最大录入100位员工资料

 int n=0;		//定义一个全局变量n
//**************************
void logmemu();//登陆界面函数
int login();//登录函数
void mainmenu();//主菜单函数
void power();//关于我们函数
void show();//雇员信息显示函数
void add();//雇员信息添加函数
void alter();//雇员信息修改函数
void del();//雇员信息删除函数
void search();//雇员信息查找函数
void read(); 	//文件读取函数
void save();	//文件写入函数
//****************************

int main()
{
	system("color B");//背景色与前景色控制
	logmemu();	//运行登陆界面
	if (n==0) read();//运行文件操作

}

void logmemu()//登录界面
{
	char choice;
	do
	{
		system ( "cls" );//清屏 
		printf ( "\n\t********************************************************" );
		printf ( "\n\t**************** Welcome to use the system *************" );
		printf ( "\n\t********************************************************" );
		printf ( "\n\t                 无敌最俊朗雇员管理系统登录菜单         " );
		printf ( "\n\t********************************************************" );
		printf ( "\n\t*                   1.管理员登录                       *" );
		printf ( "\n\t*                   2.制作人员名单                     *" );
		printf ( "\n\t*                   0.退出系统                         *" );
		printf ( "\n\t********************************************************" );
		printf ( "\n\t********************************************************" );
		printf ( "\n\t             请使用人员输入对应数字进行操作  [ ]\b\b" );
		choice = getch();
		switch ( choice )
		{
		case'1':
			if ( login() == 1 )
			{
				mainmenu();
			}
			else
			{
				printf ( "\n管理员账号登录失败\n" );
			}
			break;
		case'2':
			power();
			break;
		case'0':exit ( 0 );
			break;
		default:
			printf ( "\n\t************输入数字错误!请在输入合法的数字选项!**********" );
			break;
		}
	}
	while ( choice != '0' );
}

int login()
{
	char administrator[ ] = "ad";		//设置管理员登录账号
	char administrator_pwd[ ] = "123";	//设置管理员登录密码
	char input_administrator[20];
	char input_administrator_pwd[20];
	int i,j;			//i用来限制账号登录失败后重新登录的次数,j是掩码下标
	int count = 0;			//count用来记录尝试登陆了多少次,

	for ( i = 0; i < 3; i++ )
	{
	printf ( "\n\t请输入管理员账号:" );
	scanf ( "%s", input_administrator );

	printf ( "\n\t请输入管理员密码:" );
	for(j=0;j<20;j++)		   		//掩码模块******
        {
            input_administrator_pwd[j]=getch();
            printf("*");				//将输入的密码用掩码显示
            if(input_administrator_pwd[j]==13) break;	//当输入回车时跳出循环
        }input_administrator_pwd[j]='\0';   		//输入完成后将最后一位替换成\0形成字符串
							//掩码模块结束******
	if ( strcmp ( administrator, input_administrator ) == 0 && strcmp ( administrator_pwd, input_administrator_pwd ) == 0 )//判断用户名和密码
	{return 1;}
	count++;
	if ( count >= 3 )
		{
		printf ( "\n输入达到上限,为确保账号安全将直接退出本系统!\n" );
		exit ( 0 );//正常退出函数 
		}
		printf ( "\n您输入的密码或账号错误!您还剩余%d次机会!\n", ( 3 - count ) );
	}
	return 0;
}

void mainmenu(){//主菜单界面

	char choice;
	do
	{
		system ( "cls" );
		printf ( "\n\t********************************************************" );
		printf ( "\n\t********************************************************" );
		printf ( "\n\t                  无敌最俊朗系统主菜单                  " );
		printf ( "\n\t********************************************************" );
		printf ( "\n\t*                   1.显示雇员信息                     *" );
		printf ( "\n\t*                   2.录入雇员信息                     *" );
		printf ( "\n\t*                   3.修改雇员信息                     *" );
		printf ( "\n\t*                   4.删除雇员信息                     *" );
		printf ( "\n\t*                   5.查询雇员信息                     *" );
		printf ( "\n\t*                   0.返回系统登录菜单                 *" );
		printf ( "\n\t********************************************************" );
		printf ( "\n\t********************************************************" );
		printf ( "\n\t             请使用人员输入对应数字进行操作  [ ]\b\b" );
		choice = getch();
		switch ( choice )
		{
		case'1':show();system("pause");system("cls");
			break;
		case'2':add();
			break;
		case'3':alter();
			break;
		case'4':del();
			break;
		case'5':search();
			break;
		case'0':logmemu();
			break;
		default:printf ( "\n\t************输入数字错误!请在输入合法的数字选项!**********" );
			break;
		}
	}
	while ( choice != '0' );
}

void power(){//关于我们界面

	system("cls");
		printf ( "\n\t********************************************************" );
		printf ( "\n\t********************************************************" );
		printf ( "\n\t                无敌最俊朗雇员-系统关于我们             " );
		printf ( "\n\t********************************************************" );
		printf ( "\n\t*                   1.技术支持:gsr,hlx               *" );
		printf ( "\n\t*                   2.售后人员:gsr,hlx               *" );
		printf ( "\n\t*                   0.返回上一级菜单                   *" );
		printf ( "\n\t********************************************************" );
		printf ( "\n\t********************************************************" );
	system("pause");
}

void show(){//显示雇员信息函数
    system("cls");
	read();
}

void add(){//添加雇员信息函数
	int i;
	int flag;
	char choice;
	if(n>=100)
	{printf ( "\n\t   系统数据已满请联系技术人员    " );
		return ;
	}
	printf("\n");
	printf("\n");
	do{
	system("cls");
	flag=0;
	printf("\n");
	printf("\t\t\t<按 0与回车键 返回主界面> \n");
	printf("\t\t请输入员工工号:");
	scanf("%s",worker[n].num);
	if(strcmp(worker[n].num,"0")==0)//误入添加界面按0与回车键 返回主界面
	{ mainmenu();
	}
	for(i=0;i

最后是我的github地址:mizuhokaga
欢迎留言指正>>

你可能感兴趣的:(总结,大一,c语言,课程设计)