数据结构——宿舍管理查询系统 实验报告

合集下载

宿舍管理系统分析实验报告内容

宿舍管理系统分析实验报告内容

xx学院实验报告题目:宿舍管理系统姓名:xxx学号:xxxxxx专业:xx班级:xx指导老师:xx小组成员:xxxx学校计算机学院2011年10月29日实验项目:系统分析宿舍管理系统的系统分析一、实验目的1.能够正确运用系统分析的过程与方法,结合一个模拟课题,复习、巩固、管理信息系统的系统分析知识,提高系统分析实践能力。

2.熟悉业务流程图、数据流程图、数据字典的绘制。

3.树立正确的系统分析思想,培养分析问题、解决问题的能力,提高资料查询和撰写能力………………二、实验内容及过程实验内容:(1)根据系统功能需求,开展实地调查或通过Internet 查阅相关资料或结合个人经验,进行系统分析。

(2)明确管理业务调查过程和方法,包括系统所在组织的典型组织机构、管理功能及业务流程。

(3)明确数据流程的调查与分析过程,绘制数据流程图,编制数据字典。

(4)独立完成上述内容,并提交书面实验报告。

1、宿舍管理系统分析报告宿舍管理系统可以解决学生入住学校的住宿问题。

是经过学校领导同意才能实施的,这个系统也收到了广大教师们的青眛,这在一定的程度上缩减了老师们的工作量。

这个系统主要是宿舍管理中心来使用。

从学生拿着报到单到学校登记注册,然后分到各个相应的班级到分配楼号,分配寝室号,登记住宿这一系列的连环系统。

2、宿舍管理系统组织结构图3、宿舍管理系统业务流程图业务流程图4、宿舍管理系统数据流程图(包含顶层图、0层图、1层图)宿舍管理系统的顶层DFDDFD(0层)宿舍管理系统DFD(1层)住宿子系统(1.0)DFD(1层)维修子系统(2.0)5、宿舍管理系统数据字典(对数据流程图中的每个数据流、数据存储、数据处理、数据项进行定义)数据元素数据元素数据流数据流数据存储数据存储数据处理三、实验分析及总结通过本次实验,加深了我对管理系统基础理论、基本知识的理解,对组织流程图、业务流程图、数据流程图,数据字典的编制也有了一个全新的认识。

宿舍管理系统报告

宿舍管理系统报告

目录一、实验目的 (3)二、实验内容 (3)三、实验环境 (3)四、需求分析 (3)五、概要设计 (4)1、方案设计 (4)2、数据结构说明 (4)3、模块功能说明 (5)六、详细设计及运行结果 (6)1、登陆界面 (6)2、主界面 (6)3、录入模块 (7)4、录入界面 (8)5、打印学生信息界面 (8)6、更新学生信息界面 (9)7、查询宿舍信息界面 (9)8、统计宿舍信息界面 (10)9、学生宿舍排序 (10)七、源程序 (11)八、心得体会 (29)学生宿舍管理系统一、实验目的1.熟练掌握线性表的基本操作在顺序存储和链式存储上的实现。

、;2.以线性表的各种操作(建立、插入、删除、遍历等)的实现为重点;3.掌握线性表的动态分配顺序存储结构的定义和基本操作的实现;4.通过实验帮助学生加深对C语言的使用(特别是函数的参数调用、指针类型的应用和链表的建立等各种基本操作)。

二、实验内容我组设计的是“学生宿舍管理系统”,主要是针对住宿学生个人信息的管理,适用对象主要是学校,以方便学校对住宿学生的管理。

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

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

三、实验环境台式计算机每人一台;软件:Visual C++6.0;四、需求分析该程序是由C语言编写的一个宿舍管理查询软件,本程序在Microsoft Visual C++ 6.0下运行,其主要功能是实现对学生信息的录入、添加、删除、修改、查询、统计。

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

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

五、概要设计1、方案设计2、数据结构说明程序中数据主要是学生信息和宿舍信息,具体属于类型如下: struct stu{char name[20];int num;char sex;int age;int grade;int nclass;char zhuanye[30];};struct dom{int bui_num;int floor_num;int room_num;int bed_num;struct stu st;}s[MAX],p;3、模块功能说明第一密码模块:调用cipher(),进行管理者的注册与登录操作。

宿舍管理系统实验报告

宿舍管理系统实验报告

一、实验目的1. 熟悉Java编程语言,掌握Java Web开发的基本技术。

2. 理解并实现宿舍管理系统的功能,提高系统设计、开发与维护的能力。

3. 培养团队协作精神,提高项目实施与沟通能力。

二、实验环境1. 操作系统:Windows 102. 开发工具:Eclipse IDE3. 数据库:MySQL 5.74. 服务器:Tomcat 9.05. 编程语言:Java三、实验内容1. 系统需求分析宿舍管理系统主要包括以下功能:(1)学生信息管理:包括学生信息的增删改查。

(2)宿舍楼管理:包括宿舍楼信息的增删改查。

(3)宿舍分配:根据学生信息自动分配宿舍。

(4)维修管理:包括报修信息的增删改查。

(5)查询统计:对学生、宿舍、维修等信息进行查询统计。

2. 系统设计(1)系统架构设计采用MVC(Model-View-Controller)模式进行系统设计,其中:- Model:数据模型,包括学生、宿舍、维修等实体类。

- View:用户界面,包括登录界面、主界面、功能模块界面等。

- Controller:控制器,负责处理用户请求,调用Model层和View层。

(2)数据库设计根据系统需求,设计以下数据库表:- 学生信息表(student):包含学生编号、姓名、性别、年龄、班级等字段。

- 宿舍楼信息表(building):包含楼号、楼名、楼层数、房间数等字段。

- 宿舍信息表(room):包含房间号、楼号、床位数等字段。

- 维修信息表(repair):包含维修编号、学生编号、维修内容、维修状态等字段。

3. 系统实现(1)前端界面设计使用HTML、CSS、JavaScript等技术实现前端界面,包括登录界面、主界面、功能模块界面等。

(2)后端开发使用Java语言编写后端代码,包括:- 实体类(Entity):根据数据库表设计实体类。

- DAO(Data Access Object)层:负责数据库操作,包括增删改查等。

数据结构课程设计之宿舍管理系统

数据结构课程设计之宿舍管理系统

##大学数据结构课程设计报告题目:宿舍管理查询软件院(系):学生姓名:班级:学号:起迄日期: 2011.6.20--2011.7.1指导教师:2010—2011年度第 2 学期一、需求分析1.问题描述:程序设计要求:为宿舍管理人员编写一个宿舍管理查询软件(1)采用交互工作方式(2)建立数据文件,数据文件按关键字(姓名、学号、放号)进行排序(冒泡、选择、插入排序等任选一种)(3) 查询菜单:(用二分查找实现以下操作)①按姓名查询②按学号查询③按放号查询(4)打印任一查询结果(可以连续操作)程序分析:(1)程序采用交互工作方式,也就是说要有一个人性化的操作界面。

将每一种操作赋给一个数字,通过输入不同的数字来实现不同的操作。

这样使人一看就能明白如何实现不同的操作。

全部使用提示选择方式,只需要输入你要使用方式的代号即可。

(2)本系统无数据信息,在使用的时候首先创建一个数据文件,开发一个录入数据的功能,使得所需要的数据存储到软件中,并暂时存在内存中,以便使用。

(3)录入和修改函数:建立相应的函数,在主函数中得到调用,以便于对学生信息的增加和修改。

(4)查询:以不同的关键字分别使用二分查找实现。

(5)为了使用方便和安全,增加了密码登录、密码锁定、退出、删除、全部删除、修改、存储为文本文档信息等功能。

2.基本功能(1)录入学生信息(2)显示学生信息(分别按学号、宿舍号、姓名进行排序后显示并在磁盘上以“.txt”格式保存显示的信息)(3)查询学生信息(分别按学号、宿舍号、姓名进行查询并显示)(4)修改学生信息(可进行单个删除、全部删除和修改学生信息)(5)存储学生信息(存储到磁盘上,保存为“.txt”格式)(6)锁定管理系统(进入密码登录界面,以确保安全)(7)退出管理系统3.输入输出各种功能之间的选择采用了数字提示方式,只需要根据提示进行选择相应的数字,在录入学生信息功能中姓名为长度30以内的任意字符,学生学号和宿舍号控制住15个数字以内。

宿舍管理系统实验报告

宿舍管理系统实验报告

宿舍管理系统实验报告宿舍管理系统实验报告1. 引言宿舍管理是大学生活中重要的一环,它关系到学生的生活质量和学习环境。

为了更好地管理宿舍,提高宿舍管理的效率和便利性,我们设计并实现了一套宿舍管理系统。

本实验报告将对该系统的设计思路、功能模块以及实现效果进行详细介绍。

2. 设计思路宿舍管理系统的设计思路是基于现代信息技术的应用。

我们通过建立一个网站平台,将宿舍管理的各项功能集成在一个系统中,方便学生和管理员进行操作和管理。

同时,我们采用了数据库技术,将学生信息、宿舍楼信息、报修信息等数据进行存储和管理,提高了数据的安全性和可靠性。

3. 功能模块宿舍管理系统包括以下几个主要的功能模块:3.1 学生信息管理该模块主要用于学生信息的录入、查询和修改。

学生可以通过系统进行个人信息的维护,包括姓名、学号、联系方式等。

管理员可以对学生信息进行管理,包括添加新的学生、删除学生等操作。

3.2 宿舍楼信息管理该模块主要用于宿舍楼信息的管理。

管理员可以对宿舍楼进行添加、删除和修改操作,包括楼号、楼层、宿舍房间数等信息的录入和维护。

学生可以通过系统查询宿舍楼的相关信息,方便选择合适的宿舍。

3.3 报修管理该模块主要用于宿舍报修信息的管理。

学生可以通过系统提交报修申请,包括报修类型、具体问题描述等信息。

管理员可以对报修信息进行审核和处理,及时解决学生的问题。

同时,系统还提供了报修进度查询功能,方便学生随时了解报修的处理情况。

3.4 公告通知该模块主要用于发布宿舍管理相关的公告通知。

管理员可以通过系统发布公告,包括宿舍楼维修通知、活动通知等。

学生可以通过系统查看最新的公告信息,及时了解宿舍管理的相关事项。

4. 实现效果经过一段时间的设计和开发,我们成功地实现了宿舍管理系统。

该系统具有良好的用户界面和交互体验,方便学生和管理员进行操作。

学生可以通过系统方便地查询宿舍楼信息、维护个人信息、提交报修申请等。

管理员可以通过系统进行学生信息管理、宿舍楼信息管理、报修信息管理等。

数据结构-宿舍管理查询系统

数据结构-宿舍管理查询系统

