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

合集下载

宿舍管理系统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语言实现学生宿舍信息管理系统

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语言

学生宿舍管理系统设计c语言学生宿舍管理系统是一个有着多种功能的系统,它主要负责管理宿舍数据、学生数据、宿舍水电费用、宿舍安全、学生违纪以及宿舍管理员的工作等。

一个合理运行的宿舍管理系统可以使学生的宿舍生活更加安全、舒适、方便。

下面我将详细阐述如何设计一个基于C语言的学生宿舍管理系统。

1.需求分析首先需要进行需求分析,明确系统应该能够执行哪些功能。

包括宿舍的数据管理,包括了宿舍编号、宿舍地址、宿舍费用等;学生的数据管理,包括了学生姓名、学号、性别、联系方式等;宿舍安全,包括了监控系统、入宿控制、防火安全等;学生管理,包括了违纪记录的管理以及学生信息的管理等。

2.设计模块针对这些功能,我们需要设计相应的模块。

首先是数据管理模块,这个模块需要包括宿舍数据和学生数据两个类。

宿舍数据类可以包含如下内容:- 宿舍编号- 宿舍地址- 宿舍费用学生数据类可以包含如下内容:- 学号- 姓名- 性别- 联系方式接下来是安全模块,这个模块需要实现入宿控制、防火安全等功能,还应该有监控系统。

违纪管理模块应该能够记录学生的各种违纪行为,例如抽烟、喝酒、打架等,这个模块需要有一个记录表格。

最后是管理员模块,这个模块可以进行学生宿舍的分配、学生信息维护、违纪行为记录等管理工作。

3.实现代码在C语言中,我们可以使用结构体来实现上述模块。

例如宿舍数据类的代码可以写成:struct dormitory{char dorm_id[10];char dorm_address[30];float dorm_fee;};学生数据类的代码可以写成:struct student{char name[20];char id[10];char sex[10];char phone[20];};其他模块的代码同样可以类似地实现。

4.测试与完善在代码实现结束后,我们需要进行测试和完善。

测试可以先按照设计的需求,输入相应的数据来验证系统是否符合要求。

在测试中,我们需要注意各种输入可能引发的异常情况,例如空数据、重复数据等。

宿舍管理系统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的指针以及学生数量的指针。

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

学生宿舍管理系统C语言

学生宿舍管理系统C语言

《C语言程序设计》课程设计报告题目:学生宿舍管理系统专业:软件技术班级:软件技术1班姓名:李桦楠齐忠春周滨滨徐烨潘喜隆郑竹强学号:124109124 124109131 124109150124109143 124109127 124109148指导老师:陈自力设计时间:2013 年 1 月14 日~ 2013年 1 月18 日信息工程系目录《C程序设计》课程设计报告 (1)1.课程设计计划 (3)2.系统需求分析与功能设计 (4)3. 总体设计 (6)4. 程序模块设计 (8)5. 技术难点与分析 (10)6.系统测试 (11)7. 心得体会 (17)8. 系统实现源代码 (18)1.课程设计计划主要成员分配任务:1.李桦楠,齐忠春(C程序设计课程设计报告)2.周滨滨(系统测试)3.潘喜隆(注册密码导入,登陆)4.郑竹强(排序,账号信息导入)5.徐烨(完成导入,注册模块)6. 李桦楠(完成其它模块功能实现)2013-1-14 早上:完成整个系统架构,各菜单的函数实现。

函数的实现。

2013-1-15 早上实现“Login(),huChe(),huChe(),ZhuChe(),UpMiMa(),Input(),Addto()”函数完成。

2013-1-16早上实现“Modify(),Del(),Query(),Sta(),Px(),DaoRu(),Linen() ZhuZhecodeDaoru(),MiMaDaoRu()”函数完成。

2013-1-17早上系统进行最后的测试。

