宿舍管理查询软件
学生宿舍管理系统
引言概述:学生宿舍管理系统是为了提高学生宿舍管理效率和便利性而开发的一种软件工具。
本文是《学生宿舍管理系统》系列的第二篇,将详细介绍该系统的五个主要功能模块,包括学生信息管理、宿舍分配管理、设备维修管理、卫生检查管理和安全管理。
正文内容:一、学生信息管理:1. 学生信息录入:通过系统录入学生的基本信息,例如姓名、性别、年级、专业等。
2. 学生信息查询:提供学生信息查询功能,包括按姓名、学号、年级等条件查询学生信息。
3. 学生信息修改:允许管理员对学生信息进行修改,包括学生的联系方式、紧急联系人等。
4. 学生信息删除:确保只有管理员才能删除学生信息,避免误操作。
5. 学生信息导入导出:支持将学生信息导出为Excel或CSV格式,方便管理员进行备份和数据分析。
二、宿舍分配管理:1. 宿舍分配规则:制定宿舍分配的规则,例如按性别、年级、学号等进行分配。
2. 宿舍分配策略:根据规则自动分配宿舍,确保公平合理。
3. 宿舍信息录入:管理员可录入宿舍楼栋、房间号及床位数等宿舍信息。
4. 宿舍信息查询:提供宿舍信息查询功能,包括宿舍楼栋、空床位等。
5. 宿舍调换管理:允许学生和管理员通过系统提交宿舍调换申请,并进行审核和处理。
三、设备维修管理:1. 设备信息录入:管理员可录入学生宿舍内的设备信息,例如电视、洗衣机等。
2. 设备维修申报:学生可以通过系统提交设备维修申报,并提供详细的问题描述。
3. 维修任务分派:管理员根据设备问题的紧急程度和维修人员的工作负荷合理分派维修任务。
4. 维修进度跟踪:管理员可以实时跟踪设备维修的进展情况,并及时向学生反馈。
5. 维修记录统计:系统能够记录设备维修的历史记录,便于管理员进行维修统计和分析。
四、卫生检查管理:1. 检查计划制定:管理员能够制定卫生检查的计划,并设定检查频次和具体的检查项目。
2. 检查任务分配:将检查任务分配给相关人员,并提供检查表格和评分标准。
3. 检查结果记录:检查人员通过系统录入卫生检查结果,并按照评分标准进行评分。
员工宿舍管理软件
员工宿舍管理软件第一部分:项目概述与需求分析一、项目背景随着企业规模的扩大,员工数量不断增加,员工宿舍管理工作也日益繁重。
传统的手工管理方式效率低下,容易出现信息不准确、资源浪费等问题。
为提高员工宿舍管理水平,降低管理成本,提升员工满意度,企业亟需一套科学、高效的员工宿舍管理软件。
二、项目目标1. 提高员工宿舍管理效率,降低人力成本。
2. 实现宿舍信息的实时更新,保证数据准确性。
3. 提升员工居住体验,提高员工满意度。
4. 规范宿舍管理流程,降低管理风险。
三、需求分析1. 宿舍基本信息管理- 宿舍楼信息:包括楼号、楼名、床位数、房间数等。
- 房间信息:包括房间号、床位数、房间类型(单人间、双人间等)、配套设施(空调、热水器等)。
- 员工信息:包括员工姓名、工号、性别、部门、职务等。
2. 宿舍分配与调整- 自动分配宿舍:根据员工性别、部门、职务等条件,系统自动分配宿舍。
- 手动调整宿舍:管理员可对宿舍分配进行手动调整,以满足员工需求。
- 宿舍退房与换房:员工离职或调岗时,系统自动记录并释放宿舍资源。
3. 费用管理- 宿舍费用:包括住宿费、水电费等,系统自动计算并生成费用清单。
- 缴费管理:员工可通过系统进行缴费,支持多种支付方式(如微信、支付宝等)。
- 费用报销:员工可提交费用报销申请,管理员审核通过后进行报销。
4. 报修与投诉- 报修管理:员工可通过系统提交报修申请,管理员分配维修人员进行处理。
- 投诉建议:员工可提出宿舍管理方面的投诉或建议,管理员及时回应并处理。
5. 数据分析与报表- 宿舍资源使用情况:统计各宿舍楼、房间的使用率,为宿舍分配提供数据支持。
- 费用统计:按时间、部门、宿舍楼等维度,统计宿舍费用收取情况。
- 报修与投诉统计:分析报修与投诉情况,为宿舍管理改进提供参考。
四、项目实施与验收1. 项目实施:根据需求分析,开发宿舍管理软件,进行系统测试与调试。
2. 系统部署:将宿舍管理软件部署至企业服务器,进行数据迁移与初始化。
宿舍管理查询软件
宿舍管理查询软件一、设计任务与目标●任务:为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求:◆采用交互工作方式◆建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(分别用冒泡、选择、插入排序实现)●查询菜单: (用二分查找实现以下操作)◆按姓名查询◆按学号查询◆按房号查询●打印任一查询结果并可以连续操作一、方案设计与论证流程图:二、算法说明主要有主菜单函数,插入功能子菜单函数,查找功能子菜单函数,学生信息录入函数,显示函数,排序函数,插入函数以及查找函数。
在每个区域中会调用不同的函数来实现主要的功能。
比如,在学生显示这个功能里调用显示函数;在插入功能里调用子菜单函数;在显示信息时调用排序函数先对需要输出的信心进行排序,然后再输出;在查找功能里会调用查找函数来进行查找,包括按照性别,学号,姓名,房间号等查询。
源程序:#include <stdio.h>#include<iomanip>#include<fstream># include <stdlib.h>#include<iostream.h># define N 20/*********************自定义函数声明部分**************************/void showheader(); //声明显示表头部分int menu(); //声明主菜单函数int menu3(); //声明插入功能子菜单函数int menu5(); //声明查找功能子菜单函数//int quanxian(); //声明用户权限管理函数//void SavePass(); //密码显示为"*"的函数struct student shuru(); //声明学生信息录入函数void display(struct student); //声明显示函数void sort(struct student stu[N],int); //声明排序函数void charu(struct student stu[N],int); //声明插入函数void chazhao1(struct student stu[N],int i); //声明按照学号查找函数void chazhao2(struct student stu[N],int i); //声明按照姓名查找函数void chazhao3(struct student stu[N],int i);//声明按照房间号查找/*********定义结构体************/struct student{/* 构造结构成员 */int ID;char name[15];char sex;int roomnum;float score[3];char *getSex(){if(sex=='g')return "女";elsereturn "男";}};/****************************主函数开始**************************/void main(){struct student stu[N];int count=0,m=0,j;char ch,ch1;int choice,choice3,choice4; //菜单选项及子菜单选项int user;do //此循环体控制用户信息输入错误后是否重输{do //此循环体控制返回主菜单{ ch1='n'; //如果用户将主菜单选择错误,可用此变量控制是否重输choice=menu();switch(choice) //此条件结构控制选择菜单功能后的操作{case 1: //输入学生信息{do //此循环体控制是否继续输入{cout<<"****************************** 学员信息录入**********************************\n";cout<<"请输入第"<<count+1<<"个学员的信息\n\n";stu[count]=shuru(); //调用输入函数//cout<<"是否继续(y/n)";fflush(stdin);// 刷新标准输入缓冲区,把输入缓冲区里的东西丢弃ch=getchar();count++;}while(ch=='y');break;}case 2: //显示排序好的学生信息{cout<<"****************************** 学员信息显示**********************************\n";cout<<"\n排序后的信息如下:\n";sort(stu,count);//调用排序函数showheader();for(j=0;j<count;j++){display(stu[j]); //调用显示函数}break;}case 3://插入功能{while(choice3!=3) //此循环体控制是否退出子菜单{choice3=menu3(); //调用子菜单函数if(choice3==1) //此条件结构控制子菜单选项{do //此循环体判断是否继续插入{ cout<<"****************************** 学员信息插入**********************************\n";charu(stu,count); //调用插入函数count++;cout<<"是否继续插入?(y/n)";fflush(stdin);ch=getchar();}while(ch=='y');}if (choice3==2) //此条件结构控制子菜单选项{cout<<"\n\n插入学生信息后如下:\n";sort(stu,count);//调用排序函数showheader();for(j=0;j<count;j++){display(stu[j]); //调用显示函数}}}break;}case 4://查找功能{while(choice4!=4) //控制是否继续查找{choice4=menu5(); //调用查找子菜单函数if(choice4==1) //控制按照学号查找{chazhao1(stu,count);//调用按照学号查找的函数}if(choice4==2) //控制按照姓名查找{chazhao2(stu,count);//调用按照姓名查找的函数}if(choice4==3) //控制按照房间查找{chazhao3(stu,count);//调用按照房间查找的函数}}break;}case 5://退出{cout<<"确认退出?(y/n)"; //让用户确认是否退出fflush(stdin);ch=getchar();break;}default:{cout<<"\a\a警告:您输入错误,是否重输!(y/n)";fflush(stdin);ch1=getchar();break;}}}while(ch=='n'|| ch1=='y');//控制是否要退出系统{cout<<"\a\a警告:您的用户名或密码输入有误!是否重输?(y/n)"; }fflush(stdin);ch=getchar();}while(ch=='y');}/*************************主函数结束*************************//*自定义输入函数*/struct student shuru(){struct student stu;cout<<"学号:";cin>>stu.ID;cout<<"姓名:";cin>>;cout<<"性别(g/b):";fflush(stdin);cin>>stu.sex;cout<<"房间号:";cin>>stu.roomnum;cout<<"是否继续?(Y/N)"<<endl;return stu;}/*自定义显示函数*/void display(struct student stu){cout<<"\t"<<stu.ID<<"\t";cout<<<<"\t";cout<<stu.getSex()<<"\t";cout<<stu.roomnum<<"\t"<<endl;;}/*自定义排序函数*/void sort(struct student stu[N],int i) {int j,k;struct student temp;for(j=0;j<i;j++){for(k=0;k<i-j-1;k++){if((stu[k].ID)>(stu[k+1].ID)){temp=stu[k];stu[k]=stu[k+1];stu[k+1]=temp;}}}}/*自定义插入函数*/void charu(struct student stu[N],int k){int i,l;struct student in ;in=shuru();//调用输入函数for(i=0;i<k;i++){}for(l=k;l>i;l--){stu[l]=stu[l-1];}stu[i]=in;}/*自定义主菜单函数*/int menu(){ int choice;cout<<"\t\t****************************************************\n\n\t\t\t 欢迎进入学生宿舍管理查询系统\n\n\t\t****************************************************\n\n";cout<<"\t\t\t***************主菜单***************\n\n";cout<<"\t\t\t\t1> 学生信息录入\n\n";cout<<"\t\t\t\t2> 学生信息显示\n\n";cout<<"\t\t\t\t3> 插入学生信息\n\n";cout<<"\t\t\t\t4> 查找学生信息\n\n";cout<<"\t\t\t\t5> 退出\n";cout<<"\n\n请选择功能选项:";cin>>choice;return choice;}/*自定义插入功能子菜单函数*/int menu3(){ cout<<"\t*******************这里显示的是插入功能子菜单*******************\n\n";cout<<"\t\t\t\t1、插入学生信息\n\n";cout<<"\t\t\t\t2、显示插入后的学生信息\n\n";cout<<"\t\t\t\t3、退出子菜单,返回上一级菜单\n\n";cout<<"\n\n请选择功能选项:";int choice3;cin>>choice3;return choice3;}/*自定义按照学号查找函数*/void chazhao1(struct student stu[N],int i){int select,j;char ch;cout<<"\t*******************您选择的是按照学号查找:*******************\n\n"; do{cout<<"\n\n请输入学号:";cin>>select;for(j=0;j<i;j++){if(select==stu[j].ID){break;}}if(j<i){showheader();display(stu[j]);}else{cout<<"你查找的信息不存在\n";}fflush(stdin);ch=getchar();}while(ch=='y');}/*自定义按照姓名查找函数*/void chazhao2(struct student stu[N],int i){int j;char name[15];char ch;cout<<"\t*******************您选择的是按照姓名查找:*******************\n\n"; do{cout<<"\n\n请输入姓名:";cin>>name;for(j=0;j<i;j++){if(strcmp(name,stu[j].name)==0){break;}}if(j<i){showheader();display(stu[j]);}else{cout<<"你查找的信息不存在\n";}fflush(stdin);ch=getchar();}while(ch=='y');}//按照房间号查找void chazhao3(struct student stu[N],int i){int j,room;char ch;cout<<"\t*******************您选择的是按照房间号查找:*******************\n\n"; do{cout<<"\n\n请输入房间号:";cin>>room;for(j=0;j<i;j++){if(room==stu[j].roomnum){break;}}if(j<i){showheader();display(stu[j]);}else{cout<<"你查找的信息不存在\n";}cout<<"是否继续查找?(y/n)";fflush(stdin);ch=getchar();}while(ch=='y');}/*自定义查找功能子菜单函数*/int menu5(){cout<<"\t*******************这里显示的是查找功能子菜单*******************\n\n"; cout<<"\t\t\t\t1、按照学号查找\n\n";cout<<"\t\t\t\t2、按照姓名查找\n\n";cout<<"\t\t\t\t3、按照房间号查找\n\n";cout<<"\t\t\t\t4、退出子菜单,返回上一级菜单\n\n";cout<<"\n\n请选择功能选项:";int choice4;cin>>choice4;return choice4;}void showheader(){ cout<<"\n\n\t*********************************************************\n"; cout<<"\t学号\t姓名\t性别\t房间号\t\n";cout<<"\t*********************************************************\n";}三、程序运行的测试与分析主菜单显示:信息录入界面:信息显示界面:查找学生信息界面:四、心得刚开始没有什么头绪,通过各种资料的搜集后发现调用各种函数来实现比较容易,整个过程中出现了很多小问题,各个函数的调用比较混乱。
寓小二公寓管理系统
寓小二公寓管理系统寓小二公寓管理系统简介寓小二公寓管理系统是一种专为公寓管理和运营而设计的软件系统。
随着社会发展和人们对于高品质生活的需求不断增长,公寓行业也逐渐受到越来越多的关注和重视。
如何高效地管理公寓,提供优质的服务,成为了公寓运营商和房东们需要解决的核心问题之一。
寓小二公寓管理系统的设计初衷就是解决公寓管理中的痛点和难题,帮助公寓运营商提升管理效率,提供更好的租赁和维护服务。
本文将详细介绍寓小二公寓管理系统的功能和优势,以及如何利用该系统实现公寓管理的数字化和智能化。
一、功能介绍1. 租客管理:寓小二公寓管理系统能够对所有入住的租客信息进行收集、整理和管理。
包括租客身份证明、租期、租金缴纳情况等。
系统可以方便地查询和统计租客信息,帮助房东和运营商更好地了解租客的需求和行为。
2. 房屋管理:该系统可以实现对房屋信息的管理和维护。
包括房屋的基本信息、空置情况、维修记录等。
房东和运营商可以通过系统轻松查看房屋的状态,及时进行维修和租赁的安排。
3. 合同管理:通过寓小二公寓管理系统,房东和运营商可以方便地管理与租客的合同。
包括合同签署、合同期限、押金和租金等条款。
系统还可以提醒合同到期时间,帮助管理者及时跟进续租或解约事宜。
4. 财务管理:该系统能够提供租金和费用的管理功能。
包括租金的收入、支出的明细,以及相关的财务报表。
通过系统的财务管理,房东和运营商可以清晰地了解公寓的盈亏状况,进行合理的财务决策。
5. 报修管理:当租客遇到房屋维修需求时,可以通过系统提交报修申请。
房东和运营商可以及时收到报修信息,并安排维修人员进行处理。
该系统还能记录维修的历史记录和进度,方便管理者查看和跟进。
6. 服务管理:寓小二公寓管理系统还可以提供一些增值服务,如清洁、维修、家电设备的管理等。
房东和运营商可以通过系统安排相应的服务人员,并记录服务的情况和质量,保证提供优质的服务。
二、优势介绍1. 提升管理效率:寓小二公寓管理系统能够集成公寓管理的各项功能,通过数字化和自动化的方式,提升管理效率。
宿舍管理系统操作手册(3篇)
第1篇一、概述宿舍管理系统是一款专为高校宿舍管理设计的软件,旨在提高宿舍管理的效率,方便宿舍管理人员进行日常管理。
本手册将详细介绍宿舍管理系统的操作流程和使用方法。
二、系统登录1. 打开宿舍管理系统,进入登录界面。
2. 输入用户名和密码,点击“登录”按钮。
3. 登录成功后,系统将自动跳转到主界面。
三、主界面1. 主界面主要包括以下功能模块:(1)宿舍信息管理(2)学生信息管理(3)入住管理(4)退宿管理(5)维修管理(6)查询统计(7)系统设置2. 点击相应模块,进入具体操作界面。
四、宿舍信息管理1. 点击“宿舍信息管理”模块,进入宿舍信息管理界面。
2. 查询宿舍信息:(1)在“宿舍楼”下拉菜单中选择宿舍楼。
(2)在“宿舍号”输入框中输入宿舍号。
(3)点击“查询”按钮,系统将显示该宿舍的基本信息。
3. 添加宿舍信息:(1)点击“添加”按钮,进入添加宿舍信息界面。
(2)输入宿舍楼、宿舍号、床位数、楼层数等信息。
(3)点击“保存”按钮,完成宿舍信息的添加。
4. 修改宿舍信息:(1)在查询结果中,选中需要修改的宿舍信息。
(2)点击“修改”按钮,进入修改宿舍信息界面。
(3)修改宿舍楼、宿舍号、床位数、楼层数等信息。
(4)点击“保存”按钮,完成宿舍信息的修改。
5. 删除宿舍信息:(1)在查询结果中,选中需要删除的宿舍信息。
(2)点击“删除”按钮,系统将提示确认删除。
(3)点击“确认”按钮,完成宿舍信息的删除。
五、学生信息管理1. 点击“学生信息管理”模块,进入学生信息管理界面。
2. 查询学生信息:(1)在“学号”输入框中输入学生学号。
(2)点击“查询”按钮,系统将显示该学生的基本信息。
3. 添加学生信息:(1)点击“添加”按钮,进入添加学生信息界面。
(2)输入学号、姓名、性别、年龄、班级、宿舍号等信息。
(3)点击“保存”按钮,完成学生信息的添加。
(1)在查询结果中,选中需要修改的学生信息。
(2)点击“修改”按钮,进入修改学生信息界面。
宿舍管理信息系统
宿舍管理信息系统1. 简介宿舍管理信息系统是一种用于管理和监控学生宿舍的软件系统。
它提供了一种方便和高效的方式来管理宿舍分配、学生信息、宿舍设备等相关内容。
宿舍管理信息系统可用于大学、学院、中学等教育机构的宿舍管理。
2. 功能2.1 学生入住管理•管理员可以录入学生信息,包括学号、姓名、性别、入住宿舍等。
•管理员可以查看学生的宿舍信息,并可以对宿舍进行分配和调整。
•学生可以通过系统申请入住宿舍,管理员可以审核和批准申请。
2.2 宿舍设备管理•管理员可以记录和管理宿舍内的设备信息,包括设备名称、型号、购买日期等。
•管理员可以查看设备的使用情况,并可以进行设备的报修和维护。
2.3 宿舍卫生管理•管理员可以记录和管理宿舍的卫生情况,包括每日的清洁和整理工作。
•管理员可以查看宿舍的卫生评分,并可以对不达标的宿舍进行警告和处罚。
2.4 宿舍报修管理•学生可以通过系统提交宿舍报修申请,管理员可以受理和处理报修请求。
•系统可以记录报修的内容、处理进度和结果。
2.5 访客管理•学生可以通过系统申请访客,管理员可以审核和批准访客申请。
•管理员可以记录和管理访客的信息,包括访客的姓名、身份证号码等。
3. 优势3.1 提高管理效率宿舍管理信息系统可以自动化和集中管理各类数据,大大提高了宿舍管理的效率。
通过系统,管理员可以快速录入、查看和处理各类信息,省去了繁琐的人工操作。
3.2 提升用户体验学生可以通过系统自主管理宿舍相关事务,方便快捷地完成各项操作,提升了用户体验。
同时,系统可以及时反馈审核结果和处理进度,减少沟通成本,提高用户满意度。
3.3 提高安全性宿舍管理信息系统可以记录和管理各类敏感信息,如学生信息、访客信息等。
通过权限控制和加密技术,系统可以确保这些信息的安全性,减少信息泄露的风险。
3.4 数据统计与分析宿舍管理信息系统可以对各类数据进行统计和分析,为管理员提供决策支持。
通过系统生成的报表和可视化图表,管理员可以直观地了解宿舍使用情况、设备维护情况等,优化管理策略。
宿舍管理软件快速使用指引
DM-01宿舍管理软件常用功能快速使用指南1社区办用户(含系统设置)篇1.1账号激活(首次使用软件时)图1-1登录界面(图1-1)中点击修改密码,通过修改密码激活用户账号。
1.2软件登录登录界面(图1-1)中分别输入登录名、登录密码后,点击登录按钮。
1.3宿舍资源导入图1-2宿舍资源界面(图1-2)中点击导入按钮,选择宿舍资源文件(Excel格式文件)上传后,选择“宿舍资源”工作表,按确定按钮执行导入。
1.4宿舍楼图标设置及坐标定位宿舍资源界面(图1-2)中选中一条宿舍楼记录,点击修改按钮,进入修改宿舍楼界面(图1-3)。
图1-3点击坐标底图,选择合适的宿舍楼显示图标。
点击图标坐标,显示宿舍资源坐标定位界面(图1-4)。
鼠标单击并左键按住宿舍楼图标,然后拖动图标到需要显示的位置,点击确定按钮,退回修改宿舍楼界面,点击确认完成图标及显示坐标的设置。
1.5入住人员导入图1-5入住人员界面(图1-5)中,点击导入按钮,选择入住人员信息文件(Excel格式文件)上传后,选择“入住人员”工作表,按确定按钮执行导入。
1.6设置学院领导账号图1-6用户权限界面(图1-6)中,点击新增按钮,进入用户新增界面(图1-7)。
用户姓名填写学院领导姓名,登录名和登录密码根据实际情况填写,适用角色选择学院领导,点击确认按钮完成学院领导用户的新增。
图1-7图1-8组织机构界面(图1-8)中选择设置学院领导的院系,点击学院领导按钮,进行学院领导负责院系的设置。
1.7设置辅导员账号用户权限界面(图1-6)中,点击新增按钮,进入用户新增界面(图1-7)。
用户姓名填写辅导员姓名,登录名和登录密码根据实际情况填写,适用角色选择辅导员,点击确认按钮完成辅导员用户的新增。
组织机构界面(图1-8)中选择设置辅导员的班级,点击辅导员按钮,进行辅导员负责班级的设置。
1.8其他功能详见《用户使用手册》(可在线点击“帮助”链接下载)。
2入住学生篇2.1账号激活(首次使用软件时)图2-1登录界面(图2-1)中点击修改密码,通过修改密码激活用户账号。
宿舍管理查询软件
《数据结构》课程设计报告(宿舍管理查询软件)一.需求分析(1)建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)(2)能够实现输入查询和删除功能。
(3)对已有的学生数据进行管理,比如删除功能和交换以及比较功能。
同时也可以再进行数据的输入和管理。
(4)在查询一项功能中,要求能对输入过的数据进行选择性的输出。
实现如下查询功能:按姓名查询按学号查询按房号查询(5)打印任一查询结果(可以连续操作)二.概要设计1>1)需要定义一个结构体:struct student //定义一个结构体,储存数据{char studentnum[15];int roomnum;char name[10];student *next; //结构体类型的指针};用来存储学生的信息。
2)main()//初始条件:必须保证原有记录是空时方可建立操作结果:建立一个新的数据文件3)print ( )//定义选择菜单显示函数/清除屏幕后重新显示菜单4)add(student *head)//定义节点插入函数添加数据信息5)search(student *head)serch1()按学号查找serch2()按姓名查找serch3()按房号查找初始条件:数据文件中含有纪录操作结果:不支持模糊查询必须查询项和关键字吻合情况下才可查询。
调用按不同关键字查询的子函数若存在相应的查询结果则显示在屏幕上,若查找的纪录不存在则提示该纪录不存在,请建立相应的数据纪6)searchstnum(student *head)/ /定义学号查找函数7)searchname(student *head)//定义姓名查找函数8)searchroom(student *head)//定义房间号查找函数9)sequence(student *head,int n)//定义排序函数将学号转换为数字比较,若前一节点学号大于后一节点,交换两节点的所有数据用q临时保存需要交换的所有数据,交换完成,释放q的内存空间10)printlist(student *head)//定义节点打印函数,在循环到链表底部时结束2>本程序包含9个函数:1.主函数main()2.选择菜单显示函数print()3.节点插入函数add(student *head)4.查找函数search(student *head)5.学号查找函数searchstnum(student *head)6.姓名查找函数searchname(student *head)7.房间号查找函数searchroom(student *head)8.排序函数sequence(student *head,int n)9.节点打印函数printlist(student *head)三.详细设计1. 主函数main(){int n,m;int listnum=0; //定义节点个数student *head;head=(student *)malloc(sizeof(student)); //为头指针开辟空间head->next=NULL;print();do{print(); //打印选择菜单scanf("%d",&n); //输入选项标号if(n==1){m=add(head); //调用节点插入函数if(m==1)listnum++; //函数调用成功节点个数加1}else if(n==2)search(head); //调用查找函数else if(n==3&&listnum!=0)sequence(head,listnum); //调用排序函数else if(n==3&&listnum==0){printf("记录为空,不能排序,按回车键返回\n");getchar();}else if (n==4&&listnum!=0)printlist(head); //在选择4的时候同时链表不为空,调用打印节点函数else if (n==4&&listnum==0){printf("记录为空,不能显示,按回车键返回\n");getchar();}else if(n==0)exit(0); //选择0,退出程序else{printf("输入有误,按回车键返回后重新输入\n");getchar();}}while(n);}构建图形用户界面一次调用其他模块完成总体功能;2 选择菜单显示函数print(){system("cls"); //清除屏幕后重新显示菜单printf("请按数字键0-3选择操作:\n");}3 节点插入函数add(student *head){int m=0;char n[15];student *p,*find=head->next;printf("请输入学号:\n");scanf("%s",&n);while(find!=NULL) //插入节点前先查找是否相同学号以存if(m==0) //若没有相同学号的节点else //若存在相同学号的节点printf("添加完毕.按回车键返回\n");getchar();if(m==0)return 1;elsereturn 0;}4 查找函数int search(student *head){int n,m;printf("按数字键0-3选择查找方式:\n");scanf("%d",&n){printf("输入有误,按回车键返回后重新输入\n");printf("\n查找完毕,按回车键返回\n");getchar()return 0;}为节点分配内存创建二进制文件用于存储学生信息通过一个循环一次录入学生信息5 学号查找函数searchstnum(student *head){student *p;char a[15];int sum=0;printf("请输入需要查询的学号:\n");scanf("%s",&a);p=head->next; //以头节点后第一个节点为起始while(p!=NULL)}return (sum); //返回查找标记值}打开文件遍历整个文件找到与制定学号匹配的信息输出查询到的信息6 姓名查找函数searchname(student *head){student *p;char a[10];int sum=0;printf("请输入需要查找的姓名:\n");scanf("%s",&a);p=head->next;while(p!=NULL)return (sum);}打开文件遍历整个文件找到与指定姓名匹配的信息输出查询到的信息7房间号查找函数searchroom(student *head){student *p;int a;int sum=0;printf("请输入需要查询的房间号:\n");scanf("%d",&a);p=head->next;while(p!=NULL)return (sum);}打开文件遍历整个文件找到与制定房号匹配的信息输出查询到的信息8排序函数sequence(student *head,int n){int i,j=0;long a,b;student *p,*q;printf("当前节点数为:%d,现开始对学号进行由小到大的冒泡排序\n\n",n);getchar();for (i=0;i<n;i++) //循环节点个数次排序过程{p=head->next;while(p->next!=NULL) //在查找到链表底部时结束当前循环过程{a=atol(p->studentnum); //将学号转换为数字比较b=atol(p->next->studentnum);if(a>b) //若前一节点学号大于后一节点,交换两节点的所有数据}printf("排序完成!按回车键返回\n");getchar();}9节点打印函数printlist(student *head){student *p;p=head->next;while (p!=NULL) //在循环到链表底部时结束{printf("\n学号:%s\n",p->studentnum);printf("姓名:%s\n",p->name);printf("房间号:%d\n\n",p->roomnum);p=p->next;}printf("显示完毕,按回车键返回\n");getchar();}四.调试分析1. add 函数在输入N个数据后执行N次,所以时间复杂度为O(n)search 函数需要查找所有的节点,所以在最坏的情况下时间复杂度为O(n)searchstnum ,searchname ,searchroom函数在每次调用时才使用,设调用次数为n则时间复杂度为O(n)sequence 函数在调用时每次执行一次内循环遍历链表.之后循环n次将数据放置在正确的位置,所以时间复杂度为O(n^2)2. 程序编译过程中,第一次函数参数传递错误,导致运行出错之后再编写排序函数的时候忘记在每次外循环时将修改指针指向头指针,导致排序不完全3.对我们这一学期实际学到的内容的检验,在课程设计的同时不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
员工宿舍管理软件-9页精选文档
员工宿舍管理系统功能说明书系统功能概述:1.系统管理:口令更改,添删管理员(用户),系统初始化,权限管理,更换背景图2.房间管理:房间类别管理,小区楼栋管理,添加房间及床位,更新房间,删除房间3.入住管理:员工分房入住,外来人员入住,换房登记,退房登记,卫生管理4.员工管理:员工信息管理5.统计查询:空房空床查询,入住情况查询,宿舍入住状态统计,在住房间明细统计,入住人员学历统计,入住人员职务统计一、登录a,在第一次登录系统时,系统会检测并弹出个窗口用于配置数据库。
要求输入服务器名,帐户,密码,和数据库名称。
注意:为了配置成功,在安装SQL SERVER2000数据库时请务必配置好sa 帐户和设置访问密码b,在配置数据库成功后,系统会弹出系统登录框,初次使用,系统默认的帐号密码均为123(或三个0),默认初始管理员帐户为admin 在日后的使用中用户可以在管理员管理菜单下进行更改。
二、系统菜单的使用说明系统登陆成功以后,进入软件主界面:A、系统管理1、口令更改:输入要修改的用户名和原密码,再连续两次输入新密码,点击“修改”即可。
2、添删管理员(用户):不能修改用户,如果要修改用户信息,可以先删除再重新添加即可。
3、系统初始化:主要是对系统一些基础数据进行初始化管理,添加好这些信息后系统才能正常使用和运行,才能导入员工信息,如上图所示,可以添加,修改和删除对应信息。
4、权限管理:管理员(用户)新增以后,要及时赋予其操作权限,同时管理员也可以随时修改系统其他用户的操作权限,根据工作需求可以随时动态调整。
打勾选中表示可以有此权限,反之取消该权限功能,设置完毕点击“确定”予以保存。
5、更换背景图:选择您要作为背景图的图片,点击打开即可。
只支持JPG和BMP格式的图片文件,图片的大小最好事先调整好,以确保在软件里面的显示效果。
B、房间管理1、房间类别管理:窗口左边:列表显示的是,已经添加的房间类别。
窗口右边:在空白处输入要操作的房间类别名称,选择操作类别,点击确定即可完成相应操作。
宿舍管理方案查询系统软件
适用文档河南城建学院课程设计报告书专业:计算机科学与技术课程设计名称:《数据结构课程设计》题目:宿舍管理查问软件班级: 0814102 班学号: 081410222姓名:孟学丰同组人员:李照射指导老师:张延红张芳芳杨斌完成时间:2012年2月17日纲要在校学生的信息管理是校园管理中的一个重要内容,跟着国家扩招政策的持续实施,学生数目也不断增添、信息的不断细化、各个行业间联系的不断亲密,对人事管理的要求也不断提升。
怎样记录和管理勤学生的信息,对学生实行高效的宏观管理,对学生进出宿舍以及学生注入和迁出的信息的灵巧的记录及更新,是一项沉重而艰巨的任务。
重点词: C++;数据库表;宿舍信息查问;宿舍信息管理目录目录 (1)第一章开发环境和开发工具 (1)C#语言简介 (1)开发背景 (1)开发环境 (1)第二章算法思想 (2)系统需求剖析 (3)系统整体设计 (3)系统设计目标 (3)开发设计思想 (3)系统功能模块设计 (4)算法思想描绘 (4)第三章算法实现 (5)数据结构 (5)程序模块 (5)各模块之间的调用关系 (6)源程序代码 (6)第四章测试与剖析 (14)测试数据选择 (14)测试结果剖析 (16)总结 (18)心得领会 (19)参考文献 (20)第一章开发环境和开发工具1.1 C/ C ++ 语言简介C++标准可分为两部分,C++语言自己和 C++标准库。
C++标准库关于 Visual C++是相当新的,实质上微软不过在公布 Visual C++ 5.0 时去除了一些“ bug”。
标准库供给了标准的输入 / 输出、字符串、容器 ( 如矢量、列表和映照等 ) 、非数值运算 ( 如排序、搜寻和归并等 ) 和对数值计算的支持。
应当说, C/C++包含了相对少的重点字,并且好多最实用的函数都根源于库, C++标准库实现容器和算法的部分就是 STL。
STL是数据结构和算法的一个框架,数据结构包含矢量、列表和映照等,算法包含这些数据结构的查找、拷贝和排序等。
员工宿舍管理软件免费版
员工宿舍管理软件免费版一、概述为提高员工宿舍管理效率,降低管理成本,本公司决定开发一款员工宿舍管理软件。
本软件为免费版,主要功能包括员工信息管理、宿舍分配、维修申报、费用缴纳等,以满足日常宿舍管理工作需求。
二、功能模块1. 员工信息管理(1)员工基本信息录入:姓名、性别、部门、职位、联系电话等;(2)员工信息查询:按姓名、部门等条件进行查询;(3)员工信息修改:对员工基本信息进行修改;(4)员工离职:办理员工离职手续,并更新宿舍分配情况。
2. 宿舍分配(1)宿舍楼栋管理:楼栋名称、楼栋地址、宿舍数量等;(2)宿舍房间管理:房间号、床位数、配套设施等;(3)宿舍分配:按员工需求、性别、部门等因素进行宿舍分配;(4)宿舍调换:处理员工宿舍调换需求,并更新宿舍分配情况。
3. 维修申报(1)维修项目:水电气、家具、电器等;(2)维修申报:员工可在线提交维修申请,包含维修项目、时间等;(3)维修进度查询:员工可查询维修进度及维修结果;(4)维修评价:员工对维修服务进行评价。
4. 费用缴纳(1)费用类型:水费、电费、物业管理费等;(2)费用查询:员工可查询宿舍费用缴纳情况;(3)费用缴纳:员工在线缴纳宿舍费用;(4)费用统计:管理员可查看宿舍费用缴纳统计情况。
三、软件使用1. 安装与登录(1)下载软件安装包,按照提示完成安装;(2)登录软件,管理员账号由公司提供,员工账号需自行注册;(3)登录后,根据权限查看相应功能模块。
2. 使用指南(1)详细阅读软件操作手册,了解各功能模块操作方法;(2)在使用过程中,如有疑问,可咨询管理员;(3)定期查看软件更新,确保使用最新版本。
四、免责声明1. 本软件为免费版,不收取任何费用;2. 本公司对本软件提供的技术支持、更新等事项具有最终解释权;3. 用户在使用本软件过程中,如涉及侵权、违法等行为,本公司概不负责。
四、系统维护与升级1. 系统维护(1)定期对软件进行维护,确保软件稳定运行;(2)针对用户反馈的问题,及时进行排查并解决;(3)对系统数据进行备份,防止数据丢失。
5-宿舍管理查询软件的设计与实现(1-2人完成)_任务书
ห้องสมุดไป่ตู้创新
10
对前人工作有改进或突破,或有独特见解。
成绩
指导教师评语
指导教师签名:年 月 日
4、课程设计工作进度计划
第1天完成方案设计与程序框图
第2、3天编写程序代码
第4天程序调试分析和结果
第5天课程设计报告和总结
指导教师(签字)
日期
年月日
教研室意见:
年月日
学生(签字):
接受任务时间:年月日
注:任务书由指导教师填写。
课程设计(论文)指导教师成绩评定表
题目名称
宿舍管理查询软件的设计与实现
评分项目
C.按房号查询
3)打印任一查询结果(可以连续操作)
3、主要参考文献
[1]《数据结构》(C语言版),严蔚敏,清华大学出版社,2003.
[2]《数据结构题集》,严蔚敏,清华大学出版社,2005.
[3]《数据结构》(C语言版),刘大有,高等教育出版社,2004.
[4]《Data Structure with C++》,William Ford.William Topp,清华大学出版社,2003.
分值
得分
评价内涵
工作
表现
20%
01
学习态度
6
遵守各项纪律,工作刻苦努力,具有良好的科学工作态度。
02
科学实践、调研
7
通过实验、试验、查阅文献、深入生产实践等渠道获取与课程设计有关的材料。
03
课题工作量
7
按期圆满完成规定的任务,工作量饱满。
能力
水平
35%
04
综合运用知识的能力
10
能运用所学知识和技能去发现与解决实际问题,能正确处理实验数据,能对课题进行理论分析,得出有价值的结论。
学生公寓管理系统 (3)
学生公寓管理系统简介学生公寓管理系统(Student Dormitory Management System)是一种用于管理学生公寓的软件系统。
它旨在简化学生公寓的日常管理任务,提高效率,减少人力资源投入。
功能学生公寓管理系统提供了多个功能模块,包括学生信息管理、寝室分配管理、维修报修管理等。
学生信息管理学生信息管理模块用于存储和管理学生的个人信息。
管理员可以通过该模块查询和编辑学生信息,包括学生的姓名、学号、性别、联系方式等。
寝室分配管理寝室分配管理模块用于管理学生寝室的分配情况。
管理员可以通过该模块进行寝室分配,将学生分配到合适的寝室中。
维修报修管理维修报修管理模块用于处理学生公寓中的维修报修事宜。
学生可以通过此模块提交维修报修申请,管理员可以根据维修需求进行分配维修人员,并跟踪维修进度。
公告通知管理公告通知管理模块用于管理学生公寓的公告和通知。
管理员可以通过该模块发布公告,并将通知发送给指定的学生。
技术实现学生公寓管理系统使用了以下技术实现:后端开发后端采用了Python语言进行开发。
使用Flask框架搭建Web服务器,使用SQLite数据库存储学生信息、寝室分配记录和维修报修信息。
前端开发前端使用了HTML、CSS和JavaScript进行开发。
使用Bootstrap框架提供响应式设计和样式,并使用jQuery库处理页面交互和表单验证。
数据库设计数据库使用SQLite进行存储。
设计了以下表格:学生信息表(students)字段名类型说明id INTEGER学生ID(主键)name TEXT学生姓名student_no TEXT学号gender TEXT性别phone TEXT联系方式dormitory_id INTEGER寝室ID寝室信息表(dormitories)字段名类型说明id INTEGER寝室ID(主键)dorm_no TEXT寝室编号capacity INTEGER寝室容纳人数维修报修信息表(maintenance)字段名类型说明id INTEGER报修记录ID(主键)student_id INTEGER学生ID description TEXT报修描述status TEXT维修状态assigned_to TEXT维修人员created_at TEXT报修时间使用指南以下是使用学生公寓管理系统的简要指南:1.安装所需软件环境,包括Python、Flask和SQLite。
数据结构课程设计 宿舍管理查询软件.doc
数据结构课程设计报告设计题目:宿舍管理查询软件学号:姓名:指导教师:专业:班级:学年学期:起止时间:哈尔滨师范大学计算机科学与信息工程学院目录一.具体任务 (1)二.软件环境 (1)三.算法设计思想及流程图 (1)1. 算法设计思想 (1)2. 流程图 (1)四.源代码 (2)五.运行结果 (9)六.收获及体会 (10)七.参考文献 (10)八.教师评价表 (11)数据结构课程设计报告一.程序设计题目和具体任务:题目:宿舍管理查询软件(限1 人完成)任务:1)为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求:A.采用交互工作方B.建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)2)查询菜单: (用二分查找实现以下操作)A.按姓名查询B.按学号查询C.按房号查询3)打印任一查询结果(可以连续操作)二.软件环境:C语言三.算法设计思想及流程图1.算法设计思想:主要有主菜单函数,插入功能子菜单函数,查找功能子菜单函数,学生信息录入函数,显示函数,排序函数,插入函数以及查找函数。
在每个区域中会调用不同的函数来实现主要的功能。
在插入功能里调用子菜单函数;在显示信息时调用排序函数先对需要输出的信心进行排序,然后再输出;在查找功能里会调用查找函数来进行查找,包括按照性别,学号,姓名,房间号等查询。
四.源代码:#include <stdio.h>#include<iomanip>#include<fstream># include <stdlib.h>#include<iostream.h># define N 20void showheader();int menu();int menu3();int menu5();//int quanxian();//void SavePass();struct student shuru();void display(struct student);void sort(struct student stu[N],int);void charu(struct student stu[N],int);void chazhao1(struct student stu[N],int i); void chazhao2(struct student stu[N],int i); void chazhao3(struct student stu[N],int i);struct student{int ID;char name[15];char sex;int roomnum;float score[3];char *getSex(){if(sex=='g')return "女";elsereturn "男";}};void main(){struct student stu[N];int count=0,m=0,j;char ch,ch1;int choice,choice3,choice4;int user;do{do{ ch1='n';choice=menu();switch(choice){case 1: {do{cout<<"*********** 学员信息录入 ********\n";cout<<"请输入第"<<count+1<<"个学员的信息\n\n";stu[count]=shuru();//cout<<"是否继续(y/n)";fflush(stdin);ch=getchar();count++;}while(ch=='y');break;}case 2:{cout<<"******************* 学员信息显示 ************\n";cout<<"\n排序后的信息如下:\n";sort(stu,count);showheader();for(j=0;j<count;j++){display(stu[j]);}break;}case 3://插入功能{while(choice3!=3){choice3=menu3();if(choice3==1){do{ cout<<"****************** 学员信息插入 ***************\n";charu(stu,count);count++;cout<<"是否继续插入?(y/n)";fflush(stdin);ch=getchar();}while(ch=='y');}if (choice3==2){cout<<"\n\n插入学生信息后如下:\n"; sort(stu,count);showheader();for(j=0;j<count;j++){display(stu[j]);}}}break;}case 4://查找功能{while(choice4!=4){choice4=menu5();if(choice4==1){chazhao1(stu,count);}if(choice4==2){chazhao2(stu,count);}if(choice4==3){chazhao3(stu,count);}}break;}case 5://退出{cout<<"确认退出?(y/n)";fflush(stdin);ch=getchar();break;}default:{cout<<"\a\a警告:您输入错误,是否重输!(y/n)";fflush(stdin);ch1=getchar();break;}}}while(ch=='n'|| ch1=='y');{cout<<"\a\a警告:您的用户名或密码输入有误!是否重输?(y/n)"; }fflush(stdin);ch=getchar();}while(ch=='y');}struct student shuru(){struct student stu;cout<<"学号:";cin>>stu.ID;cout<<"姓名:";cin>>;cout<<"性别(g/b):";fflush(stdin);cin>>stu.sex;cout<<"房间号:";cin>>stu.roomnum;cout<<"是否继续?(Y/N)"<<endl;return stu;}void display(struct student stu){cout<<"\t"<<stu.ID<<"\t";cout<<<<"\t";cout<<stu.getSex()<<"\t";cout<<stu.roomnum<<"\t"<<endl;;}void sort(struct student stu[N],int i){int j,k;struct student temp;for(j=0;j<i;j++){for(k=0;k<i-j-1;k++){if((stu[k].ID)>(stu[k+1].ID)){temp=stu[k];stu[k]=stu[k+1];stu[k+1]=temp;}}}}void charu(struct student stu[N],int k){int i,l;struct student in ;in=shuru();for(i=0;i<k;i++){}for(l=k;l>i;l--){stu[l]=stu[l-1];}stu[i]=in;}int menu(){ int choice;cout<<"\t\t*************\n\n\t\t\t 欢迎进入学生宿舍管理查询系统\n\n\t\t*****************************\n\n";cout<<"\t\t\t***************主菜单***************\n\n";cout<<"\t\t\t\t1> 学生信息录入\n\n";cout<<"\t\t\t\t2> 学生信息显示\n\n";cout<<"\t\t\t\t3> 插入学生信息\n\n";cout<<"\t\t\t\t4> 查找学生信息\n\n";cout<<"\t\t\t\t5> 退出\n";cout<<"\n\n请选择功能选项:";cin>>choice;return choice;}int menu3(){ cout<<"\t***************这里显示的是插入功能子菜单***************\n\n"; cout<<"\t\t\t\t1、插入学生信息\n\n";cout<<"\t\t\t\t2、显示插入后的学生信息\n\n";cout<<"\t\t\t\t3、退出子菜单,返回上一级菜单\n\n";cout<<"\n\n请选择功能选项:";int choice3;cin>>choice3;return choice3;}void chazhao1(struct student stu[N],int i){int select,j;char ch;cout<<"\t***********您选择的是按照学号查找:*********\n\n"; do{cout<<"\n\n请输入学号:";cin>>select;for(j=0;j<i;j++){if(select==stu[j].ID){break;}}if(j<i){showheader();display(stu[j]);}else{cout<<"你查找的信息不存在\n";}fflush(stdin);ch=getchar();}while(ch=='y');}void chazhao2(struct student stu[N],int i){int j;char name[15];char ch;cout<<"\t*********您选择的是按照姓名查找:********\n\n";do{cout<<"\n\n请输入姓名:";cin>>name;for(j=0;j<i;j++){if(strcmp(name,stu[j].name)==0){break;}}if(j<i){showheader();display(stu[j]);}else{cout<<"你查找的信息不存在\n";}fflush(stdin);ch=getchar();}while(ch=='y');}void chazhao3(struct student stu[N],int i){int j,room;char ch;cout<<"\t*******************您选择的是按照房间号查找:*******************\n\n"; do{cout<<"\n\n请输入房间号:";cin>>room;for(j=0;j<i;j++){if(room==stu[j].roomnum){break;}}if(j<i){showheader();display(stu[j]);}else{cout<<"你查找的信息不存在\n";}cout<<"是否继续查找?(y/n)";fflush(stdin);ch=getchar();}while(ch=='y');}int menu5(){cout<<"\t**********这里显示的是查找功能子菜单***********\n\n"; cout<<"\t\t\t\t1、按照学号查找\n\n";cout<<"\t\t\t\t2、按照姓名查找\n\n";cout<<"\t\t\t\t3、按照房间号查找\n\n";cout<<"\t\t\t\t4、退出子菜单,返回上一级菜单\n\n";cout<<"\n\n请选择功能选项:";int choice4;cin>>choice4;return choice4;}void showheader(){ cout<<"\n\n\t************************************\n";cout<<"\t学号\t姓名\t性别\t房间号\t\n";cout<<"\t******************************************\n";}五.程序运行的结过图2.主菜单显示图3.信息录入界面图4.信息显示界面图5.查找学生信息界面六.收获及体会通过四个星期的时间,我把课程设计给完成了,这是一个坚苦而又漫长的过程。
南博neimbo—宿舍管理系统
南博neimbo—宿舍管理系
一、系统概括
实现学生宿务智能分配、数据登记、编辑、报表生产、查询、统计工作,将宿舍安全、宿舍资源和宿舍生活进行统一智慧化管理,为学校和学生提供一站式服务,提高学校宿管理效率,实现了学校宿舍管理工作的信息化、便捷化、智能化。
二、核心功能
1、基础管理
宿舍楼、楼层以及宿舍基本信息管理,包含宿舍楼、楼层、宿舍信息添加、删除、修改,支持批量导入
2、宿务管理
宿舍分配、宿舍变更、学生宿舍违纪情况管理、宿舍访客管理、宿舍清空管理、宿舍保修管理、通知公告、卫生评比
3、宿舍资产管理
宿舍资产类别管理、资产管理及资产查询
4、制度管理
寝室制度类别设置、制度查询、制度管理
5、住宿考勤
住宿考勤设置、考勤管理、违纪类型管理、违纪管理
6、宿舍统计
宿舍容量统计、宿舍学生统计及考勤统计、违纪统计
7、宿舍报道
为新生提供预分宿舍功能,在迎新现场直接为学生分配宿舍生入
三、产品亮点
1、集中式住宿安排与调整
集中式住宿安排与调整,实现学生住宿批量自动分配、退宿、宿舍调整、入住等多种情况
2、支持移动端
支持移动终端对宿舍卫生、安全、纪律等方面进行录入处理和上报
3、支持对接各种人脸识别终端
支持对接各种人脸识别终端,对进出宿舍人员进行人脸是被身份核验,可实现宿舍无感考勤
4、多种宿舍调换方式
宿舍调换支持多种方式:单人更换、两人互调、两个房间互调
5、图表分析功能
系统提供实用的图表分析功能、提供了公寓房间的床位分配情况。
数据结构课程设计——宿舍管理查询软件
数据结构课程设计宿舍管理查询软件班级学号班学生姓名提交日期2015年7月24日成绩计算机与通信工程学院一、需求分析1、程序设计任务为宿舍管理人员编写一个宿舍管理查询软件。
①程序设计要求:A. 采用交互工作方式B. 建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)②查询菜单: (用二分查找实现以下操作)A. 按姓名查询B. 按学号查询C. 按房号查询③打印任一查询结果(可以连续操作)2、功能①要实现交互工作方式,各项操作结束后均应返回主菜单;②系统本无任何信息数据,要建立数据文件,需开发一个信息录入功能,即首先创建一个学员线性表,同时我们可以将数据暂时保存在内存中,所以我们未开发信息存盘功能;③信息录入后都保存在内存中,用户看不到,需要设计一个信息显示功能,信息的显示应该便于查阅,所以需具备按各种关键字显示的功能;④本系统按关键字(姓名、学号、房号)进行冒泡排序,采用二分查找方式分别实现按关键字(姓名、学号、房号)查询功能;⑤由于有些同学因为不同原因而离校,所以设计了删除功能;⑥由于有新同学入校,所以设计了插入功能;⑦当用户操作完毕需要退出时,我们提供了退出选项,便于使用者退出交互式工作系统。
3、功能模块图4、流程图5、输入和输出①输入的形式1)开始创建线性表:按先后顺序输入姓名(20个字以内),学号(整型),房号(整型)。
2)根据用户所选择的操作键,然后再根据程序的相应提示进行输入。
选择操作键1(按姓名排序):无输入;选择操作键2(按学号排序):无输入;选择操作键3(按房号排序):无输入;选择操作键4(按姓名查找):输入要查找的姓名;选择操作键5(按学号查找):输入要查找的学号;选择操作键6(按房号查找):输入要查找的房号;选择操作键7(按学号插入):按照提示顺序输入要插入的学生姓名,学号,房号;选择操作键8(按学号删除):输入要删除学生的学号。
②输出的形式及范围根据用户选择的不同,会有不同的输出。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
宿舍管理查询软件课程设计报告一、.需求分析:1.设计要求:1)为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求:a.采用交互工作方式;b.建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)。
2) 查询菜单: (用二分查找实现以下操作):a.按姓名查询;b.按学号查询;.c.按房号查询。
3)显示记录;4)删除记录;5)能够实现连续操作;6)在符合以上课题要求、实现相应功能的同时,要求界面友好美观,操作方便易行;注意程序的实用性、安全性。
2.题目分析:1)首先应确定这一软件的使用人员为宿舍管理人员,软件必须包含输入、排序、查询、插入、显示、删除等功能;2)为方便使用,需要设计一个较为人性化的操作界面。
使用不同数字来代表不同操作,使用人员只需输入相应数字,程序即可运行对应的功能;a.建立数据文件:在程序中包含“输入学生信息”的功能,可通过创建一个学生数组,将数据暂时保存在其中。
学生信息应该包括:宿舍号,床位号,姓名及学号。
b.排序:设计软件根据关键字房号、学号、姓名等进行冒泡排序;c.插入:利用顺序表的插入实现该功能;d.查询:题目要求使用二分查找,可按关键字房号、学号、姓名进行查找;f.显示:在屏幕上输出全部学生信息;g.打印:将程序与打印机连接,并将查询到的某一学生信息或全部学生信息打印;h.删除:利用线性表的删除实现该功能3)题目分析2)中的各个功能都将对应的建立一个函数,并在主函数中对以上功能进行调用;4)为完善软件功能,可以添加退出功能;5)若输入无效信息,系统将进行提醒。
二、概要设计1.为了实现程序的结构化特征,首先将需要实现的各个功能编写成相应的子函数,并在主函数中逐个调用以实现其全部功能;2.添加AddStudent(Student room[]) 子函数来完成添加学生信息的功能;3.添加Display(Student room[],int n)子函数来完成显示学生信息的功能;4.添加Sort_by_name(Student room[],int n)、Sort_by_num(Student room[],int n)和Sort_by_roomnum(Student room[],int n)三个子函数分别实现按学生姓名、学号和宿舍号的排序功能;5.添加Delete_by_name(Student room[],int n)、 Delete_by_name(Student room[],int n) 和Delete_by_name(Student room[],int n)三个子函数分别实现按学生姓名、学号和宿舍号对学生信息进行删除的操作;6.添加Query_by_roomnum(Student room[],int n)、Query_by_roomnum(Student room[],int n)和Query_by_roomnum(Student room[],int n)三个子函数分别实现按学生姓名、学号和宿舍号对学生信息的查询功能;7.由于涉及到文件的读写与保存,增加了AddfromText(Student room[],int n)和WritetoText(Student room[],int n)两个子函数分别保存和写入文件;8.最后用main主函数将各个子函数统一,通过switch语句来实现用户与程序的互动,并使用一个菜单函数来显示主界面。
9.程序流程图如下:图1三、详细设计1.菜单界面:int menu() //菜单函数{int c;do{system("cls"); //运行前清屏printf("\t▽▽▽▽▽▽▽▽▽▽学生宿舍管理系统▽▽▽▽▽▽▽▽▽▽\n");printf("\t 1.添加学生信息 \n");printf("\t 2.显示记录 \n");printf("\t 3.按姓名号排序并显示 \n"); printf("\t 4.按学号排序并显示 \n");printf("\t 5.按宿舍号排序并显示 \n");printf("\t 6.插入学生信息 \n");printf("\t 7.按姓名删除学生信息 \n");printf("\t 8.按学号删除学生信息 \n");printf("\t 9.按宿舍号删除学生信息 \n");printf("\t 10.按姓名查找学生 \n");printf("\t 11.按学号查找学生 \n");printf("\t 12.按宿舍号查找学生 \n");printf("\t 0.退出程序 \n");printf("\t△△△△△△△△△△△△△△△△△△△△△△△△△△△△\n");printf("\t请输入要进行的操作代码(0-9):");c=getchar();}while(c<0||c>12);return(c-'0');}2.首先需要构造一个学生结构体,在其中定义学生的相关信息:typedef struct //定义结构体数组{char roomnum[4]; //宿舍号char bednum[2]; //床位号char num[10]; //学号char name[20]; //姓名}Student;3. 添加学生信息,运用scanf语句来接收用户输入,并将信息存入相应的结构体变量中:void AddStudent(Student room[]){char choice; //choice判断是否继续相应操作printf("\t您现在要录入的是第%d个学生信息\n",R+1);printf("\t宿舍号:");scanf("\t%s",room[R].roomnum);printf("\t床位号:");scanf("\t%s",room[R].bednum);printf("\t学号:");scanf("\t%s",room[R].num);printf("\t姓名:");scanf("\t%s",room[R].name);R=R+1;printf("添加成功!\n\n");printf("是否继续输入?(Y/N)");scanf("%c",&choice);choice=getchar();if(choice=='y'||choice=='Y')AddStudent(room);}4.运用printf语句实现学生信息的显示功能;5.通过冒泡法对学生进行排序操作:void Sort_by_name(Student room[],int n){int i,j;char t[10];for(i=0;i<n;i++)for(j=0;j<n;j++)if(strcmp(room[j].name,room[j+1].name)>0){strcpy(t,room[j+1].roomnum);strcpy(room[j+1].roomnum,room[j].roomnum);strcpy(room[j+1].roomnum,t);strcpy(room[j+1].bednum,room[j].bednum);strcpy(room[j+1].bednum,t);strcpy(t,room[j+1].num);strcpy(room[j+1].num,room[j].num);strcpy(room[j].num,t);strcpy(t,room[j+1].name);strcpy(room[j+1].name,room[j].name);strcpy(room[j].name,t);}}6.对学生的删除功能int Delete_by_name(Student room[],int n){char s[20];int i=0,j;printf("\t输入学生姓名:");scanf("%s",s);while(strcmp(room[i].name,s)!=0&&i<n)i++;if(i==n){printf("\t没有找到学生信息!\n");return(n);}for(j=i;j<=n;j++) //删除信息{strcpy(room[j].roomnum,room[j+1].roomnum);strcpy(room[j].bednum,room[j+1].bednum);strcpy(room[j].num,room[j+1].num);}printf("删除记录成功!\n");return(n-1);}7.对学生的查找功能void Query_by_name(Student room[],int n) //按姓名查找并显示记录{char s[20];int i=0;printf("输入学生姓名:");scanf("\t%s",&s);while(strcmp(room[i].name,s)!=0&&i<n)i++;if(i==n){printf("\t没有找到学生信息!");return;}printf("\t该学生宿舍号:%s\n",room[i].roomnum);printf("\t该学生床位号:%s\n",room[i].bednum);printf("\t该学生学号:%s\n",room[i].num);}8.从文件中读取信息int AddfromText(Student room[],int n) //从文件中读取数据{int i=0,num;FILE *fp;char filename[20];printf("\t输入文件名:");scanf("\t%s",&filename);if(fp=fopen(filename,"rb")==NULL){printf("\t无法打开该文件!\n");printf("\t");system("pause");return(n);}fscanf(fp,"%d",&num); //读入总记录量while(i<num){fscanf(fp,"%s%s%s%s",room[n+i].roomnum,room[n+i].bednum,room[n+i].num,room[ n+i].name);i++;}n+=num;fclose(fp);printf("\t读入成功!\n");printf("\t");system("pause");return(n);}四、调试分析五、课程设计总结本次编程首先遇到的问题就是录入的信息始终无法保存在文件中。