攀枝花教院之阳早格格创做教死课程安排(论文)题目:宿舍管造查询硬件的安排与真止教死姓名:教号:天圆院(系):估计机教院博业:班级:指挥教师:职称:2011年6月4日教务处造攀枝花教院本科教死课程安排任务书籍注:任务书籍由指挥西席挖写.课程安排(论文)指挥西席结果评比表戴要本宿舍管造查询硬件是为便当宿舍管造人员真止宿舍管造查询而启垦的,具备疑息录进、隐现、查询、排序、拔出战简略功能,能真止疑息建改战通过别的道路导进洪量数据,可连绝挨印任一查询截止,但是不克不迭真止疑息存盘,使用简朴便当,面打步调即可运止.闭键词汇:管造,查询,结构体,函数目录攀枝花教院本科教死课程安排任务书籍课程安排(论文)指挥西席结果评比表I戴要II1 规划安排- 0 -1.1任务:- 0 -1.1.1步调安排央供:- 0 -1.1.2查询菜单: (用二分查找真止以下支配)- 0 -1.1.3挨印任一查询截止(不妨连绝支配)- 0 -1.2功能:- 0 -2 算法安排- 1 -- 1 -- 1 -2.1.2步调结构图为:- 1 -3 仔细安排- 2 -4 调试分解- 7 -- 7 -4.2尝试数据:- 8 -4.2.1启初录进的数据:- 8 -4.2.2拔出的数据:- 8 -4.2.3查找的数据:- 8 -4.2.4简略的数据:- 8 -4.3尝试输出截止(以运止截止图表示):- 9 -4.3.1欢迎界里:- 9 -4.3.2按任性键加进线性表的创造界里:- 9 -4.3.3输进数据,启初创造:- 9 -4.3.4请按键采用支配:- 10 -4.3.5按姓名排序:- 10 -4.3.6按教号排序:- 10 -4.3.7按房号排序:- 11 -4.3.8拔出后隐现:- 11 -4.3.9按姓名查找:- 11 -4.3.10按教号查找:- 11 -4.3.11按房号查找:- 12 -4.3.12加进简略功能,简略数据后隐现结余的教死疑息:- 12 -4.3.13退出(数字为整时退出):- 12 -- 13 -5 归纳- 14 -参照文献- 15 -1规划安排任务:为宿舍管造人员编写一个宿舍管造查询硬件步调安排央供:①采与接互处事办法②建坐数据文献,数据文献按闭键字(姓名、教号、房号)举止排序(冒泡、采用、拔出排序等任选一种)查询菜单: (用二分查找真止以下支配)①按姓名查询②按教号查询③按房号查询挨印任一查询截止(不妨连绝支配)功能:根据上述央供,咱们启初思量系统应具备的功能:①要真止接互处事办法,各项支配中断后均应返回主菜单;②系统本无所有疑息数据,要建坐数据文献,需启垦一个疑息录进功能,即最先创造一个教员线性表,共时咱们不妨将数据姑且保存正在内存中,所以咱们已启垦疑息存盘功能;③疑息录进后皆保存正在内存中,用户瞅不到,需要安排一个疑息隐现功能,疑息的隐现该当便于查阅,所以需具备按百般闭键字隐现的功能;④本系统按闭键字(姓名、教号、房号)举止冒泡排序,采与二分查找办法分别真止按闭键字(姓名、教号、房号)查询功能;⑤由于有些共教果为分歧本果而离校,所以安排了简略功能;⑥由于有新共教进校,所以安排了拔出功能;⑦当用户支配完成需要退出时,咱们提供了退出选项,便于使用者退出接互式处事系统.2算法安排线性表的程序保存保存结构本系统定义的保存结构采与结构体数组,结构体为:typedef struct //定义结构体成员{char name[20];int num; //教号战房号皆为整型int room;}stu;stu stud;typedef struct{int length; //目前少度stu *elem; //保存空间基址int listsize; //目前调配的保存容量}linklist; 正在此证明每个部分的算法安排证明(不妨是形貌算法的过程图)步调结构图为:3仔细安排//采与程序线性表办理宿舍管造问题 (C谈话)#include<stdio.h>#include<stdlib.h>#include<string.h>#define N 40 //线性表保存空间的初初调配量#define increase 10 //线性表保存空间的调配量删量int f,t=0; //定义齐部变量typedef struct{char name[20];int num; //教号战房号皆为整型int room;}stu;stu stud;typedef struct{int length; //目前少度stu *elem; //保存空间基址int listsize; //目前调配的保存容量}linklist;void init(linklist &l)//线性表初初化{l.length=0;l.elem=(stu *)malloc(N*sizeof(stu ));l.listsize=N;}void menu()//支配菜单{printf("\n");printf(" ***************请按键采用支配****************\n");printf("\n");printf("\n");printf(" 1 按姓名排序 2 按教号排序\n");printf("\n");printf(" 3 按房号排序 4 按姓名查找\n");printf("\n");printf(" 5 按教号查找 6 按房号查找\n");printf("\n");printf(" 7 按教号拔出 8 按教号简略\n");printf("\n");printf("\n");printf("\n");printf("\n" );printf("提示:当输进的数字键为0时,退出支配\n"); if(t==1){printf("请输进数字键(1~8为支配键):");//1~8为灵验数字支配键scanf("%d",&f);if(f<0||f>9){system("cls");printf("\n");printf("输进数字分歧过失,请正在本处沉输!\n"); printf("\n");menu();}}}void disp() //返回主界里{char c;fflush(stdin);printf("\n");printf("请按任性键加进主界里:");scanf("%c",&c);system("cls");}void panduan3() //如果已无教死记录则返回主界里{printf("\n");printf("已无教死记录\n");printf("\n");disp();menu();}void shuru(linklist l) //输进教死的疑息{printf("请输进姓名:");fflush(stdin); // 浑空输进慢冲区,得到精确的输进数据gets(); //输进一止字符串(姓名)printf("请输进教号:");scanf("%d",&stud.num);printf("请输进房号:");scanf("%d",&stud.room);}void create(linklist &l)//创造教死疑息表{if(l.length>=l.listsize) //推断教死的人数是可超出初值,如果超出,则沉新调配{stu *newbase;newbase=(stu*)realloc(l.elem,(N+increase)*si zeof(stu ));l.elem=newbase;l.listsize+=increase;}int i=2;char ch;printf("\n");printf(" **************************启初创造线性表***************************\n");printf("\ n");printf("请输进第1个教死的疑息\n"); shuru(l); //调用输进函数ch=getchar();strcpy(l.elem[l.length].name,);l.elem[l.length].num=stud.num;l.elem[l.length].room=stud.room;l.length++;printf("\n");printf("是可继承输进?<y/n>:");scanf("%c",&ch);printf("\n");printf("\n");while(ch=='y'){printf("请输进第%d个教死的疑息\n",i); shuru(l);strcpy(l.elem[l.length].name,);l.elem[l.length].num=stud.num;l.elem[l.length].room=stud.room;l.length++;i++;ch=getchar(); printf("\n");printf("是可继承输进?<y/n>:");scanf("%c",&ch);printf("\n");printf("\n");}if(ch=='n') system("cls");}void sort3(linklist &l)//按房号排序(采与冒泡排序){int i,j;stu temp;for(i=0;i<l.length-1;i++)for(j=i+1;j<l.length;j++)if(l.elem[i].room>l.elem[j].room){temp=l.elem[i];l.elem[i]=l.elem[j];l.elem[j]=temp;} }void sort2(linklist &l)//按教号排序(采与冒泡排序){int i,j;stu temp;for(i=0;i<l.length-1;i++)for(j=i+1;j<l.length;j++)if(l.elem[i].num>l.elem[j].num){temp=l.elem[i];l.elem[i]=l.elem[j];l.elem[j]=temp;}}void sort1(linklist &l)//按姓名排序(采与冒泡排序){int i,j;stu temp;for(i=0;i<l.length-1;i++)for(j=i+1;j<l.length;j++)if(strcmp(l.elem[i].name,l.elem[j].name)>0) {temp=l.elem[i];l.elem[i]=l.elem[j];l.elem[j]=temp;}}void print1(linklist &l)//挨印教死疑息{int i;printf("\n");printf("姓名教号房号\n");printf("\n");for(i=0;i<l.length;i++)printf("%-15s %-3d %5d\n",l.elem[i].name,l.elem[i].num,l.ele m[i].room);}void print2(linklist &l,int mid) //挨印查找到的教死疑息{printf("查找乐成----->该教死疑息为:\n"); printf("姓名教号房号\n");printf("\n");printf("%-15s %-5d %-5d\n",l.elem[mid].name,l.elem[mid].num,l.ele m[mid].room);}int panduan1(char ch) //推断是可继承查找{scanf("%c",&ch);printf("是可继承查找?<y/n>:");fflush(stdin);scanf("%c",&ch);if(ch=='y'){system("cls");return(1);}elsereturn 0;}int panduan2(char ch) //如果教死不存留,推断是可继承查找{scanf("%c",&ch);printf("该教死不存留,是可继承查找?<y/n>:");fflush(stdin);scanf("%c",&ch);if(ch=='y'){system("cls");return(1);}elsereturn 0;}void chazhao3(linklist &l)//按房号从小到大查找(采与二分查找){if(l.length==0) panduan3(); //此函数功能为:返回主界里else{int low=0,high=l.length,mid,flag=0;//flag动做标记符,为1则表示查找乐成,可则不所要查找的教死int m;char ch;printf("\n");printf("\n");printf("按房号查找----->请输进要查找的房号:");scanf("%d",&m);printf("\n");while(low<=high){mid=(low+high)/2;if(m==l.elem[mid].room){flag=1; break;}else if(m>l.elem[mid].room)low=mid+1;elsehigh=mid-1;}if(flag==1){print2(l,mid);if(panduan1(ch)) //调用推断函数1 chazhao3(l);else{system("cls");menu();}}else{if(panduan2(ch)) //调用推断函数2 chazhao3(l);else{system("cls");menu();}}}}void chazhao2(linklist &l)//按教号从小到大查找(采与二分查找){if(l.length==0) panduan3();else{int low=0,high=l.length,mid,flag=0;int n;char ch;printf("\n");printf("\n");printf("按教号查找----->请输进要查找的教号:");scanf("%d",&n);printf("\n");while(low<=high){mid=(low+high)/2;if(n==l.elem[mid].num){flag=1;break;}else if(n>l.elem[mid].num)low=mid+1;elsehigh=mid-1;}if(flag==1){print2(l,mid);if(panduan1(ch))chazhao2(l);else{system("cls");menu();}}else{if(panduan2(ch)) chazhao2(l);else{system("cls");menu();}}}}void chazhao1(linklist &l)//按姓名从小到大查找(采与二分查找){if(l.length==0) panduan3();else{int low=0,high=l.length,mid,flag=0;printf("\n");printf("\n");printf("按姓名查找----->请输进要查找的姓名:");char a[15],ch;scanf("%s",a);printf("\n");while(low<=high){mid=(low+high)/2;if(strcmp(a,l.elem[mid].name)==0){flag=1;break;}else if(strcmp(a,l.elem[mid].name)>0)low=mid+1;elsehigh=mid-1;}if(flag==1){print2(l,mid); //挨印查找到的教死的疑息if(panduan1(ch)) chazhao1(l);else{ system("cls");menu();}}else{if(panduan2(ch))chazhao1(l);else{system("cls");menu();}}}}void insert(linklist &l)//按教号从小到大拔出该教死{int i,j,k;char ch;printf("\n");printf("拔出的教死疑息为:\n");printf("姓名:");fflush(stdin);// 浑空输进慢冲区,得到精确的输进数据gets();printf("教号:");scanf("%d",&stud.num); printf("房号:");scanf("%d",&stud.room);if(l.length==0){strcpy(l.elem[l.length].name,);l.elem[l.length].num=stud.num;l.elem[l.length].room=stud.room;}for(i=0;i<l.length;i++){if(stud.num<l.elem[i].num){k=i;for(j=l.length;j>k;j--)l.elem[j]=l.elem[j-1];strcpy(l.elem[k].name,);l.elem[k].num=stud.num;l.elem[k].room=stud.room;break;}else{strcpy(l.elem[l.length].name,);l.elem[l.length].num=stud.num;l.elem[l.length].room=stud.room;}}l.length++;fflush(stdin);printf("\n");printf("是可继承拔出?<y/n>:");scanf("%c",&ch);if(ch=='y') insert(l);else system("cls");}void Delete(linklist &l)//按教号简略该教死{int i,j,k=-1;char ch;printf("\n");printf("\n");printf("请输进要简略教死的教号:"); scanf("%d",&stud.num);for(i=0;i<l.length;i++){if(stud.num==l.elem[i].num){printf("该教死的疑息为:\n");printf("\n"); printf("%-15s %-3d %7d\n",l.elem[i].name,l.elem[i].num,l.ele m[i].room);k=i;for(j=k;j<l.length-1;j++)l.elem[j]=l.elem[j+1];printf("\n");break;}}if(i>=l.length) printf("该教死不存留\n");if(k>=0)l.length--;fflush(stdin);printf("\n");printf("是可继承简略?<y/n>:");scanf("%c",&ch);system("cls");if(ch=='y') Delete(l);else system("cls");}void main() //主函数{linklist l; //定义线性表 linit(l); //调用初初化函数char ch;system("color a");printf("\n");printf(" *************************欢迎加进宿舍管造查询系统*************************\n");printf("\n");printf("请按任性键启初支配:");scanf("%c",&ch);system("cls");//将屏幕先前隐现的真量浑理掉create(l); //调用线性表创造函数system("cls");t=1;menu(); //调用主菜单函数while(f!=0){system("cls");switch(f){case 1: sort1(l); //调用按姓名排序函数printf("\n");if(l.length==0){printf("已无教死记录\n");printf("\n");disp();menu();}else{printf("按姓名排序:\n");print1(l);disp(); //调用返回主界里menu();}break;case 2: sort2(l); //调用按教号排序函数printf("\n");if(l.length==0){printf("已无教死记录\n");printf("\n");disp();menu();}else{printf("按教号排序:\n");print1(l);disp();menu();}break;case 3: sort3(l); //调用按房号排序函数printf("\n");if(l.length==0){printf("已无教死记录\n");printf("\n");disp();menu();}else{printf("按房号排序:\n");print1(l);disp();menu();}break;case 4:sort1(l); //先调用按姓名排序函数举止排序chazhao1(l); //再调用按姓名查找函数举止(二分)查找break;case 5: sort2(l); //先调用按教号排序函数举止排序chazhao2(l); //再调用按教号查找函数举止(二分)查找break;case 6: sort3(l); //先调用按房号排序函数举止排序chazhao3(l); //再调用按房号查找函数举止(二分)查找break;case 7: sort2(l); //调用拔出函数insert(l);system("cls");printf("隐现拔出后的教死疑息:\n");print1(l); disp();menu(); break;case 8: Delete(l); //调用简略函数if(l.length==0){printf("\n");printf("教死记录已被简略完\n"); printf("\n");disp();menu();}else{printf("隐现简略后的教死疑息:\n"); print1(l);disp();menu();}break;}}}4调试分解最先,运止步调加进“欢迎加进宿舍管造查询系统”界里,而后加进线性表创造界里中,输进教死的疑息,创造佳教死疑息以去单打“n”键则加进支配界里(主界里),而后可按键举止支配.单打数字键“1”,则为按姓名排序单打数字键“2”,则为按教号排序单打数字键“3”,则为按房号排序单打数字键“4”,则为按姓名查找单打数字键“5”,则为按教号查找单打数字键“6”,则为按教号查找单打数字键“7”,则为按教号拔出单打数字键“8”,则为按教号简略系统中犹如下闭键词汇:①提示:当输进的数字键为0时,退出支配;②请输进数字键(1~8为支配键);③请按任性键加进主界里.尝试数据:启初录进的数据:姓名教号房间号田浩然墨栖才丁强拔出的数据:姓名教号房间号殷林查找的数据:丁强(按姓名) 200910803050(按教号) 114(按房间号)简略的数据:200910803079(按教号)尝试输出截止(以运止截止图表示):欢迎界里:按任性键加进线性表的创造界里:输进数据,启初创造:请按键采用支配:4.3.5按姓名排序:按教号排序:按房号排序:拔出后隐现:按姓名查找:4.3.10按教号查找:4.3.11按房号查找:加进简略功能,简略数据后隐现结余的教死疑息:退出(数字为整时退出):①为了预防烦琐、矫正算法,正在一些函数中调用了其余的函数.如:正在按(姓名、教号、房号)查找中皆调用了 panduan1(ch) 战panduan2(ch)函数.②正在拔出战简略模块中,隐现教死的疑息的底下经常有主界里,通过调试,使用system("cls")函数浑屏后,隐现的惟有教死的疑息了,再按键即可返回主界里.③本步调多次使用了 disp()、menu()、system("cls")、fflush(stdin)等函数,通过多次调试,已经很佳的统造了隐现的教死疑息与主界里的变换.5 归纳通过本次数据结构课程安排,尔教到了很多,尔充分利用了那四天的时间,宽肃、独力的完成了做业.尔感触很谦脚,也很有成便感,许多曾自己不知讲的知识,目前知讲了并能流利的掌握了一些,比圆:(1)一个函数既能调用它自己也能调用其余函数;(2)如fflush(stdin) 函数,它的功能是浑空输进慢冲区,得到精确的输进数据;如system("cls")函数,它的功能是将屏幕先前隐现的真量浑理掉(3)尔往日不知讲scanf()战gets()输进函数的分歧之处,通过编程,调试,尔明黑了当scanf()输进字符串时不克不迭戴空格,可则不克不迭输出后里的字符,而gets()能输进戴空格的字符串.正在编程与调试历程中尔逢到了许多问题,简直问题如下:(1)往日不知讲怎么把各个函数编排正在所有,不克不迭产死一个总体模块,目前通过考查与调试,已经能组拆佳各个函数模块,使它们真止各自的功能.(2)正在按闭键字(姓名、教号、房号)查找中,由于题目节造了只可用二分查找办法举止查找,所以偶尔出现了闭键字相共时(列如房号相共),便只可查出并隐现出一个教死的疑息,果此,本步调还不敷完备.当使用程序查找时,便能查找出所用闭键字相共的教死的疑息.天然,当既按姓名又按教号还按房号查找时那便查找唯一.但是目前尔只可依照题目给的央供去干.(3)按(姓名、教号、房号)排序战查找功能每个函数皆写了一遍,很烦琐.C++中的函数模板能办理那个问题,但是对付于C++尔仍旧个初教者,目前还陌死得怎么样去使用它,所以还不克不迭对付此步调做进一步建改,但是尔疑赖,不必多暂,那个问题尔一定不妨办理.寡所周知,要教佳编程圆里那一齐,数据结构是必可少的,它内里有许多典范的算法战思维,是办理问题的必须品.很忸捏,虽然通过一教期的教习,但是尔掌握的知识很少,特天是树战图,只知讲皮毛,姑且还不克不迭用那二圆里的知识编程.正在本系统中,尔使用了数据结构中的线性表知识,使用程序线性表完成了宿舍管造查询硬件.正在那次课程安排中,通过自己的编成战调试、教授战共教的帮闲,尔乐成的完成了那次做业,虽然它的功能还不是很多,也不是很完备,但是尔仍旧非常的镇静,果为,它给尔删加了编程圆里的自疑心,使尔更有自疑心去齐力成为一个强力的步调员.参照文献[1]《C步调安排(第三版)》,谭浩强,浑华大教出版社,2005.[2]《数据结构》(C谈话版),宽蔚敏,浑华大教出版社,2003.[3]《数据结构题集》,宽蔚敏,浑华大教出版社,2005.[4]《数据结构》(C谈话版),刘大有,下等培养出版社,2004.[5]《Data Structure with C++》,William Ford.William Topp,浑华大教出版社,2003. [6]另有部分资料根源于互联网.。

