⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 login.c.bak

📁 图书管理系统
💻 BAK
字号:
/* file_name:	login.c
 * author:	wangtiezhen miuliang @ Xidian University
 * description:	
 */
#include<string.h>
/* login */
struct user{
	int id;
	char name[20];
	enum {teacher, student} type;
}user;
static struct user* login_as_teacher(char*, char*);
static struct user* login_as_student(char*, char*);
extern struct user* login(void);
static void login_get_input_name(char*, char*);

void login_get_input_name(char c[],char d[]){
	scanf("%s%s", c, d);
	return;
}
struct user* login(void)
{
	char *input_name = (char*) malloc(sizeof(char) * 20);
	char *input_password = (char*) malloc(sizeof(char) * 20);
	login_get_input_name(input_name, input_password);
	struct user* result = NULL;
	
	result = login_as_teacher(input_name, input_password);
	if(result != NULL){
//		putchar('2');
		free(input_name);
		return result;
	}
	result = login_as_student(input_name, input_password);
	
	free(input_name);
	return result;
}
struct user* login_as_teacher(char *input_name, char *input_password){
	FILE *fp;
	if((fp = fopen("teacher", "r")) == NULL){
		printf("Unknown file.\n");
		return NULL;
	}
	char name[20], password[20];
	int id;
	enum {success, fail} flag = fail;
	while((fscanf(fp, "%d%s%s", &id, name, password)) == 3){
//		printf("%s\t%s\n",name ,input_name);
		if(!strcmp(name, input_name)){
			if(!strcmp(password, input_password)){
				flag = success;
				break;
			}else{
				fclose(fp);
				return NULL;
			}
		}
	}
	flose(fp);
	if(flag == success){
		user.id = id;
		strcpy(user.name, name);
		user.type = teacher;
		return &user;
	}else{
		return NULL;
	}
	
}
/* login by stu */
extern struct stu* find_stu_name(struct stu* , char* );
struct user* login_as_student(char *input_name, char *input_password)
{
//	putchar('w');
	struct stu* src = find_stu_name(stubt, input_name);
	if(src == NULL){
//		printf("this student name isn't found.\n");
		
		return NULL;
	}
	char c[20];
	itoa(src->password, c, 10);
//	printf("atoi: %s\n",c);
//	putchar('d');
	if(!strcmp(c, input_password)){
		user.id = src->num;
		strcpy(user.name, src->name);
		user.type = student;
		return &user;
	}else{
		return NULL;
	}
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -