本次开发的题目为公司管理系统。实现的功能有界面的切换、公司员工的增、删、改、查、把人员信息写入文件、读取文件的人员信息以及友好提示等。
这次使用了三层架构开发
首先是mian.c层
#include"ui.h"
int main()
{
while(1)
{
switch(loginui())
{
case 1:
bossmanui();
break;
case 2:
comanui();
break;
case 0:
break;
default:
printf("您的输入有误,请您重新输入:");
getchar();
while(getchar()!='\n'); //光标停顿
break;
}
}
return 0;
}
====================================================================================================================
UI层 界面
UI.c代码
#include"ui.h"
int loginui()
{
system("clear");
printf("\t********************欢迎您使用Happy公司管理系统*********************\n");
printf("\t\t****************权限登录选择界面*********************\n");
printf("\t\t|| ||\n");
printf("\t\t\t1.Boss&经理登录界面\n");
printf("\t\t|| ||\n");
printf("\t\t\t2.兼职人员登录界面\n");
printf("\t\t|| ||\n");
printf("\t\t\t0.退出\n");
printf("\t\t|| ||\n");
printf("\t\t****************************************************\n");
int choice;
printf("\t请输入权限编号:");
scanf("%d",&choice);
return choice;
}
int bossmanui()//BOSS&经理登录界面
{
system("clear");
printf("\t********************欢迎您使用Happy公司管理系统*********************\n");
printf("\t\t*****************请BOSS和经理登录********************\n");
char User1[40] = {'\0'};
char Pass1[40] = {'\0'};
printf("\t\t|| ||\n");
printf("\t\t 用户名:");
scanf("%s",User1);
printf("\t\t|| ||\n");
printf("\t\t 密 码:");
scanf("%s",Pass1);
printf("\t\t|| ||\n");
printf("\t\t****************************************************\n");
if(strcmp(User1,"boss")==0&&
strcmp(Pass1,"123")==0 )
manui();
else
{
printf("验证失败!请重新登录:");
printf("\t请按任意键继续......\n");
printf("\t");
while(getchar()!='\n');
getchar();
}
return 0;
}
int comanui()//BOSS&经理登录界面
{
system("clear");
printf("\t********************欢迎您使用Happy公司管理系统*********************\n");
printf("\t\t*****************请普通用户登录*********************\n");
char User2[40] = {'\0'};
char Pass2[40] = {'\0'};
printf("\t\t|| ||\n");
printf("\t\t 用户名:");
scanf("%s",User2);
printf("\t\t|| ||\n");
printf("\t\t 密 码:");
scanf("%s",Pass2);
printf("\t\t|| ||\n");
printf("\t\t****************************************************\n");
if(strcmp(User2,"ant")==0&&
strcmp(Pass2,"456")==0 )
antui();
else
printf("验证失败!请重新登录:");
printf("\t请按任意键继续......\n");
printf("\t");
while(getchar()!='\n');
getchar();
loginui();
}
int manui()
{
while(1)
{
system("clear");
printf("\t********************迎您使用Happy公司管理系统********************\n");
printf("\t\t************欢迎进入boss&经理功能界面***************\n");
printf("\t\t|| ||\n");
printf("\t\t\t1.添加员工\n");
printf("\t\t|| ||\n");
printf("\t\t\t2.查询员工\n");
printf("\t\t|| ||\n");
printf("\t\t\t3.修改员工\n");
printf("\t\t|| ||\n");
printf("\t\t\t4.删除员工\n");
printf("\t\t|| ||\n");
printf("\t\t\t5.显示当前存在的员工\n");
printf("\t\t|| ||\n");
printf("\t\t\t6.读取员工信息\n");
printf("\t\t|| ||\n");
printf("\t\t\t7.退出并保存\n");
printf("\t\t|| ||\n");
printf("\t\t****************************************************\n");
printf("\t6.请输入你的选择:\n");
int choice;
scanf("%d",&choice);
sleep(1);
switch(choice)
{
case 1:
addman();
break;
case 2:
search();
break;
case 3:
change();
break;
case 4:
del();
break;
case 5:
coverlink();
break;
case 6:
read();
break;
case 7:
write();
bossmanui();
exit(0);
break;
default:
printf("您的输入有误,请您重新输入:");
getchar();
while(getchar()!='\n'); //光标停顿
break;
}
}
return 0;
}
int antui()
{
system("clear");
printf("\t********************迎您使用Happy公司管理系统********************\n");
printf("\t\t************欢迎进入普通用户功能界面*************\n");
printf("\t\t|| ||\n");
int choice;
printf("\t\t\t1.查询员工\n");
printf("\t\t|| ||\n");
printf("\t\t\t2.显示当前存在的员工\n");
printf("\t\t|| ||\n");
printf("\t\t\t0.退出\n");
printf("\t\t|| ||\n");
printf("\t\t****************************************************\n");
scanf("%d",&choice);
sleep(1);
switch(choice)
{
case 1:
read();
search();
break;
case 2:
read();
break;
case 0:
loginui();
break;
default:
printf("您的输入有误,请您重新输入:");
getchar();
while(getchar()!='\n'); //光标停顿
break;
}
return 0;
}
UI.h代码
#include"logic.h"
int loginui();
int manui();
int bossmanui();
int comanui();
int antui();
================================================================================================================================
data层 数据操作
data.c代码
#include"data.h"
int addman()//添加员工
{
system("clear");
STMANINFO stmaninfo;
printf("\t*********************您现在位于添加员工界面*********************\n");
printf("\t\t***************请输入添加员工信息*******************\n");
printf("\t\t|| ||\n");
printf("\t\t 请您输入姓名:");
scanf("%s",stmaninfo.name);
printf("\t\t|| ||\n");
printf("\t\t 请您输入性别:");
scanf("%s",stmaninfo.sex);
printf("\t\t|| ||\n");
printf("\t\t 请您输入年龄:");
scanf("%d",&stmaninfo.age);
printf("\t\t|| ||\n");
printf("\t\t 请您输入部门:");
scanf("%s",stmaninfo.department);
printf("\t\t|| ||\n");
printf("\t\t 请您输入工资:");
scanf("%d",&stmaninfo.salary);
printf("\t\t|| ||\n");
printf("\t\t 请您输入密码:");
scanf("%d",&stmaninfo.Pass);
printf("\t\t|| ||\n");
printf("\t\t****************************************************\n");
STLINKNODE *p=&head;
STLINKNODE *q=malloc(sizeof(STLINKNODE));
int ichoice;
printf("\t\t您真的需要添加吗?(0:不添加,1:添加)\n\t");
scanf("%d",&ichoice);
switch(ichoice)
{
case 0:
manui();
break;
case 1:
q->stmaninfo=stmaninfo;
q->next=NULL;
q->next=p->next;
p->next=q;
coverlink();
break;
default:
printf("您的输入有误,请您重新输入:");
printf("\t请按任意键继续......\n");
printf("\t");
while(getchar()!='\n');
getchar();
break;
}
return 0;
}