学生宿舍管理软件C语言源代码Word文件下载.docx

上传人:b****6 文档编号:17312024 上传时间:2022-12-01 格式:DOCX 页数:13 大小:35.28KB
下载 相关 举报
学生宿舍管理软件C语言源代码Word文件下载.docx_第1页
第1页 / 共13页
学生宿舍管理软件C语言源代码Word文件下载.docx_第2页
第2页 / 共13页
学生宿舍管理软件C语言源代码Word文件下载.docx_第3页
第3页 / 共13页
学生宿舍管理软件C语言源代码Word文件下载.docx_第4页
第4页 / 共13页
学生宿舍管理软件C语言源代码Word文件下载.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

学生宿舍管理软件C语言源代码Word文件下载.docx

《学生宿舍管理软件C语言源代码Word文件下载.docx》由会员分享,可在线阅读,更多相关《学生宿舍管理软件C语言源代码Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。

学生宿舍管理软件C语言源代码Word文件下载.docx

//学生总数

}Student[M],St;

S[t].S_number);

S[S->

Total].S_class);

Total].S_number);

S_number_Judge(S,S->

Total);

判断输入的学号是否与表中所存在的学号重复printf("

请输入宿舍号码:

%d"

&

S[S->

Total].D_number);

请输入学生地址:

Total].S_address);

printf(请“输入学生电话号码:

”);

scanf("

Total].S_phone);

}/修改学生信息函数voidAlter(StudentS){inti;

intflag=0;

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

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

二S->

Total;

i++){printf("

新信息如下:

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

S[flag].S_name);

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

dirty=1;

添加成功!

\n\n"

name);

if(!

flag)

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

\n"

else

S[flag].S_class);

S[flag].S_number);

1getchar();

S_number_Judge(S,flag);

请输入宿舍号:

S[flag].D_number);

S[flag].S_address);

seanf("

S[flag].S_phone);

}/删除学生信息voidDelete(StudentS){inti,j;

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

seanf("

for(i=1;

=S->

i++){for(i=flag;

S->

i++){}j=i+1;

strepy(S[i].S_name,S[j].S_name);

strepy(S[i].S_number,S[j].S_number);

S[i].D_number=S[j].D_number;

(S->

Total)--;

删除成功!

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

flag=i;

}putchar('

\n'

修改成功!

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

else}2

}printf("

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

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

S){inti,j,t;

charname[30];

charnumber[15];

%-20s%-20s%-15s%-5d%s-

n'

ress,S[i].S_phone);

全体学生信息如下:

学生姓名学生班级学生学号宿舍号学生地址学生电话号码

charaddress[300];

charCnumber[30];

i++)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);

strcpy(address,S[i].S_address);

strcpy(Cnumber,S[i].S_class);

t=S[i].D_number;

strcpy(S[i].S_name,S[j].S_name);

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

strcpy(S[i].S_address,S[j].S_address);

;

strcpy(S[i].S_class,S[j].S_class);

S[i].D_number=S[j].D_number;

strcpy(S[j].S_name,name);

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

strcpy(S[j].S_address,address);

strcpy(S[j].S_class,Cnumber);

}}S[j].D_number=t;

3//排序函数按照学号从小到大排序(冒泡法)voidSort_S_number(StudentS){inti,j,t;

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

0){strcpy(name,S[i].S_name);

strcpy(address,S[i].S_address);

t=S[i].D_number;

strcpy(S[i].S_class,S[j].S_class);

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

strcpy(S[j].S_class,Cnumber);

}/排序函数按照班级号从小到大排序(冒泡法)voidSort_S_class(StudentS){inti,j,t;

charname[30];

charnumber[15];

}S[j].D_number=t;

for(j=i;

j++)

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

4strcpy(number,

S[i].S_number);

strcpy(Cnumber,S[i].S_class);

t=S[i].D_number;

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

strcpy(S[i].S_address,S[j].S_address);

S[i].D_number=S[j].D_number;

strcpy(S[j].S_name,name);

strcpy(S[j].S_address,address);

S[j].D_number=t;

}}

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

voidQuery_S_class(StudentS){inti,j=0;

charclassnumber[31];

请输入你要查找的班级号(30个字符以内):

classnumber);