宿舍管理系统_实验报告

宿舍管理系统_实验报告

一、实验目的1. 了解宿舍管理系统的基本功能和设计思路。

2. 掌握使用Java编程语言进行宿舍管理系统的开发。

3. 提高数据库设计和操作能力。

4. 提升软件工程和项目管理能力。

二、实验环境1. 操作系统:Windows 102. 开发工具:Eclipse IDE3. 数据库:MySQL 5.74. 编程语言:Java5. 网络环境:局域网三、实验内容1. 系统需求分析2. 系统设计a. 系统架构设计b. 数据库设计c. 界面设计3. 系统实现a. 数据库实现b. Java编程实现c. 界面实现4. 系统测试a. 功能测试b. 性能测试c. 稳定性测试四、实验步骤1. 系统需求分析a. 分析宿舍管理系统的功能需求,包括宿舍基本信息管理、学生信息管理、宿舍分配、退宿管理、报修管理等。

b. 分析系统性能需求,如响应时间、并发用户数等。

c. 分析系统安全性需求,如用户权限控制、数据加密等。

2. 系统设计a. 系统架构设计- 采用B/S架构,前端使用Java Swing或JavaFX进行界面设计,后端使用Java进行开发。

- 数据库采用MySQL,实现数据持久化。

b. 数据库设计- 设计宿舍表、学生表、报修表等数据表,包括字段和字段类型。

- 设计表之间的关系,如宿舍和学生之间的关系、报修和宿舍之间的关系等。

c. 界面设计- 设计登录界面、主界面、宿舍信息管理界面、学生信息管理界面等。

3. 系统实现a. 数据库实现- 使用MySQL数据库,创建数据表,并插入初始数据。

- 实现数据表的增删改查操作。

b. Java编程实现- 使用Java语言实现宿舍管理系统的功能模块。

- 实现用户权限控制,如管理员、宿舍管理员、学生等不同角色的操作权限。

c. 界面实现- 使用Java Swing或JavaFX实现宿舍管理系统的界面。

- 实现界面与功能模块的交互。

4. 系统测试a. 功能测试- 验证系统各个功能模块是否正常运行。

宿舍管理查询系统数据结构实验报告

宿舍管理查询系统数据结构实验报告

