您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 宿舍管理系统(c语言版)
#includestdio.h#includestdlib.h#includeconio.h#includestring.hvoidmenu();/*主菜单*/voidsearchmenu();/*查询菜单*/voidsearch();/*查询系统*/intsearch_stuname(charstr[]);/*按姓名查询*/intsearch_stunum(charstr[]);/*按学号查询*/intsearch_number(charstr[]);/*按宿舍号查询*/voidsort_stunum();/*按学号排序*/intfind_stunum();/*增加学生信息时检查学号是否存在*/intfind1_stunum();/*修改学生信息时检查学号是否存在*/voidmodify_stuname();/*按姓名修改学生信息*/voidmodify_stunum();/*按学号修改学生信息*/voiddelete_stuname();/*按姓名删除学生信息*/voiddelete_stunum();/*按学号删除学生信息*/voidquit();/*退出系统*/voidbound();/*画一条直线*/intcheck();/*检查是否为第一次使用*/typedefstructstudent{charstuname[31];charstunum[11];charnumber[5];structstudent*next;}STU;FILE*fp;/*定义数据文件为全局变量*/staticcharchoice;/*定义操作代码为全局静态变量*/voidmenu(){do{system(cls);/*printf(\t**********************************\n);*/printf(\n\t\t\t宿舍管理系统\n);/*printf(\t**********************************\n);*/bound();printf(\n\t\t1.显示所有学生信息\n);printf(\t\t2.添加学生信息\n);printf(\t\t3.查询学生信息\n);printf(\t\t4.修改学生信息\n);printf(\t\t5.删除学生信息\n);printf(\t\t0.退出系统\n);bound();printf(\t\t请输入操作代码(0~5):\t);fflush(stdin);choice=getchar();}while(choice'0'||choice'5');/*while(choice'0'||choice'5'){printf(\t\t输入的操作代码无效,请重新输入:);fflush(stdin);choice=getchar();}*/}voiddisplay()/*显示所有学生的信息*/{STU*sturecord;sturecord=(STU*)malloc(sizeof(STU));if(check()==0)return;system(cls);sort_stunum();fp=fopen(record.dat,r);if(fp==NULL){printf(文件读取失败!\n);return;}printf(\t%-10s\t%-10s\t%-5s\n,姓名,学号,宿舍号);bound();while(fread(sturecord,sizeof(STU),1,fp)!=0){printf(\t%-10s,sturecord-stuname);printf(\t%-10s,sturecord-stunum);printf(\t%-5s\n,sturecord-number);}fclose(fp);printf(\t请按任意键返回主菜单:);getch();menu();}voidaddrecord()/*增加学生信息*/{STU*sturecord;charch;system(cls);sturecord=(STU*)malloc(sizeof(STU));printf(\n\t请输入学生的姓名:);scanf(%s,sturecord-stuname);printf(\t请输入学生的学号:);scanf(%s,sturecord-stunum);if(find_stunum(sturecord-stunum)==1){addrecord();return;}printf(\t请输入学生的宿舍号:);scanf(%s,sturecord-number);bound();printf(\t该学生信息如下:\n);printf(\t%-10s\t%-10s\t%-5s\n,姓名,学号,宿舍号);printf(\t%-10s\t%-10s\t%-5s\n,sturecord-stuname,sturecord-stunum,sturecord-number);printf(\t确认添加该信息吗?(Y/N)\t);fflush(stdin);ch=getchar();if(ch=='y'||ch=='Y'){fp=fopen(record.dat,a);if(fp!=NULL){fwrite(sturecord,sizeof(STU),1,fp);printf(\t学生信息已增加!\n);free(sturecord);}else{printf(添加信息失败,请按任意键退出!\n);getch();exit(1);}fclose(fp);}else{menu();return;}bound();printf(\t输入y/Y继续增加学生信息,否则按任意键返回主菜单:);fflush(stdin);ch=getchar();fflush(stdin);if(ch=='y'||ch=='Y')addrecord();elsemenu();return;}voidsearchmenu()/*查询菜单*/{system(cls);printf(\t1.按姓名查询\n\n);printf(\t2.按学号查询\n\n);printf(\t3.按宿舍号查询\n\n);printf(\t4.返回菜单\n);bound();}voidsearch()/*查询系统*/{charch;charstr[31];if(check()==0)return;searchmenu();printf(\t请输入查询类型:\t);fflush(stdin);ch=getchar();while(ch'1'||ch'4'){printf(\t输入的操作代码无效,请重新输入:);fflush(stdin);ch=getchar();}switch(ch){case'1':printf(\t请输入要查找学生的姓名:);scanf(%s,str);if(search_stuname(str)==1){bound();printf(\t请按任意键返回);getch();break;}printf(\t该学生信息不存在,是否继续查找?(Y/N));fflush(stdin);ch=getchar();if(ch=='Y'||ch=='y')search();break;case'2':printf(\t请输入要查找学生的学号:);scanf(%s,str);if(search_stunum(str)==1){bound();printf(\t请按任意键返回);getch();fflush(stdin);break;}printf(\t该学生信息不存在,是否继续查找?(Y/N));fflush(stdin);ch=getchar();if(ch=='Y'||ch=='y')search();break;case'3':printf(\t请输入要查找的宿舍号:);scanf(%s,str);if(search_number(str)==1){bound();printf(\t请按任意键返回);getch();fflush(stdin);break;}printf(\n\t该宿舍号不存在,是否继续查找?(Y/N));fflush(stdin);ch=getchar();if(ch=='Y'||ch=='y')search();break;}menu();}intsearch_stuname(charstr[])/*按姓名查询*/{inti=0;STU*sturecord;sturecord=(STU*)malloc(sizeof(STU));fp=fopen(record.dat,r);while(fread(sturecord,sizeof(STU),1,fp)!=0){if(strcmp(str,sturecord-stuname)==0){printf(\t该学生信息如下:\n);printf(\t%-10s\t%-10s\t%-5s\n,姓名,学号,宿舍号);printf(\t%-10s\t%-10s\t%-5s\n,sturecord-stuname,sturecord-stunum,sturecord-number);i++;}}fclose(fp);if(i0)return1;elsereturn0;}intsearch_stunum(charstr[])/*按学号查询*/{STU*sturecord;sturecord=(STU*)malloc(sizeof(STU));fp=fopen(record.dat,r);while(fread(sturecord,sizeof(STU),1,fp)!=0){if(strcmp(str,sturecord-stunum)==0){printf(\t该学生信息如下:\n);printf(\t%-10s\t%-10s\t%-5s\n,姓名,学号,宿舍号);printf(\t%-10s\t%-10s\t%-5s\n,sturecord-stuname,sturecord-stunum,sturecord-number);fclose(fp);return1;}}fclose(fp);return0;}intsearch_number(charstr[])/*按宿舍号查询*/{inti=0;STU*sturecord;sturecord=(STU*)malloc(sizeof(STU));fp=fopen(record.dat,r);printf(\t该宿舍的学生信息为:\n);printf(\t%-10s\t%-10s\t%-5s\n,姓名,学号,宿舍号);while(fread(sturecord,sizeof(STU),1,fp)!=0){if(strcmp(str,sturecord-number)==0){printf(\t%-10s\t%-10s\t%-5s\n,sturecord-stuname,sturecord-stunum,sturecord-number);i++;}}fclose(fp);if(i0)return1;elsereturn0;}voidsort_stunum()/*按学号对所有学生信息排序*/{intcount;STU*head,*p,*q,*r;head=(STU*)malloc(sizeof(STU));q=(STU*)malloc(sizeof(STU));head-next=NULL;fp=fopen(record.dat,r);count=fread(q,sizeof(STU),1,fp);while(count!=0){r=head-next;p=head;while(r!=NULL&&strcmp(q-stunum,r-stunum)==1){p=r;r=r-next;}p-next=q;q-next=r;q=(STU*)malloc(sizeof(STU));count=fread(q,sizeo
本文标题:宿舍管理系统(c语言版)
链接地址:https://www.777doc.com/doc-5408080 .html