宿舍信息管理系统
宿舍管理,没什么好玩的,就是繁琐,很多东西需要你细化,而且一般要求为交互式平台,而且选项多,出错处较多,排错就是一个相当大的工程。我写的这个里面没有太多的排错功能,因为那东西就是烦而已,多几个if 判断下而已,因为烦的慌,觉得也没啥意思,就没细细的写,粗略的写了几个。 查询也是只写了按学号查询,是用的折半查找。排序是用的快速排序,因为时间消耗比较小,喏,那是上个排序综合里有的,所以写这个就用的那个里的快速排序,很简单,就是对下而已,改下结构体,complete!呵呵,程序如下:头文件里的:struct student
{
char name[10];
int num;
int dormin;
};cpp文件:// 宿舍管理.cpp : 定义控制台应用程序的入口点。
//
///////////////////////////////////////////////////////////////////////
/*8、宿舍管理查询软件(**)
任务:为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求:
(1)采用交互工作方式
(2)可以增加、删除、修改信息
(3)建立数据文件 ,数据文件按关键字(姓名、学号、房号)进行排序(选择、快速排序、堆排序等任选一种)
(4) 查询 : a.按姓名查询 ;b.按学号查询 ;c按房号查询
(5) 打印任一查询结果(可以连续操作)
*/
/////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include<fstream>
#include<stdlib.h>
#include<iostream>
using namespace std;
#define max 10
int _tmain(int argc, _TCHAR* argv[])
{void input(student *,int);void display(student *,int);void add(student *,int &,int);<br>void qsort(student *,int,int);void del(student *,char *,int &);void change(student *,char *,int );<br>void search(student *,int,int,int);</p><p>int stunum,choose;<br>ifstream infile("stunum.txt");<br>if(!infile) cout<<"文件中尚未创建信息!"<<endl;<br>else infile>>stunum;<br>infile.close();</p><p>char name[10];<br>cout<<"****************************************************"<<endl;<br>cout<<endl<<endl;<br>cout<<" 欢迎进入学生宿舍管理系统!!"<<endl;<br>cout<<endl<<endl;<br>cout<<"****************************************************"<<endl;<br>while(1){<br>cout<<"1.输入学生宿舍信息"<<endl;<br>cout<<"2.显示已输入信息"<<endl;<br>cout<<"3.信息修改"<<endl;<br>cout<<"4.信息查询"<<endl;<br>cout<<"5.信息排序"<<endl;<br>cout<<"6.退出系统"<<endl;<br>cout<<"请输入需要执行的任务:";<br>cin>>choose;<br>student *S;S=new student[max];<br>switch(choose){<br> case 1:{cout<<"输入数据将使原来数据丢失,确定这样做吗?(y/n)"<<endl;<br>bool yn=0;char temp;<br>cin>>temp;<br>if(temp=='y') yn=1;<br>if(yn){cout<<"请输入学生数目:";<br> cin>>stunum;<br> input(S,stunum);<br>ofstream outfile("stunum.txt");<br>outfile<<stunum;<br>outfile.close();break;}}
case 2:display(S,stunum);break;
case 3:
{int cchoose;cout<<"1.修改信息"<<endl;<br> cout<<"2.添加信息"<<endl;cout<<"3.删除信息"<<endl;cout<<"请输入要执行的任务:"<<endl;<br> cin>>cchoose;<br> switch(cchoose)<br> {case 1:{cout<<"请输入修改的信息人名"<<endl;cin>>name;change(S,name,stunum);break;}
case 2:{int ad;cout<<"请输入添加人数:";cin>>ad;add(S,stunum,ad);break;}
case 3:{cout<<"请输入删除信息的人名"<<endl;cin>>name;del(S,name,stunum);break;}
break;}break;}
case 4:{cout<<"请输入学号:";<br> int cchoose;cin>>cchoose;search(S,0,stunum,cchoose);<br> break;}
case 5:{ifstream infile("stuinfor.txt",ios::in);<br> for(int i=0;i<stunum;i++)<br> infile>>S[i].name>>S[i].num>>S[i].dormin;<br> qsort(S,0,stunum-1);<br> ofstream outfile("sorted_infor.txt");<br> for(int i=0;i<stunum;i++) {outfile<<S[i].name<<' '<<S[i].num<<' '<<S[i].dormin<<endl;<br> cout<<S[i].name<<' '<<S[i].num<<' '<<S[i].dormin<<endl;}
outfile.close();infile.close();break;}
case 6:cout<<" 谢谢使用!"<<endl;exit(1);}
}
ofstream outfile("stunum.txt");
outfile<<stunum;
outfile.close();
return 0;
}
void input(student *stu,int all)
{ofstream outfile("stuinfor.txt");<br>for(int i=0;i<all;i++)<br>{cout<<"请输入第"<<i+1<<"个学生的姓名 学号 宿舍号:";<br> cin>>stu[i].name>>stu[i].num>>stu[i].dormin;<br> outfile<<stu[i].name<<" "<<stu[i].num<<" "<<stu[i].dormin<<endl;<br>}
outfile.close();
}
void display(student *stu,int all)
{
ifstream infile("stuinfor.txt",ios::in);
if(!infile) cerr<<"文件打开失败!"<<endl;
else{
for(int i=0;i<all;i++)
{cout<<"输入的第"<<i+1<<"个学生的姓名 学号 宿舍号分别为:";<br> infile>>stu[i].name>>stu[i].num>>stu[i].dormin;<br> cout<<stu[i].name<<" "<<stu[i].num<<" "<<stu[i].dormin<<endl;<br>}
infile.close();}
}
void add(student *stu,int &all,int add)
{
ofstream outfile("stuinfor.txt",ios::app);
for(int i=0;i<add;i++)
{
cout<<"请输入第"<<all+i+1<<"个学生的姓名 学号 宿舍号:";
cin>>stu[all+i].name>>stu[all+i].num>>stu[all+i].dormin;
outfile<<stu[all+i].name<<" "<<stu[all+i].num<<" "<<stu[all+i].dormin<<endl;
}
all+=add;
outfile.close();
}
//快速排序
int partition(student *a,int low,int high)
{
student tem;int piv=a[low].num;
while(high>low)
{
while(high>low&&a[high].num>=piv) high--;
tem=a[high];a[high]=a[low];a[low]=tem;
while(high>low&&a[low].num<=piv) low++;
tem=a[high];a[high]=a[low];a[low]=tem;
}
return low;
}
void qsort(student *a,int low,int high)
{int pivotloc;<br>if(low<high)<br>{<br> pivotloc=partition(a,low,high);<br> qsort(a,low,pivotloc-1);<br> qsort(a,pivotloc+1,high);<br>}
}
void del(student *stu,char *name,int &num)
{int delper;char check;<br>ifstream infile("stuinfor.txt");<br> for(int i=0;i<num;i++) <br> {<br> infile>>stu[i].name>>stu[i].num>>stu[i].dormin;<br> if(strcmp(name,stu[i].name)==0) delper=i;}
cout<<"您要删除的信息如下:"<<endl;
cout<<stu[delper].name<<" "<<stu[delper].num<<" "<<stu[delper].dormin<<endl;
cout<<"您确定要删除吗?(y/n)"<<endl;
cin>>check;
ofstream outfile("stuinfor.txt");
if(check=='y'||'Y')
{
for(int i=delper;i<num;i++) stu[i]=stu[i+1];
num--;
for(int i=0;i<num;i++) outfile<<stu[i].name<<" "<<stu[i].num<<" "<<stu[i].dormin<<endl;
cout<<"信息已删除!"<<endl;}
infile.close();
outfile.close();
}
void change(student *stu,char *name,int num)
{int change;char check,nam[10];<br>int cn,cd;<br>ifstream infile("stuinfor.txt");<br> for(int i=0;i<num;i++) <br> {<br> infile>>stu[i].name>>stu[i].num>>stu[i].dormin;<br> if(strcmp(name,stu[i].name)==0) change=i;<br> }
cout<<"您要修改的信息如下:"<<endl;
cout<<stu[change].name<<" "<<stu[change].num<<" "<<stu[change].dormin<<endl;
cout<<"您确定要修改吗?(y/n)"<<endl;
cin>>check;
ofstream outfile("stuinfor.txt");
if(check=='y'||'Y')
{
cout<<"请依次输入姓名 学号 宿舍号"<<endl;
cin>>nam>>cn>>cd;
strcpy(stu[change].name,nam);stu[change].num=cn;stu[change].dormin=cd;
for(int i=0;i<num;i++)
outfile<<stu[i].name<<" "<<stu[i].num<<" "<<stu[i].dormin<<endl;
cout<<"信息已修改!"<<endl;}
infile.close();
outfile.close();}void search(student *stu,int low,int high,int check)
{int mid=(low+high)/2;<br>ifstream infile("sorted_infor.txt");<br>if(!infile) cerr<<"文件打开失败!"<<endl;<br>else <br>{for(int i=0;i<high;i++) infile>>stu[i].name>>stu[i].num>>stu[i].dormin;<br>while(stu[mid].num!=check&&high>=low) {mid=(low+high)/2;if(stu[mid].num>check) high=mid-1;<br>else low=mid+1;}//折半查找
}
if(stu[mid].num==check)
{cout<<"您要查询的信息如下:"<<endl;<br>cout<<stu[mid].name<<" "<<stu[mid].num<<" "<<stu[mid].dormin<<endl;}
else cout<<"未能查到您所要查询信息!"<<endl;
}
㈡ 学生宿舍信息管理系统是一个什么系统
语言可以现学现用,关键你得做好需求。C#做蛮好的,安装的使用方法及B/S系统认识。 编制软件、编写软件开发文档和实验报告。 3. 需求 3.1功能需求 本次实验的题目为学生宿舍管理系统,要求: 3.1.1从主页面进入系统,对楼房、宿舍、班级、学生等信息进行编辑管理。 3.1.2要求系统能够使用添加编辑、按信息查找编辑和全库浏览等三种方式。 3.1.3按信息查找编辑包括对系统的查找、修改和删除。 3.2 用户界面需求 学生宿舍管理系统应提供简单、层次关系明了、清晰的操作界面,使用户一目了然。尽可能的为用户的添加、查询等功能操作提供方便。快捷按钮的创建也是非常需要的,以方便用户操作。 3.3开发语言和开发语言 本学生宿舍管理系统的用的开发环境与开发语言为Microsoft Visual Studio 2008和Microsoft SQL Server 2005. 4.试验内容和要求 完成学生宿舍管理软件的开发全过程,从分析一直到软件完成。该软件的基本需求是: 1. 数据输入:从键盘输入各类基本信息。宿舍的基本信息:地点、位置、楼层、面积、标准人数、内部设置、收费标准、类别等;班级基本信息:专业、年级、人数、辅导员、班长等;学生基本信息:年龄、性别等。 2. 能对基本信息进行插入、删除、修改等操作。 3. 完成宿舍的学生住宿分配,可以自动分配或手动分配。 4. 数据查询:按宿舍、专业、年级、班级、学生等进行分类查询,能进行精确和模糊查询 5.设计过程 5.1.用户要求 设计一款大学学生宿舍管理系统 5.2.系统功能模块化 在整体设计中,我们将宿舍管理系统分为六个大的模块:楼房管理模块、宿舍管理模块、班级管理模块、学生管理模块、信息查询功能模块和信息统计功能模块。每个模块将实现不同的功能。各个模块包含的内容如下图示: 图 4.1 学生宿舍管理系统图 在整体设计中,我们将宿舍管理系统分为六个大的模块:楼房管理模块、宿舍管理模块、班级管理模块、学生管理模块、信息查询功能模块和信息统计功能模块。每个模块将实现不同的功能 5.3.管理系统模块 该管理系统模块包括:添加编辑、按输入信息查找编辑和全库浏览三个部分。 5.3.1 添加编辑:对数据表格进行信息添加编辑。 5.3.2 按信息查找编辑:通过输入的信息对表格进行查找,也可以对查找出来的信息进行修改和删除。 5.3.3 全库浏览:直接查看整个表格信息。 5.4统所需表格 综和以上分析,要实现是那个面的所有功能模块,共需要设计六个表格,他们分别是:楼房基本情况表、宿舍基本情况表、宿舍等级表、班级基本情况表、学生基本情况表、迁出表。 楼房基本信息表:详细登记学校楼房基本信息。 宿舍基本信息表:详细登记学校宿舍基本信息。 宿舍等级表:记录等级信息。 班级基本信息表:详细登记学校班级基本情况。 学生基本信息表:详细登记学校学生基本情况。 迁出表:记录迁出出信息。 六 学习感悟 学了一个学期的软件工程课,终于知道了个软件工程的大概,也学到了一些以后在学习生活中普遍使用的方法。我们为什么需要软件工程呢?未接触软件工程之前一直都很想学这门课程,因为觉得这门课很重要,是那些有工程师称号的高手才摆弄的东西。但学过之后,最大的感触却是:软件工程方法一定要从头抓起,否则到了后面坏习惯已经养成后再回过头来修正,那绝对是地狱般的磨难。下面就是我在近两个月的学习中一些总结和体会,希望对后来者有所补益。由于是初学这门课程,难免浅薄和有所错漏,还望大家多多指教。
㈢ 宿舍管理系统有什么功能
宿舍管理系统是为学校宿管科老师方便管理学生住宿情况设计的信息管理系统,通过宿舍管理系统可实时掌握学校公寓使用情况、每个公寓楼房间住宿情况、全校学生住宿情况、每个学生住宿详细信息等等。它是基于网络的B/S结构程序,可与数字迎新系统、收费系统、数据中心结合使用,也可单独使用。
宿舍管理系统涵盖了学生信息管理、公寓信息管理、学生入住管理、学生收费管理、学生退宿管理、日常操作管理等一系列有关宿舍管理的业务流程。系统不仅仅支持单条数据记录的处理更支持批量记录的处理,例如:批量生成房间、批量退宿、批量入住等;系统增加了特有的临客管理功能,为管理临时住宿人员提供便利;系统还提供了预分宿舍功能,可以在迎新现场直接为学生分配宿舍。
宿舍调整支持多种方式,如:单人调整、两人互调、单个房间调整、两个房间互调。楼宇类型支持多种类型:筒子楼和单元楼。系统还提供了一些辅助管理功能,例如:学生违纪登记、物品维修登记、访客信息登记、物品借用登记。
希望此图能帮助到您,望点赞!