洛阳理工学院实验报告附:源程序:#include<stdio.h>#include<string.h>#include<stdlib.h>#define M 100int change=0; //用来判断是否已保存操作//定义一个存储学生相关信息的结构体typedef struct{char S_name[31]; //学生姓名char S_number[16]; //学生学号int D_number; //学生所在寝室的宿舍号}Stud;typedef struct{Stud student[M];int Total; //学生总数}Stu,*St;//判断学号是否与表中所存学号重复void S_number_Judge(St S,int t){int i;for(i=1;i<=(S->Total)-1;i++){if(i!=t){while((strcmp((S->student[i]).S_number,(S->student[t]).S_number)==0)&&(i!=t)) {printf("学号输入失败,该学号已存在,请重新输入学号!\n");printf("请输入学生的学号(15个字符以内):");scanf("%s",(S->student[t]).S_number);getchar();i=1;}}}}//添加学生信息函数void Add(St S){printf("请输入学生姓名(30个字符以内):");scanf("%s",(S->student[++(S->Total)]).S_name);getchar();//获取换行符printf("请输入学生的学号(15个字符以内):");scanf("%s",(S->student[S->Total]).S_number);getchar();S_number_Judge(S,S->Total);//判断输入的学号是否与表中所存在的学号重复printf("请输入宿舍号码:");scanf("%d",&(S->student[S->Total]).D_number);getchar();change=1;printf("添加成功!\n\n");}//修改学生信息函数void Alter(St S){int i;int flag=0; //用来判断表中是否存在所要修改的学生的信息char name[20];printf("请输入你要修改学生的姓名:");scanf("%s",name);getchar();for(i=1;i<=S->Total;i++)if(strcmp((S->student[i]).S_name,name)==0)flag=i;if(!flag)printf("你所要修改的学生信息在表中不存在!\n");else{printf("新信息如下:\n");printf("请输入学生姓名(30个字符以内):");scanf("%s",(S->student[flag]).S_name);getchar();printf("请输入学生的学号(15个字符以内):");scanf("%s",(S->student[flag]).S_number);getchar();S_number_Judge(S,flag);printf("请输入宿舍号:");scanf("%d",&(S->student[flag]).D_number);getchar();//getchar(n);change=1;printf("修改成功!\n");}putchar('\n');}//删除学生信息void Delete(St S){int i,j;int flag=0; //用来判断表中是否存在所要删除的学生的信息char name[20];printf("请输入你要删除学生的姓名:");scanf("%s",name);getchar();for(i=1;i<=S->Total;i++)if(strcmp((S->student[i]).S_name,name)==0)flag=i;if(!flag)printf("你所要删除的学生在表中不存在!");else{for(i=flag;i<S->Total;i++){j=i+1;strcpy((S->student[i]).S_name,(S->student[j]).S_name);strcpy((S->student[i]).S_number,(S->student[j]).S_number);(S->student[i]).D_number=(S->student[j]).D_number;}(S->Total)--;change=1;printf("删除成功!");}printf("\n\n");}//显示所有学生信息函数void Display_All(St S){int i;printf("全体学生信息如下:\n");printf("学生姓名学生学号宿舍号\n");for(i=1;i<=S->Total;i++)printf("%-20s%-15s%-5d\n",(S->student[i]).S_name,(S->student[i]).S_number,(S->student[i] ).D_number);putchar('\n\n');}//排序函数按照寝室号从小到大排序(冒泡法)void Sort_D_number(St S){int i,j,t;char name[30];char number[15];for(i=1;i<=S->Total;i++)for(j=i;j<=S->Total;j++)if((S->student[i]).D_number>(S->student[j]).D_number){strcpy(name,(S->student[i]).S_name);strcpy(number,(S->student[i]).S_number);t=(S->student[i]).D_number;strcpy((S->student[i]).S_name,(S->student[j]).S_name);strcpy((S->student[i]).S_number,(S->student[j]).S_number);(S->student[i]).D_number=(S->student[j]).D_number;strcpy((S->student[j]).S_name,name);strcpy((S->student[j]).S_number,number);(S->student[j]).D_number=t;}}//排序函数按照学号从小到大排序(冒泡法)void Sort_S_number(St S){int i,j,t;char name[30];char number[15];for(i=1;i<=S->Total;i++)for(j=i;j<=S->Total;j++)if(strcmp((S->student[i]).S_number,(S->student[j]).S_number)>0){strcpy(name,(S->student[i]).S_name);strcpy(number,(S->student[i]).S_number);t=(S->student[i]).D_number;strcpy((S->student[i]).S_name,(S->student[j]).S_name);strcpy((S->student[i]).S_number,(S->student[j]).S_number);(S->student[i]).D_number=(S->student[j]).D_number;strcpy((S->student[j]).S_name,name);strcpy((S->student[j]).S_number,number);(S->student[j]).D_number=t;}}//查询函数以姓名为关键字进行查询(顺序查找)void Query_S_name(St S){int i,j=0;char name[31];printf("请输入你要查找的学生的姓名(30个字符以内):");scanf("%s",name);getchar();printf("所查找学生信息如下:\n");printf("学生姓名学生学号宿舍号\n");for(i=1;i<=S->Total;i++)if(strcmp(name,(S->student[i]).S_name)==0){printf("%-20s%-15s%-5d\n",(S->student[i]).S_name,(S->student[i]).S_number,(S->student[i] ).D_number);j=1;}if(!j)printf("\n查找失败,表中不存在该学生的信息!\n\n");}//查询函数以学号为关键字进行查询(折半查找)void Query_S_number(St S){int flag,top,bottom,mid;char number[15];flag=0;bottom=1;top=S->Total;printf("请输入你要查找学生的学号:");scanf("%s",number);getchar();Sort_S_number(S); //将表中原数据按照学号从小到大排序printf("所查找学生信息如下:\n");printf("学生姓名学生学号宿舍号\n");if(strcmp(number,(S->student[1]).S_number)>=0&&strcmp(number,(S->student[S->Total]).S_number)<=0){while(bottom<=top){mid=(bottom+top)/2;if(strcmp(number,(S->student[mid]).S_number)==0){printf("%-20s%-15s%-5d\n",(S->student[mid]).S_name,(S->student[mid]).S_number,(S->stu dent[mid]).D_number);putchar('\n');flag=1;break;}else if(strcmp(number,(S->student[mid]).S_number)>0)bottom=mid+1;elsetop=mid-1;}}if(!flag)printf("\n查找失败,表中不存在该学生的信息!\n\n");}//查询函数以寝室号为关键字进行查询(折半查找)void Query_D_number(St S){int i,j,m,n,base,top,mid;j=0;base=1;top=S->Total;printf("请输入你要查询的寝室号:");scanf("%d",&i);getchar();Sort_D_number(S);//将表中原数据按照寝室号从小到大排序printf("所查找寝室信息如下:\n");printf("学生姓名学生学号宿舍号\n");if(i>=(S->student[1]).D_number&&i<=(S->student[S->Total]).D_number){while(base<=top){mid=(base+top)/2;if(i==(S->student[mid]).D_number){m=mid;n=mid-1;while((S->student[m]).D_number==i){printf("%-20s%-15s%-5d\n",(S->student[m]).S_name,(S->student[m]).S_number,(S->stu dent[m]).D_number);m++;if(m>S->Total)break;}if(n>0){while((S->student[n]).D_number==i){printf("%-20s%-15s%-5d\n",(S->student[n]).S_name,(S->student[n]).S_number,(S->stud ent[n]).D_number);n--;if(n<1)break;}}j=1;putchar('\n');break;}else if(i>(S->student[mid]).D_number)base=mid+1;elsetop=mid-1;}}if(!j)printf("\n查找失败,表中不存在该寝室的信息!\n\n"); }void Search(St S){int j;printf("***********************************\n");printf("************按1按姓名查找***********\n");printf("************按2按学号查找***********\n");printf("************按3按寝室号查找**********\n");printf("***********************************\n");do{printf("请输入信息\n");scanf("%d",&j);getchar();putchar('\n');switch(j){case 1 : Query_S_name(S);break;case 2 : Query_S_number(S);break;case 3 : Query_D_number(S);break;default: printf("选择错误:请在选项之间选择!\n\n");break;}}while ((j!=1)&&(j!=2)&&(j!=3));}void Menu(){ //菜单printf("\n");printf("~~~~~~~~~~~~~~~~~~~~~~~欢迎进入宿舍管理系统~~~~~~~~~~~~~~~~~~~~~~~\n");printf("*******************************菜单*******************************\n");printf("-------------------------按a.添加学生信息-------------------------\n");printf("-------------------------按b.修改学生信息-------------------------\n");printf("-------------------------按c.删除学生信息-------------------------\n");printf("-------------------------按d.查询学生信息-------------------------\n");printf("-----------------------按e.显示所有学生信息-------------------------\n");printf("****************************************************************** *\n");}void main(){char i;St S;S=(St)malloc(sizeof(Stu));S->Total=0;Menu();do{printf("请选择所要实现的功能(请输入a~e中的任意一个数字):");scanf("%s",&i);getchar(); //获取换行符putchar('\n');switch(i){case 'a':Add(S);break;case 'b':Alter(S);break;case 'c':Delete(S);break;case 'd':Search(S);break;case 'e':Display_All(S);default:printf("选择错误:请在选项之间选择!\n\n");break;}}while(i!='h');}忽略此处..。

管理信息系统实验报告-学生宿舍管理系统

管理信息系统实验报告-学生宿舍管理系统

管理信息系统实验报告-学生宿舍管理系统管理信息系统实验报告学生宿舍管理系统一、引言随着高校招生规模的不断扩大,学生宿舍管理工作变得越来越复杂和繁重。

传统的手工管理方式已经难以满足现代高校学生宿舍管理的需求,因此开发一个高效、便捷的学生宿舍管理系统显得尤为重要。

本实验旨在通过设计和实现一个学生宿舍管理系统,提高宿舍管理的效率和质量,为学生提供更好的住宿服务。

二、系统分析(一)需求分析1、学生信息管理:包括学生的基本信息、入住信息、调宿信息等。

2、宿舍信息管理:包括宿舍的基本信息、床位信息、卫生情况等。

3、住宿分配管理:能够根据学生的班级、性别等条件进行合理的住宿分配。

4、费用管理:包括住宿费的收取、欠费提醒等。

5、报修管理:学生能够在线提交报修申请,管理员能够及时处理并反馈维修进度。

6、访客管理:记录访客的信息和进出时间。

(二)可行性分析1、技术可行性:采用现有的成熟技术,如数据库管理系统、编程语言等,能够满足系统开发的需求。

2、经济可行性:开发成本相对较低,且能够提高管理效率,节省人力和物力资源,具有较好的经济效益。

3、操作可行性:系统界面简洁直观,操作方便,管理人员和学生能够快速上手使用。

三、系统设计(一)总体设计1、系统采用 B/S 架构,用户通过浏览器访问系统。

2、系统分为学生端、管理员端和宿管端三个部分,分别提供不同的功能。

(二)数据库设计1、设计了学生表、宿舍表、住宿分配表、费用表、报修表、访客表等多张数据表。

2、确定了数据表之间的关系,通过主键和外键进行关联。

(三)功能模块设计1、学生信息管理模块:实现学生信息的添加、修改、查询和删除功能。

2、宿舍信息管理模块:实现宿舍信息的添加、修改、查询和删除功能,以及床位的分配和调整。

3、住宿分配管理模块:根据学生的班级、性别等条件进行自动分配或手动调整。

4、费用管理模块:实现住宿费的计算、收取、欠费提醒等功能。

5、报修管理模块:学生提交报修申请,管理员和宿管安排维修人员并反馈维修进度。

数据结构宿舍管理系统实验报告

数据结构宿舍管理系统实验报告

数据结构课程设计报告设计题目宿舍管理系统专业信息技术学院班级计算机科学与技术姓名顾文婷学号121114045完成日期2014年6月10日目录1. 问题描述 (3)2. 系统设计………………………………………………3.43. 数据结构与算法描述…………………………………4-74. 测试结果与分析………………………………………8-135. 总结………………………………………………13-146. 参考文献 (14)附录程序源代码………………………………… 15-35宿舍管理系统1. 问题描述建立宿舍管理系统,统计信息包括学生姓名,年龄,出生年月日,性别,学号,班级,系别,床号。

2. 系统设计2.1 设计目标宿舍一般由若干学生入驻,每个宿舍都有独立唯一的编号,入住学生也有唯一的学号,另外添加学生的姓名和班级,使用这些关键字就可以方便的查询和管理宿舍入住情况。

