c语言楼层查询系统源代码Word下载.docx
《c语言楼层查询系统源代码Word下载.docx》由会员分享,可在线阅读,更多相关《c语言楼层查询系统源代码Word下载.docx(19页珍藏版)》请在冰豆网上搜索。
![c语言楼层查询系统源代码Word下载.docx](https://file1.bdocx.com/fileroot1/2023-1/23/1b08001f-ebd1-414d-823a-fb7b6fd5bb4e/1b08001f-ebd1-414d-823a-fb7b6fd5bb4e1.gif)
structchaoxiang_type//位置
{
intdanyu;
//单元
intloucen;
//楼层
};
structloupans_type//房间详情
{
charnum[8];
//楼号
charprice[20];
//价格
charchaoxiang[20];
//朝向
intarea;
//面积
structchaoxiang_typeweizhi;
//单元信息
structchaoxiang_typekind;
//类型
/*读取信息模块*/
intread_file(structloupans_typeloupan[])
FILE*fp;
//FILE文件、文件夹,fp=filepointer文件指针。
inti=0;
if((fp=fopen("
loupans.txt"
"
rt"
))==NULL)//fopen函数用来打开一个文件,其调用形式为:
文件指针名=fopen(文件名,文件使用方法);
rt只读打开一个文件文本。
{
printf("
\n库存文件不存在,请创建!
\n"
);
return0;
//正常退出;
return表示从被调函数返回到主调函数继续执行,返回时可带一个返回值(0正常,非0非正常)。
}
while(!
feof(fp))//feof(fp)用于测试fp文件指针是否已经到达文件结尾,如果fp指针已经到达文件结尾,则返回1,否则返回0;
{//!
表示非,这里while(!
feof(fp))表示当没有到文件末尾就循环,否则就退出。
fread(&
loupan[i],sizeof(structloupans_type),1,fp);
//fread从文件中读取。
if(loupan[i].num==0)
break;
else
i++;
fclose(fp);
//文件关闭
returni-1;
}
/*保存信息模块*/
voidsave_file(structloupans_typeloupan[],intsum)//save_file保存文件
inti;
wt"
))==NULL)
读文件错误\n"
return;
for(i=0;
i<
sum;
i++)
if(fwrite(&
loupan[i],sizeof(structloupans_type),1,fp)!
=1)
printf("
写文件错误\n"
/*输入模块*/
intinput(structloupans_typeloupan[])
intnumber;
system("
cls"
printf("
\n\n\n\n"
\n\t请输入要录入的楼盘的个数(最多%d个):
"
MAX);
scanf("
%d"
&
number);
\n\n\t录入楼盘信息(最多录入%d个)\n"
number);
---------------------------------------\n"
while(i<
number)
{
\n\t\t第%d个楼盘"
i+1);
\n\n\t\t\t楼盘楼号:
scanf("
%s"
loupan[i].num);
if(loupan[i].num==0)
\n\t\t\t价格(元/㎡):
"
loupan[i].price);
\n\t\t\t面向:
loupan[i].chaoxiang);
\n\t\t\t面积(单位:
㎡):
loupan[i].area);
\n\t\t\t楼盘单元信息(单元-层):
%d-%d"
loupan[i].weizhi.danyu,&
loupan[i].weizhi.loucen);
\n\t\t\t楼盘类型(厅-室):
loupan[i].kind.danyu,&
loupan[i].kind.loucen);
i++;
\n\t\t\t%d个楼盘信息录入完毕!
i);
getchar();
//getchar()函数等待输入直到按回车才结束,回车前所有输入字符都会显示在屏幕上,但只有第一个字符作为函数的返回值。
返回类型为int型,返回值为用户输入的ASCII码,出错返回EOF。
\n\t\t\t按回车键返回主菜单!
returni;
/*输出模块*/
voidoutput(structloupans_typeloupan[],intsum)
intj;
\n\n\n"
fp=fopen("
\n\t\t\t----楼盘信息表----\n\n"
楼盘楼号--单元信息(单元-层)--类型(厅-室)---面积(单位:
㎡)--面向--价格(元/㎡)\n"
----------------------------------------------------------------------------\n"
for(j=0;
j<
j++)
if(loupan[i].num!
=0)
{
%6s%10d-%d%10d-%d\t%4d㎡%8s%3s\n"
loupan[i].num,loupan[i].weizhi.danyu,loupan[i].weizhi.loucen,loupan[i].kind.danyu,loupan[i].kind.loucen,loupan[i].area,loupan[i].chaoxiang,loupan[i].price);
}
\t\t\t按回车键返回主菜单"
/*修改模块*/
voidmodify(structloupans_typeloupan[],intsum)
intchoice;
intflag;
charmodify_num[8];
do
system("
\n输入要修改的楼盘的楼号:
modify_num);
for(i=0;
{
if(!
strcmp(loupan[i].num,modify_num))
{
printf("
\n\t\t\t----楼盘信息----\n"
%6s%10d-%2d%10d-%2d\t%4d㎡%8s%3s\n"
\t\t\t1.楼盘楼号\n\n\t\t\t2.价格(/㎡)\n\n\t\t\t3.面向\n\n\t\t\t4.面积(单位:
㎡)\n\n\t\t\t5.单元信息(单元-层)\n\n\t\t\t6.类型(厅-室)\n"
请输入要修改项的楼号(选择1-6):
scanf("
choice);
switch(choice)
{
case1:
printf("
\n\t\t\t输入修改后的楼盘楼号:
scanf("
break;
case2:
\n\t\t\t输入修改后的价格(元/㎡):
case3:
\n输入修改后的面向:
case4:
\n\t\t\t输入修改后的面积(单位:
㎡):
break;
case5:
\n输入修改后的楼盘单元信息(单元-层):
case6:
\n\t\t\t输入修改后的楼盘类型(厅-室):
}
\n\t\t\t----楼盘信息----(修改后)\n"
loupan[i].num,loupan[i].weizhi.danyu,loupan[i].weizhi.loucen,loupan[i].kind.danyu,loupan[i].kind.loucen,loupan[i].area,loupan[i].chaoxiang,loupan[i].price);
getchar();
break;
}
if(i==sum)
\n\t\t\t该楼盘不存在"
save_file(loupan,sum);
\n\n继续修改吗?
(Y/N(选择N则返回主菜单))"
choice=getchar();
if(choice=='
Y'
||choice=='
y'
)
flag=1;
\n\t\t\t继续修改!
else
flag=0;
while(flag==1);
/*查询模块*/
voidreserch(structloupans_typeloupan[],intsum)
intkey=0;
charreserch1[10],reserch2[10];
\n\t\t\t请输入要查询的楼盘的价格范围(元/㎡):
\t\t\t请输入最低价格:
\n\t\t\t"
reserch1);
\n\n\t\t\t请输入最高价格:
reserch2);
if(strcmp(loupan[i].price,reserch1)>
0&
&
strcmp(loupan[i].price,reserch2)<
0)
key=1;
if(key==1)
}
\n\n\t\t\t价格范围:
%6s-------%s"
reserch1,reserch2);
getch();
if(key==0)
getchar();
\n\n\t\t继续查询吗?
choice=getchar();
if(choice=='
||choice=='
flag=1;
\n\t\t\t按任意键继续查询!
else
flag=0;
/*排序模块*/
voidsort(structloupans_typeloupan[],intsum)
inti,j;
structloupans_typet;
for(i=0;
sum-1;
for(j=i+1;
if(strcmp(loupan[i].num,loupan[j].num)>
t=loupan[i];
loupan[i]=loupan[j];
loupan[j]=t;
\n\t\t\t按楼号排序:
\n\n"
\n\t\t\t----楼盘信息表----\n\n"
loupan[i].num,loupan[i].weizhi.danyu,loupan[i].weizhi.loucen,loupan[i].kind.danyu,loupan[i].kind.loucen,loupan[i].area,loupan[i].chaoxiang,loupan[i].price);
/*删除模块*/
intdel(structloupans_typeloupan[],intsum)
intk=0;
chardel_num[8];
\t\t请输入需要删除的楼盘信息的楼号\n\n"
del_num);
if(!
strcmp(loupan[i].num,del_num))
for(j=i;
sum-1;
loupan[j]=loupan[j+1];
k++;
if(k==sum)
\t\t\t该楼盘不存在\n"
getchar();
return(sum);
else
{
save_file(loupan,sum);
\t\t\t删除成功:
return(sum-1);
/*添加模块*/
voidadd(structloupans_typeloupan[],int*sum)
charchoice;
i=(*sum);
if(i<
MAX)
\t\t请输入要添加的楼盘的信息:
\n\t\t\t楼盘楼号:
scanf("
if(loupan[i].num==0)