精华内容
下载资源
问答
  • 2021-08-12 09:06:14
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<time.h>
    
    typedef struct sushe //宿舍 
    {
    	char name[100];  //姓名
    	char sushehao[100];  //宿舍号
    	char banji[100];  //班级 
    	char xueyuan[100];  //学院 
    	int cnt; //费用 
    	struct sushe* next;  //下一个宿舍 
    }Sushe;
    Sushe* sushe_head;  //宿舍头指针
    int sushe_amount;  //总人数 
    
    struct node //用户所住宿舍 
    {
    	int borrow_amount, max_amount; //所住人数量, 最多住人量 
    	double tax;  //超出时限收费比率
    	time_t come_time[10], go_time[10];  //住、毕业时间
    	Sushe borrow_sushe[6];  //每个宿舍最多住6位同学 
    };
    
    typedef struct student //同学 
    {
    	char student_name[30];  //用户名
    	char password[30];  //密码
    	char ID[30]; //证件号码
    	int admin;  //是否管理员
    	struct node student_sushe;  //学生宿舍信息 
    	struct student* next;  //下一位学生
    }Student;
    Student* student_head;  //学生头指针
    Student* admin;  //管理员账号
    int student_amount;  //学生总数量
    
    //程序功能区
    void main_menu();  //主菜单
    
    //主菜单功能区
    void student_register();  //学生注册
    void student_login();  //学生登录
    void admin_login();  //管理员登陆
    
    //核心功能区
    void creat_student_list(char*, char*, char*);  //创建学生链表
    void creat_sushe_list(char*, char*, char*, char*, int);  //创建宿舍链表
    void student_initi(Student*);  //学生宿舍管理初始化
    void load();  //从文件中加载数据
    void save();  //保存数据到文件
    
    //用户功能区
    void student_menu(Student*);  //学生菜单 
    void student_change(Student*);  //更改学生信息
    int delete_student(Student*);  //删除账号
    void borrow_sushe(Student*);  //入住管理 
    void return_sushe(Student*);  //离开管理
    void history(Student*);  //宿舍记录
    
    //管理员功能区
    void admin_initi();  //管理员账号初始化
    Student* serch_studentname(char*);  //查找用户名
    void admin_menu(Student*);  //管理员菜单
    void query_student();  //学生信息查询
    void admin_student();  //管理学生信息
    void all_history(); //查看学生宿舍情况 
    Student* serch_student();  //按序号搜索学生 
    void set_admin(Student*);  //设置管理员
    
    //宿舍管理功能区
    void add_sushe();  //增加宿舍信息
    void delete_sushe();  //删除宿舍信息
    void browse_sushe();  //宿舍信息浏览
    
    int main()
    {
    	main_menu();
    	printf("退出系统成功,谢谢使用!\n");
    	system("pause"); system("ziqing");
    	return 0;
    }
    
    
    void main_menu()  //主菜单
    {
    	load();
    	while (1)
    	{
    		printf("+*******************************+\n");
    		printf("   宿舍管理系统\n");
    		printf("请选择操作!\n");
    		printf("1、学生注册\n");
    		printf("2、学生登陆\n");
    		printf("3、管理员登陆\n");
    		printf("0、退出\n");
    		printf("+*******************************+\n");
    		int op; scanf("%d", &op); system("ziqing");
    		switch (op)
    		{
    		case 1: student_register(); break;
    		case 2: student_login();  break;
    		case 3: admin_login();  break;
    		case 0: return;
    		default: printf("输入错误,请重新输入!\n"); system("pause"); system("ziqing"); break;
    		}
    	}
    }
    
    
    /********主菜单功能区***********
    void student_register()  //学生注册
    {
    	char name[30];
    	printf("请输入要注册的学生姓名:\n");
    	scanf("%s", name);
    	Student* account;
    	if (account = serch_studentname(name), account != NULL)
    	{
    		printf("该学生已存在,请重新输入!\n");
    		system("pause"); system("ziqing"); return;
    	}
    	printf("请输入您的账号密码:\n");
    	char password[30];
    	scanf("%s", password);
    	printf("请输入您的证件号码(不超过30个数字):\n");
    	char ID[30];
    	scanf("%s", ID);
    	creat_student_list(name, password, ID);
    	printf("恭喜您注册成功!\n");
    	++student_amount;
    	system("pause"); system("ziqing");
    }
    
    void student_login()  //学生登录
    {
    	char name[30];
    	printf("请输入您的姓名:\n");
    	scanf("%s", name);
    	Student* account;
    	if (account = serch_studentname(name), account == NULL)
    	{
    		printf("该用户名不存在,请注册或重新登陆!\n");
    		system("pause"); system("ziqing"); return;
    	}
    	printf("请输入您的账号密码:\n");
    	scanf("%s", name);
    	if (strcmp(account->password, name))
    	{
    		printf("密码错误,请确认后重新登陆!\n");
    		system("pause"); system("ziqing"); return;
    	}
    	printf("恭喜您登录成功,即将跳转用户界面...\n");
    	system("pause"); system("ziqing");
    	student_menu(account);
    }
    
    void admin_login()  //管理员登陆
    {
    	char name[30];
    	printf("尊敬的管理员:\n");
    	printf("请输入您的管理账号:\n");
    	scanf("%s", name);
    	Student* account;
    	if (account = serch_studentname(name), account == NULL)
    	{
    		printf("该账号不存在,请重新输入!\n");
    		system("pause"); system("ziqing"); return;
    	}
    	if (!account->admin)
    	{
    		printf("该账号暂无管理权限,请联系相关管理人员!\n");
    		system("pause"); system("ziqing"); return;
    	}
    	printf("请输入该管理账号的密码:\n");
    	scanf("%s", name);
    	if (strcmp(account->password, name))
    	{
    		printf("密码错误,请确认后重新登陆!\n");
    		system("pause"); system("ziqing"); return;
    	}
    	printf("恭喜您登录成功,即将跳转管理界面...\n");
    	system("pause"); system("ziqing");
    	admin_menu(account);
    }
    
    /********核心功能区***********
    void creat_student_list(char* name, char* password, char* ID)  //创建学生链表
    {
    	Student* np = (Student*)malloc(sizeof(Student));
    	np = student_head;
    	while (np->next) np = np->next;
    	Student* tp = (Student*)malloc(sizeof(Student));
    	strcpy(tp->student_name, name);
    	strcpy(tp->password, password);
    	strcpy(tp->ID, ID);
    	tp->admin = 0;
    	tp->next = NULL;
    	student_initi(tp);
    	np->next = tp;
    	save();
    }
    
    void creat_sushe_list(char* name, char* sushehao, char* banji, char* xueyuan, int cnt)  //创建宿舍链表
    {
    	Sushe* np = (Sushe*)malloc(sizeof(Sushe));
    	np = sushe_head;
    	while (np->next) np = np->next;
    	Sushe* tb = (Sushe*)malloc(sizeof(Sushe));
    	strcpy(tb->name, name);
    	strcpy(tb->sushehao, sushehao);
    	strcpy(tb->banji, banji);
    	strcpy(tb->xueyuan,xueyuan);
    	tb->cnt = cnt;
    	tb->next = NULL;
    	np->next = tb;
    	save();
    }
    
    void student_initi(Student* account)  //学生宿舍管理初始化
    {
    	account->student_sushe.borrow_amount = 0;
    	account->student_sushe.max_amount = 10;
    	account->student_sushe.tax = 1.0;
    	memset(account->student_sushe.come_time, 0, sizeof(account->student_sushe.come_time));
    	memset(account->student_sushe.go_time, 0, sizeof(account->student_sushe.go_time));
    	memset(account->student_sushe.borrow_sushe, 0, sizeof(account->student_sushe.borrow_sushe));
    }
    
    void load()  //从文件中加载数据
    {
    	sushe_head = (Sushe*)malloc(sizeof(Sushe));
    	sushe_head->next = NULL;
    	sushe_amount = 0;
    
    	FILE* fp2;
    	fp2 = fopen("sushe.txt", "rt");
    	if (fp2 == NULL)
    	{
    		fp2 = fopen("sushe.txt", "wt");
    		if (fp2 == NULL)
    		{
    			printf("信息存储失败!\n"); exit(0);
    		}
    		fclose(fp2);
    	}
    	else
    	{
    		Sushe* bp = (Sushe*)malloc(sizeof(Sushe));
    		bp = sushe_head;
    		Sushe* tp = (Sushe*)malloc(sizeof(Sushe));
    		while (fread(tp, sizeof(Sushe), 1, fp2))
    		{
    			bp->next = tp;
    			++sushe_amount;
    			tp = tp->next;
    			tp = (Sushe*)malloc(sizeof(Sushe));
    			bp = bp->next;
    		}
    		fclose(fp2);
    	}
    
    	student_head = (Student*)malloc(sizeof(Student));
    	student_head->next = NULL;
    	student_amount = 0;
    
    	FILE* fp1;
    	fp1 = fopen("student.txt", "rt");
    	if (fp1 == NULL)
    	{
    		admin_initi(); return;
    	}
    	Student* np = (Student*)malloc(sizeof(Student));
    	np = student_head;
    	Student* temp = (Student*)malloc(sizeof(Student));
    	while (fread(temp, sizeof(Student), 1, fp1))
    	{
    		np->next = temp;
    		++student_amount;
    		temp = temp->next;
    		temp = (Student*)malloc(sizeof(Student));
    		np = np->next;
    	}
    	admin = student_head->next;
    	fclose(fp1);
    }
    
    void save()  //保存数据到文件
    {
    	FILE* fp = fopen("student.txt", "wt");
    	Student* temp = student_head->next;
    	while (temp)
    	{
    		fwrite(temp, sizeof(Student), 1, fp);
    		temp = temp->next;
    	}
    	fclose(fp);
    
    	fp = fopen("sushe.txt", "wt");
    	Sushe* tb = sushe_head->next;
    	while (tb)
    	{
    		fwrite(tb, sizeof(Sushe), 1, fp);
    		tb = tb->next;
    	}
    	fclose(fp);
    }
    
    
    /********学生功能区***********
    void student_menu(Student* account)  //学生菜单
    {
    	while (1)
    	{
    		printf("*************************************************\n");
    		printf("    欢迎您!\n");
    		printf("请输入选项前的数字以确认操作!\n");
    		printf("1、学生信息系统\n");
    		printf("2、宿舍记录\n");
    		printf("3、宿舍信息\n");
    		printf("4、修改账号信息\n");
    		printf("5、删除账号\n");
    		printf("0、退出登陆\n");
    		printf("*************************************************\n");
    		int op; scanf("%d", &op); system("ziqing");
    		switch (op)
    		{
    		case 1: borrow_sushe(account); break;
    		case 2: history(account); system("pause"); system("ziqing"); break;
    		case 3: browse_sushe(); system("pause"); system("ziqing"); break;
    		case 4: student_change(account);  break;
    		case 5: if (delete_student(account))
    		{
    			printf("该账号已被删除,请重新登陆!\n");
    			system("pause"); system("ziqing");
    			return;
    		}
    				else break;
    		case 0: printf("账号登出成功!\n"); system("pause"); system("ziqing"); return;
    		default: printf("错误指令,请重新输入!\n"); system("pause"); system("ziqing"); break;
    		}
    	}
    }
    
    void student_change(Student* account)  //更改学生信息
    {
    	printf("待修改用户:%s\t 您现在可以更改您的个人信息!\n", account->student_name);
    	printf("请重新输入您的密码:\n");
    	char password[30];
    	scanf("%s", password);
    	strcpy(account->password, password);
    	printf("用户%s\t账号密码已修改!\n", account->student_name);
    	printf("请重新输入您的证件号码:\n");
    	char ID[30];
    	scanf("%s", ID);
    	strcpy(account->ID, ID);
    	printf("用户%s\t证件号码已修改!\n", account->student_name);
    	save();
    	printf("用户%s\t个人信息修改成功,正在返回上一界面...\n", account->student_name);
    	system("pause"); system("ziqing");
    }
    
    int delete_student(Student* account)  //删除账号
    {
    	printf("********************************************\n");
    	if (!strcmp(account->student_name, admin->student_name))
    	{
    		printf("用户%s拥有最高权限,不可被删除!!!正在返回上一层...\n", admin->student_name);
    		system("pause"); system("ziqing"); return 0;
    	}
    	printf("是否需要删除账号%s?\n", account->student_name);
    	printf("请输入相应数字以继续操作!\n");
    	printf("1、是\t0、否\n");
    	int op;  scanf("%d", &op);
    	if (op == 1)
    	{
    		if (account->student_sushe.borrow_amount)
    		{
    			printf("删除失败!该宿舍有%d位同学还在居住!\n", account->student_sushe.borrow_amount);
    		}
    		else
    		{
    			Student* tp = (Student*)malloc(sizeof(Student));
    			tp = student_head;
    			Student* np = (Student*)malloc(sizeof(Student));
    			np = student_head->next;
    			while (np)
    			{
    				if (!strcmp(np->student_name, account->student_name))
    				{
    					tp->next = np->next;
    					free(np); --student_amount;
    					save();
    					printf("账号已删除成功!\n");
    					system("pause"); system("ziqing");
    					return 1;
    				}
    				tp = np;
    				np = np->next;
    			}
    		}
    	}
    	else if (!op) printf("已取消本次操作!\n");
    	else printf("输入选项错误,请重新输入!正在返回上一层...\n");
    	system("pause"); system("ziqing"); return 0;
    }
    
    void borrow_sushe(Student* account)  //宿舍管理
    {
    	printf("用户%s:请输入您的有效身份证件号码(不超过30位)以继续!\n", account->student_name);
    	char ID[30]; scanf("%s", ID); system("ziqing");
    	if (strcmp(account->ID, ID))
    	{
    		printf("身份证件号码与账号不匹配,请检查后重新输入!\n");
    		system("pause"); system("ziqing"); return;
    	}
    	while (1)
    	{
    		int ans = account->student_sushe.borrow_amount, Max = account->student_sushe.max_amount;
    		if (ans == Max)
    		{
    			printf("学生%s: 宿舍还剩余%d人 ,最多可住 %d人 !\n", account->student_name, ans, Max);
    			system("pause"); system("ziqing"); return;
    		}
    		browse_sushe();
    		printf("请输入您需要查询的宿舍序号(输入 -1 退出查询操作):\n");
    		int cnt; scanf("%d", &cnt);
    		if (cnt == -1)
    		{
    			printf("已成功退出学生信息系统!\n"); system("pause"); system("ziqing");
    			return;
    		}
    		else if (cnt > sushe_amount || cnt <= 0)
    		{
    			printf("请正确输入上表中已有的宿舍序号!\n");
    		}
    		else
    		{
    			printf("请设置您需要居住的时间(不超过4年):\n");
    			int year; scanf("%d", &year);
    			if (year > 4 || year<= 0)
    				printf("输入居住时间不被允许,请重新输入!\n");
    			else
    			{
    				Sushe* tb = (Sushe*)malloc(sizeof(Sushe));
    				tb = sushe_head->next;
    				for (int i = 1; i < cnt; ++i)
    					tb = tb->next;
    				account->student_sushe.borrow_sushe[ans] = *tb;
    				account->student_sushe.come_time[ans] = time(NULL);
    				account->student_sushe.go_time[ans] = time(NULL) + year*3600*24*365;
    				++account->student_sushe.borrow_amount;
    				--sushe_amount;
    				save();
    				printf("学生%s:居住%s成功!\n", account->student_name, tb->name);
    			}
    		}
    		system("pause"); system("ziqing");
    	}
    }
    
    void return_sushe(Student * account)  //还书管理
    {
    
    	while (1)
    	{
    		history(account);
    		if (!account->student_sushe.borrow_amount)
    		{
    			system("pause"); system("ziqing"); return;
    		}
    		printf("请输入您需要离开的宿舍人员(输入-1退出)!\n");
    		int cnt = 0; scanf("%d", &cnt); system("ziqing");
    		if (cnt == -1)
    		{
    			printf("正在退出宿舍系统,请稍后...\n");
    			system("pause"); system("ziqing"); return;
    		}
    		if (cnt > account->student_sushe.borrow_amount || cnt < 0)
    		{
    			printf("请正确输入上述宿舍号!\n");
    		}
    		else
    		{
    			int i = 0;
    			for (--cnt; i < cnt; ++i);
    
    			char name[100];
    			strcpy(name, account->student_sushe.borrow_sushe[i].name);
    			time_t t = time(NULL);
    			printf("*************************************************\n");
    			printf("规定离开时间:%s", ctime(&account->student_sushe.go_time[i]));
    			printf("当前时间:%s", ctime(&t));
    			if (t > account->student_sushe.go_time[i])
    			{
    				double cost = t / 360 / 24 * account->student_sushe.tax;
    				printf("由于您未在指定日期内离开%s,要支付违约金%.2lf元\n", name, cost);
    			}
    			else printf("宿舍%s人员离开未超出时间,无需支付违约金!\n", name);
    			for (; i < account->student_sushe.borrow_amount; ++i)
    			{
    				account->student_sushe.borrow_sushe[i] = account->student_sushe.borrow_sushe[i + 1];
    				account->student_sushe.come_time[i] = account->student_sushe.come_time[i + 1];
    				account->student_sushe.go_time[i] = account->student_sushe.go_time[i + 1];
    			}
    			--account->student_sushe.borrow_amount;
    			++sushe_amount;
    			save();
    			printf("宿舍%s人员离开成功!\n", name);
    		}
    		system("pause"); system("ziqing");
    	}
    }
    
    void history(Student * account)  //宿舍记录
    {
    	int n = account->student_sushe.borrow_amount;
    	printf("*************************************************************\n");
    	printf("用户%s:\n", account->student_name);
    	if (!n)
    	{
    		printf("暂无人员入住记录!\n"); return;
    	}
    	printf("入住人员宿舍号:\n");
    	for (int i = 0; i < n; ++i)
    	{
    		struct node t = account->student_sushe;
    		time_t nt = time(NULL)-t.go_time[i+1];
    		double cost = 0.0;
    		if (nt > 0) cost = t.tax * (nt / 360/ 24);
    		printf("%d:\n", i + 1);
    		printf("  宿舍号:%s\n", t.borrow_sushe[i].name);
    		printf("  入住时间:%s", ctime(&t.come_time[i]));
    		printf("  规定毕业时间:%s", ctime(&t.go_time[i]));
    		if (nt > 0) printf("  是否超时:否\n");
    		else printf("  是否超时:是\n");
    		printf("  违约费用:%.2lf\n", cost);
    	}
    }
    
    
    /********管理员功能区***********
    void admin_initi()  
    {
    	FILE* fp = fopen("student.txt", "wb");
    	if (fp == NULL)
    	{
    		printf("管理员初始化失败!\n"); exit(0);
    	}
    	admin = (Student*)malloc(sizeof(Student));
    	strcpy(admin->student_name, "admin");
    	strcpy(admin->password, "123456");
    	strcpy(admin->ID, "20200802050100");
    	admin->admin = 1;
    	admin->next = NULL;
    	student_initi(admin);
    	student_head->next = admin;
    	student_amount = 1;
    	save();
    	fclose(fp);
    }
    
    Student* serch_studentname(char* name)  //查找用户名
    {
    	Student* np = student_head->next;
    	while (np)
    	{
    		if (!strcmp(np->student_name, name)) return np;
    		np = np->next;
    	}
    	return NULL;
    }
    
    void admin_menu(Student * account)  //管理员菜单
    {
    	while (1)
    	{ 
    		printf("*************************************************\n");
    		printf("    欢迎您!\n");
    		printf("请输入选项前的数字以确认操作!\n");
    		printf("1、增加宿舍信息\n");
    		printf("2、删除宿舍信息\n");
    		printf("3、宿舍信息\n");
    		printf("4、管理用户信息\n");
    		printf("0、退出登陆\n");
    		printf("*************************************************\n");
    		int op; scanf("%d", &op); system("ziqing");
    		switch (op)
    		{
    		case 1: add_sushe(); break;
    		case 2: delete_sushe(); break;
    		case 3: browse_sushe(); system("pause"); system("ziqing"); break;
    		case 4: admin_student(); break;
    		case 0: printf("退出管理账号成功!\n"); system("pause"); system("ziqing"); return;
    		default: printf("错误的指令,请重新输入!\n"); system("pause"); system("ziqing"); break;
    		}
    	}
    }
    
    void query_student()  //用户信息查询
    {
    	int cnt = 1;
    	Student* np = (Student*)malloc(sizeof(Student));
    	np = student_head->next;
    	printf("序号\t用户名\t\t密码\t\t证件号码\t\t是否管理员\n");
    	while (np)
    	{
    		printf("%d\t%s\t\t%s\t\t%s\t\t", cnt, np->student_name, np->password, np->ID);
    		if (np->admin) printf(" 是\n");
    		else printf(" 否\n");
    		np = np->next;
    		++cnt;
    	}
    }
    
    void admin_student()  //管理用户信息
    {
    	while (1)
    	{
    		printf("*************************************************\n");
    		printf("    欢迎使用\n");
    		printf("请输入选项前的数字以确认操作!\n");
    		printf("1、查看用户信息\n");
    		printf("2、修改用户信息\n");
    		printf("3、查看用户宿舍情况\n");
    		printf("4、删除用户账号\n");
    		printf("0、返回总管理界面\n");
    		printf("*************************************************\n");
    		Student* np = (Student*)malloc(sizeof(Student));
    		int op; scanf("%d", &op); system("ziqing");
    		switch (op)
    		{
    		case 1: query_student(); system("pause"); system("ziqing"); break;
    		case 2: if (np = serch_student(), np != NULL) student_change(np);
    				else
    		{
    			system("pause"); system("ziqing");
    		}
    				break;
    		case 3: all_history(); break;
    		case 4:if (np = serch_student(), np != NULL)
    		{
    			int admin = np->admin;
    			if (delete_student(np) && admin)
    				printf("该账号已被删除,请重新登陆!\n");
    			system("pause"); system("ziqing");
    			return;
    		}
    			   else
    		{
    			system("pause"); system("ziqing");
    		}
    			   break;
    		case 0: printf("退出用户管理界面成功!\n"); system("pause"); system("ziqing"); return;
    		default: printf("错误的指令,请重新输入!\n"); system("pause"); system("ziqing"); break;
    		}
    	}
    }
    
    void all_history() //查看用户入住离校情况
    {
    	while (1)
    	{
    		printf("###########################################################\n");
    		printf("欢迎使用用户宿舍入住查询系统!\n");
    		Student* account = (Student*)malloc(sizeof(Student));
    		account = serch_student();
    		if (account)
    		{
    			history(account);
    			printf("查阅成功!\n");
    			printf("是否毕业,是请按1,不是请按0\n");
    			int op; scanf("%d", &op); system("ziqing");
    			switch(op)
    			{
    				case 1:
    					return_sushe(account);
    					break;
    				case 0: system("pause"); system("ziqing"); return;
    				default : printf("错误的指令,请重新输入!\n"); system("pause"); system("ziqing"); break;
    			}
    			system("pause"); system("ziqing"); return;
    		}
    		system("pause"); system("ziqing");
    	}
    }
    
    Student* serch_student()  //按序号搜索用户
    {
    	query_student();
    	printf("请输入待操作的用户序号:\n");
    	int cnt; scanf("%d", &cnt); system("ziqing");
    	if (cnt > student_amount || cnt <= 0)
    		printf("请正确输入上图中待操作的用户序号!\n");
    	else
    	{
    		Student* tb = (Student*)malloc(sizeof(Student));
    		tb = student_head->next;
    		for (int i = 1; i < cnt; ++i)
    			tb = tb->next;
    		return tb;
    	}
    	return NULL;
    }
    /********学生功能区***********
    void add_sushe()  //增加学生信息
    {
    	char name[100], sushehao[100], banji[100], xueyuan[100];
    	int cnt;
    	printf("请输入需要添加的学生名称:\n");
    	scanf("%s", name);
    	printf("请输入需要添加的学生宿舍号:\n");
    	scanf("%s", sushehao);
    	printf("请输入需要添加的学生班级:\n");
    	scanf("%s", banji);
    	printf("请输入需要添加的学生学院:\n");
    	scanf("%s", xueyuan);
    	printf("请输入需要添加的学生宿舍费用:\n");
    	scanf("%d", &cnt);
    	++sushe_amount;
    	creat_sushe_list(name, sushehao, banji, xueyuan, cnt);
    	printf("添加学生 %s 成功!\n", name);
    	system("pause"); system("ziqing");
    }
    
    void delete_sushe()  //删除宿舍信息
    {
    	while (1)
    	{
    		browse_sushe();
    		printf("请输入待删除的宿舍序号(输入 -1 退出):\n");
    		int cnt; scanf("%d", &cnt);
    		if (cnt == -1)
    		{
    			printf("已成功退出删除系功能!\n"); system("pause"); system("ziqing");
    			return;
    		}
    		else if (cnt > sushe_amount || cnt <= 0)
    		{
    			printf("请正确输入上图中待删除的学生序号!\n");
    		}
    		else
    		{
    			Sushe* tb = (Sushe*)malloc(sizeof(Sushe));
    			Sushe* np = (Sushe*)malloc(sizeof(Sushe));
    			np = sushe_head;
    			tb = sushe_head->next;
    			for (int i = 1; i < cnt; ++i)
    			{
    				np = tb;
    				tb = tb->next;
    			}
    			np->next = tb->next;
    			free(tb); --sushe_amount;
    			save();
    			printf("该学生已从系统内删除成功!\n");
    		}
    		system("pause"); system("ziqing");
    	}
    }
    
    void browse_sushe()  //学生信息浏览
    {
    	int cnt = 1;
    	if (!sushe_amount)
    	{
    		printf("系统内暂无该学生信息,请联系管理员添加学生信息!\n");
    		return;
    	}
    	Sushe* tb = (Sushe*)malloc(sizeof(Sushe));
    	tb = sushe_head->next;
    	printf("系统内学生信息如下:\n");
    	printf("%s%16s%16s%16s%16s%16s\n","序号","姓名","宿舍号","班级","学院","宿舍费用\n");
    	while (tb)
    	{
    		printf("%-16d%-16s%-16s%-16s%-16s%-8d\n", cnt, tb->name, tb->sushehao,
    			tb->banji, tb->xueyuan, tb->cnt);
    		tb = tb->next; ++cnt;
    	}
    }
    
    更多相关内容
  • BS模式-智能学生宿舍分配管理系统的设计与开发
  • 前端react 后端springboot 数据库mysql
  • 宿舍分配管理系统

    2012-07-02 17:14:07
    高校学生宿舍分配管理系统 在ASP.NET环境下由C#编写,数据库采用SQL 2000
  • asp.net 学生宿舍管理系统摘 要随着近几年来微机技术、网络技术及相应软件技术的迅猛发展,学校的管理工作、学生的校园生活,已越来越离不开计算机了.为了能更好的管理学生宿舍信息,极大地提高学生宿舍信息管理的效率,...

    asp.net 学生宿舍管理系统

    摘  要

    随着近几年来微机技术、网络技术及相应软件技术的迅猛发展,学校的管理工作、学生的校园生活,已越来越离不开计算机了.为了能更好的管理学生宿舍信息,极大地提高学生宿舍信息管理的效率,由此开发了本课题――宿舍信息管理系统.

    本系统通过系统管理员维护基础信息,维护使用系统角色;实现了宿舍管理员对房间信息、床位信息、床位分配、宿舍安全卫生评比、交住宿费和外来人员登记的管理;辅导员和教师查看信息;学生查看宿舍成绩和交费情况以及在线交流的功能.

    系统采用asp.net技术作为创建应用程序的方式,以c#作为编程语言,采用sql server数据库作为后台数据库.它是基于browser/server结构下形成的数据驱动的web应用程序.

    关键词: asp.net;c#.net;sql server;宿舍信息管理系统

    abstract

    along with in the last few years the microcomputer technology, the networking and the corresponding software technique"s rapid development, the school supervisory work, student"s campus life, could not leave the computer more and more. for can the better management student"s dormitory information, enhance the student"s dormitory information management enormously the efficiency, from this has developed this topic - - dormitory information management system.

    this system maintains the foundation information through the system manager, maintains the use system role; has realized the accommodation officer to the room information, the bed information, the bed assignment, the dormitory safety and health comparison, the junction hotel expense and the external personnel registration management; the instructor and the teacher examines the information; the student examines the dormitory result and the paying fee situation as well as the online exchange function.

    the system uses the asp.net technology to take the foundation application procedure the way, takes the programming language by c#, uses sql the server database to take the backstage database. it is the data driven web application procedure which forms based on the browser/server structure under.

    keywords:asp.net;c#.net;sql server; dormitory information management system

    目    录

    前  言 1

    第一章  绪论 2

    1.1 课题的背景 2

    1.2 目的和意义 2

    1.3管理信息系统的开发 2

    1.4课题的主要任务 3

    第二章  需求分析 4

    2.1可行性分析 4

    2.2开发平台和技术简介 4

    2.2.1iis简介 4

    2.2.2 asp.net简介 5

    2.2.3 c#简介 6

    2.3开发环境 7

    2.4 系统需要解决的主要问题 8

    第三章  系统分析 9

    3.1序列图、活动图、状态图 9

    3.1.1 序列图 9

    3.1.2 活动图 11

    3.2.3 状态图 12

    第四章  系统设计 14

    4.1体系结构 14

    4.2 数据库设计 14

    第五章  系统实现 16

    5.1 系统主界面 16

    5.2 超级管理员角色 16

    5.2.1 用户信息管理 16

    5.2.2 学院信息管理 17

    5.2.3 系别管理 17

    5.2.4 班级管理 17

    5.3 宿舍管理员角色 18

    5.3.1 学生信息管理 18

    5.3.2 床位信息管理 18

    5.3.3 入住退宿管理 19

    第六章  软件测试 19

    6.1 软件测试的意义 19

    6.2 软件测试的重要性 19

    6.3 软件测试的范围 20

    6.4 软件测试的方法 20

    6.5 软件测试的目的和原则 20

    第七章  总结 22

    参考文献 23

    系统预览图:

    1. 学生宿舍管理系统――登录

    1_201210152119261cI93.jpg

    2.学生宿舍管理系统――后台

    1_2012101521194714fu9.jpg

    展开全文
  • 随着科技的发展,智能化管理越来越重要。大学生在宿舍的时间超过了 1/3...学生宿舍管理系统能够合理安排新生分配宿舍,不浪费公共资源,减轻学校管理压力,同时减少宿舍内同学之间的矛盾,促使学生享受舒适的校园生活。
  • 宿舍管理系统寝室管理,分三个模块,学生模块,系统管理员,寝室管理员,可以登陆学生信息,寝室位置、缺勤等管理,界面简约。操作友好
  • 系统运用了MYSQL为后台数据库,以PHP为前端开发工具,系统实现了系统维护、宿舍管理、学生管理宿舍分配、信息查询等必需的功能,其操作简单,界面友好,运行比较稳定,适用于大学院校大学生宿舍管理
  • 【题目】学生宿舍管理系统 考查点:线性结构、文件操作 注意:必须使用文件存储数据,不得使用数据库管理系统。 任务:通过此系统可以实现如下功能: 录入: 可以录入宿舍情况,包括宿舍号、可容纳学生数、已容纳...
  • 学生住宿管理系统 要求 1完成学生的住宿管理包括入住换房退房新生入学毕业收费等 能 2入住先查询房源写申请交费入住 3换房先查询房源写申请退房交费入住 4新生交费自动分配房间入住 5退房申请交/退费退房 6毕业交/退...
  • SQLDemo:宿舍管理系统

    2021-05-17 02:47:55
    编程实现“宿舍管理系统”,主要包括用户登录模块(用户登录,用户信息的添加、删除、修改和密码管理),学生信息管理模块(更新和维护系统中的学生信息,包括对学生信息的查询、修改、插入和删除等的操作),宿舍...
  • 宿舍管理员功能模块实现了系统宿舍管理管理功能模块,包括查看学生信息,查看公告信息,卫生信息管理,违纪信息管理,水电费信息管理,住宿费信息管理,修改个人信息等功能。 后台管理员功能模块主

    目前好多学校还停留在宿舍管理人员手工记录数据的最初阶段,手工记录对于规模小的学校来说还勉强可以接受,但对于学生信息量比较庞大,需要记录存档的数据比较多的高校来说,人工记录是相当麻烦的。

    学生功能模块主要实现了修改自己的信息,修改登录密码,查看公告信息,查看自己的违纪信息,查看卫生信息,申请维修信息,意见和建议管理等功能。

    宿舍管理员功能模块实现了系统的宿舍管理员管理功能模块,包括查看学生信息,查看公告信息,卫生信息管理,违纪信息管理,水电费信息管理,住宿费信息管理,修改个人信息等功能。

    后台管理员功能模块主要负责系统的基本信息的管理,包括学生信息管理,宿管信息管理,宿舍楼信息管理,宿舍信息管理,公告信息管理,宿舍设备信息管理,账号信息管理等功能。

    本系统采用微软的集成开发环境VS2010进行开发,使用SQL2008数据库来存储数据,开发模式采用B/S架构。

    1.信息管理功能:普通级用户、宿舍管理员用户可以对个人信息进行查看,变更等操作;管理员用户可以对宿舍信息进行查看和维护;系统管理员可以对用户进行操作

    2.问题处理功能:普通用户发现问题后可以用此功能进行反馈,宿舍管理员用户可以进行查看并对问题做回复;

    3.故障处理功能:普通用户向宿舍管理员用户进行宿舍设备,或者系统的故障反馈,宿舍问题由宿舍管理员联系处理解决,系统问题由系统管理员解决

    4.信息发布功能:由宿舍管理员进行相关宿舍信息以及通知的发布等

    请添加图片描述
    请添加图片描述
    请添加图片描述
    目 录

    目 录2

    1 绪论4

    1.1 开发背景4

    1.2 开发意义4

    2 开发技术介绍4

    2.1 Sqlserver数据库服务器5

    2.2 ASP.net技术6

    3 系统分析6

    3.1 可行性分析6

    3.1.1 技术可行性6

    3.1.2 经济可行性7

    3.1.3 操作可行性7

    3.2 功能分析7

    3.2.1 管理员用列图7

    3.2.2 宿舍管理员用列图8

    3.2.3 学生模块用列图8

    3.3 性能需求9

    3.3.1 软件环境9

    3.3.2 硬件环境9

    4 总体设计9

    4.1 功能模块设计10

    4.2 数据库设计11

    4.2.1 概念设计11

    4.2.2 逻辑设计14

    5 系统测试18

    5.1 系统登录18

    5.2 管理员模块20

    5.2.1 宿舍楼信息20

    5.2.2 公告管理20

    5.2.3 用户管理22

    5.2.4 宿舍管理23

    5.3 宿舍管理员24

    5.3.1 学生信息24

    5.3.2 个人信息管理26

    5.3.3 卫生管理管理27

    5.3.4 违纪管理28

    5.3.5 水电费管理29

    5.3.6 住宿费管理31

    5.4 宿舍管理员31

    5.4.1 修改密码31

    5.4.2 个人信息修改33

    5.4.3 维修信息34

    5.4.4 在线留言36

    6 系统测试37

    6.1 测试的意义37

    6.2 测试用例38

    结束语38

    参考文献39

    致谢41

    展开全文
  • 毕业设计学生宿舍管理系统前端,采用前后端分离进行开发。主要功能包括宿舍管理,学生管理,设备保修,楼栋管理,分配宿舍,退寝管理等等。本系统一共有3个不同的账号角色,为管理员、学生、维修员,分别对应不同的...
  • 论文阐述了学生宿舍管理的设计与实现,并对该系统的需求分析及系统需要实现的设计方法作了介绍。该系统的基本功能包括本系统实现了学生管理,修改密码,签到信息管理,统计信息管理,宿管科简介,班级管理,楼栋信息...

    项目编号:asp.net834学生宿舍管理系统#毕业设计

    运行环境:VS+SQL

    开发工具:VS2010及以上版本

    数据库:SQL2008及以上版本

    使用技术:HTML+JS+HTML

    开发语言:C#,框架:asp.net

    论文阐述了学生宿舍管理的设计与实现,并对该系统的需求分析及系统需要实现的设计方法作了介绍。该系统的基本功能包括本系统实现了学生管理,修改密码,签到信息管理,统计信息管理,宿管科简介,班级管理,楼栋信息管理,公寓信息管理,留言管理,友情链接管理,系统帮助。在每一模块中,必须做到良好的输入/输出界面,并能做查询,删除及修改等功能。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 现如今各大高校逐年扩招,学生人数日益增多的情况下,由高校分配宿舍的模式已经不能满足高校和学生的需求,一个新型、智能、人性化的自选宿舍系统相应而生。根据大学生自选宿舍系统的流程以及功能需求,在 C# ...
  • 基于php+mysql的学生宿舍管理系统

    千次阅读 2021-06-14 13:34:57
    本课题要实现的是高校学生宿舍管理系统,在设计该系统时,应尽可能的贴近学生,便于用户操作。系统在实现上应该具有如下功能: (1)系统要求用户必须输入正确的用户名和密码才能进入系统。 (2)系统应该提供学生住宿...
  • 学生宿舍管理系统(前端部分)

    千次阅读 多人点赞 2021-05-13 13:07:48
    前几天的五一作业内容叫我们写一个学生宿舍管理系统。 可。。。就只有五天啊! 所以,经过重重考虑,得出两种解决方法: 1.从网上找源码,保证5天内完成,但交了作业却失去了意义。 2.自己写,先把最简单的前端部分...
  • asp.net高校学生宿舍管理系统VS开发sqlserver数据库web结构c#编程计算机网页源码项目-管理软件文档类资源-CSDN下载一、源码特点asp.net高校学生宿舍管理系统是一套完善的web设计管理系统更多下载资源、学习资料请...
  • 宿舍管理宿舍分配学生入住安排。 登记管理:宿舍违规管理、水电费管理、夜归统计、评分录入、来访登记。 公告栏管理:公告上传、在线编辑。 班级管理:学院管理、专业管理。 信息查询: 学生信息查询、辅导员...
  • JAVA学生宿舍管理系统

    万次阅读 多人点赞 2019-01-22 21:28:14
    system.java (系统管理界面) sql.java (数据库操作,包括连接、断开、增删改查等操作) 一、登陆界面及代码 主要代码: 登陆按钮事件 public void actionPerformed(ActionEvent e) { // TODO Auto-...
  • 基于Koa以及VueJS的宿舍管理系统。 1.需求分析 主要需求: 学生信息录入,修改,删除,查询 宿舍管理评分 学生早起率,懒床率 学生宿舍打扫频率 学生晚归情况 重点管理 考虑到实用性,该系统需要分解为两大部份,一...
  • 2 3.2常用的视角来描述一个系统: 2 4.UML建模 3 4.1整体宿舍管理系统用例的组织——用例包图 3 4.2子系统的用例图 3 4.3 系统类图 5 静态分析阶段——学生宿舍分配类图 6 4.4 为对象分配操作——通过协作图 6 4.5 ...
  • jsp校园宿舍管理系统源码,学生宿舍是同学最为熟悉的领域,假定学校有多栋宿舍楼,每栋楼有多层,每层有多个寝室,每个寝室可住多名学生,学生宿舍管理系统对学校的学生宿舍进行规范管理,其管理的对象如下: ...
  • 基于C#的学生宿舍管理系统,设计出一个方便进行宿舍管理的系统。假定学校有多栋宿舍楼,每栋楼有多层,每层有多个寝室,每个寝室可住多名学生,学生宿舍管理系统对学校的学生宿舍进行规范管理,其管理的对象如下: ...
  • 上次写了一个学生成功管理系统,有个老铁说不会运行,我答应给他写一个项目,并且附上运行的文档,于是这几天就利用摸鱼时间、晚上休息时间、中午午休时间写了这个宿舍管理系统,从表的设计和代码的编写都是自己弄的...
  • ASP.NET宿舍管理系统源码_学校班级网站源码
  • 学生宿舍管理系统源代码.doc

    千次阅读 2021-06-10 16:45:55
    数据结构 课程设计源代码设计题目: 学生宿舍管理系统院 系: 计算机学院班 级: 软件1501组 别: 六组 长: 周佳理组 员: 韩壮壮 陈义安起止日期: 2016年12月20日~2016年12月24日指导教师: 韩丽娜源代码:#d...
  • php高校学生宿舍管理系统

    千次阅读 2021-02-08 22:30:15
    系统的最终用户为宿舍管理员,本宿舍楼的学生。根据我们日常生活中的经验,结合对自己学校宿舍管理老师的咨询和对同宿舍楼同学的了解,得出用户的下列实际要求:应用技术:php +mysql数据库+apache、html+css...
  • 学生宿舍管理系统 C语言编程.doc

    千次阅读 2021-05-23 10:07:38
    学生宿舍管理系统”C语言课程设计报告程序功能简介我设计的是“学生宿舍管理系统”,主要是针对住宿学生个人信息的管理,适用对象主要是学校,以方便学校对住宿学生的管理。包括学生的姓名、学号、性别、专业、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,282
精华内容 912
关键字:

学生宿舍分配管理系统