宿舍管理系统源代码文档格式.docx

上传人:b****2 文档编号:5937270 上传时间:2023-05-05 格式:DOCX 页数:16 大小:22.12KB
下载 相关 举报
宿舍管理系统源代码文档格式.docx_第1页
第1页 / 共16页
宿舍管理系统源代码文档格式.docx_第2页
第2页 / 共16页
宿舍管理系统源代码文档格式.docx_第3页
第3页 / 共16页
宿舍管理系统源代码文档格式.docx_第4页
第4页 / 共16页
宿舍管理系统源代码文档格式.docx_第5页
第5页 / 共16页
宿舍管理系统源代码文档格式.docx_第6页
第6页 / 共16页
宿舍管理系统源代码文档格式.docx_第7页
第7页 / 共16页
宿舍管理系统源代码文档格式.docx_第8页
第8页 / 共16页
宿舍管理系统源代码文档格式.docx_第9页
第9页 / 共16页
宿舍管理系统源代码文档格式.docx_第10页
第10页 / 共16页
宿舍管理系统源代码文档格式.docx_第11页
第11页 / 共16页
宿舍管理系统源代码文档格式.docx_第12页
第12页 / 共16页
宿舍管理系统源代码文档格式.docx_第13页
第13页 / 共16页
宿舍管理系统源代码文档格式.docx_第14页
第14页 / 共16页
宿舍管理系统源代码文档格式.docx_第15页
第15页 / 共16页
宿舍管理系统源代码文档格式.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

宿舍管理系统源代码文档格式.docx

《宿舍管理系统源代码文档格式.docx》由会员分享,可在线阅读,更多相关《宿舍管理系统源代码文档格式.docx(16页珍藏版)》请在冰点文库上搜索。

宿舍管理系统源代码文档格式.docx

学号输入失败,该学号已存在,请重新输入学号!

\n"

);

请输入学生的学号(15个字符以内):

"

scanf("

%s"

S[t].S_number);

getchar();

i=1;

}

//添加学生信息函数

voidAdd(StudentS)

请输入学生姓名(30个字符以内):

S[++(S->

Total)].S_name);

//获取换行符

S[S->

Total].S_number);

S_number_Judge(S,S->

Total);

//判断输入的学号是否与表中所存在的学号重

请输入宿舍号码:

%d"

&

S[S->

Total].D_number);

dirty=1;

添加成功!

\n\n"

//修改学生信息函数

voidAlter(StudentS)

intflag=0;

//用来判断表中是否存在所要修改的学生的信息

charname[20];

请输入你要修改学生的姓名:

name);

=S->

Total;

if(strcmp(S[i].S_name,name)==0)

flag=i;

if(!

flag)

你所要修改的学生信息在表中不存在!

\n"

else

新信息如下:

S[flag].S_name);

S[flag].S_number);

S_number_Judge(S,flag);

请输入宿舍号:

S[flag].D_number);

修改成功!