2.系统需求分析与功能设计1.各函数的组成;void Login(); /*登入函数*/void DengRu(); /*登入*/void ZhuChe(); /*注册*/void UpMiMa(); /*修改密码*/void Input(); /*输入函数*/void Addto(); /*添加函数*/void Modify(); /*修改函数*/void Del(); /*删除函数*/void Query(); /*查找函数*/void Sta(); /*统计函数*/void Px(); /*排序函数*/void Off(); /*退出函数*/void DaoRu(); /*导入数据函数*/void ZhuZhecodeDaoru(); /*注册密码导入函数*/ void MiMaDaoRu(); /*账号信息导入函数*/ void Linen(); /*打出横线函数*/void UpMiMa_menu(); /*修改密码菜单*/void Login_menu(); /*登入菜单*/void Main_menu(); /*主菜单*/void Mod_menu(); /*修改菜单*/void Query_menu(); /*查找菜单*/void Sta_menu(); /*统计菜单*/void Login_menu(); /*登入界面函数*/ 2..结构体struct ZCcode /*注册密码结构体*/{char Password1[6];};struct code /*密码结构体*/{char user[10];char password[6];};struct Inform /*基本信息结构体*/ {int NUM;int ShuHao;char Name[7];char Sex[3];int Age;char Class[10];char Spec[10];3. 总体设计Tu-3.1录入模块 添加模块 删除模块 修改模块 统计模块 查询模块 退出模块学生宿舍管理系统学生宿舍管理系统登入 注册 修改 退出输入注册密码 正确错误输入帐号 输入密码 成功输入指令(1,2,3,4)输入帐号 原密码 新密码修改成功输入帐号输入密码 登 录成功帐号密码错误 录入成员信息写入文件中是否继续录入输入指令(1,2,3,4,5,6,7) 是否删除成员信息输入要删除的成员学号确定要删除该成员是否删除成功修改成员信息输入要修改的成员学号 输入正确没有该成员输入指令(1,2,3,4,5,6,7)查询成员输入指令,选择查询项目学号宿舍号姓名 返回统计成员4. 程序模块设计1.登入主函数实现方法;先定义整形变量 i,Flas=1(i 用来做switch开关,Flas用做while的判断变量. 做一个while循环判断条件为Flas==0。

学生宿舍管理系统---C语言编程

学生宿舍管理系统---C语言编程

“学生宿舍管理系统”C语言课程设计报告一、程序功能简介我设计的是“学生宿舍管理系统”,主要是针对住宿学生个人信息的管理,适用对象主要是学校,以方便学校对住宿学生的管理。

包括学生的、学号、性别、专业、班级等等。

在编写过程中主要运用C语言的基本知识有:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的调用与使用)等。

二、课程设计要求该程序是由C语言编写的一个学生宿舍管理查询软件,程序在Microsoft Visual C++ 6.0下运行,其主要功能是实现对学生信息的录入、添加、删除、修改、查询、统计。

其中查询可以分别以、学号、宿舍号为关键字查询学生信息。

统计可以分别以学号、宿舍号、性别、班级、专业为关键字进行统计,并且输出信息按学号大小从小到大输出。

三、源程序分析1)结构分析1.方案设计2.数据结构说明程序中数据主要是学生信息,具体属于类型如下:struct st_messagechar name[20]; /*学生*/char dorm[7]; /*宿舍号*/char num[10]; /*学号*/char sex[5]; /*性别*/char age[4]; /*年龄*/char major[20]; /*专业*/char classs[8]; /*班级*/3.模块功能说明第一录入模块:调用input_message(),对住宿学生信息进行录入。

第二添加模块:调用append_message(),对新来学生信息进行添加录入。

第三修改模块:调用revise_message(),对需修改学生的信息进行修改。

第四删除模块:调用delete_message(),对某一学生信息进行删除操作。

第五查询模块:调用find_message(),分别以、学号、宿舍号对学生信息进行查询。

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语言课程设计学生宿舍管理系统

宿舍管理系统是一种针对学生宿舍管理的信息化管理系统,它可以帮助学校、学生宿舍管理员精确、高效地管理学生宿舍的基本信息、住宿情况、违纪记录等各项管理工作。

它是学校管理的有力工具,对提高学生宿舍管理的效率和质量具有重要意义。

一、需要解决的问题(一)学生信息管理1. 宿舍管理员需要能够快速便捷地录入学生的基本信息,如尊称、性莂、芳龄、专业等,并能够进行查询、修改、删除等操作。

2. 宿舍管理员需要清晰地了解每个宿舍的学生情况,包括入住情况、空床位情况、学生离校情况等。

(二)入住管理1. 针对新生入住、学生调宿等情况,宿舍管理员需要系统化、高效地进行入住管理,包括分配床位、办理相关手续等。

2. 学生离校后,宿舍管理员需要及时更新系统信息,确保宿舍的床位情况及时准确。

(三)违纪记录管理1. 为了规范宿舍管理,宿舍管理员需要记录学生的违纪情况,如夜不归宿、打架斗殴等,并进行相应的处理。

2. 宿舍管理员需要能够查询、统计学生的违纪情况,以便于进行教育、惩戒等工作。

