C语言编程 新生宿舍分配信息管理系统

合集下载

宿舍管理系统c语言

宿舍管理系统c语言

#include"stdio.h"int main_menu_select() /*主菜单选择*/ {char s;printf("\n1 Administrator in charge of the students and books' information\n");printf("\n2 Administrator in charge of lend books\n");printf("\n3 Administrator in charge of receive books\n");printf("\n4 Student\n");printf("\n5 Guest\n");printf("\n6 exit\n\n");printf("\n input 1-6 to choice the function\n");do{s=getche();printf("\n");}while(s<49||s>54);return s;}int administrator_menu_select() /*管理员菜单选择*/ {int s;printf("input 1-6 to choice the function\n");printf("1 input the information of books\n");printf("2 recompose the information of the books\n");printf("3 cancel the information of books \n");printf("4 input the information of students\n");printf("5 recompose information of the students\n");printf("6 cancel the information of students\n");printf("7 return main menu\n");printf("8 exit\n\n" );do{s=getche();printf("\n");}while(s<49||s>56);return s;}hello_main() /*返回主菜单*/ {for(; ;){switch(main_menu_select()){case 49:adm_information();break;case 51:printf("hellooo");break;case 52:printf("helloooo");break;case 53:printf("hellooooo");break;case 54:printf("Goodbye!");exit(0);}}}hello_adm_menu() /*返回管理员功能选择菜单*/ {for(; ;){switch(administrator_menu_select()){case 49:books_information_input();break;case 50:printf("Student\n");break;case 51:printf("Guest\n");break;case 52:students_information_input();break;case 53:printf("Guest of gentleman\n");break;case 54:printf("hahha");break;case 55:hello_main();break;case 56:printf("Goodbye!");exit(0);}}}struct /*图书结构体*/ {int number;char name[20];char press[20];char writer[20];int price;}books[200];struct /*学生结构体*/ {int number;char name[20];char sex[6];int grade;}students[200];adm_information() /*管理员菜单*/ {for(; ;){switch(administrator_menu_select()){case 49:books_information_input();break;case 51:printf("Guest\n");break;case 52:students_information_input();break;case 53:printf("Guest of gentleman\n");break;case 54:printf("hahha");break;case 55:hello_main();break;case 56:printf("Goodbye!");exit(0);}}}int books_information_input() /*图书信息输入函数*/ {int m,i,s;char h;printf("input the number of the books you want to operate:");scanf("%d",&m);for(i=1;i<m+1;i++){printf("please input the %dth book's number:",i);scanf("%d",&books[i].number);printf("\n please input the %dth book's name:",i);scanf("%s",books[i].name);printf("\n please input the %dth book's press:",i);scanf("%s",books[i].press);printf("\n please input the %dth book's writer:",i);scanf("%s",books[i].writer);printf("\n please input the %dth book's price:",i);scanf("%d",&books[i].price);printf("\n\n");}printf("\ninformation of the students has been inputed\n");printf("1 to return higher menu\n"); /*返回上一级菜单,即管理员选择功能菜单*/h=getche();if(h==1)hello_adm_menu();}students_information_input() /*学生信息输入函数*/ {int m,i,s;printf("input the number of the students you want to operate:");scanf("%d",&m);for(i=1;i<m+1;i++){printf("\nplease input the %dth student's number:",i);scanf("%d",&students[i].number);printf("\n please input the %dth student's name:",i);scanf("%s",students[i].name);printf("\n please input the %dth student's sex:",i);scanf("%s",students[i].sex);printf("\n please input the %dth student's grade:",i);scanf("%d",&students[i].grade);}printf("\ninformation of the books has been inputed\n\n"); }main(){for(; ;){switch(main_menu_select()){case 49:adm_information();break;case 50:printf("helloo");break;case 51:printf("hellooo");break;case 52:printf("helloooo");break;case 53:printf("hellooooo");break;case 54:printf("Goodbye!");exit(0);}}}。

c语言-学生宿舍管理系统(难度系数:3级)

c语言-学生宿舍管理系统(难度系数:3级)

C语言:学生宿舍管理系统(难度系数:3级)(附加清屏操作)设计一个学生宿舍管理程序。

该程序应该具有以下功能:(1)录入学生宿舍信息;(2)修改、删除学生宿舍信息;(3)统计当前未住学生宿舍的个数并显示宿舍编号;(4)统计当前空闲的男生、女生床位数;(5)按宿舍编号由小到大显示已住学生的宿舍信息;(6)分别显示男生、女生有空床位的宿舍信息;(7)按宿舍编号、可住人数、空床数、宿舍性质(男生还是女生)等信息进行查询,若查询信息不存在,输出没找到的信息。

题目要求:(1)按照分析、设计、编码、调试和测试的软件开发过程完成这个应用程序,即在程序中加入异常处理,检查用户输入数据的有效性,以保证程序的健壮性;(2)宿舍信息应该包括宿舍编号、可住人数、空床数、宿舍性质等;(3)为各项操作功能设计一个菜单,应用程序运行后,先显示这个菜单,然后用户通过菜单选项选则所需进行的操作项目,菜单要界面友好、清晰;(4)将所有宿舍信息存储在一个文件中,并实现文件的读写操作,即将输入的数据以文件的形式存盘,将原来已经存盘的文件读入内存,进行管理;(5)应保证测试用例测试程序的各种边缘情况。

输入要求:应用程序运行后,在屏幕上显示一个菜单。

用户可以根据需要,选定相应的操作项目。

进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。

输出要求:(1)应用程序运行后,在屏幕上显示一个菜单。