putchar('

\n'

//删除学生信息

voidDelete(StudentS)

inti,j;

//用来判断表中是否存在所要删除的学生的信息

请输入你要删除学生的姓名:

你所要删除的学生在表中不存在!

"

for(i=flag;

S->

j=i+1;

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;

(S->

Total)--;

删除成功!

//显示所有学生信息函数voidDisplay_All(StudentS)

全体学生信息如下:

学生姓名学生学号宿舍号\n"

%-20s%-15s%-5d\n"

S[i].S_name,S[i].S_number,S[i].D_number);

\n\n'

//排序函数按照寝室号从小到大排序(冒泡法)

voidSort_D_number(StudentS){

inti,j,t;

charname[30];

charnumber[15];

for(j=i;

j<

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[j].S_name,name);

strcpy(S[j].S_number,number);

S[j].D_number=t;

//排序函数按照学号从小到大排序(冒泡法)

voidSort_S_number(StudentS){

if(strcmp(S[i].S_number,S[j].S_number)>

0)

//查询函数以姓名为关键字进行查询(顺序查找)

voidQuery_S_name(StudentS)

inti,j=0;

charname[31];

请输入你要查找的学生的姓名(30个字符以内):

所查找学生信息如下:

if(strcmp(name,S[i].S_name)==0)

S[i].S_name,S[i].S_number,S[i].D_number

j=1;

j)

\n查找失败,表中不存在该学生的信息!

//查询函数以学号为关键字进行查询(折半查找)

voidQuery_S_number(StudentS)

inti,j,top,base,mid;

j=0;

base=1;

top=S->

请输入你要查找学生的学号:

number);

Sort_S_number(S);

//将表中原数据按照学号从小到大排序

if(strcmp(number,S[1].S_number)>

=0&

&

strcmp(number,S[S->

Total].S_n

umber)<

=0)

while(base<

=top)

mid=(base+top)/2;

if(strcmp(number,S[mid].S_number)==0)

break;

elseif(strcmp(number,S[mid].S_number)>

base=mid+1;

top=mid-1;

//查询函数以寝室号为关键字进行查询(折半查找)

voidQuery_D_number(StudentS)

inti,j,m,n,base,top,mid;

请输入你要查询的寝室号:

i);

Sort_D_number(S);

//将表中原数据按照寝室号从小到大排序

所查找寝室信息如下:

if(i>

=S[1].D_number&

=S[S->

Total].D_number)

if(i==S[mid].D_number)

m=mid;

n=mid-1;

while(S[m].D_number==i)

S[m].S_name,S[m].S_number,S[m].D_number);

m++;

if(n>

while(S[n].D_number==i)

S[n].S_name,S[n].S_number,S[n].D_number);

n--;

if(n<

1)

elseif(i>

S[mid].D_number)

\n查找失败,表中不存在该寝室的信息!

//存储函数

voidSave(StudentS)

StStd;

intflag1=0,flag2=0;

//判断存储是否成功

FILE*fp;

if((fp=fopen("

Dorm_Manage"

"

w"

))==NULL)

打开文件失败!

flag1=1;

exit(0);

//结束程序

if(fwrite(&

S[i],sizeof(Std),1,fp)!

=1)

数据写入错误\n\n"

flag2=1;

flag1&

!

flag2)

数据存储成功!

dirty=0;

fclose(fp);

//加载记录函数

voidLoad(StudentS)

r"

while(!

feof(fp))

fread(&

S[++(S->

Total)],sizeof(Std),1,fp);

加载数据成功!

\n\n"

//由于读取问题,表中个数要减去

//退出程序时判断是否保存函数

voidJudge_Save(inti,StudentS)

charch;

if(i)

(Y/N)?

:

表中数据已改变,是否保存后再退出

ch=getchar();

while(ch!

='

n'

ch!

N'

y'

Y'

请输入N(n)或者Y(y):

if(ch=='

||ch=='

Save(S);

//菜单

voidMenu()

宿舍管理系统\n\n"

***********************************

1.添加学生信息|7.按照寝室号从小

到大排序\n"

2.修改学生信息|8.按照学号从小到

大排序\n"

3.删除学生信息|9.显示所有学生的相关信息\n"

4.以姓名查询学生信息|10.保存操作\n"

5.以学号查询学生信息|11.加载记录\n"

6.以寝室号查询该寝室中的全部学生信息|12.退出程序\n"

*********************************************************

*********************\n"

voidmain()

StudentS;

Total=0;

do

Menu();

请选择所要实现的功能(请输入~12中的任意一个数字):

//获取换行符

switch(i)

case1:

Add(S);

case2:

Alter(S);

case3:

Delete(S);

case4:

Query_S_name(S);

case5:

Query_S_number(S);

case6:

Query_D_number(S);

case7:

排序完成!

case8:

case9:

Display_All(S);

case10:

case11:

Load(S);

case12:

Judge_Save(dirty,S);

default:

选择错误:

请在选项到之间选择!

}while(i!

=12);

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

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

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2