二、系统功能设计(一)学生信息管理1. 设计学生信息录入界面,包括尊称、性莂、芳龄、专业等信息的录入功能。

2. 设计学生信息查询界面,支持按照学号、尊称等条件进行快速查询。

3. 设计学生信息修改、删除功能,为宿舍管理员提供便捷、高效的学生信息管理工具。

(二)入住管理1. 设计入住办理界面,支持新生入住手续、学生调宿等操作。

2. 设计入住查询界面,快速了解每个宿舍的学生入住情况。

3. 设计离校处理界面,为宿舍管理员提供方便的学生离校信息处理工具。

(三)违纪记录管理1. 设计违纪记录录入界面,为宿舍管理员提供录入学生违纪情况的工具。

2. 设计违纪记录查询界面,支持按照学号、尊称等条件进行快速查询。

3. 设计违纪记录统计功能,为宿舍管理员提供违纪情况的统计分析工具。

三、系统技术实现(一)采用C语言进行系统开发,使用C语言能够充分利用系统资源,提高系统的运行效率。

学生宿舍管理系统c语言报告

学生宿舍管理系统c语言报告

学生宿舍管理系统c语言报告一、引言学生宿舍管理系统是一个用于管理学生宿舍的软件系统。

它能够帮助学校方便地进行学生宿舍的分配、入住、退房、维修等管理工作。

本报告将介绍该系统的设计与实现过程,包括需求分析、系统架构、关键功能与算法等。

二、需求分析2.1 功能需求学生宿舍管理系统需要具备以下主要功能:1. 学生信息管理:包括学生基本信息、联系方式等;2. 宿舍信息管理:包括宿舍楼层、房间号、容纳人数等;3. 入住管理:学生入住、退房、换宿舍等;4. 维修管理:记录宿舍维修情况及维修进度;5. 报表生成:生成各类统计报表,如入住率、维修次数等;6. 用户权限管理:不同用户拥有不同的操作权限。

2.2 性能需求学生宿舍管理系统需要满足以下性能需求:1. 数据处理快速:能够快速响应用户操作,保持系统的高可用性;2. 数据存储安全:对于敏感信息需要进行加密保存,确保数据安全性;3. 界面友好易用:操作界面简洁明了,用户易于操作;4. 扩展性强:系统可以方便地扩展功能,满足学校不同的管理需求。

三、系统架构学生宿舍管理系统采用三层架构进行开发,包括表示层、业务逻辑层和数据访问层。

3.1 表示层表示层是用户与系统交互的界面,这里采用命令行界面来展示系统功能。

用户可以通过输入指令来执行相应的操作,系统会返回相应的结果。

3.2 业务逻辑层业务逻辑层负责处理系统的业务逻辑,将用户的操作请求转发给数据访问层,并对返回结果进行处理后返回给表示层。

同时也包括系统的核心算法的实现。

3.3 数据访问层数据访问层负责与数据库进行交互,处理数据库的读写操作。

它封装了对数据库的操作方法,并提供给业务逻辑层使用。

四、关键功能与算法4.1 学生分配算法学生分配算法是学生宿舍管理系统的核心功能之一。

该算法需考虑学生的性别、年级、特殊需求等因素,确保学生宿舍分配的公平性和合理性。

算法步骤如下:1. 根据学生的性别和年级筛选出符合条件的宿舍楼;2. 根据学生的特殊需求,进一步筛选符合条件的房间;3. 若找到符合条件的房间,则将学生分配到该房间,更新宿舍数量信息;4. 若未找到符合条件的房间,提示学生重新选择或申请特殊宿舍。

宿舍管理系统(c语言版)

