void xslogin(struct xsyhxx xinxi[],int c){ struct xsyhxx *p; p = xinxi; int n=0; char xszh[]="2021110300236"; char xsmima[]="123123123"; printf("请输入学生的账号(默认为学号): "); char xs[15]; scanf("%s",&xs); printf("请输入学生的密码: "); char xmima[6]; scanf("%s",&xmima); if(strcmp(xszh,xs)==0){ if(strcmp(xsmima,xmima)==0){ printf("登录成功\n"); return; }else;printf("你输入错误,请重新输入! \n"); } else;printf("你输入错误,请重新输入! \n"); } void glylogin(struct xsyhxx xinxi[],int c){ struct xsyhxx *p; p = xinxi; int n=0; char glyzh[]="999999"; char glymima[]="123123123"; printf("请输入管理员专属账号: "); char gly[10]; scanf("%s",&gly); printf("请输入管理的密码: "); char mima[6]; scanf("%s",&mima); if(strcmp(glyzh,gly)==0){ if(strcmp(glymima,mima)==0){ printf("登录成功\n"); return; }else;printf("你输入错误,请重新输入! \n"); } else;printf("你输入错误,请重新输入! \n"); } int login(int f){ struct xsyhxx xinxi[100]; int c=0; do{printf("请你选择你的身份进入系统:"); scanf("%d",&f); switch(f){ case 1: glylogin(xinxi,c);break; case 2: xslogin(xinxi,c);break; default:printf("无效选择\n");break; } }while(f!=0); return 0; }优化代码
时间: 2024-03-18 13:39:21 浏览: 14
以下是优化后的代码:
```
void xslogin(struct xsyhxx xinxi[], int c) {
struct xsyhxx *p = xinxi;
char xszh[] = "2021110300236";
char xsmima[] = "123123123";
char xs[15], xmima[6];
printf("请输入学生的账号(默认为学号): ");
scanf("%s", xs);
printf("请输入学生的密码: ");
scanf("%s", xmima);
if (strcmp(xszh, xs) == 0 && strcmp(xsmima, xmima) == 0) {
printf("登录成功\n");
} else {
printf("你输入错误,请重新输入!\n");
xslogin(xinxi, c); // 递归调用自己,重新输入
}
}
void glylogin(struct xsyhxx xinxi[], int c) {
struct xsyhxx *p = xinxi;
char glyzh[] = "999999";
char glymima[] = "123123123";
char gly[10], mima[6];
printf("请输入管理员专属账号: ");
scanf("%s", gly);
printf("请输入管理的密码: ");
scanf("%s", mima);
if (strcmp(glyzh, gly) == 0 && strcmp(glymima, mima) == 0) {
printf("登录成功\n");
} else {
printf("你输入错误,请重新输入!\n");
glylogin(xinxi, c); // 递归调用自己,重新输入
}
}
int login(int f) {
struct xsyhxx xinxi[100];
int c = 0;
do {
printf("请你选择你的身份进入系统:");
scanf("%d", &f);
switch (f) {
case 1:
glylogin(xinxi, c);
break;
case 2:
xslogin(xinxi, c);
break;
default:
printf("无效选择,请重新输入!\n");
break;
}
} while (f != 0);
return 0;
}
```
优化后的代码主要针对两个函数进行了修改:
- 在输入账号和密码时,直接声明变量并输入,避免了使用不必要的指针。
- 在输入错误时,使用递归调用自己的方式重新输入,避免了使用不必要的循环。
另外,对于无效选择的情况,也进行了相应的优化,给出了提示信息并重新输入身份选择。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)