宿舍管理查询软件.docx

上传人:b****6 文档编号:6173346 上传时间:2023-01-04 格式:DOCX 页数:28 大小:118.52KB
下载 相关 举报
宿舍管理查询软件.docx_第1页
第1页 / 共28页
宿舍管理查询软件.docx_第2页
第2页 / 共28页
宿舍管理查询软件.docx_第3页
第3页 / 共28页
宿舍管理查询软件.docx_第4页
第4页 / 共28页
宿舍管理查询软件.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

宿舍管理查询软件.docx

《宿舍管理查询软件.docx》由会员分享,可在线阅读,更多相关《宿舍管理查询软件.docx(28页珍藏版)》请在冰豆网上搜索。

宿舍管理查询软件.docx

宿舍管理查询软件

 

数据结构课程设计报告

题目:

宿舍管理查询软件

 

院(系):

____________

专业:

___________

班级:

______________

学生:

___________________

学号:

______________

指导老师:

______________

2014年6月

 

目录

中文摘要………………………………………………………………3

英文摘要………………………………………………………………4

1方案设计……………………………………………………………6

1.1任务………………………………………………………………………6

1.1.1程序设计要求……………………………………………………6

1.1.2查询菜单:

(用二分查找实现以下操作)……………………6

1.1.3打印任一查询结果(可以连续操作)…………………………6

1.2功能………………………………………………………………………6

2线性表的顺序存储…………………………………………………6

2.1存储结构……………………………………………………………………6

2.2程序结构图…………………………………………………………………7

3程序代码……………………………………………………………7

4调试分析…………………………………………………………18

4.1使用方法…………………………………………………………………18

4.2测试数据…………………………………………………………………18

4.2.1测试数据选择……………………………………………………18

4.3测试输出结果……………………………………………………………18

4.3.1欢迎界面…………………………………………………………18

4.3.2按任意键进入创维界面…………………………………………19

4.3.3输入数据,开始创建……………………………………………19

4.3.4请按键选择操作…………………………………………………20

4.3.5按姓名排序………………………………………………………20

4.3.6按学号排序………………………………………………………21

4.3.7按房号排序………………………………………………………21

4.3.8按姓名查找………………………………………………………22

4.3.9按学号查找………………………………………………………23

4.3.10按房号查找……………………………………………………24

4.3.11退出……………………………………………………………25

4.4分析结果…………………………………………………………………25

总结……………………………………………………………………26

致谢……………………………………………………………………27

参考文献………………………………………………………………28

 

宿舍管理查询软件

 

摘要

在校学生的信息管理是校园管理中的一个重要内容,随着国家扩招政策的继续实施,学生数量也不断增加、信息的不断细化、各个行业间联系的不断密切,对人事管理的要求也不断提高。

如何记录和管理好学生的信息,对学生实施高效的宏观管理,对学生出入宿舍以及学生注入和迁出的信息的灵活的记录及更新,是一项繁重而艰巨的任务。

关键词:

C++,宿舍信息查询,宿舍信息管理

 

Dormitorymanagementquerysoftware

 

Abstract

Theinformationmanagement ofcollegestudents isanimportantpartof campusmanagement, alongwiththenational enrollmentpolicy toimplement, contactthestudent quantityisincreasing, information ofthecontinuousrefinement, industriescontinueto close, therequirementsforpersonnelmanagement isalsorising. Howtorecordand managethestudents' information,theimplementationofmacroeconomicmanagement andefficient forstudents, recordand update onstudent dormitory andflexible access into andout ofthe student information, isaheavyand arduoustask.

Keywords:

 C++, dormitoryinformation query, dormitorymanagementinformation

 

1方案设计

1.1任务

为宿舍管理人员编写一个宿舍管理查询软件

1.1.1程序设计要求

①采用交互工作方式

②建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)

1.1.2查询菜单:

(用二分查找实现以下操作)

①按姓名查询

②按学号查询

③按房号查询

1.1.3打印任一查询结果(可以连续操作)

1.2功能

根据上述要求,我们开始考虑系统应具备的功能:

①要实现交互工作方式,各项操作结束后均应返回主菜单;

②系统本无任何信息数据,要建立数据文件,需开发一个信息录入功能,即首先创建一个学员线性表,同时我们可以将数据暂时保存在内存中,所以我们未开发信息存盘功能;

③信息录入后都保存在内存中,用户看不到,需要设计一个信息显示功能,信息的显示应该便于查阅,所以需具备按各种关键字显示的功能;

④本系统按关键字(姓名、学号、房号)进行冒泡排序,采用二分查找方式分别实现按关键字(姓名、学号、房号)查询功能;

⑤由于有些同学因为不同原因而离校,所以设计了删除功能;

⑥由于有新同学入校,所以设计了插入功能;

⑦当用户操作完毕需要退出时,我们提供了退出选项,便于使用者退出交互式工作系统。

算法设计

2线性表的顺序存储

2.1存储结构

本系统定义的存储结构采用结构体数组,结构体为:

typedefstruct//定义结构体成员

{

charname[20];

intnum;//学号和房号都为整型

introom;

}stu;

stustud;

typedefstruct

{

intlength;//当前长度

stu*elem;//存储空间基址

intlistsize;//当前分配的存储容量

}linklist;

2.2程序结构图为

3程序代码

#include

#include

#include

#defineN40

#defineincrease10

intf,t=0;

typedefstruct

{

charname[20];

intnum;

introom;

}stu;

stustud;

typedefstruct

{

intlength;

stu*elem;

intlistsize;

}linklist;

voidinit(linklist&l)

{

l.length=0;

l.elem=(stu*)malloc(N*sizeof(stu));

l.listsize=N;

}

voidmenu()