程序设计应采用交互工作方式,并建立数据文件。

程序应通过建立子函数实现创建、保存与载入数据文件,查找、添加、删除、更改、显示等功能,可以自动保存修改。

应具有友好的界面和较强的容错能力。

能够迅速准确地完成各种学生信息的统计和查询,以方便管理员对学生信息的统一管理。

2.2 设计思想为方便管理员对系统进行操作,程序应具有以下功能:(1)创建宿舍数据文件,并提示管理员输入学生姓名、学号、宿舍号、班级等信息,并在本地保存数据文件(2)打开宿舍数据文件:输入文件名打开保存过的数据文件(3)查询住宿信息:提供学号、姓名、宿舍号三种查询方式(4)添加住宿信息:在数据文件中添加新的住宿信息(5)删除住宿信息:提示管理员输入要删除的学生姓名,验证后删除(6)修改住宿信息:提示管理员输入要修改的学生姓名,验证后修改(7)输出数据文件:将住宿信息按学号的大小排序全部输出(8)退出系统2.3 系统模块划分(要给出流程图)3. 数据结构与算法描述函数原型函数功能函数处理描述void creat() 初始条件,创建新数据文件,用于存放学生信息调用文件操作函数来实现void readfile() 文件读取函数,打开已有的数据文件调用文件操作函数来实现void output() 输出函数,用于输出所有的学生信息调用文件操作函数,并将学号作为关键字进行冒泡排序再输出void namesearch () 查找函数,用于以姓名为关键字查询使用指针,将关键字与记录比较,若相同则输出void numsearch() 查找函数,用于以学号为关键字查询使用指针,将关键字与记录比较,若相同则输出Void dorsearch () 查找函数,用于以房号为关键字查询使用指针,将关键字与记录比较,若相同则输出void add() 添加函数,以姓名为关键字加入新的学生信息使用指针,建立一个新节点,将新信息插入原文件中void modify() 修改函数,用于以修改已存在的学生信息,以姓名为关键字使用指针,将关键字与记录比较,若相同则更改原纪录并保存在原文件中void deleted() 删除函数,用于删除所选的学生信息,以姓名为关键字使用指针,将关键字与记录比较,若相同则删除一切相关记录void main() 主函数,用于调用子函数按照输入的命令调用已定义的子函数3.1创建功能(void creat())使用函数新建链表,再使用while循环完成对宿舍数据的录入,包括姓名、学号、班级、宿舍号等信息。

宿舍管理系统实验报告

宿舍管理系统实验报告

华中师范大学计算机课学习系软件工程专业数据库课程设计实验报告小组成员:沈舒洋,张大鹏2013/1/1本实验参考《JSP网络开发逐步深入》,由小组成员设计编写。

课程设计报告一、课程设计任务宿舍管理系统的开发三、系统总体设计1.系统架构设计(1)架构:B/S系统,客户端通过浏览器登陆进行操作(2)运行软件环境:windows7,xp 、jdk1.6(3)开发环境:硬件平台:服务器:tomcat 6.0.20CPU:P41.8GHz内存:256MB以上软件平台:windows 7,xp、jdk1.6操作系统:Windows7,xp数据库:mysql数据库驱动:mysql-connector-java-5.1.7-bin.jar开发工具:myEclipse 10分辨率:1024*7682.各模块功能:一,学生信息管理模块学生信息管理主要针对的是住宿学生,该模块具体功能如下1,学生基本信息查询实现学生基本信息的显示。

2,学生信息修改对学生的基本信息进行修改,学号不能修改。

3,学生信息删除删除相应的学生信息二,宿舍查询模块宿舍信息查询模块主要是对学校内的所有宿舍信息进行查询,该模块的查询分两种。

包括以下几种功能。

1,宿舍基本信息查询显示宿舍基本信息。

2,宿舍详细查询可以查询到每一个宿舍的详细信息三,来访等级模块来访登记模块是宿舍管理系统的基本模块之一,其主要功能是记录来客的基本信息及来客建议,对已记录的信息进行浏览。

1,登记来客信息记录来客的基本信息及意见2,信息查询查询已有的记录四,宿舍评分模块评分模块主要考核宿舍卫生,平时表现等。

宿舍评分模块的主要作用是查询所有宿舍得分情况,并且可以对当前得分进行修改。

1,宿舍得分查询查询所有宿舍的得分情况2,宿舍得分修改对宿舍的得分进行修改五,综合查询模块综合查询模块属于学生宿舍管理系统的核心模块之一,主要功能是根据用户输入的关键字在数据库中检索,可以选择一定的条件。

自-数据结构课设报告-宿舍管理系统

自-数据结构课设报告-宿舍管理系统

宿舍管理系统一目的根据所学知识,编写指定题目的C语言程序,并规范地完成课程设计报告。

通过课程设计,加深对《程序设计语言》和《软件技术基础》课程所学知识的理解,熟练掌握和巩固C 语言的基本知识和语法规范,包括:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);库函数应用等;复杂任务功能分解方法(自顶向下逐步求精、模块化设计、信息隐藏等),熟练掌握和巩固三种基本的数据结构(线性结构、树形结构、图形结构)的逻辑结构、存储结构以及相关运算和应用。

学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备利用计算机编程分析解决综合性实际问题的初步能力。

二需求分析1、要求1)采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体结构设计合理。

学生也可根据自己对题目的理解增加新的功能模块(视情况可另外加分)。

2)系统以菜单界面方式(至少采用文本菜单界面,如能采用图形菜单界面更好)工作,运行界面友好,演示程序以用户和计算机的对话方式进行。

3)程序算法说明清晰,理论分析与计算正确,运行情况良好,实验测试数据无误,容错性强(能对错误输入进行判断控制)。

4)编程风格良好(包括缩进、空行、适当注释、变量名和函数名见名知意,程序容易阅读等)。

2、详细功能宿舍信息包括:宿舍号、性别、容纳人数、住宿费用、住宿学生姓名。

试设计一宿舍信息管理系统,使之能提供以下功能:1.宿舍基本信息(包含宿舍号、性别、容纳人数、住宿费用)录入;2.将学生分配到指定宿舍号的宿舍;3.已住宿的学生退宿舍;4.查询宿舍信息,包括宿舍号、性别、容纳人数、住宿费用、已住宿的人数、已住宿学生姓名。

5.系统以菜单方式工作。

三概要设计流程图相关叙述:用户运行程序时便正式进行了通讯录的使用,该通讯录分为五个功能,“1”选项对应的是“宿舍信息录入”功能;“2”选项对应的是“将学生分配到宿舍”功能;“3”选项对应的是“已住宿学生退宿”功能;“4”选项对应的是“删宿舍信息查询”功能;“5”选项对应的是“退出系统”功能。

学生宿舍管理系统实验报告

学生宿舍管理系统实验报告

学生宿舍管理系统实验报告一、引言二、系统设计1.系统功能(1)学生信息管理:包括学生的基本信息、宿舍分配信息、入住时间等。

(2)宿舍楼信息管理:包括宿舍楼的基本信息、楼层信息和宿舍房间信息等。

(3)宿舍房间信息管理:包括每个宿舍房间的基本信息、床位数量、入住状态等。

(4)宿舍卫生检查:记录宿舍卫生检查的结果,及时通知学生进行整改。

(5)报修管理:学生可通过系统提交宿舍内的故障维修请求,由维修人员及时处理。

(6)公告通知:管理人员可发布公告通知,方便与学生进行信息交流。

(7)数据统计与查询:系统提供各项数据的统计和查询功能,方便管理人员掌握宿舍情况。

2.系统设计与实现(1)采用Java语言作为开发语言,使用MySQL数据库进行数据的存储与管理。

(2)系统界面采用图形界面设计,方便用户使用。

(3)系统采用分层架构设计,包括用户界面层、业务逻辑层和数据访问层。

三、实验过程与结果1.用户界面设计(1)登录界面:学生和管理员分别有不同的登录入口,输入账号和密码后可进入系统。

(2)学生主界面:学生可查看个人信息、宿舍信息,提交报修请求等。

(3)管理员主界面:管理员可进行学生信息管理、宿舍信息管理等操作。

2.数据库设计(1)学生信息表:包括学生学号、姓名、性别、年级、专业等字段。

(2)宿舍楼信息表:包括楼号、楼层数量、床位数量等字段。

(3)宿舍房间信息表:包括房间号、床位数量、入住状态等字段。

(4)宿舍卫生检查记录表:包括记录ID、房间号、检查时间、检查结果等字段。

(5)报修记录表:包括记录ID、房间号、报修时间、故障描述等字段。

3.功能实现(1)学生信息管理:实现学生信息的增、删、改、查功能。

(2)宿舍楼信息管理:实现宿舍楼信息的增、删、改、查功能。

(3)宿舍房间信息管理:实现宿舍房间信息的增、删、改、查功能。

(4)宿舍卫生检查:管理员可进行宿舍卫生检查,并记录检查结果。

(5)报修管理:学生可通过系统提交宿舍内的故障报修请求,由维修人员处理。

软件工程实验报告宿舍管理系统

软件工程实验报告宿舍管理系统