所查找学生信息如下

学生姓名学生班级学生学号宿舍号学生地址

i++)if(strcmp(classnumber,S[i].S_class)==0){printf("

%-20s%-20s%-15s%-5d%s-

10%s\n"

S[i].S_name,S[i].S_class,S[i].S_number,S[i].D_number,S[i].S_address,S[i].S_phone);

j=1;

}if(!

j)printf("

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

}//查询函数以姓名为关键字

进行查询(顺序查找)

voidQuery_S_name(StudentS){inti,j=0;

charname[31];

5学生电话号码\n"

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

scanf("

所查找学生信息如下:

学生姓名学生班级学生学号宿舍号学生地址学生电话号码\n"

i++)if(strcmp(name,S[i].S_name)==0){printf("

%-20s%-20s%-

15s%-5d%s-

S[i].S_name,

S[i].S_class,S[i].S_number,S[i].D_number,S[i].S_address,S[i].S_phone);

j=1;

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

voidQuery_S_number(StudentS){inti,j,top,base,mid;

charnumber[15];

j=0;

base=1;

top=S->

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

number);

Sort_S_number(S);

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

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

=0&

&

strcmp(number,S[S->

Total].S_number)<

=0){while(base<

=top){mid=(base+top)/2;

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

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

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

0)

putchar('

break;

j)

6}}}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){while(base<

=top){mid=(base+t

op)/2;

if(i==S[mid].D_number){m=mid;

while(S[m].D_number==i){printf("

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

S[m].S_name,

n=mid-1;

S[i].S_class,S[m].S_number,S[m].D_number,S[i].S_address,S[i].S_phone);

m++;

}if(n>

0){while(S[n].D_number==i){printf("

%-20s%-15s%-

5d\n"

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

if(m>

Total)

7n--;

}//存储函数

voidSave(StudentS){StStd;

intflag仁0,flag2=0;

〃判断存储是否成功

FILE*fp;

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

elseif(i>

S[mid].D_number)

base=mid+1;

F_LE

exif

ead(QOs

+

+(s

whi-e(-feof(fp))

s)

>

箔咄議^d洱一

(0)三aglQ

exifsif(fwme(QOs三W

V

T

O

ar

D

L

S

N-

e

if((fpHfSofpen(=Donnl0M6anagae=

0:

3llHNULaLs

g

2)

Gd

yHp選//岂舞

f_ag2H1_W

M

8

szeof(ss)

?

1

jxpH)SH—

1V)T宀O

Einffv

a

k

H

Hbreak-S

C

break-

li

e-se)

ps-cha「r(vr)-fopumid

if((fpHfopen(=DonnlManage==w=)llHNULL)p

inff(=

F

K

 

fclose(fp);

打开文件失败!

exit

(0);

加载数据成功!

\n\n"

//由于读取问题,表中个数要减去}//退出程序时判断是否保存函数

voidJudge_Save(inti,StudentS){}

//菜单

voidMenu(){//菜单

charch;

if(i){}printf("

表中数据已改变,是否保存后再退出(Y/N)?

:

ch=getchar();

while(ch!

='

ch!

N'

y'

Y'

){}

if(ch=='

||ch=='

Save(S);

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

9}printf("

学生管理\n\n"

printf("

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

1.添加学生信息|

8."

按照班级号从小到大排序

n”);

printf("

2.

修改学生信息|

3.

删除学生信息|

4.以姓名查询学生信息|

11."

显示所有学生的相关信息

5.以学号查询学生信息|

12."

保存操作\n"

6.以寝室号查询该寝室中的全部学生信息|

13."

加载记录\n"

printf(H***********************************************************

n"

printf(

7.以班级号查询该班级中的全部学生信息|

14."

退出程序\n"

voidmain(){inti;

StudentS;

Total=0;

do{Menu();

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

//获取换行符putchar('

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:

Query_S_class(S);

case8:

Sort_S_class(S);

10}case9:

}printf("

break;

case10:

case11:

Display_All(S);

case12:

case13:

Load(S);

case14:

Judge_Save(dirty,S);

default:

选择错误:

请在选项到之间选择!

}while(i!

=14);

11

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

当前位置:首页 > 工程科技 > 电力水利

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

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