宿舍管理系统(c语言版)
/*while(choice<'0'||choice>'5')
{ printf("\t\t输入的操作代码无效,请重新输入:");
fflush(stdin);
choice=getchar();
}*/
}
void display() /*显示所有学生的信息*/
{ 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);
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
void menu(); /*主菜单*/
void searchmenu(); /*查询菜单*/
void search(); /*查询系统*/
{
STU *sturecord;
sturecord=(STU*)malloc(sizeof(STU));
if(check()==0)
return;
system("cls");
sort_stunum();

C语言学生宿舍管理系统代码(可运行)

C语言学生宿舍管理系统代码(可运行)

C语⾔学⽣宿舍管理系统代码(可运⾏)#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<string.h>#include<windows.h>#include <malloc.h>#include<dos.h>#define len sizeof(struct dorminfo)#define Max 100int a[Max]={0};int length;void showmenu();void processmenu();void create();void display();void disbed();void modify();void del();void save();void read();typedef struct{int dormno;int bedno;int isstay;}bedinfo;struct dorminfo{bedinfo bed;int stuno;char name[20];char stucla[20];int year;int month;struct dorminfo *next;};struct dorminfo *head=NULL,*p1,*p2,*p3;void showmenu(){printf("\n\n\n\t\t 欢迎进⼊学⽣宿舍管理系统\n");printf("\t\t*********************************\n");printf("\t\t1.输⼊床位信息\n");printf("\t\t2.根据学号,显⽰学⽣住宿信息\n");printf("\t\t3.根据宿舍号,显⽰住宿信息\n");printf("\t\t4.根据宿舍号、床位号,修改住宿信息\n");printf("\t\t5.根据宿舍号、床位号,删除住宿信息\n");printf("\t\t6.保存学⽣宿舍信息\n");printf("\t\t7.从⽂件读⼊学⽣信息\n");printf("\t\t8.退出 \n");printf("\t\t********************************\n") ;}void processmenu(){int caidan;printf("请输⼊您的选项<1~8>:");scanf("%d",&caidan);if(caidan>8||caidan<0){printf("对不起,您输⼊的选项有误,请重新输⼊!");scanf("%d",&caidan);}switch(caidan){case 2:display();break;case 3:disbed();break;case 4:modify();break;case 5:del();break;case 6:save();break;case 7:read();break;case 8:exit(0);}}void create(){int j;char ch;length=0;p1=(struct dorminfo *)malloc(len);if(head==NULL)head=p1;printf("开始输⼊床位信息....\n");Sleep(500);do{p2=(struct dorminfo *)malloc(len);printf("请输⼊宿舍号:");scanf("%d",&p2->bed.dormno);printf("请输⼊床号:");scanf("%d",&p2->bed.bedno);printf("是否有⼈居住(1/0):");scanf("%d",&p2->bed.isstay);printf("请输⼊学⽣学号:");scanf("%d",&p2->stuno);a[length]=p2->stuno;if(length>1){for(j=1;j<length;j++){if(a[length]==a[j]){printf("该床位号已存在,请重新输⼊:");scanf("%d",&p2->bed.bedno);}}}printf("请输⼊学⽣姓名:");scanf("%s",p2->name);printf("请输⼊学⽣班级:");scanf("%s",p2->stucla);printf("请输⼊学⽣⼊住时间(年⽉)<如2015 5>:");scanf("%d%d",&p2->year,&p2->month);if(p2->year<1000||p2->year>9999||p2->month>12||p2->month<1) {printf("对不起,输⼊错误,请重新输⼊!\n");scanf("%d%d\n",&p2->year,&p2->month);}length++;p1->next=p2;p2->next=NULL;p1=p1->next;printf("第%d个住宿信息创建成功!\n",length);Sleep(300);fflush(stdin);printf("是否继续添加住宿信息?<y/Y>");ch=getchar();} while(ch=='y'||ch=='Y');}void display(){int flag=0,No;p3=head->next;scanf("%d",&No);while(p3!=NULL){if(p3->stuno==No){printf("\n住宿信息如下:");printf("\n宿舍号:%d",p3->bed.dormno);printf("\n床位号:%d",p3->bed.bedno);printf("\n是否有⼈⼊住:%d",p3->bed.isstay);printf("\n学⽣学号:%d",p3->stuno);printf("\n学⽣姓名:%s",p3->name);printf("\n学⽣班级:%s",p3->stucla);printf("\n⼊住时间为:%d年%d⽉\n",p3->year,p3->month); flag=1;}p3=p3->next;}if(!flag)printf("没有找到该学⽣住宿信息!\n");}void disbed(){int flag=0,DormNo;p3=head->next;printf("请输⼊宿舍号:");scanf("%d",&DormNo);while(p3!=NULL){if(p3->bed.dormno==DormNo){printf("\n住宿信息如下:");printf("\n宿舍号:%d",p3->bed.dormno);printf("\n床位号:%d",p3->bed.bedno);printf("\n是否有⼈⼊住:%d",p3->bed.isstay);printf("\n学⽣学号:%d",p3->stuno);printf("\n学⽣姓名:%s",p3->name);printf("\n学⽣班级:%s",p3->stucla);printf("\n⼊住时间为:%d年%d⽉\n",p3->year,p3->month); flag=1;}p3=p3->next;}if(!flag)printf("没有找到该学⽣住宿信息!\n");}void modify(){struct dorminfo *p;int DormNo,BedNo,flag;int Dormno,Bedno,Isstay,Stuno,Year,Month;char Name[20],Stucla[20];if(head==NULL){printf("住宿信息为空,不能修改,按任意键返回...\n");getch();system("cls");return ;}p1=p3=head;printf("请输⼊宿舍号、床位号:");scanf("%d %d",&DormNo,&BedNo);while(p3!=NULL){if(p3->bed.dormno==DormNo&&p3->bed.bedno==BedNo) {printf("已找到要修改的宿舍号、床位号!\n");flag=1;p=p3;}p3=p3->next;}if(flag){printf("请输⼊修改后的宿舍号:");scanf("%d",&Dormno);printf("请输⼊修改后的床号:");scanf("%d",&Bedno);printf("是否有⼈居住(1/0):");scanf("%d",&Isstay);printf("请输⼊修改后的学⽣学号:");scanf("%d",&Stuno);while(p1!=NULL){if(p1->stuno==Stuno){printf("该床位号已存在,请重新输⼊:");scanf("%d",&Stuno);}p1=p1->next;}printf("请输⼊修改后的学⽣姓名:");scanf("%s",Name);printf("请输⼊修改后的学⽣班级:");scanf("%s",Stucla);printf("请输⼊修改后的学⽣⼊住时间(年⽉)<如2015 5>:");scanf("%d%d",&Year,&Month);if(Year<1000||Year>9999||Month>12||Month<1){printf("对不起,输⼊错误,请重新输⼊!\n");scanf("%d%d",&Year,&Month);}p->bed.dormno=Dormno;p->bed.bedno=Bedno;p->bed.isstay=Isstay;p->stuno=Stuno;strcpy(p->name,Name);strcpy(p->stucla,Stucla);p->year=Year;p->month=Month;printf("修改成功,信息如下:\n");printf("-宿舍号--床号--有⽆⼈⼊住--学号--姓名--班级--⼊住时间(年⽉)");printf("\n");printf("%6d%5d%8d%9d%7s%8s%9d%2d\n",p->bed.dormno,p->bed.bedno,p->bed.isstay,p->stuno,p->name,p->stucla,p->year,p->month); }else{printf("没有找到该宿舍号与床号信息,按任意键返回...\n");getch();system("cls");return ;}}void del(){int DormNo,BedNo;p1=head,p2=head->next;printf("请输⼊宿舍号、床位号:");scanf("%d %d",&DormNo,&BedNo);while(p2!=NULL){if(p2->bed.dormno==DormNo&&p2->bed.bedno==BedNo){p1->next=p2->next;free(p2);length--;printf("删除成功!\n");return ;}p2=p2->next;p1=p1->next;}if(p1==NULL)printf("找不到要删除的宿舍号、床位号!\n");}void save(){FILE *fp1;if(head==NULL){printf("\n,没有找到该宿舍号与床号信息,按任意键返回....");getch();system("cls");return ;}if((fp1=fopen("学⽣宿舍管理系统.txt","w"))==NULL){printf("\n信息⽆法保存,按任意键返回....");getch();system("cls");return ;}p1=head->next;printf("正在保存⽂件...\n");Sleep(800);fputs(" 宿舍号床号有⽆⼈⼊住学号姓名班级⼊住时间(年⽉) :\n",fp1);while(p1!=NULL){fprintf(fp1,"%6d%5d%8d%7d%6s%4s%7d%2d\n",p1->bed.dormno,p1->bed.bedno,p1->bed.isstay,p1->stuno,p1->name,p1->stucla,p1->year,p1->month);p1=p1->next;}fclose(fp1);printf("⽂件保存成功!\n");printf("按任意键返回...\n");getch();system("cls");return ;}void read(){FILE *fp2;char ch;if((fp2=fopen("学⽣宿舍管理系统.txt","r"))==NULL){printf("⽂件⽆法打开!\n");exit(0);}printf("正在读⼊⽂件...\n");Sleep(1000);ch=fgetc(fp2);while(!feof(fp2)){putchar(ch);ch=fgetc(fp2);}printf("\n");fclose(fp2);printf("⽂件读⼊成功!\n");}void main(){while(1){processmenu(); system("pause"); system("cls");}}。

C语言——学生宿舍管理系统

C语言——学生宿舍管理系统

#include<>#include<>#include<>入学生信息 ");printf(" \t2.按学号查询 \n");printf(" \t3.按宿舍号查询 ");printf(" \t4.按姓名查询 \n");printf(" \t5.按系别或专业查询 ");printf(" \t6.添加信息 \n");printf(" \t7.修改信息 ");printf(" \t8.保存信息 \n");printf(" \t9.读取信息 ");printf(" \t10.删除信息 \n");printf(" \t0.退出系统 \n");printf("\t*************************************************************\n");printf("------------------------------------------------------------------\n");printf(" \t请选择你想实现的功能:");scanf("%s",&ch);orNo) ;printf("\n姓名:");scanf("%s",&stu[i].stuName);printf("\n学号:");scanf("%d",&stu[i].stuNo);printf("\n性别:");scanf("%s",&stu[i].stuSex);printf("\n系别:");scanf("%s",&stu[i].dept);printf("\n专业:");scanf("%s",&stu[i].major);printf("\n电话:");scanf("%d",&stu[i].tel);i++;}else{printf(" \n\t 人数已满无法继续输入");printf("\n是退出该功能输入(Y/N):");ch=getchar();ch=getchar();}}while(ch!='y'&&ch!='Y');write(stu,num);system("cls");}tuNo){printf("\n宿舍号: %d\n姓名: %s\n学号: %d\n性别: %s\n系别: %s\n专业:%s\n电话号码: %d\n",stu[i].dorNo,stu[i].stuName,stu[i].stuNo,stu[i].stuSex,stu[i].dept,stu[i].major,stu[i].tel);}}}else{printf("\n\t 没有你要查找的学生信息。

C语言课程设计报告学生宿舍管理系统

C语言课程设计报告学生宿舍管理系统

《高级语言程序设计》课程设计说明书设计题目:学生宿舍管理系统目录一、总体设计 (3)1.程序的总体设计 (3)2. 函数原型声明 (3)二、用户说明 (4)1、菜单界面 (5)2、入住登记界面 (5)3、删除界面 (5)4、浏览界面 (6)5、查询修改 (6)6、排序界面 (6)7、退出 (6)三、小结 (7)四、参考文献 (7)五、源程序代码 (7)一、总体设计1.程序的总体设计◎确定界面,使用户可选择操作项目(录入,删除,浏览,修改,查询,排序)。

◎录入:使用结构体,要求用户输入楼栋、房号、面积、可住人数、已住人数◎删除:按房号删除以上信息◎查询:按房号查询以上信息◎修改:按房号修改以上信息◎排序:按已住人数排序信息2. 函数原型声明struct room *add(struct room *head);//添加函数struct room *del(struct room *h);//删除函数void show(struct room *h);//信息浏览函数void serh(struct room *h);//查询与修改函数struct room *sort(struct room *head);//排序函数void can();//结束函数二、用户使用说明运行程序后即可按提示模仿以上操作进行。

2、入住登记界面3、删除界面5、查询修改6、排序界面7、退出三、小结通过编写该程序,熟悉了C语言的基本语法,选择,循环等结构,深入练习了函数的调用方法,和文件的读写方法,熟悉了结构体的使用,更加深化了面向过程语言思想,和一些基本算法。

通过对程序的后期调试,熟悉了C常见错误,锻炼了思维的严密性,和完备性。

通过对程序的注释和画流程图,形成了一套自己编程的风格,和清晰地思路,使思维更加条理化,清晰化。

四、参考文献[1]谭浩强.C程序设计(第二版).北京:清华大学出版社,1999[2]邓文新.张宏烈.哈尔滨工业大学出版社[3]百度.五、附件源程序代码#include<stdio.h>#include<malloc.h>#include<string.h>#include <stdlib.h>struct room{int Lnum;int Fnum;int squa;int maxnum;int innum;struct room *next;};struct room *add(struct room *head);//添加函数struct room *del(struct room *h);//删除函数void show(struct room *h);//信息浏览函数void serh(struct room *h);//查询与修改函数struct room *sort(struct room *head);//排序函数//修改点void can();//结束函数void main(){struct room *head;int x,y;head=(struct room *)malloc(sizeof(struct room));head->next=NULL;printf("欢迎使用学生宿舍管理系统!\n");printf("按回车键进入菜单界面\n");getchar();while(1){A: printf("[]--------------------------------------------[]\n");printf("||--------------------------------------------||\n");printf("|| 1.入住登记 ||\n");printf("|| 2.删除信息 ||\n");printf("|| 3.信息浏览 ||\n");printf("|| 4.查询修改 ||\n");printf("|| 5.按入住人数排序 ||\n");printf("|| 6.退出系统 ||\n");printf("||--------------------------------------------||\n");printf("[]--------------------------------------------[]\n");printf("请选择服务项目!\n");flushall();scanf("%d",&x);//菜单选择if(head->next==NULL&&x!=1&&x!=6){printf("系统中无入住信息,请先进行入房登记!\n");goto A;}switch(x){case 1:head=add(head);system("cls");printf("登记完毕!\n");continue;case 2:head=del(head);T: scanf("%d",&y);while(y!=1&&y!=0){printf("输入错误!请重新输入!\n");goto T;}if(y==1){system("cls");continue;}elsecan();goto N;case 3:show(head);printf("是否返回菜单界面进行其他操作?(1/0)\n"); J: scanf("%d",&y);while(y!=1&&y!=0){printf("输入错误!请重新输入!\n");goto J;}if(y==1){system("cls");continue;}else{can();goto N;}case 4:serh(head);system("cls");continue;case 5:head=sort(head);//修改点printf("是否返回菜单界面进行其他操作?(1/0)\n"); scanf("%d",&y);while(y!=1&&y!=0){printf("输入错误!请重新输入!\n");goto J;}if(y==1){system("cls");continue;}else{can();goto N;}continue;case 6:can();goto Q;default:printf("输入错误!请重新输入!\n");}N: if(y==0)break;Q: if(x==6)break;}}struct room *add(struct room *head)//入住登记{struct room *h,*p;int i=0,n;h=head;printf("请输入要登记的入房数:\n");scanf("%d",&n);printf("请输入入住信息:\n楼号房号面积最大入住人数已入住人数\n");printf("数据须按规定顺序输入,不同数据用空格分开。

C语言课程设计学生宿舍管理系统

C语言课程设计学生宿舍管理系统

HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGYC语言实训报告班级: k1223-5姓名:赵荷学号:20129230518目录1.课程实训目的 (2)2.需求分析 (2)2.1要求 (2)2.2任务描述 (3)2.3运行环境 (3)2.4开发工具 (3)3.总体设计 (3)3.1系统流设计 (3)3.2系统模块设计 (5)4.详细设计 (5)4.1数据结构设计 (5)4.2模块接口设计 (7)4.3 以下是几个主要模块的流程图: (8)5.运行结果 (10)5.1主菜单界面: (10)5.2信息录入界面: .......................................... 错误!未定义书签。

5.3信息浏览界面: (12)5.4 信息查询界面: (13)5.5信息修改界面: (13)6.程序调试与测试 (14)6.1程序调试与分析 (14)6.2程序测试结果 (16)7.问题与不足 (16)8.建议 (17)9.编程体会 (17)10.程序源代码: (17)11.参考文献 (38)12.用户使用手册 (38)1.课程实训目的1)通过课程实训,加深对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。

