新生登录审核、主页 /*struct xinxident { int id; } void xinxident(struct xinxident *xinxi, int sum) { int i, n = 0; char num[13], pass[10]; char num1[] = "2021110300236"; char pass1[] = "111111"; printf("请输入学号:"); scanf("%s", num); printf("请输入密码:"); scanf("%s", pass); if (strcmp(num, num1) != 0 || strcmp(pass, pass1) != 0) { printf("你输入错误,请重新输入!\n"); return; } struct xinxident *p = xinxi; for (i = 0; i < sum; i++) { if (p->id == i) { break; } p++; } while (n < 4)printf("请选择(0-4): "); scanf("%d", &n); switch (n) { case 1:Register(cxkk);break; case 2:xiugaixinxi(cxkk);break; case 3:DormitoryCnd(cxkk);break; case 4:system("cls");Print_Map();break; case 0:n = 5;break; default:printf("无效的输入,请重新选择!\n");break; } } }优化代码
时间: 2024-03-20 12:41:56 浏览: 77
c代码-2.给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 示例 1: 输入: 1->1->2 输出: 1->2 示例 2: 输入: 1->1->2->3->3 输出: 1->2->3 /** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode*
有几个可以优化的地方,具体如下:
1. 减少重复代码
在输入密码时,可以将正确的学号和密码提前设置好,避免每次都需要输入。同时,可以将输入菜单的代码封装成一个函数,避免重复输入。
2. 简化循环
在查找对应id的记录时,可以使用指针运算来代替循环。这样代码更简洁,也更高效。
3. 修改变量名
变量名应该具有描述性,便于理解和维护。可以将一些变量名修改为更加具有描述性的名称。
综上所述,优化后的代码如下:
```
/* 学生信息结构体 */
struct student_info {
int id;
};
/* 注册新学生 */
void register_student(struct student_info *info) {
// TODO: 实现注册逻辑
}
/* 修改学生信息 */
void modify_student_info(struct student_info *info) {
// TODO: 实现修改逻辑
}
/* 查看宿舍分配情况 */
void view_dormitory_allocation(struct student_info *info) {
// TODO: 实现查看宿舍逻辑
}
/* 打印菜单 */
void print_menu() {
printf("请选择:\n");
printf("1. 注册新学生\n");
printf("2. 修改学生信息\n");
printf("3. 查看宿舍分配情况\n");
printf("4. 返回主菜单\n");
printf("0. 退出系统\n");
}
/* 主函数 */
int main() {
int sum = 10; // 学生总数
struct student_info info[sum]; // 学生信息数组
int i, n = 0; // 循环变量和菜单选择变量
// 初始化学生信息
for (i = 0; i < sum; i++) {
info[i].id = i;
}
// 登录验证
char num[] = "2021110300236";
char pass[] = "111111";
char input_num[13], input_pass[10];
printf("请输入学号:");
scanf("%s", input_num);
printf("请输入密码:");
scanf("%s", input_pass);
if (strcmp(input_num, num) != 0 || strcmp(input_pass, pass) != 0) {
printf("你输入错误,请重新输入!\n");
return 0;
}
// 显示菜单并等待用户选择
while (n != 5) {
print_menu();
scanf("%d", &n);
switch (n) {
case 1:
register_student(info);
break;
case 2:
modify_student_info(info);
break;
case 3:
view_dormitory_allocation(info);
break;
case 4:
system("cls");
// TODO: 打印主页
break;
case 0:
n = 5;
break;
default:
printf("无效的输入,请重新选择!\n");
break;
}
}
return 0;
}
```
阅读全文