请详细说明void enter() {//登录界面 system("cls");//清屏 time_t t; struct tm* p; time(&t); p = gmtime(&t); printf("\t\t\t\t**********************************************\n"); printf("\t\t\t\t**--------------%d年%02d月%02d日--------------\n", 1900 + p->tm_year, 1 + p->tm_mon, p->tm_mday); printf("\t\t\t\t当前时间%02d时%02d分%\n", 8 + p->tm_hour, p->tm_min); printf("\t\t\t\t*********************************************\n"); printf("\t\t\t\t \n"); printf("\t\t\t\t 学生成绩管理系统 \n"); printf("\t\t\t\t \n"); printf("\t\t\t\t********************************************\n"); printf("\t\t\t\t** 感谢使用本系统,希望您使用愉快! \n"); printf("\t\t\t\t********************************************\n"); printf("\t\t\t\t** 制作者:干啥都对队 \n"); printf("\t\t\t\t 班级:计算机网络技术3班 \n"); printf("\t\t\t\t 学院:信息工程学院 \n"); printf("\t\t\t\t********************************************\n"); printf("请输入密码(初始密码123456)\n"); int sum2 = 0; while (1) { FILE* fpr = fopen("password.txt", "r"); char inital[20] = "123456"; if (fpr == NULL)save_password(inital); else { hide_password(key, 21); printf("\n"); fgets(password, 21, fpr); fclose(fpr); int n = strlen(key), m = strlen(password); if (n != m) { sum2++; if (sum2 >= 5) { printf("多次输入密码错误!系统关闭!\n"); sum2 = 0; exit(0); } printf("密码错误!请重新输入!你还有%d次机会!\n", 5 - sum2); } else { int sum1 = 0; for (int i = 0; i < n; i++) { if (key[i] != password[i]) { sum1++; } } if (sum1 == 0) { printf("登录成功!\n"); break; } else { sum2++; if (sum2 >= 5) { printf("多次输入密码错误!系统关闭!\n"); sum2 = 0; exit(0); } printf("密码错误!请重新输入!你还有%d次机会!\n", 5 - sum2); } } } } }
时间: 2023-07-23 18:45:38 浏览: 203
这段代码是一个简单的学生成绩管理系统的登录界面,主要功能是输入密码进行身份验证,验证成功后可以进入系统。具体实现过程如下:
1. 使用 system("cls") 函数清屏,并输出系统当前日期和时间,以及欢迎使用系统的提示信息。
2. 提示用户输入密码,并使用 while 循环进行多次密码输入机会。
3. 在循环中,首先从文件 password.txt 中读取密码,如果文件不存在,则将初始密码 "123456" 写入文件中。
4. 使用 hide_password 函数隐藏密码,避免密码泄漏。
5. 比较用户输入的密码和文件中保存的密码,如果不一致则提示密码错误,重新输入;如果一致则提示登录成功,并退出循环。
6. 如果用户多次输入密码错误,则提示多次输入密码错误并退出系统。
需要注意的是,这段代码中使用了文件读写操作和密码隐藏函数 hide_password,需要注意文件读写权限以及密码隐藏函数的实现。
阅读全文