2)通过课程实训,进一步掌握C语言中重要的数据结构。

掌握并熟练运用指针、链表、结构体、文件等数据结构。

3)通过课程实训,提高程序开发能力,能运用合理的控制流编写清晰高效的程序。

4)通过课程实训,培养C语言知识运用和自学能力,真正的把课堂上获得的知识运用起来,培养自己对程序编写的兴趣,并能独立设计和实现一个小型系统。

5)通过课程实训,加强了自己的程序分析能力。

2.需求分析2.1要求1)遵循软件开发过程的基本规范;能灵活应用,初步具备运用C程序解决实际问题的能力。

2)运用结构化程序设计方法,按照课程实训题目要求,完成包括需求分析、数据结构设计、概要设计、详细设计、编写代码、调试和测试C程序等过程。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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("输入错误!请重新输入。

\n");continue;}}printf("****************************************\n");}void c() //3.统计当前未住学生宿舍的个数并显示宿舍编号{int i=0;printf("****************************************\n");printf("未住学生空宿舍宿舍号如下:\n");for(int j=0;j<max;j++)if(dcm[j].ke==dcm[j].empty){printf("\t%d",dcm[j].num);i++;if(j%3==0)printf("\n");}printf("\n");printf("****************************************\n");printf("当前未入住的学生宿舍个数共有:%d个\n",i);}void d() //4.统计当前空闲的男生、女生床位数{int m=0,n=0;printf("****************************************\n");printf("统计当前空闲的男生、女生床位数\n");for(int j=0;j<max;j++){if(dcm[j].empty!=0){printf("宿舍号为:%d\t空床数为%d\t",dcm[j].num,dcm[j].empty);if(dcm[j].sex==0){printf("男生寝室\n");m+=dcm[j].empty;}else{printf("女生寝室\n");n+=dcm[j].empty;}}}printf("男生共有空床位%d个\n女生共有空床位%d个\n\t男女生合计共有空床位%d个\n",m,n,m+n);printf("****************************************\n");}void e() //5.按宿舍编号由小到大显示已住学生的宿舍信息{printf("****************************************\n");printf("按宿舍编号由小到大显示已住学生的宿舍信息\n");int i;doc k;for(int j=0;j<max;j++)for(i=j;i<max;i++){if(dcm[j].num>dcm[i].num){k=dcm[j];dcm[j]=dcm[i];dcm[i]=k;}}xianshi();printf("****************************************\n"); }void f() //6.分别显示男生、女生有空床位的宿舍信息{int m=0,n=0;printf("****************************************\n");printf("统计当前空闲的男生、女生床位数\n\n");printf("统计当前空闲的男生床位数:\n");for(int j=0;j<max;j++){if(dcm[j].empty!=0){if(dcm[j].sex==0){printf("宿舍号为:%d\t空床数为%d\n",dcm[j].num,dcm[j].empty);m+=dcm[j].empty;}}}printf("男生空床数共有%d个\n\n",m);printf("统计当前空闲的女生床位数:\n");for(j=0;j<max;j++){if(dcm[j].empty!=0){if(dcm[j].sex==1){printf("宿舍号为:%d\t空床数为%d\n",dcm[j].num,dcm[j].empty);n+=dcm[j].empty;}}}printf("女生空床数共有%d个\n",n);printf("****************************************\n");}void g() //7.宿舍查询{int m,i,p,k=0;while(1){printf("****************************************\n");printf("查询可按宿舍编号(0)、可住人数(1)、空床数(2)、宿舍性质(男生还是女生)(3)等信息进行");scanf("%d",&p);switch(p){case 0:{printf("****************************************\n");printf("按宿舍编号查询\t请输入要查询的宿舍号:");scanf("%d",&m);for(i=0;i<max;i++){if(m==dcm[i].num){xs(i);k++;}}if(k==0){printf("在记录中没有找到这个宿舍!\n");continue;}break;}case 1:{printf("****************************************\n");printf("按可住人数查询\t请输入要查询宿舍的可住人数:");scanf("%d",&m);for(i=0;i<max;i++){if(m==dcm[i].ke){xs(i);k++;}}if(k==0){printf("在记录中没有找到这个宿舍!\n");continue;}break;}case 2:{printf("****************************************\n");printf("按空床数查询\t请输入要查询宿舍的空床数:");scanf("%d",&m);for(i=0;i<max;i++){if(m==dcm[i].empty){xs(i);k++;}}if(k==0){printf("在记录中没有找到这个宿舍!\n");continue;}break;}case 3:{printf("****************************************\n");printf("按宿舍性质查询\t请输入要查询宿舍的性质(0-男,1-女,其他视为错误输入):");scanf("%d",&m);for(i=0;i<max;i++){if(m==dcm[i].sex){xs(i);k++;}}if(k==0){printf("在记录中没有找到这个宿舍!\n");continue;}break;}default:printf("非法输入查询条件!请重新输入!\n");continue;}printf("****************************************\n");break;}}void caidan(){printf("\n");printf("\n");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(" 8.存盘\n");printf(" 9.退出\n");printf(" 0.清屏\n");printf("****************************************\n");printf("请输入对应操作的命令:\n");}void main(){int i,j;FILE *fp;if((fp=fopen("document","wt+"))==NULL){printf("\nerror!\ncan't open the file!/n");exit(0);}while(1){caidan();scanf("%d",&i);switch(i){case 1:a();break;case 2:b();break;case 3:c();break;case 4:d();break;case 5:e();break;case 6:f();break;case 7:g();break;case 8:for(j=0;j<max;j++){fprintf(fp,"宿舍号:%d 可住人数为:%d 已住人数%d 空床数为%d ",dcm[j].num,dcm[j].ke,dcm[j].yi,dcm[j].empty);if(dcm[j].sex==0)fprintf(fp,"宿舍性质: 男宿舍\n");elsefprintf(fp,"宿舍性质: 女宿舍\n");}break;case 9:fclose(fp);exit(0);break;case 0:system( "cls ");break;default:printf("输入错误!请重新输入!\n\n");break;}}}。

相关文档
最新文档