软件工程实验报告宿舍管理系统学校专业学号姓名一、系统分析 (3)1.业务流程图 (3)二、需求分析 (3)三、系统整体设计 (5)1.系统管理模块 (5)2.宿舍信息管理模块 (5)3.学生入住管理模块 (5)4.宿舍卫生检查模块 (5)5.水电收费模块 (6)6.报修管理模块 (6)7.来访人员管理模块 (6)8.报表统计模块 (6)四、功能描述: (7)1.宿舍管理系统总数据流图: (7)2.宿舍信息登记分数据流图: (7)3.入住学生信息登记分数据流图: (7)4.宿舍卫生检查分数据流图: (8)5.宿舍水电收费分数据流图: (8)6.宿舍报修分数据流图: (9)7.来访人员登记分数据流图: (9)五静态结构模型 (9)1.定义系统对象 (9)六、软件运行需求 (10)1.硬件接口 (10)2.软件接口 (10)3.故障处理 (10)4.其他问题: (10)七、数据字典(DD) (10)一、系统分析1.业务流程图3种不同权限的用户进入特定的界面进行各自操作。

以学生用户权限登录,操作流程如图1-2所示:以员工权限登录,操作流程如图1-3所示:以最高管理员权限登录,操作流程如图1-4所示:二、需求分析在本系统分析中采用用例驱动的分析方法分析需求的主要任务,识别参与者和识别用例。

并建立用例模型。

由于学生宿舍管理工作存在工作量大、事务繁琐的特点,宿舍管理人员需付出大量的工作时间来从事各种事务性工作,但工作的效率很低。

为提高工作效率,减轻校方人员的工作负担,决定针对学生宿舍管理开发管理系统软件,以供宿舍管理人员通过电脑操作进行宿舍管理,从而使学校的宿舍管理工作系统化、规范化、自动化,提供整个宿舍管理的效率,使总体管理水平上升到一个新的高度。

本系统能减少很多不必要的资源,消除了以前用冗余的纸张式管理,大节省了学校能源。

并且计算机的存储与快速查询功能大大提高了宿舍管理的效率,并且还提高了学籍信息管理的精确度。

数据结构课程设计报告宿舍管理系统完整版

数据结构课程设计报告宿舍管理系统完整版

数据结构课程设计报告宿舍管理系统HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】数据结构课程设计报告设计题目:学生宿舍管理系统学院:年级专业:姓名:学号:指导老师:1.设计目的宿舍对于大学生在校生活来说相当于家的存在,而宿舍管理又是学校后勤管理的重要环节,如何直观的了解宿舍的入住情况和每位同学的住宿位置是提高工作效率的重要课题,根据我们所学的C语言和数据结构课程中有关链表及外部文件的内容,为后勤管理人员编写宿舍管理查询软件, 就可以轻松满足实现上述需求。

通过实际课题设计,可以对我们加深书本知识理解,了解并掌握数据结构与算法的设计方法,培养独立分析和设计能力,掌握软件开发过程的基本方法和技能,对我们的个人素质提高大有脾益。

2.需求分析性能分析宿舍一般由若干学生入驻,每个宿舍都有独立唯一的编号,入住学生也有唯一的学号,另外添加学生的姓名和班级,使用这些关键字就可以方便的查询和管理宿舍入住情况。

程序设计应采用交互工作方式,并建立数据文件。

程序应通过建立子函数实现创建、保存与载入数据文件,查找、添加、删除、更改、显示等功能,可以自动保存修改。

应具有友好的界面和较强的容错能力。

能够迅速准确地完成各种学生信息的统计和查询,以方便管理员对学生信息的统一管理。

功能分析为方便管理员对系统进行操作,程序应具有以下功能:(1)创建宿舍数据文件,并提示管理员输入学生姓名、学号、宿舍号、班级等信息,并在本地保存数据文件(2)打开宿舍数据文件:输入文件名打开保存过的数据文件(3)查询住宿信息:提供学号、姓名、宿舍号三种查询方式(4)添加住宿信息:在数据文件中添加新的住宿信息(5)删除住宿信息:提示管理员输入要删除的学生姓名,验证后删除(6)修改住宿信息:提示管理员输入要修改的学生姓名,验证后修改(7)输出数据文件:将住宿信息按学号的大小排序全部输出(8)退出系统3.程序结构及流程设计系统流程图4.系统详细设计数据结构设计修改界面删除界面添加界面输出界面本地数据文件系统分析经过测试,该宿舍管理系统结构清晰,运行时测试也相对简单。

数据结构——宿舍管理查询系统 实验报告

数据结构——宿舍管理查询系统 实验报告

} //删除学生信息 void Delete(St S) { int i,j; int flag=0; //用来判断表中是否存在所要删除的学生的信 息 char name[20]; printf("请输入你要删除学生的姓名:"); scanf("%s",name); getchar(); for(i=1;i<=S->Total;i++) if(strcmp((S->student[i]).S_name,name)==0) flag=i; if(!flag) printf("你所要删除的学生在表中不存在!"); else { for(i=flag;i<S->Total;i++) { j=i+1; strcpy((S->student[i]).S_name,(S>student[j]).S_name);
strcpy((S->student[j]).S_name,name); strcpy((S->student[j]).S_number,number); (S->student[j]).D_number=t; } } void Sort_S_number(St S) //按照学号从小到大排序(冒泡法) { int i,j,t; char name[30]; char number[15]; for(i=1;i<=S->Total;i++) for(j=i;j<=S->Total;j++) if(strcmp((S->student[i]).S_number,(S>student[j]).S_number)>0) { strcpy(name,(S->student[i]).S_name); strcpy(number,(S->student[i]).S_number); t=(S->student[i]).D_number; strcpy((S->student[i]).S_name,(S>student[j]).S_name); strcpy((S->student[i]).S_number,(S>student[j]).S_number); (S->student[i]).D_number=(S>student[j]).D_number; strcpy((S->student[j]).S_name,name); strcpy((S->student[j]).S_number,number); (S->student[j]).D_number=t; } } //以姓名为关键字进行查询(顺序查找) void Query_S_name(St S) { int i,j=0; char name[31]; printf("请输入要查找的学生的姓名(30个字符以内):"); scanf("%s",name); getchar(); printf("要查找的学生信息如下:\n"); printf("学生姓名 学生学号 宿舍号\n"); for(i=1;i<=S->Total;i++) if(strcmp(name,(S->student[i]).S_name)==0) { printf("%-20s%-15s%-5d\n",(S-

宿舍管理查询软件报告

宿舍管理查询软件报告

. . . 《数据结构》课程设计报告设计题目宿舍管理查询软件专业软件工程班级姓名学号完成日期目录1. 问题描述 (2)2. 系统设计 (2)3. 数据结构与算法描述 (5)4. 测试结果与分析………………………………………页码5. 总结…………………………………………………页码6. 参考文献………………………………………………页码附录程序源代码…………………………………………页码(要求:给出一级目录,宋体加粗,四号字,1.5倍行距。

)(报告正文部分):宿舍管理查询软件(要求:正文部分一律用小四号字,宋体,1.5倍行距。

一级标题靠左,四号加粗。

二级、三级标题靠左,小四加粗。

)1. 问题描述由于大学宿舍宿舍楼群过多,且每栋宿舍居住学生较多,因此宿舍管理与查询的任务非常繁重和复杂,然而多大学宿舍还未普及电子信息管理式,还在采用传统的笔录备案管理查询式,因此,为提高宿舍管理人员的工作效率便其对学生宿舍的管理提出此开发项目。

2. 系统设计2.1 设计目标学生宿舍管理系统采用的是计算机化管理,系统界面做的尽量人性化,系统具有运行速度快、安全性高、稳定性好的优点,并且具备完善的报表生成、修改功能,能够快速的查询学校所需的住宿信息。

基本功能:(1)采用交互工作式(2)建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)(3)实现如下查询功能: 按姓名查询按学号查询按房号查询(4)可打印任意查询结果(可以连续操作)2.2 设计思想①要实现交互工作式,各项操作结束后均应返回主菜单;要确保系统的密性和安全性,就应当具有某些操作权限,没有系统管理员或者普通用户的用户名和密码任人都不能登录该系统;在具体实现时还应为系统管理员和普通用户设定不同的权限,系统管理员应当可以使用系统的所有模块,普通用户对于用户管理模块、学生学期注册(涉及到交费问题)及学生毕业离校等(此模块需判断该生有无欠费)牵扯到经济之类的模块是无权使用的。

宿舍管理查询软件实训报告

宿舍管理查询软件实训报告

目 录1 实训目的 ......................................................................................... 1 2 宿舍管理查询软件系统的分析与数据库设计 ............................... 1 2.1 系统功能描述 . (1)2.1.1 数据库模块…………………………………………1 2.1.2java与数据库的链接模块 (1)2.1.3java 程序执行模块 (1)2.2 系统模块分析 ...................................................................... 1 2.3 数据库结构设计. (2)2.3.1 概念结构设计 (2)2.3.2 数据字典 (2)2.3.3 实体关系表示设计.......................................2 3 主要代码清单................................................................................ 3 4 程序运行与测试 .......................................................................... 17 5 实训总结 . (17)……………………………装……………………………………订…………………………………线……………………………宿舍管理查询软件系统的设计与实现1 实训目的此次实训的主要目的在于将理论与实际应用相结合,巩固软件开发技术与数据库的基本知识,使用程序设计语言java和数据库技术,以及相关软件设计开发知识完成软件的设计开发任务。

