/*
背景:在公司中,为了管理众多员工,以及员工的工资,特开发了员工工资管理系统。通过该系统完成新员工入职,离职,修改工资,查询等功能。
需求:使用员工管理系统之前,需要先登陆。登陆后,可以完成员工的添加、显示,删除、修改、查找、排序的功能
*/
//定义初始数据部分
// 管理员初始数据--登录系统 同一下标位置 表示同一管理员位置
// 账号
String[] admins = {"lovo","wang","test"};
// 密码
String[] adminPwd = {"lovo","wang","test"};
// 员工初始数据 同一下标位置 表示同一员工数据
// 员工工号
String[] emIds = {"lovo111","lovo222","lovo333"};
// 员工姓名
String[] emNames = {"张三","王五","刘六"};
// 员工工资
double[] emMoney = {7800,9800,10000};
//1、登录部分
//登录部分用循环包裹
//创建一个条件变量,表示下标
int i;
//创建一个条件变量,表示输入,错误的次数
int w=0;
//创建输入器
Scanner input=new Scanner(System.in);
while (true){
w++;
//提醒用户输入账号
System.out.println("请输入用户名");
String name= input.next();
//提醒用户输入密码
System.out.println("请输入密码");
String pasword= input.next();
//用循环判断用户输入的内容是否符合要求
//定义一个条件变量,表示输入内容是否符合标准
int q=0;
for (i=0;i< admins.length;i++){
//先判断用户名是否错误
if(name.equals(admins[i])){
q++;
//再判断用户密码是否错误
if(pasword.equals(adminPwd[i])){
q++;
}
}
}
//当输入次数等于3次时,为非法用户,账户冻结
if(w==3){
System.out.println("非法用户,账户已冻结");
System.exit(0);
}
//当q等于0时,账号错误,需要重新输入
if(q==0){
System.out.println("用户名错误请重新输入");
continue;
}
//当q等于1时,账号错误,需要重新输入
if(q==1){
System.out.println("密码错误请重新输入");
continue;
}
//当q等于2时,账号密码正确,进入主菜单
if(q==2){
System.out.println("欢迎进入黑心公司,祝你天天加班");
break;
}
}
//主菜单
while (true){
System.out.println("主菜单");
System.out.println("请选择:1-添加员工、2-显示员工信息、3-删除员工信息、4-查询员工信息、5-修改员工工资、6-按照工资排序显示工资单、7-退出");
//输入菜单选择
int number= input.nextInt();
while (true){
//当输入1时--添加员工
if(number==1){
//提示输入新增员工工号
System.out.println("请输入新增员工工号");
String id2= input.next();
//新建一个数组储存新增员工后的工号
String[] emIds2=new String[emIds.length+1];
//新增的员工工号储存在新数组的最后一位
emIds2[emIds.length]=id2;
//判断输入工号是否重复
//定义一个条件变量,判断工号是否错误
int t=0;
for (int j=0;j<emIds.length;j++){
if(id2.equals(emIds[j])){
System.out.println("该工号已存在,请重新输入");
t++;
break;
}
}
//当t等于0时,代表工号正确,可以接着完成后续步骤
if(t==0) {
//提示输入新增员工姓名
System.out.println("请输入新增员工姓名");
String name2= input.next();
//新建一个数组储存新增员工后的姓名
String[] emNames2=new String[emNames.length+1];
//新增的员工姓名储存在新数组的最后一位
emNames2[emNames.length]=name2;
//提示输入新增员工工资
System.out.println("请输入新增员工工资");
double money2= input.nextDouble();
//新建一个数组储存新增员工后的工资
double[] emMoney2=new double[emMoney.length+1];
//新增的员工工资储存在新数组的最后一位
emMoney2[emMoney.length]=money2;
//用循环将老数组内的内容,赋值给新数组
for(int u=0;u<emIds.length;u++){
emIds2[u]=emIds[u];
}
for(int u=0;u<emNames.length;u++){
emNames2[u]=emNames[u];
}
for(int u=0;u<emMoney.length;u++){
emMoney2[u]=emMoney[u];
}
//将新数组的地址赋值给老数组,方便后续展示新数组的内容
emIds=emIds2;
emNames=emNames2;
emMoney=emMoney2;
break;
}
//当t大于0时,代表工号错误,需要重新输入
if(t>0){
continue;
}
//当新增员工信息录入完毕以后,选项1结束,又回到主菜单进行选择
break;
}
//当输入2时---显示员工信息
if(number==2){
//用循环输出数组内员工信息
System.out.println("工号 姓名 薪资");
//用循环输出新数组
for(int y=0;y<emIds.length;y++){
System.out.println(emIds[y]+"--"+emNames[y]+"--"+emMoney[y]+"--");
}
当员工信息显示完毕以后,选项2结束,又回到主菜单进行选择
break;
}
//当输入3时---删除员工信息
if(number==3){
while (true){
//提示输入想要删除的员工工号
System.out.println("请输入想要删除的员工工号");
String id3= input.next();
//新建一个数组储存删除员工后的工号
String[] emIds3=new String[emIds.length-1];
//用循环判断输入工号是否存在
//定义一个变量记录输入工号是否存在
int o=0;
//定义一个变量记录输入的值在旧数组的下标是多少
int s=0;
//将循环变量声明在循环外部
int p=0;
for(;p<emIds.length;p++){
if(id3.equals(emIds[p])){
o++;
s=p;
break;
}
}
//当o等于0时,代表输入工号不存在,需要重新输入
if (o==0){
System.out.println("输入工号不存在请从新输入");
continue;
}
//当o等于1时,代表输入工号存在,可以执行删除操作
if (o>0){
//用循环赋值删除后的新数组
for(int a=0;a<emIds3.length;a++){
//将老数组下标不等于p的元素赋值给新数组
if(a<s){
emIds3[a]=emIds[a];
}else if(a>=s){
emIds3[a]=emIds[a+1];
}
}
//将删除操作完成后的新数组地址赋值给老数组
emIds=emIds3;
//展示删除完成后剩余工号
System.out.println("删除员工工号后,剩余工号为:");
for(int d=0;d<emIds.length;d++){
System.out.print(emIds[d]+"--");
}
}
System.out.println("删除操作完成,回到主菜单");
break;
}
//当删除操作完成后,循环结束
break;
}
//当输入4时---查询员工信息
if(number==4){
while (true){
//提示用户输入需要查询的员工姓名
System.out.println("请输入员工姓名");
String inquire=input.next();
//新增一个条件变量,代表输入姓名是否存在
int g=0;
//新增一个条件变量,代表与输入内容相等的元素下标
int k=0;
//用循环判断输入姓名是否存在
for(int h=0; h<emNames.length; h++){
if(inquire.equals(emNames[h])){
g++;
k=h;
break;
}
}
//当g=0时,代表输入姓名不存在,需要用户从新输入
if(g==0){
System.out.println("输入姓名不存在,请重新输入");
continue;
}
//当g=1时,代表输入姓名存在
if(g==1){
System.out.println("工号 姓名 薪资");
System.out.println(emIds[k]+" "+emNames[k]+" "+emMoney[k]);
}
break;
}
//查询操作完成后,循环结束,回到主菜单
break;
}
//当输入5时---修改员工工资
if(number==5){
while (true){
//提示用户输入需要查询的员工姓名
System.out.println("请输入员工姓名");
String inquire2=input.next();
//新增一个条件变量,代表输入姓名是否存在
int l=0;
//新增一个条件变量,代表与输入内容相等的元素下标
int z=0;
//用循环判断输入姓名是否存在
for(int h=0; h<emNames.length; h++){
if(inquire2.equals(emNames[h])){
l++;
z=h;
break;
}
}
//当g=0时,代表输入姓名不存在,需要用户从新输入
if(l==0){
System.out.println("查无此人");
continue;
}
//当g=1时,代表输入姓名存在
if(l==1){
//提示输入新工资金额
System.out.println("输入新的工资金额");
double fresh= input.nextDouble();
//原来的薪资改为输入后的薪资
emMoney[z]=fresh;
System.out.println("修改后的信息为:");
System.out.println("工号 姓名 薪资");
System.out.println(emIds[z]+" "+emNames[z]+" "+emMoney[z]);
}
break;
}
//查询操作完成后,循环结束,回到主菜单
break;
}
//当输入6时---按照工资排序显示工资单
if(number==6){
//创建一个新的数组,放排序后的薪资
// double[] box=new double[emMoney.length];
//创建一个空容器
double c=0;
//用循环比较工资大小
for(int b=0;b<emMoney.length;b++){//取值0 1 2 3
for(int x=0;x<emMoney.length-1-i;x++){//取值(0 1 2 )-i
if(emMoney[x]<emMoney[x+1]){
c=emMoney[x+1];
emMoney[x+1]=emMoney[x];
emMoney[x]=c;
}
}
}
//比较过后工资从大到小排序
System.out.println("工号 姓名 薪资");
for(int v=emMoney.length-1;v>=0;v--){
System.out.println(emIds[v]+"--"+emNames[v]+"--"+emMoney[v]+"--");
}
//查询操作完成后,循环结束,回到主菜单
break;
}
//当输入7时--退出员工管理系统
if(number==7){
System.out.println("谢谢使用黑心员工管理系统,欢迎下次使用");
System.exit(0);
}
}
}
java员工职位权限登录一般使用什么技术实现 java员工管理系统
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章