#include<>
#include<>
#include<>
#include<>
#define m 100
int dirty=0;
typedef struct
char s_name[31]; 学生姓名。
char s_number[16]; 学生学号。
long d_number; /学生所在寝室的宿舍号。
int total学生总数。
student[m],st;
/判断学号是否与表中所存学号重复。
void s_number_judge(student s,int t)
int i;
for(i=1;i<=(s->total)-1;i++)
while(strcmp(s[i].s_number,s[t].s_number)==0)
/添加学生信息函数。
void add(student s)
printf("请输入学生姓名(30个字符以内):"
scanf("%s",s[++s->total)].s_name);
getchar();
printf("请学输入学生的学号(15个字符以内):"
scanf("%s",s[s->total].s_number);
getchar();
s_number_judge(s,s->total);/判断输入的学号是否与表中所存在的学号重复。
printf("请输入宿舍号码:")
scanf("%d",&s[s->total].d_number);
getchar();
dirty=1;
printf("\t添加成功!");
/显示所有学生信息。
void display_all(student s)
int i;
printf("全体学生信息如下:");
printf("学生姓名学生学号宿舍号");
for(i=1;i<=s->total;i++)
printf("%20s%-15s%-5d",s[i].s_name,s[i].s_number,s[i].d_number);
putchar('');
/按照学号从小到大排序(冒泡法)
void sort_s_number(student 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[i].s_number,s[j].s_number)>0)
strcpy(name,s[i].s_name);
strcpy(number,s[i].s_number);
t=s[i].d_number;
strcpy(s[i].s_name,s[j].s_name);
strcpy(s[i].s_number,s[j].s_number);
s[i].d_number=s[j].d_number;
strcpy(s[j].s_name,name);
strcpy(s[j].s_number,number);
s[j].d_number=t;
/按照寝室号从小到大排序(冒泡法)
void sort_d_number(student 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[i].d_number>s[j].d_number)
strcpy(name,s[i].s_name);
strcpy(number,s[i].s_number);
t=s[i].d_number;
strcpy(s[i].s_name,s[j].s_name);
strcpy(s[i].s_number,s[j].s_number);
s[i].d_number=s[j].d_number;
strcpy(s[j].s_name,name);
strcpy(s[j].s_number,number);
s[j].d_number=t;
/以姓名为关键字进行查询(顺序查找)
void query_s_name(student s)
int i,j=0;
char name[31];
printf("请输入你要查找的学生的姓名(30个字符以内):"
scanf("%s",name);
getchar();
printf("所查找学生信息如下:");
printf("学生姓名学生学号宿舍号");
for(i=1;i<=s->total;i++)
if(strcmp(name,s[i].s_name)==0)
if(!j)
printf("查找失败,表中不存在该学生的信息!");
/以学号为关键字进行查询(折半查找)
void query_s_number(student s)
int j,high,low,mid;
char number[15];
j=0;low=1;
high=s->total;
printf("请输入你要查找学生的学号:")
scanf("%s",number);
getchar();
sort_s_number(s); 将表中原数据排列成有序序列。
printf("所查找学生信息如下:");
printf("学生姓名学生学号宿舍号");
if(strcmp(number,s[1].s_number)>=0&&strcmp(number,s[s->total].s_number)<=0)
if(!j)
printf("查找失败,表中不存在该学生的信息!");
/以寝室号为关键字进行查询(折半查找)
void query_d_number(student 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);/将表中原数据按照寝室号从小到大排序。
if(i>=s[1].d_number&&i<=s[s->total].d_number)
if(!j)
printf("查找失败,表中不存在该寝室的信息!");
void menu()
printf("\t宿舍管理系统n");
printf("\tn");
printf("\tn");
printf(" t 1. 建立数据\t 2. 查询\t 3. 排序\t 4.退出系统 ");
printf("\tn");
printf("\tn");
宿舍管理系统
需求分析。一编写目的。通过对用户需求进行调查分析,写出需求分析文档。需求分析文档可作为项目设计的基本准则要求,也可作为系统分析员进行系统分析和测试的手册。二需求概述。设计一个宿舍管理系统,使之提供以下功能 1 信息输入功能。2 排序功能。3 查询功能。三需求说明。1 学生的信息包括姓名 学号 房号和...
宿舍管理系统
班级 学号 姓名 第九组。宿舍管理系统测试分析说明书。查询模块设计。1引言。1.1项目开发背景。随着时代的发展,计算机技术越来越深入各行各业,为广大的用户提供了更为周到和便捷的服务。对于学校而言,学生宿舍管理系统是学校必不可少的一个组成部分,采用计算机来管理宿舍和学生的信息,大大提高了查询的速度,节...
宿舍管理系统
一 课程设计目的和任务。为了方便宿舍管理处更好的管理宿舍情况,在新生入学时记录下学生的相关信息,并在以后能够实现学生的查询和退房。并且按照不同的要求查询学生的相关信息,如,姓名,学号,房间号。二 分析与设计。1.程序的基本功能 1 建立一个宿舍。2 输入学生信息,3 修改一个学生的所有资料。4 删除...