此次实训课程将为整个专业的学习以及软件设计水平的提高打下良好的基础,提高我们项目分析、设计、编写、调试和测试的能力,并培养基本的、良好的团队合作能力。

数据结构宿舍管理查询系统的实现课程设计报告

数据结构宿舍管理查询系统的实现课程设计报告

2014-2015学年第一学期《数据结构》课程设计报告题目:宿舍管理查询系统的实现专业:班级:姓名:学号:指导教师:成绩:计算机与信息工程系2014年10 月25 日目录1设计任务....................................................... 错误!未定义书签。

2总体设计. (4)3系统流程图 (5)4详细设计及测试 (5)5心得体会 (16)致谢 (13)参考文献 (14)附录:源代码 (15)1设计任务题目:宿舍管理查询软件任务:为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求:(1)建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)(2)实现如下查询功能:按姓名查询按学号查询按房号查询(3)打印任意查询结果(可以连续操作)针对题目所要求的功能不太多,我特意添加了插入数据、读入文件数据以及将数据写入文件三个额外功能。

2总体设计根据系统要求,即本系统具有信息的录入,显示,排序显示、查找,插入、从文件中读入数据、循环写入数据、结束程序等功能,先设计出详细的系统流程图,然后将源代码输入程序,进行编译调试即可。

程序总体分12个项目:输入记录、显示记录、按姓名排序并显示、按房间号排序并显示、按学号排序并显示、按姓名查找并显示、按房间号查找并显示、按学号查找并显示、插入一条记录按学号排序并显示、从文件中读入数据、循环写入数据以及结束程序。

3系统流程图系统流程图下页图1所示否图1图1系统流程图4详细设计及测试根据流程图,将程序源代码输入到编译环境中,按照提示选择进行记录的输入,输入一个数据后提示是否继续输入,直到结束程序为止。

将程序编译生成“学生宿舍管理系统.exe”。

运行该文件如图2所示。

图2 输出界面图输入记录采用循环输入while(sign!='n' && sign!='N') /*判断*/{printf("\t\t姓名:");scanf("\t\t%s", &room[n+i].name);printf("\t\t学号:");scanf("\t\t%s", &room[n+i].num);printf("\t\t房间号:");scanf("\t\t%s",&room[n+i].roomnum);printf("\t\t是否继续输入?(Y/N)");scanf("\t\t%c",&sign); /*输入判断*/i++;}返回(n+i);按照提示选择“1”进行记录的输入如图3所示:图3 输入记录显示图连续输入多组数据后,按“n”结束输入,提示按任意键继续,按任意键后选择“2”进行记录的显示如图4所示。

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

} //删除学生信息 void Delete(St S) { int i,j; int flag=0; //用来判断表中是否存在所要删除的学生的信 息 char name[20]; printf("请输入你要删除学生的姓名:"); scanf("%s",name); getchar(); for(i=1;i<=S->Total;i++) if(strcmp((S->student[i]).S_name,name)==0) flag=i; if(!flag) printf("你所要删除的学生在表中不存在!"); else { for(i=flag;i<S->Total;i++) { j=i+1; strcpy((S->student[i]).S_name,(S>student[j]).S_name);
{ student[M]; int Total; }Stu,*St; 3. 模块划分 (1)添加学生信息:void Add(St S) (2)修改学生信息:void Alter(St S) (3)删除学生信息:void Delete(St S) (4)显示所有学生信息:void Display_All(St S) (5)按照寝室号从小到大排序:void Sort_D_number(St S) (6)按照学号从小到大排序:void Sort_S_number(St S) (7)以姓名为关键字查找:void Query_S_name(St S) (8)以学号为关键字进行查找:oid Query_S_number(St S) (9)以寝室号为关键字进行查找:void Query_D_number(St S) (10)主函数:void main() 4. 详细设计 #include<stdio.h> #include<string.h> #include<stdlib.h> #define M 100 int change=0; //用来判断是否已保存操作 typedef struct { char S_name[31]; char S_number[16]; int D_number; }Stud; typedef struct { Stud student[M]; int Total; }Stu,*St; //判断学号是否与表中所存学号重复 void S_number_Judge(St S,int t) { int i; for(i=1;i<=(S->Total)-1;i++) Stud
strcpy((S->student[i]).S_number,(S>student[j]).S_number); (S->student[i]).D_number=(S>student[j]).D_number; } (S->Total)--; change=1; printf("信息删除成功!"); } printf("\n\n"); } //显示所有学生信息函数 void Display_All(St S) { int i; printf("全体学生信息如下:\n"); printf("学生姓名 学生学号 学生房号\n"); for(i=1;i<=S->Total;i++) printf("%-20s%-15s%-5d\n",(S->student[i]).S_name, (S->student[i]).S_number,(S>student[i]).D_number); putchar('\n\n'); } void Sort_D_number(St S) //按照房号从小到大排序(冒泡法) { int i,j,t; char name[30]; char number[15]; for(i=1;i<=S->Total;i++) for(j=i;j<=S->Total;j++) if((S->student[i]).D_number>(S>student[j]).D_number) { strcpy(name,(S->student[i]).S_name); strcpy(number,(S->student[i]).S_number); t=(S->student[i]).D_number; strcpy((S->student[i]).S_name,(S>student[j]).S_name); strcpy((S->student[i]).S_number,(S>student[j]).S_number); (S->student[i]).D_number=(S>student[j]).D_number;
>student[i]).S_name, (S->student[i]).S_number,(S>student[i]).D_number); j=1; } if(!j) printf("\n查找失败,表中不存在该学生的信息!\n\n"); } //以学号为关键字进行查询(折半查找) void Query_S_number(St S) { int flag,top,bottom,mid; char number[15]; flag=0; bottom=1; top=S->Total; printf("请输入你要查找学生的学号:"); scanf("%s",number); getchar(); Sort_S_number(S); //将表中原数据按照学号从小到大排序 printf("要查找的学生信息如下:\n"); printf("学生姓名 学生学号 宿舍号\n"); if(strcmp(number,(S->student[1]).S_number)>=0&& strcmp(number,(S->student[S->Total]).S_number) <=0) { while(bottom<=top) { mid=(bottom+top)/2; if(strcmp(number,(S>student[mid]).S_number)==0) { printf("%-20s%-15s%-5d\n",(S>student[mid]).S_name, (S->student[mid]).S_number,(S>student[mid]).D_number); putchar('\n'); flag=1; break; } else if(strcmp(number,(S>student[mid]).S_number)>0)
洛阳理工学院实验报告
系别 计 算 机 系 班级 学号 姓名
课程名称 实验名称
数据结构 宿舍管理查询系统
ቤተ መጻሕፍቲ ባይዱ
实验日期 成绩
实验目的: 掌握数据结构的两种基本技术:查找和排序,根据实际情况选 择效率较高的算法解决应用问题。 实验条件: 计算机一台,Visual C++6.0 实验内容: 1. 问题描述 为宿舍管理人员设计一个宿舍管理查询系统, 程序采用交互工 作方式,完成下列功能: (1)建立合适的数据结构作为查找表并输入数据; 数据分别按关键字姓名、学号、房号进行排序(所学排序算法任 选一种效率较高的算法); (2)设计查询菜单,按指定关键字姓名、学号、房号进行查询并 输出结果,要求查询采用效率较高的算法实现; (3)可以连续查询; 2. 数据结构类型定义 typedef struct { char S_name[31]; char S_number[16]; int D_number; }Stud; typedef struct
strcpy((S->student[j]).S_name,name); strcpy((S->student[j]).S_number,number); (S->student[j]).D_number=t; } } void Sort_S_number(St S) //按照学号从小到大排序(冒泡法) { int i,j,t; char name[30]; char number[15]; for(i=1;i<=S->Total;i++) for(j=i;j<=S->Total;j++) if(strcmp((S->student[i]).S_number,(S>student[j]).S_number)>0) { strcpy(name,(S->student[i]).S_name); strcpy(number,(S->student[i]).S_number); t=(S->student[i]).D_number; strcpy((S->student[i]).S_name,(S>student[j]).S_name); strcpy((S->student[i]).S_number,(S>student[j]).S_number); (S->student[i]).D_number=(S>student[j]).D_number; strcpy((S->student[j]).S_name,name); strcpy((S->student[j]).S_number,number); (S->student[j]).D_number=t; } } //以姓名为关键字进行查询(顺序查找) void Query_S_name(St S) { int i,j=0; char name[31]; printf("请输入要查找的学生的姓名(30个字符以内):"); scanf("%s",name); getchar(); printf("要查找的学生信息如下:\n"); printf("学生姓名 学生学号 宿舍号\n"); for(i=1;i<=S->Total;i++) if(strcmp(name,(S->student[i]).S_name)==0) { printf("%-20s%-15s%-5d\n",(S-
相关文档
最新文档