{

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("\n");

printf("\n");

printf("\n");

printf("提示:

当输入的数字键为0时,退出操作\n");

if(t==1)

{

printf("请输入数字键(1~6为操作键):

");

scanf("%d",&f);

if(f<0||f>7)

{

system("cls");

printf("\n");

printf("输入数字不对,请在原处重输!

\n");printf("\n");

menu();

}

}

}

voiddisp()

{

charc;

fflush(stdin);

printf("\n");

printf("请按任意键进入主界面:

");

scanf("%c",&c);

system("cls");

}

voidpanduan3()

{

printf("\n");

printf("已无学生记录\n");

printf("\n");

disp();

menu();

}

voidshuru(linklistl)

{

printf("请输入姓名:

");

fflush(stdin);

gets(stud.name);

printf("请输入学号:

");

scanf("%d",&stud.num);

printf("请输入房号:

");

scanf("%d",&stud.room);

}

voidcreate(linklist&l)

{

if(l.length>=l.listsize)

{

stu*newbase;

newbase=(stu*)realloc(l.elem,(N+increase)*sizeof(stu));

l.elem=newbase;

l.listsize+=increase;

}

inti=2;

charch;

printf("\n");

printf("******************开始创建线性表**********************\n");

printf("\n");

printf("请输入第1个学生的信息\n");

shuru(l);

ch=getchar();

strcpy(l.elem[l.length].name,stud.name);

l.elem[l.length].num=stud.num;

l.elem[l.length].room=stud.room;

l.length++;

printf("\n");

printf("是否继续输入?

:

");

scanf("%c",&ch);

printf("\n");printf("\n");

while(ch=='y')

{

printf("请输入第%d个学生的信息\n",i);

shuru(l);

strcpy(l.elem[l.length].name,stud.name);

l.elem[l.length].num=stud.num;

l.elem[l.length].room=stud.room;

l.length++;

i++;

ch=getchar();printf("\n");

printf("是否继续输入?

:

");

scanf("%c",&ch);

printf("\n");printf("\n");

}

if(ch=='n')system("cls");

}

voidsort3(linklist&l)

{

inti,j;

stutemp;

for(i=0;i

for(j=i+1;j

if(l.elem[i].room>l.elem[j].room)

{

temp=l.elem[i];

l.elem[i]=l.elem[j];

l.elem[j]=temp;

}

 

}

voidsort2(linklist&l)

{

inti,j;

stutemp;

for(i=0;i

for(j=i+1;j

if(l.elem[i].num>l.elem[j].num)

{

temp=l.elem[i];

l.elem[i]=l.elem[j];

l.elem[j]=temp;

}

 

}

voidsort1(linklist&l)

{

inti,j;

stutemp;

for(i=0;i

for(j=i+1;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;

}

 

}

voidprint1(linklist&l)

{

inti;

printf("\n");

printf("姓名学号房号\n");printf("\n");

for(i=0;i

printf("%-15s%-3d%5d\n",l.elem[i].name,l.elem[i].num,l.elem[i].room);

}

voidprint2(linklist&l,intmid)

{

printf("查找成功----->该学生信息为:

\n");

printf("姓名学号房号\n");printf("\n");

printf("%-15s%-5d%-5d\n",l.elem[mid].name,l.elem[mid].num,l.elem[mid].room);

}

intpanduan1(charch)

{

scanf("%c",&ch);

printf("是否继续查找?

:

");

fflush(stdin);

scanf("%c",&ch);

if(ch=='y')

{

system("cls");

return

(1);

}

else

return0;

}

intpanduan2(charch)

{

scanf("%c",&ch);

printf("该学生不存在,是否继续查找?

:

");

fflush(stdin);

scanf("%c",&ch);

if(ch=='y')

{

system("cls");

return

(1);

}

else

return0;

}

voidchazhao3(linklist&l)

{

if(l.length==0)panduan3();

else

{

intlow=0,high=l.length,mid,flag=0;

intm;

charch;

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;

}

elseif(m>l.elem[mid].room)

low=mid+1;

else

high=mid-1;

}

if(flag==1)

{

print2(l,mid);

if(panduan1(ch))

chazhao3(l);

else

{

system("cls");

menu();

}

}

else

{

if(panduan2(ch))

chazhao3(l);

else

{

system("cls");

menu();

}

}

}

}

voidchazhao2(linklist&l)

{

if(l.length==0)panduan3();

else

{

intlow=0,high=l.length,mid,flag=0;

intn;

charch;

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;

}

elseif(n>l.elem[mid].num)

low=mid+1;

else

high=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();

}

}

}

}

voidchazhao1(linklist&l)

{

if(l.length==0)panduan3();

else

{

intlow=0,high=l.length,mid,flag=0;

printf("\n");printf("\n");

printf("按姓名查找----->请输入要查找的姓名:

");

chara[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;

}

elseif(strcmp(a,l.elem[mid].name)>0)

low=mid+1;

else

high=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();

}

}

}

}

voidmain()

{

linklistl;

init(l);

charch;

system("colora");

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)

{

case1:

sort1(l);

printf("\n");

if(l.length==0)

{

printf("已无学生记录\n");

printf("\n");

disp();

menu();

}

else

{

printf("按姓名排序:

\n");

print1(l);

disp();

menu();

}

break;

case2:

sort2(l);

printf("\n");

if(l.length==0)

{

printf("已无学生记录\n");

printf("\n");

disp();

menu();

}

else

{

printf("按学号排序:

\n");

print1(l);

disp();

menu();

}break;

case3:

sort3(l);

printf("\n");

if(l.length==0)

{

printf("已无学生记录\n");

printf("\n");

disp();

menu();

}

else

{

printf("按房号排序:

\n");

print1(l);

disp();

menu();

}break;

case4:

sort1(l);

chazhao1(l);

break;

case5:

sort2(l);

chazhao

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1