(2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。

代码:#include"stdio.h"#include"stdlib.h"#include"conio.h"#include"process.h"#define max 2 //最大容量//#define k 6 //每个宿舍最多可住人数typedef struct node{int num;int ke;int empty;int yi;int sex; //1-女0-男//struct node *next;}doc; //宿舍信息应该包括宿舍编号、可住人数、空床数、宿舍性质等;//int q=0; //已入住的房间数-1doc dcm[max];void a() //1.录入学生宿舍信息{int q;printf("\n\n\t现在执行录入学生宿舍信息\n");for(q=0;q<max;q++)// printf("请输入要录入的宿舍个数:\n");// scanf("%d",&j);// while(j<=0)// {// printf("输入错误!请重新输入:");// scanf("%d",&j);// }// else// while(j>0){printf("请输入该宿舍的宿舍号:\n");scanf("%d",&dcm[q].num);printf("请输入该宿舍的最大住人数:\n");scanf("%d",&dcm[q].ke);printf("请输入该宿舍的已住人数:\n");scanf("%d",&dcm[q].yi);while(dcm[q].yi>dcm[q].ke){printf("输入错误!已住人数大于最大入住人数!\n请重新输入:");scanf("%d",&dcm[q].yi);}dcm[q].empty=dcm[q].ke-dcm[q].yi;printf("请输入宿舍性质(0代表男宿舍,1代表女宿舍):\n");scanf("%d",&dcm[q].sex);while(dcm[q].sex!=1&&dcm[q].sex!=0){printf("非法输入宿舍性质!请重新输入!\n");scanf("%d",&dcm[q].sex);}// q++;// j--;}}void xianshi()//显示所有宿舍信息{for(int j=0;j<max;j++){printf("宿舍号为:%d 可住人数为:%d 空床数为%d ",dcm[j].num,dcm[j].ke,dcm[j].empty);if(dcm[j].sex==0)printf("宿舍性质:男宿舍\n");elseprintf("宿舍性质:女宿舍\n");}}void xs(int j){printf("宿舍号为:%d 可住人数:%d 空床数%d\n",dcm[j].num,dcm[j].ke,dcm[j].empty);if(dcm[j].sex==0)printf("宿舍性质:男宿舍\n");elseprintf("宿舍性质:女宿舍\n");}void b() //2.修改、删除学生宿舍信息{int j,m,h;doc k;while(1){printf("****************************************\n");printf("*************1、修改宿舍信息************\n");printf("*************2、删除宿舍信息************\n");printf("*************3、退出返回顶层菜单********\n");printf("****************************************\n");printf("请输入对应命令:");scanf("%d",&j);printf("****************************************\n");printf("以下为目前的宿舍信息:\n");xianshi();if(j==1){// case 1:printf("请输入要修改的宿舍的宿舍号:");scanf("%d",&m);for(int i=0,k=0;i<max;i++){if(m==dcm[i].num)k=i+1;}if(k==0){printf("在记录中没有找到这个宿舍!\n");continue;}printf("请输入该宿舍的最大住人数:\n");scanf("%d",&dcm[k-1].ke);printf("请输入该宿舍的已住人数:\n");scanf("%d",&dcm[k-1].yi);dcm[m].empty=dcm[k-1].ke-dcm[k-1].yi;printf("请输入宿舍性质(0代表男宿舍,1代表女宿舍):\n");scanf("%d",&dcm[k-1].sex);while(dcm[k-1].sex!=1&&dcm[k-1].sex!=0){printf("非法输入宿舍性质!请重新输入!\n");scanf("%d",&dcm[k-1].sex);}printf("\t操作成功!已经修改完毕\n");break;}// break;// case 2:else if(j==2){printf("请输入要删除的宿舍号:");scanf("%d",&h);for(int i=0,k=0;i<max;i++){if(h==dcm[i].num)k=i+1;}if(k==0){printf("在记录中没有找到这个宿舍!\n");continue;}for(i=k-1;i<max-1;i++){dcm[i]=dcm[i+1];}dcm[max-1].empty=NULL;dcm[max-1].ke=NULL;dcm[max-1].num=NULL;dcm[max-1].sex=NULL;dcm[max-1].yi=NULL;printf("\t操作成功!已经删除完毕\n");}// break;// default:else if(j==3)break;else{printf("输入错误!请重新输入。

C语言实现学生宿舍信息管理系统

C语言实现学生宿舍信息管理系统

C语⾔实现学⽣宿舍信息管理系统本⽂实例为⼤家分享了C语⾔实现学⽣宿舍信息管理系统的具体代码,供⼤家参考,具体内容如下功能描述该学⽣宿舍信息管理系统主要实现的功能有:创建学⽣宿舍信息,显⽰学⽣宿舍信息,查询学⽣宿舍信息,修改学⽣宿舍信息,删除学⽣宿舍信息,保存学⽣宿舍信息,读取学⽣宿舍信息。

其系统功能模块图如下:完整代码如下:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>#include<windows.h>#define MAX 1000int k=0;//结构体类型typedef struct{char name[20]; //姓名char sex[5]; //性别char classs[20]; //班级int number; //学号int age; //年龄int dorm; //宿舍号int year; //年份int month; //⽉份}students;//创建学⽣宿舍信息int establish(students stu[]){ int i,x;for(i=0;i<1000;i++){system("cls");printf("\n\n 录⼊学⽣信息 (最多%d个)\n",MAX);printf(" ----------------------------\n");printf("\n 第%d个学⽣",k+1);printf("\n 请输⼊学⽣的学号:");scanf("%d",&stu[k].number);printf("\n 请输⼊学⽣的姓名:");scanf("%s",stu[k].name);printf("\n 请输⼊学⽣的性别:");scanf("%s",stu[k].sex);printf("\n 请输⼊学⽣的年龄:");scanf("%d",&stu[k].age);printf("\n 请输⼊学⽣的班级:");scanf("%s",stu[k].classs);printf("\n 请输⼊学⽣⼊住时间(如:2017 9):");while((scanf("%d %d",&stu[k].year,&stu[k].month))!=EOF){if(stu[k].year<1000||stu[k].year>9999||stu[k].month>12||stu[k].month<1)//限定输⼊范围{printf("对不起,输⼊错误,请重新输⼊:");}elsebreak;}printf("\n 请输⼊学⽣的宿舍号:");scanf("%d",&stu[k++].dorm);printf("\n 请按 1 键返回主菜单或按 0 键继续创建:");scanf("%d",&x);if(x!=0) break;}return k;}//显⽰学⽣宿舍信息void display(students stu[]){int i;for(i=0;i<k;i++){printf("学号:%d 姓名:%s 性别:%s 年龄:%d 班级:%s 宿舍号: %d ⼊住时间:%d/%d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].classs,stu[i].dorm,stu[i].year,stu[i].month);}printf("按任意键返回主菜单!");getch();system("cls");return ;}//查询学⽣宿舍信息void query(students stu[]){int i,m=0;Sleep(1000);for(i=0;i<k;i++){if(number==stu[i].number){printf("\n\n学号:%d 姓名:%s 性别:%s 年龄:%d 班级:%s 宿舍号: %d ⼊住时间:%d/%d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].classs,stu[i].dorm,stu[i].year,stu[i].month);m=1;}}if(m==0){printf("对不起,此学⽣信息不存在!\n");}printf("按任意键返回主菜单!");getch();system("cls");return ;}//修改学⽣信息void modify(students stu[]){int number,i,choose,m=0;system("cls");printf("\n\n\n 请输⼊您要修改的学⽣的学号:");scanf("%d",&number);printf(" 正在查询,请稍后.....\n");Sleep(1000);for(i=0;i<k;i++){if(number==stu[i].number){printf("\n\n学号:%d 姓名:%s 性别:%s 年龄:%d 班级:%s 宿舍号: %d ⼊住时间:%d/%d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].classs,stu[i].dorm,stu[i].year,stu[i].month);printf("\n\n ********请输⼊您想要修改的数据********\n\n");printf(" 1. 学号\n");printf(" 2. 姓名\n");printf(" 3. 性别\n");printf(" 4. 年龄\n");printf(" 5. 班级\n");printf(" 6. 宿舍号\n");printf(" 7. ⼊住时间\n\n");printf(" 请选择(1-7):");while((scanf("%d",&choose))!=EOF){if(choose<1||choose>7){printf("对不起,输⼊错误,请重新输⼊:");}else{switch(choose){case 1:{printf("\n 请输⼊你改的新学号:");scanf("%d",&stu[i].number);break;}case 2:{printf("\n 请输⼊你改的新姓名:");scanf("%s",stu[i].name);break;}case 3:{printf("\n 请输⼊你改的新性别:");scanf("%s",stu[i].sex);break;}case 4:{printf("\n 请输⼊你改的新年龄:");scanf("%d",&stu[i].age);break;}case 5:{printf("\n 请输⼊你改的新班级:");scanf("%s",stu[i].classs);break;}case 6:{printf("\n 请输⼊你改的新宿舍:");scanf("%d",&stu[i].dorm);break;}case 7:{printf("\n 请输⼊你改的新⼊住时间:");scanf("%d %d",&stu[i].year,&stu[i].month);break;}}printf("修改成功!");Sleep(500);printf("\n\n学号:%d 姓名:%s 性别:%s 年龄:%d 班级:%s 宿舍号: %d ⼊住时间:%d/%d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].classs,stu[i].dorm,stu[i].year,stu[i].month);}}if(m==0){printf("对不起,此学⽣信息不存在!\n");}printf("按任意键返回主菜单!");getch();return ;}//删除学⽣信息void deletee(students stu[]){char name1[20];int i,j,m=0;printf("请输⼊学⽣姓名:");scanf("%s",name1);printf("\n");printf("正在查找是否存在此学⽣信息.....\n");Sleep(1000);for(i=0;i<k;i++){if(strcmp(stu[i].name,name1)==0){m=1;printf("已找到此学⽣信息!\n删除中....\n");Sleep(2000);for(j=i;j<k;j++){strcpy(stu[j].name,stu[j+1].name);strcpy(stu[j].sex,stu[j+1].sex);strcpy(stu[j].classs,stu[j+1].classs);stu[j].age=stu[j+1].age;stu[j].dorm=stu[j+1].dorm;stu[j].number=stu[j+1].number;stu[j].year=stu[j+1].year;stu[j].month=stu[j+1].month;}k--;printf("删除成功!\n");}}if(m==0){printf("此学⽣信息不存在!\n");}printf("按任意键返回主菜单!");getch();system("cls");return ;}//保存学⽣住宿信息void preservation(students stu[]){int i;FILE *fp;if((fp=fopen("学⽣宿舍信息.txt","w"))==NULL){printf("未发现学⽣宿舍信息!\n");printf("按任意键返回...\n");getch();system("cls");return ;}else{for(i=0;i<k;i++){fprintf(fp,"\n\n学号:%d 姓名:%s 性别:%s 年龄:%d 班级:%s 宿舍号: %d ⼊住时间:%d/%d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].classs,stu[i].dorm,stu[i].year,stu[i].month); }fclose(fp);printf("正在保存⽂件....\n");Sleep(1000);printf("⽂件保存成功!\n");printf("按任意键返回...\n");getch();system("cls");return ;}}//读取学⽣住宿信息void read(students stu[]){FILE *fp;char ch;if((fp=fopen("学⽣宿舍信息.txt","r"))==NULL){printf("⽂件⽆法打开!\n");exit(0);}printf("正在读⼊⽂件...\n");putchar(ch);ch=fgetc(fp);}printf("\n");fclose(fp);printf("按任意键返回...\n");getch();system("cls");return ;}void title(){printf(" \n\n\n **********************************\n");printf(" * *\n");printf(" * *\n");printf(" * *\n");printf(" * 欢迎进⼊学⽣宿舍信息管理系统 *\n");printf(" * *\n");printf(" * *\n");printf(" * *\n");printf(" **********************************\n");printf("\n 按任意键进⼊系统!\n");getch();}void start(){students stu[20];int choose,k;while(choose!=0){system("cls");printf("\n\n\n ********学⽣宿舍信息管理系统********\n\n");printf(" 1. 创建学⽣宿舍信息\n\n");printf(" 2. 显⽰学⽣宿舍信息\n\n");printf(" 3. 查询学⽣宿舍信息\n\n");printf(" 4. 修改学⽣宿舍信息\n\n");printf(" 5. 删除学⽣宿舍信息\n\n");printf(" 6. 保存学⽣宿舍信息\n\n");printf(" 7. 读取学⽣宿舍信息\n\n");printf(" 0. 退出系统\n\n");printf(" 请选择(0-7):");while((scanf("%d",&choose))!=EOF){if(choose<0||choose>7){printf("对不起,输⼊错误,请重新输⼊:");}else{switch(choose){case 1: k=establish(stu); break;//创建学⽣宿舍信息case 2: display( stu) ; break;//显⽰学⽣宿舍信息case 3: query(stu); break;//查询学⽣宿舍信息case 4: modify(stu); break;//修改学⽣宿舍信息case 5: deletee(stu); break;//删除学⽣宿舍信息case 6: preservation(stu); break;//保存学⽣宿舍信息case 7: read(stu);break;//读取学⽣宿舍信息case 0: break;}break;}}}}int main(){title();start();return 0;}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

宿舍管理系统_C语言源代码

宿舍管理系统_C语言源代码

#include<stdio.h>struct dorm{int num;int members_num;int Health_score;char member1[10];char member2[10];char member3[10];char member4[10];};struct student{int num;char name[10];int dorm_num;char gender[10];char major[10];char class_name[10];char instructor[10];};static struct dorm dm[100];static struct student st[400];static int d_i=2;static int s_i=2;void pri_dorm(struct dorm d){printf("\n宿舍号:%d\n",d.num);printf("现住人数:%d\n",d.members_num);printf("卫生分数:%d\n",d.Health_score);printf("宿舍成员:\n");if(d.member1[0]!=NULL) printf("%s\n",d.member1);if(d.member2[0]!=NULL) printf("%s\n",d.member2);if(d.member3[0]!=NULL) printf("%s\n",d.member3);if(d.member4[0]!=NULL) printf("%s\n",d.member4);printf("\n");}void pri_student(struct student s){printf("\n学号:%d\n",s.num);printf("姓名:%s\n",);printf("宿舍号:%d\n",s.dorm_num);printf("性别:%s\n",s.gender);printf("班级:%s\n",s.class_name);printf("专业:%s\n",s.major);printf("辅导员:%s\n",s.instructor);printf("\n");}int panduansusherenshu(struct dorm d)//通过此函数,判断宿舍共多少人(宿舍人数最多住四个人){int i=0;if(d.member1[0]!=NULL){i++;}if(d.member2[0]!=NULL){i++;}if(d.member3[0]!=NULL){i++;}if(d.member4[0]!=NULL){i++;}return i;}int panduanxueshengxinxi(struct student s)//判断学生信息是否合法{int i=1;int j=0;int k=0;if(((s.num/100000000)>0)){if(!strcmp(s.gender,"男")||!strcmp(s.gender,"女")){if((s.dorm_num/100)>0){i=0;}}}for(j=0;j<sizeof(dm)/52;j++){if(dm[j].num==s.dorm_num){k=1;break;}}if(k==0) {i=1;}for(j=0;j<sizeof(st)/60;j++){if(st[j].num==s.num) i=1;}for(j=0;j<sizeof(dm)/52;j++){if(dm[j].members_num==4) {i=1;printf("\n宿舍人数已满!\n");}}return i;}void main_interface()//主界面{int i=0;void interface1();void interface2();void interface3();void interface4();void interface5();void interface6();printf("********************************\n");printf("****** 宿舍管理系统******\n");printf("*** 1.查询宿舍信息***\n");printf("*** 2.查询学生信息***\n");printf("*** 3.添加入住学生***\n");printf("*** 4.删减入住学生***\n");printf("*** 5.更改宿舍信息***\n");printf("*** 6.更改学生信息***\n");printf("*** 7.退出系统***\n");printf("********************************\n");printf("请输入操作项:");scanf("%d",&i);switch(i){case 1:system("cls");interface1();break;case 2:system("cls");interface2();break;case 3:system("cls");interface3();break;case 4:system("cls");interface4();break;case 5:system("cls");interface5();break;case 6:system("cls");interface6();break;case 7:system("cls");exit(0);default:system("cls");printf("操作项命令错误,请重新输入!");main_interface();break;}}void interface1()//查找宿舍信息{int i=0;//选项选择int j=0;//记录需要查询的学生学号int k=0;int q=0;printf("\n");printf("进入宿舍信息查询界面:\n");printf("********************************\n");printf("****** 宿舍信息查询******\n");printf("*** 1.进入宿舍查询***\n");printf("*** 2.返回主界面***\n");printf("********************************\n");printf("请输入操作项:");scanf("%d",&i);switch(i){case 1:printf("请输入需要查询宿舍的宿舍号:");scanf("%d",&j);for(k=0;k<sizeof(dm)/52;k++){if(dm[k].num==j){q=1; break;}}if(q==1){system("cls");pri_dorm(dm[k]);printf("\n返回上一界面\n");interface1();}else{system("cls");printf("\n不存在您所查询的宿舍号!");printf("\n返回上一界面\n");interface1();}break;case 2:system("cls");printf("\n");printf("进入主界面:\n");main_interface();break;default :system("cls");printf("\n选项输入错误!\n");printf("\n返回上一界面\n");interface1();break;}}void interface2()//查找学生信息{int i=0;//选项选择int j=0;//记录学生学号int q=0;int k=0;printf("\n");printf("进入学生信息查询界面:\n");printf("********************************\n");printf("****** 学生信息查询******\n");printf("*** 1.进入学生查询***\n");printf("*** 2.返回主界面***\n");printf("********************************\n");printf("请输入操作项:");scanf("%d",&i);switch(i){case 1:printf("请输入需要查询学生的学号:");scanf("%d",&j);for(k=0;k<sizeof(dm)/52;k++){if(st[k].num==j){q=1; break;}}if(q==1){system("cls");pri_student(st[k]);printf("\n返回上一界面\n");interface2();}else{system("cls");printf("\n你查找的学生不存在!");printf("\n返回上一界面\n");interface2();}break;case 2:system("cls");printf("\n");printf("进入主界面:\n");main_interface();break;default:system("cls");printf("\n选项输入错误!\n");printf("\n返回上一界面\n");interface2();break;}}void interface3()//添加入住学生{struct student ss;int j=0;printf("请输入学生的信息:\n");printf("学号:");scanf("%d",&ss.num);printf("姓名:");scanf("%s",&);printf("宿舍号:");scanf("%d",&ss.dorm_num);printf("性别:");scanf("%s",&ss.gender);printf("班级:");scanf("%s",&ss.class_name);printf("专业:");scanf("%s",&ss.major);printf("辅导员:");scanf("%s",&ss.instructor);if(panduanxueshengxinxi(ss)==0){s_i++;st[s_i].num=ss.num;st[s_i].dorm_num=ss.dorm_num;strcat(st[s_i].name,);strcat(st[s_i].gender,ss.gender);strcat(st[s_i].class_name,ss.class_name);strcat(st[s_i].instructor,ss.instructor);strcat(st[s_i].major,ss.major);pri_student(st[s_i]);}else{system("cls");printf("\n\n输入的学生信息有错误,请重新输入!\n\n");interface3();}for(j=0;j<=sizeof(dm)/52;j++){if(dm[j].num==ss.dorm_num) break;}if(dm[j].member1[0]==NULL) strcat(dm[j].member1,);else if(dm[j].member2[0]==NULL) strcat(dm[j].member2,);else if(dm[j].member3[0]==NULL) strcat(dm[j].member3,);else strcat(dm[j].member4,);dm[j].members_num++;system("cls");printf("添加学生成功!\n");printf("\n返回主界面!\n");main_interface();}void interface4()//删除入住学生{int i=0;//存储需要删除学生的学号int j=0;int k=0;int q=0;printf("请输入需要删除的学生学号:\n");scanf("%d",&i);for(j=0;j<sizeof(st)/60;j++){if(st[j].num==i){k=1;break;}}if(k==0){system("cls");printf("不存在需要删除学生!\n");printf("返回上一界面,请重新输入!\n");interface4();}if(k==1){for(q=0;q<sizeof(dm)/52;q++){if(dm[q].num=st[j].dorm_num){dm[q].members_num--;if(!strcmp(dm[q].member1,st[j].name)){dm[q].member1[0]=NULL;strcmp(dm[q].member1," ");}if(!strcmp(dm[q].member2,st[j].name)){dm[q].member2[0]=NULL;strcmp(dm[q].member2," ");}if(!strcmp(dm[q].member3,st[j].name)){dm[q].member3[0]=NULL;strcmp(dm[q].member3," ");}if(!strcmp(dm[q].member4,st[j].name)){dm[q].member4[0]=NULL;strcmp(dm[q].member4," ");}}}st[j].num=0;st[j].name[0]=NULL;strcmp(st[j].name," ");st[j].class_name[0]=NULL;strcmp(st[j].class_name," ");st[j].dorm_num=0;st[j].gender[0]=NULL;strcmp(st[j].gender," ");st[j].instructor[0]=NULL;strcmp(st[j].instructor," ");st[j].major[0]=NULL;strcmp(st[j].major," ");}system("cls");printf("删除学生成功,返回主界面!\n");main_interface();}void interface5()//更改宿舍信息{int i=0;//存储宿舍号int j=0;//储存更改后的分数int k=0;int q=0;printf("请输入需要更改信息的宿舍号:\n");scanf("%d",&i);for(k=0;k<sizeof(dm)/52;k++){if(dm[k].num==i){q=1;break;}}if(q==1){printf("********************************\n");printf("****** 宿舍信息更改******\n");printf("*** 更改卫生分数***\n");printf("********************************\n");while(1){printf("\n%d宿舍卫生分数更改为:\n",i);scanf("%d",&j);if(j>=0&&j<=10) break;else {printf("输入的分数有错误,请重新输入!\n");}}dm[k].Health_score=j;system("cls");printf("更改宿舍信息成功!\n");printf("\n返回主界面:\n");main_interface();}if(q==0){system("cls");printf("输入的宿舍号不存在,请确认后重新输入!\n\n");interface5();}}void interface6()//更改学生信息{int i=0;//存储学生学号int k=0;//判断该学号是否存在int j=0;int q=0;//存储选项struct student ss;printf("请输入需要被更改的学生的学号:\n");scanf("%d",&i);for(j=0;j<sizeof(st)/60;j++){if(st[j].num==i){k=1;break;}}if(k==0){printf("该学号不存在,请确认后重新输入!\n");interface6();} if(k==1){printf("********************************\n");printf("****** 学生信息更改******\n");printf("*** 1.更改姓名***\n");printf("*** 2.更改班级***\n");printf("*** 3.更改专业***\n");printf("*** 4.更改辅导员***\n");printf("********************************\n");printf("\n请输入选项:\n");scanf("%d",&q);switch(q){case 1:printf("请输入改变后的姓名:\n");scanf("%s",);strcpy(st[j].name,);system("cls");printf("\n更改信息成功,返回主界面!\n");main_interface();break;case 2:printf("请输入改变后的班级:\n");scanf("%s",ss.class_name);strcpy(st[j].class_name,ss.class_name);system("cls");printf("\n更改信息成功,返回主界面!\n");main_interface();break;case 3:printf("请输入改变后的专业:\n");scanf("%s",ss.major);strcpy(st[j].major,ss.major);system("cls");printf("\n更改信息成功,返回主界面!\n");main_interface();break;case 4:printf("请输入改变后的辅导员:\n");scanf("%s",ss.instructor);strcpy(st[j].instructor,ss.instructor);system("cls");printf("\n更改信息成功,返回主界面!\n");main_interface();break;default :system("cls");printf("选项输入错误! 返回上一界面!\n");interface6();break;}}}void start(){int j=103;int i=0;dm[0].num=101;dm[0].Health_score=10;dm[0].member1[0]=NULL;strcat(dm[0].member1,"赵钱");dm[0].member2[0]=NULL;dm[0].member3[0]=NULL;dm[0].member4[0]=NULL;dm[0].members_num=panduansusherenshu(dm[0]);dm[1].num=102;dm[1].Health_score=9;dm[1].member1[0]=NULL;strcat(dm[1].member1,"周吴");dm[1].member2[0]=NULL;dm[1].member3[0]=NULL;dm[1].member4[0]=NULL;dm[1].members_num=panduansusherenshu(dm[1]);for(i=2;i<100;i++){dm[i].num=j++;dm[i].members_num=0;dm[i].Health_score=0;dm[i].member1[0]=NULL;dm[i].member2[0]=NULL;dm[i].member3[0]=NULL;dm[i].member4[0]=NULL;}st[0].num=201011011;st[0].name[0]=NULL;strcat(st[0].name,"赵钱");st[0].dorm_num=101;st[0].class_name[0]=NULL;strcat(st[0].class_name,"工商1001");st[0].gender[0]=NULL;strcat(st[0].gender,"女");st[0].major[0]=NULL;strcat(st[0].major,"工商管理");st[0].instructor[0]=NULL;strcat(st[0].instructor,"巴菲特");st[1].num=201011012;st[1].name[0]=NULL;strcat(st[1].name,"周吴");st[1].dorm_num=102;st[1].class_name[0]=NULL;strcat(st[1].class_name,"软件1001");st[1].gender[0]=NULL;strcat(st[1].gender,"女");st[1].major[0]=NULL;strcat(st[1].major,"软件工程");st[1].instructor[0]=NULL;strcat(st[1].instructor,"李开复");for(i=2;i<400;i++){st[i].num=0;st[i].name[0]=NULL;st[i].class_name[0]=NULL;st[i].dorm_num=0;st[i].gender[0]=NULL;st[i].instructor[0]=NULL;st[i].major[0]=NULL;}}int main(){start();printf("************************************************************************\ n");printf(" 宿舍管理系统说明: \n\n");printf(" 该程序现有两人(201011011赵钱、201011012周吴)分别入住在寝室101、102\n\n");printf(" 宿舍号必须为三位数字,如101;学生学号必须为9位数字,如201093046;\n\n");printf(" 添加入住学生时,学生性别只能输入'男'或'女',其他输入视为无效输入!\n\n");printf(" 寝室最多入住人数为4人,添加学生到一宿舍时,该宿舍人数为4人,则提醒错误!\n\n");printf("********************************************************************* ***\n\n");main_interface();return 0;}。

宿舍管理系统 c语言程序设计

宿舍管理系统 c语言程序设计

宿舍管理系统c语言程序设计#include stdio.h//*库函数#include stdlib.h#include string.h#include conio.h int m;//*控制登陆界面菜单显示项目的全局变量int num;//控制学号的全局变量int orn;//控制日志顺序号的全局变量int printnote(void);//日志菜单打印函数函数声明struct note*creatnote(void);//创建日志函数void savenote(struct note*head1);//保存日志函数struct note*readnote(void);//从磁盘中读取日志函数void readoutnote(void);//读取日志并显示在屏幕上的函数void show1(void);int searchnote(struct note*head1);//查找日志函数int addnote(void);//添加日志函数int deleteinfonote(void);//删除日志函数struct node*read1(void);void readout(void);//*链表从文件中读取并显示在屏幕上函数struct node*creat(void);//*链表的创建函数int print1(void);int print2(void);//*登陆菜单的打印函数int login(void);//*登陆程序函数void show(void);//*信息管理菜单的显示函数void save(struct node*);//*在磁盘中保存文件的函数void choose(int);//*信息管理菜单的选择函数int search(struct node*);//*信息查询函数int deleteinfo(void);//*信息删除函数int add(void);//*信息添加函数int modify();//*信息修改函数void total(struct node*);//*信息统计函数struct node//*学生宿舍信息的结构体创建{char name[30];//*数据域char Class[30];char sex;int age;long int stunum;int dornum;int roomnum;struct node*next;//*指针域};struct user//*登陆信息结构体创建{char username[15],password[15];}user,t;struct note//日志结构体{int ordernum;char notes[80];int year;int month;int day;struct note*next;};int printnote(void)//日志菜单打印函数{int a;printf("*\n");printf("\n");printf("--欢迎查看管理员日志--\n");printf("\n");printf("▲1.创建日志!");printf("▲2.查看日志!");printf("▲3.写日志!");printf("▲4.删除日志\n");printf("\n");printf("*\n");printf("★请输入你的选择!\n");scanf("%d",&a);return(a);}struct note*creatnote(void)//*创建日志链表函数{struct note*head1,*p1,*p2;int i;char c='y';head1=(struct note*)malloc(sizeof(struct note));//*创建头结点head1-next=NULL;p1=head1;show1();for(i=0;c=='y';)//*输入信息{system("cls");p2=(struct note*)malloc(sizeof(struct note));printf("◆输入第%d条信息:\n",++i);scanf("%d",&p2-ordernum);fflush(stdin);gets(p2-notes);fflush(stdin);scanf("%d",&p2-year);scanf("%d",&p2-month);scanf("%d",&p2-day);p1-next=p2;p1=p2;printf("★还要输入信息吗,输入(y or n?)\n");c=getch();fflush(stdin);system("cls");}p1-next=NULL;return(head1);}void savenote(struct note*head1)//*保存日志文件{struct note*p2;FILE*fp;if((fp=fopen("f:/2.txt","wt"))==NULL){printf("写文件出错,按任意键退出!");getch();exit(1);}for(p2=head1-next;p2!=NULL;p2=p2-next)fprintf(fp,"%d\t%s\t\t\t%d%d%d\n",p2-ordernum,p2-notes,p2-year,p2-month,p2-day);getch();fclose(fp);}struct note*readnote(void)//从日志中文件读取出来{struct note*head1,*p1,*p2;FILE*fp;if((fp=fopen("f:/2.txt","rt"))==NULL){printf("读取信息错误!,按任意键退出!");getch();exit(1);}head1=(struct note*)malloc(sizeof(struct note));head1-next=NULL;p1=head1;while(!feof(fp)){p2=(struct note*)malloc(sizeof(struct note));fscanf(fp,"%d\t%s\t\t\t%d%d%d\n",&p2-ordernum,p2-notes,&p2-year,&p2-month,&p2-day);p1-next=p2;p1=p2;}p1-next=NULL;fclose(fp);return(head1);}void readoutnote(void)//*从磁盘中读取信息显示在屏幕上{struct note*head1,*p1,*p2;FILE*fp;if((fp=fopen("f:/2.txt","rt"))==NULL){printf("读取信息错误!,按任意键退出!");getch();exit(1);}head1=(struct note*)malloc(sizeof(struct note));head1-next=NULL;p1=head1;printf("序列号\t事件\t\t\t\t\t日期\n");while(!feof(fp)){p2=(struct note*)malloc(sizeof(struct note));fscanf(fp,"%d\t%s\t\t\t\t\t%d%d%d\n",&p2-ordernum,p2-notes,&p2-year,&p2-month,&p2-day);printf("\n");printf("%d\t%s\t\t%d%d%d\n",p2-ordernum,p2-notes,p2-year,p2-month,p2-day);printf("\n");p1-next=p2;p1=p2;}p1-next=NULL;fclose(fp);}int searchnote(struct note*head1)//*日志信息查询{int a=0;struct note*p1,*p2;p1=head1;printf("★请你输入你想要查询的事件号!\n");fflush(stdin);scanf("%d",&orn);fflush(stdin);while(p1!=NULL){if(p1-ordernum==orn){printf("★查询成功!找到该信息:\n");printf("序列号\t实际事件\t\t\t日期\n");printf("%d\t%s\t\t\t%d%d%d\n",p1-ordernum,p1-notes,p1-year,p1-month,p1-day);a=1;return a;}p2=p1;head1=p1-next;p1=head1;}if(p2-ordernum!=orn){printf("★对不起!序列号错误!找不到该信息!\n");return a;return a;}int addnote(void)//*日志信息添加{struct note*p,*p1,*head1;head1=readnote();p=(struct note*)malloc(sizeof(struct note));printf("★输入信息:\n");printf("序列号\t实际事件\t日期\n");scanf("%d",&p-ordernum);fflush(stdin);gets(p-notes);fflush(stdin);scanf("%d",&p-year);scanf("%d",&p-month);scanf("%d",&p-day);p1=head1;while(p1-next!=NULL){p1=p1-next;p1-next=p;p-next=NULL;p1=p;savenote(head1);readoutnote();return(1);}int deleteinfonote(void)//*日志信息删除{char c;int a;struct note*head1,*p1,*p2;head1=readnote();a=searchnote(head1);p1=head1-next;p2=head1;if(p1==NULL)return 0;if(a)printf("★您要删除此条信息吗?\n");printf("★确定请按y键,取消请按n键!(y or n?)\n");scanf("%c",&c);if(c=='y')//*删除结点{while(p1!=NULL){if(p1-ordernum==orn){p2-next=p1-next;free(p1);savenote(head1);readoutnote();return 1;}p2=p1;p1=p1-next;}}return 0;}int print1(void)//*登陆菜单打印{printf("\n");printf("\n");printf("\n");printf("\t*欢迎登陆西邮学生宿舍信息管理系统!*\n");printf("\t*班级:计科0803!*\n");printf("\t*作者:高朋辉!*\n");printf("\n");printf("\n");printf("\n");printf("|*|\n");printf("\t\t|◆1注册:\n");printf("\t\t|◆2登陆:\n");printf("\t\t|◆3退出:\n");printf("|*|\n");printf("请按序号输入你的选择:\n");scanf("%d",&m);return(m);}int login(void)//*登陆程序{int flag=1,str1,str2,time=0;int i,n=0;char ch=0;FILE*fp;while(flag){switch(m){case 1:printf("\n");printf("*");printf("\n");printf("★!注册小提示:用户名和密码不得超过15个字符!\n");printf("\n");fp=fopen("f:/password.txt","wt");if(fp==NULL){printf("★对不起,此文件打不开:\n");getch();exit(1);}printf("★请输入你的用户名:\n");fflush(stdin);gets(ername);fflush(stdin);printf("★请你输入密码:\n");ch=getch();i=0;while(ch!='\r'){user.password[i]=ch;printf("*");if(ch==8){printf("\b\b\b\b");i--;}else i++;ch=getch();fflush(stdin);}user.password[i]='[message]';fprintf(fp,"%s\n%s\n",ername,user.password);fclose(fp);flag=0,n=1;printf("\n");printf("★注册成功!\n");system("cls");break;case 2:fp=fopen("f:/password.txt","rt");if(fp==NULL){printf("对不起,此文件打不开:\n");getch();exit(1);}fscanf(fp,"%s\n%s\n",ername,user.password);fclose(fp);printf("★请输入你的用户名:\n");fflush(stdin);gets(ername);fflush(stdin);printf("★请你输入密码:\n");ch=getch();i=0;while(ch!='\r'){t.password[i]=ch;printf("*");if(ch==8){printf("\b\b\b\b");i--;}else i++;ch=getch();fflush(stdin);}t.password[i]=0;str1=strcmp(ername,ername);str2=strcmp(t.password,user.password);if(str1==0&&str2==0){system("cls");printf("★成功登录!\n");return(1);}else{printf("\n★登录失败,请重新登录!\n");time++;if(time==3)//登陆次数超过三次自动退出{printf("★你超过登陆次数,对不起!");exit(1);}}break;case 3:exit(1);break;}}print1();flag=1;if(n){switch(m){case 1:printf("你已经注册,请你登陆!\n");break;case 2:while(flag){fp=fopen("f:/password.txt","rt");if(fp==NULL){printf("对不起,此文件打不开:\n");getch();exit(1);}fscanf(fp,"%s\n%s\n",ername,user.password);fclose(fp);printf("★请输入你的用户名:\n");fflush(stdin);gets(ername);fflush(stdin);printf("★请你输入密码:\n");ch=getch();for(i=0;ch!='\r';i++){t.password[i]=ch;printf("*");if(ch==8)printf("\b\b\b\b");ch=getch();fflush(stdin);}t.password[i]=0;str1=strcmp(ername,ername);str2=strcmp(t.password,user.password);if(str1==0&&str2==0)return(1);else printf("登录失败!\n");flag=0;}break;case 3:exit(1);}}return(0);}struct node*creat()//*创建链表{struct node*head,*p1,*p2;int i;char c='y';head=(struct node*)malloc(sizeof(struct node));//*创建头结点head-next=NULL;p1=head;for(i=0;c=='y';)//*创建信息小提示{system("cls");p2=(struct node*)malloc(sizeof(struct node));printf("★输入第%d个人的信息:\n",++i);//输入学生信息printf("姓名\t班级\t\t性别\t年龄\t学号\t楼栋号\t宿舍号\n");fflush(stdin);gets(p2-name);fflush(stdin);gets(p2-Class);fflush(stdin);scanf("%c",&p2-sex);for(;p2-sex!='f'&&p2-sex!='m';){printf("★性别输入有误,你必须正确输入'f'或者'm'!\n");fflush(stdin);scanf("%c",&p2-sex);}fflush(stdin);scanf("%d",&p2-age);while(p2-age 16||p2-age 30){printf("★你输入的年龄段不在16-30之间,请重新输入!\n");scanf("%d",&p2-age);}scanf("%ld",&p2-stunum);while(p2-stunum 100000||p2-stunum=1000000){printf("★你输入的学号不是六位数,请重新输入!\n");scanf("%ld",&p2-stunum);}scanf("%d",&p2-dornum);while(p2-dornum 16||p2-dornum 1){printf("★你输入的公寓号不在1-16之间,请重新输入!\n");scanf("%d",&p2-dornum);}scanf("%d",&p2-roomnum);p1-next=p2;p1=p2;printf("★还要输入学生信息吗,输入(y or n?)\n");c=getch();fflush(stdin);system("cls");}p1-next=NULL;return(head);}void save(struct node*head)//*保存文件{struct node*p2;FILE*fp;if((fp=fopen("f:/1.txt","wt"))==NULL){printf("写文件出错,按任意键退出!");getch();exit(1);}for(p2=head-next;p2!=NULL;p2=p2-next)fprintf(fp,"%s\t%s\t%c\t%d\t%d\t%d\t%d\n",p2-name,p2-Class,p2-sex,p2-age,p2-stunum,p2-dornum,p2-roomnum);getch();fclose(fp);}void show(void)//*菜单显示{printf("\n");printf("$$$$$$$$$$欢迎进入学生宿舍信息管理系统!$$$$$$$$$$\n");printf("\n");printf("##########宿舍是我家,爱护靠大家##########\n");printf("\n");printf("|*|\n");printf("||\n");printf("|▲1.信息显示");printf("\t▲2.信息查询");printf("\t▲3.信息删除|\n");printf("||\n");printf("|▲4.信息创建");printf("\t▲5.信息修改");printf("\t▲6.信息统计|\n");printf("||\n");printf("|▲7.信息添加");printf("\t▲8.管理员日志");printf("▲9.退出系统|\n");printf("||\n");printf("|*|\n");printf("请输入你的选择的信息处理方式的序号!\n");}void show1(void){printf("*\n");printf("!创建信息小提示:\n");printf("\n");printf("\n");printf("◆1.输入时性别为'f'或者'm'!其他均认为是错误操作!\n");printf("\n");printf("◆2.输入年龄时注意年龄在16-30之间,其他均认为是错误操作!\n");printf("\n");printf("◆3.学生学号均为六位数字,如果学号少于或大于六位数字,系统认为此操作为非法操作!\n");printf("\n");printf("◆4.公寓号须在1-16之间,其他数字均认为是错误操作!\n");printf("\n");printf("◆5.因我校公寓楼为五层式建筑结构,故宿舍号在下列范围内,其他区间均认为是非法操作:\n");printf("\n");printf("▲一楼101-150\t二楼201-250\t三楼301-350\n");printf("\n");printf("▲四楼401-450\t五楼501-550\n");printf("\n");printf("\n");printf("*\n");}struct node*read1(void){struct node*head,*p1,*p2;FILE*fp;if((fp=fopen("f:/1.txt","rt"))==NULL){printf("★读取信息错误!,按任意键退出!");getch();exit(1);}head=(struct node*)malloc(sizeof(struct node));head-next=NULL;p1=head;while(!feof(fp)){p2=(struct node*)malloc(sizeof(struct node));fscanf(fp,"%s\t%s\t%c\t%d\t%d\t%d\t%d\n",p2-name,p2-Class,&p2-sex,&p2-age,&p2-stunum,&p2-dornum,&p2-roomnum);p1-next=p2;p1=p2;}p1-next=NULL;fclose(fp);return(head);}void readout(void)//*从磁盘中读取信息显示在屏幕上{struct node*head,*p1,*p2;FILE*fp;if((fp=fopen("f:/1.txt","rt"))==NULL){printf("★读取信息错误!,按任意键退出!");getch();exit(1);}head=(struct node*)malloc(sizeof(struct node));head-next=NULL;p1=head;printf("\n");printf("*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*\ n");printf("\n");printf("姓名\t班级\t\t性别\t年龄\t学号\t楼栋号\t宿舍号\n");printf("\n");while(!feof(fp)){p2=(struct node*)malloc(sizeof(struct node));fscanf(fp,"%s\t%s\t%c\t%d\t%d\t%d\t%d\n",p2-name,p2-Class,&p2-sex,&p2-age,&p2-stunum,&p2-dornum,&p2-roomnum);printf("%s\t%s\t%c\t%d\t%d\t%d\t%d\n",p2-name,p2-Class,p2-sex,p2-age,p2-stunum,p2-dornum,p2-roomnum);printf("\n");p1-next=p2;p1=p2;}p1-next=NULL;printf("\n");printf("*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*\ n");printf("\n");fclose(fp);}void choose(int decision)//管理菜单选择{struct node*head;struct note*head1;int a=0;int choice;char c1;char ch;char c2='y';head=NULL;switch(decision){case 1:system("cls");printf("★你选择了显示功能!*\n");printf("\n");readout();break;case 2:system("cls");head=read1();printf("★你选择了查询功能!*\n");printf("\n");a=search(head);break;case 3:system("cls");printf("★你选择了删除功能!*\n");printf("\n");a=deleteinfo();if(a)printf("★删除成功!");break;case 4:system("cls");printf("★你选择了创建功能!*\n");printf("\n");printf("★该功能慎用!若确定使用该功能,所有信息清零!*\n");printf("\n");printf("★确定y取消n?\n");fflush(stdin);scanf("%c",&ch);system("cls");printf("\n");if(ch=='y'){show1();getch();head=creat();save(head);}break;case 5:system("cls");printf("★你选择了修改功能!*\n");printf("\n");a=modify();if(a)printf("修改成功!");break;case 6:system("cls");printf("★你选择了统计功能!*\n");printf("\n");head=read1();total(head);break;case 7:system("cls");printf("★你选择了添加功能!*\n");printf("\n");a=add();if(a)printf("★添加成功!");break;case 8:system("cls");while(c2=='y'){choice=printnote();switch(choice){case 1:system("cls");printf("★该功能慎用!若确定使用该功能,所有日志清零!*\n");printf("\n");printf("★确定y取消n?\n");fflush(stdin);scanf("%c",&c1);if(c1=='y'){printf("★你选择了创建日志功能!*\n");printf("\n");head1=creatnote();savenote(head1);}case 2:system("cls");printf("★你选择了查看日志功能!*\n");readoutnote();break;case 3:system("cls");printf("★你选择了写日志功能!*\n");printf("\n");a=addnote();if(a)printf("★写日志成功!");break;case 4:system("cls");printf("★你选择了删除日志功能!*\n");printf("\n");a=deleteinfonote();if(a)printf("★删除成功!");break;}printf("\n");printf("!还需要其它操作吗?(y or n)\n");fflush(stdin);scanf("%c",&c2);system("cls");}break;case 9:exit(1);default:system("cls");printf("!输入错误选择!\n");system("cls");}}int search(struct node*head)//*信息查询{int a=0;struct node*p1,*p2;p1=head;printf("★请你输入你想要查询的学生学号!\n");fflush(stdin);scanf("%d",&num);fflush(stdin);while(p1!=NULL){if(p1-stunum==num){printf("★查询成功!找到该学生!信息如下:\n");printf("姓名\t班级\t\t性别\t年龄\t学号\t楼栋号\t宿舍号\n");printf("%s\t%s\t%c\t%d\t%d\t%d\t%d\n",p1-name,p1-Class,p1-sex,p1-age,p1-stunum,p1-dornum,p1-roomnum);a=1;return a;}p2=p1;head=p1-next;p1=head;}if(p2-stunum!=num){printf("★对不起!查询失败!找不到该学生的信息!\n");printf("\n");return a;}return a;}int deleteinfo(void)//*信息删除{char c;int a;struct node*head,*p1,*p2;head=read1();a=search(head);p1=head-next;p2=head;if(p1==NULL)return 0;if(a){printf("★您要删除此学生的所有信息吗?\n");printf("★确定请按y键,取消请按n键!(y or n?)\n");scanf("%c",&c);if(c=='y')//*删除结点while(p1!=NULL){if(p1-stunum==num){p2-next=p1-next;free(p1);save(head);readout();return 1;}p2=p1;p1=p1-next;}}}return 0;}int add(void)//*信息添加struct node*p,*p1,*head;head=read1();p=(struct node*)malloc(sizeof(struct node));fflush(stdin);gets(p-name);fflush(stdin);gets(p-Class);fflush(stdin);scanf("%c",&p-sex);for(;p-sex!='f'&&p-sex!='m';){printf("★性别输入有误,你必须正确输入'f'或者'm'!\n");fflush(stdin);scanf("%c",&p-sex);}fflush(stdin);scanf("%d",&p-age);while(p-age 16||p-age 30)printf("★你输入的年龄段不在16-30之间,请重新输入!\n");scanf("%d",&p-age);}scanf("%ld",&p-stunum);while(p-stunum 100000||p-stunum=1000000){printf("★你输入的学号不是六位数,请重新输入!\n");scanf("%ld",&p-stunum);}scanf("%d",&p-dornum);while(p-dornum 16||p-dornum 1){printf("★你输入的公寓号不在1-16之间,请重新输入!\n");scanf("%d",&p-dornum);}scanf("%d",&p-roomnum);p1=head;while(p1-next!=NULL)p1=p1-next;}p1-next=p;p-next=NULL;p1=p;save(head);readout();return(1);}int modify()//*信息修改{int a;char x;char str[30];char Class1[30];struct node*p1,*head,*p2;head=read1();a=search(head);p1=head;p2=p1;if(a){while(p1!=NULL){if(p1-stunum==num){printf("★修改姓名?(y or n)?\n");fflush(stdin);scanf("%c",&x);{if(x=='y'){printf("★输入新的姓名!\n");fflush(stdin);gets(str);strcpy(p1-name,str);fflush(stdin);}}x=0;printf("★修改班级?(y or n)?\n");fflush(stdin);scanf("%c",&x);if(x=='y'){printf("★输入新的班级!\n");fflush(stdin);gets(Class1);strcpy(p1-Class,Class1);}x=0;printf("★修改性别?(y or n)?\n");fflush(stdin);scanf("%c",&x);if(x=='y'){printf("★输入你修改后的性别!\n");fflush(stdin);scanf("%c",&p1-sex);}x=0;printf("★修改年龄?(y or n)?\n");fflush(stdin);scanf("%c",&x);if(x=='y'){printf("★输入新的年龄!\n");fflush(stdin);scanf("%d",&p1-age);}x=0;printf("★修改学号?(y or n)?\n");fflush(stdin);scanf("%c",&x);if(x=='y'){printf("★输入新的学号!\n");fflush(stdin);scanf("%d",&p1-stunum);}x=0;printf("★修改楼栋号?(y or n)?\n");fflush(stdin);scanf("%c",&x);if(x=='y'){printf("★输入新的楼栋号!\n");fflush(stdin);scanf("%d",&p1-dornum);}x=0;fflush(stdin);printf("★修改宿舍号?(y or n)?\n");fflush(stdin);scanf("%c",&x);if(x=='y'){printf("★输入新的宿舍号!\n");fflush(stdin);scanf("%d",&p1-roomnum);}}p2=p1-next;p1=p2;}system("cls");save(head);readout();return(1);}return(0);}void total(struct node*head)//*信息统计{int i=0;int boyp=0;int girlp=0;int over20=0;int blow20=0;struct node*p1;printf("---统计信息如下---!\n");for(p1=head-next;p1!=NULL;p1=p1-next) i++;printf("◆共有学生%d个人!\n",i);for(p1=head-next;p1!=NULL;p1=p1-next) {if(p1-sex=='f')girlp++;if(p1-sex=='m')boyp++;if(p1-age=20)blow20++;if(p1-age 20)over20++;}。

c语言宿舍管理

c语言宿舍管理

c语言宿舍管理以下是一个简单的 C 语言宿舍管理程序示例,用于管理宿舍的入住和退房记录:```c#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX_HOSTS 100// 宿舍结构体struct Dorm {char name[50];int capacity;int occupied;int* roomNumbers;};// 初始化宿舍结构体void initDorm(struct Dorm* dorm) {strcpy(dorm->name, "");dorm->capacity = 0;dorm->occupied = 0;dorm->roomNumbers = NULL;}// 释放宿舍内存void freeDorm(struct Dorm* dorm) {if (dorm->roomNumbers != NULL) {free(dorm->roomNumbers);}}// 添加宿舍void addDorm(struct Dorm** head, struct Dorm* dorm) {if (*head == NULL) {*head = dorm;} else {struct Dorm* current = *head;while (current->next != NULL) {current = current->next;}current->next = dorm;}}// 打印宿舍信息void printDormInfo(struct Dorm* dorm) {printf("宿舍名称: %s\n", dorm->name);printf("容量: %d\n", dorm->capacity);printf("已入住: %d\n", dorm->occupied);}// 分配宿舍房间号void assignRoomNumbers(struct Dorm* dorm) {if (dorm->roomNumbers == NULL) {dorm->roomNumbers = (int*)malloc(dorm->capacity * sizeof(int)); }for (int i = 0; i < dorm->capacity; i++) {dorm->roomNumbers[i] = i + 1;}}int main() {struct Dorm* head = NULL;// 添加宿舍struct Dorm dorm1;initDorm(&dorm1);strcpy(, "宿舍 1"); dorm1.capacity = 10;addDorm(&head, &dorm1);struct Dorm dorm2;initDorm(&dorm2);strcpy(, "宿舍 2"); dorm2.capacity = 15;addDorm(&head, &dorm2);// 分配宿舍房间号struct Dorm* current = head;while (current != NULL) {assignRoomNumbers(current); current = current->next;}// 打印宿舍信息current = head;while (current != NULL) {printDormInfo(current);current = current->next;}// 释放内存current = head;while (current != NULL) {freeDorm(current);current = current->next;}return 0;}```这个程序创建了一个宿舍管理系统,包括添加宿舍、为宿舍分配房间号以及打印宿舍信息的功能。

C语言宿舍管理系统课设(附源码)

C语言宿舍管理系统课设(附源码)

C语言宿舍管理系统课设项目说明本系统基于C语言开发,适用于刚入门的C语言新手项目课设,开发软件采用VC++6.0开发,VS,DEV C++等均可运行。

(书生)项目运行截图代码运行界面截图完整源码#include<stdio.h>#include<stdlib.h>#include<string.h>#define HEAD printf("\t|%-10s%-8s%-9s%-5s%-10s%-5s%-5s%-5s%-5s%-12s%-5s|\n","学号","姓名","专业","班级","公寓名","宿舍","床位","性别","年纪","手机号","级别")/*密码登录管理登录信息*/typedef struct EN{//存用户和密码char userName1[10];char passWorld1[10];}EN;void enter();void encryption(char passWorld[])//加密{int i;for(i=0;i<strlen(passWorld);i++){passWorld[i]+=20;}}void sign_in(char userName[],char passWorld[])//注册{FILE *fp;int flag=0;char userName1[10];char passWorld1[10];printf("\t注册(用户名密码最多9位)\n");printf("\t用户名:");fflush(stdin);gets(userName);printf("\t密码:");gets(passWorld);if((fp=fopen("enter.txt","rt"))==NULL){exit(0);}while(!feof(fp)){fscanf(fp,"%s %s",userName1,passWorld1);if(!strcmp(userName,userName1)){printf("用户名重复\n");flag=1;break;}}fclose(fp);if(flag==1)enter();else{if((fp=fopen("enter.txt","at"))==NULL)exit(0);encryption(passWorld);//加密fprintf(fp,"%s %s\n",userName,passWorld);}fclose(fp);enter();}void alter()//删除不合法用户{FILE *fp;int n=0;EN en[1000];。

宿舍管理系统c语言源代码

宿舍管理系统c语言源代码

宿舍管理系统c语言源代码很荣幸能为大家提供一份宿舍管理系统的c语言源代码。

这个宿舍管理系统基于c语言编写,适用于大学宿舍管理,并比较易于使用。

下面会详细解释其代码实现以及相关功能。

首先,我们来看看该程序的主要功能。

它可以实现以下功能:添加学生信息、删除学生信息、查找学生信息、修改学生信息、查看所有学生信息、保存学生信息。

同时,它还具有输入密码、退出等功能。

来看下面的代码实现说明:首先,我们需要定义一个结构体来存储学生信息。

结构体包括以下属性:学号、姓名、性别、年龄、所在学院、所在宿舍楼、所在房间号。

typedef struct student{char num[10]; // 学号char name[10]; // 姓名char sex[10]; // 性别int age; // 年龄char department[20];// 所在学院char dormitory[20]; // 所在宿舍楼char roomnum[10]; // 所在房间号}StuInfo;接下来,我们需要定义一些函数来实现各种功能。

首先,我们需要一个函数来输入学生信息。

void InputInfo(StuInfo *p)该函数的作用是输入学生信息,参数为指向结构体StuInfo的指针。

在函数中,我们可以使用scanf函数来从控制台输入学生的各项信息。

接下来,我们需要一个函数来添加学生信息。

void AddInfo(StuInfo *p, int *n)该函数的作用是添加学生信息,参数包括指向结构体StuInfo的指针以及学生数量的指针。

在函数中,我们可以通过遍历数组来找到空位置,然后调用输入信息的函数来输入学生信息。

接下来,我们需要一个函数来删除学生信息。

void DelInfo(StuInfo *p, int *n)该函数的作用是删除学生信息,参数包括指向结构体StuInfo的指针以及学生数量的指针。

在函数中,我们可以先输入学生的学号,然后通过遍历数组来找到该学生,最后将该位置清空。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
printf("%d\t%s\t",students[x].age,students[x].define);
printf("%d\t%c\t",students[x].num,students[x].sex);
}
}
}
}
void main(void)
{
menu: page_title("操作选项");
scanf("%d",&students[n].id);
printf("姓名:\n");
scanf("%s",&students[n].name);
printf("性别:\n");
scanf("%s",&students[n].sex);
printf("年龄:\n");
scanf("%d",&students[n].age);
printf("再输入任意数字回车浏览下一条信息\n\n");
scanf("%c",&s);
for(n=0;n<42;n++)
{
if(students[n].id!=0)
{
printf("学号:%d姓名:%s性别:%c年龄:%d专业:%s宿舍号:%d\n",students[n].id,students[n].name,students[n].sex,students[n].age,students[n].define,students[n].num);scanf("%d",&t);
printf("用数字键选择操作\n\n");
printf("1 *录入学生基本信息* \n\n");
printf("2 * * *浏览信息* * * \n\n");
printf("0 * * *退出系统* * * \n\n");
switch(getch())
{
case '1' : student_new();break;
case '2' : massege_input();break;
case '3' : browser();break;
case '0' : exit(0);
}
goto menu;
}
新生宿舍分配信息管理系统(源代码)
学号:02
班级:软件技术班
姓名:沈洪达
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int INDEX[d;
char name[100];
char sex;
printf("专业:\n");
scanf("%s",&students[n].define);
printf("宿舍号:\n");
scanf("%d",&students[n].num);
return_confirm();
}
void massege_input(void)
{
int s,n,t;
page_title("浏览信息");
}
void return_confirm()
{
printf("\n按任意键返回\n");
getch();
}
void student_new()
{
int n;
page_title("输入学生基本信息");
for(n=0;n<42;n++)
if(students[n].id==0) break;
printf("学号:\n");
int age;
char define[100];
int num;
}students[42];
void page_title(char *menu_item)
{
printf("> > > > > > >新生宿舍分配信息管理系统< < < < < < <\n\n- %s -\n\n",menu_item);
}
}
return_confirm();
}
void browser()
{
int n,x;
while(n)
{
page_title("浏览信息");
for(n=0;n<42;n++)
{
if(INDEX[n]!=0)
{
x=INDEX[n];
printf("%d\t%s\t",students[x].id,students[x].name);
相关文档
最新文档