1、c语言楼层查询系统源代码#includeconio.h#includestdio.h#includestdlib.h#includestring.h#define MAX 100#define N 3struct chaoxiang_type; /位置struct loupans_type; /房间详情int read_file(struct loupans_type loupan); /读取信息模块void save_file(struct loupans_type loupan, int sum); /保存信息模块int input(struct loupans_type loupan);
2、 /输入模块void output(struct loupans_type loupan,int sum); /输出模块void modify(struct loupans_type loupan,int sum); /修改模块void reserch(struct loupans_type loupan,int sum); /查询模块void sort(struct loupans_type loupan,int sum); /排序模块int del(struct loupans_type loupan,int sum); /删除模块void add(struct loupans_type
3、loupan,int *sum); /添加模块struct chaoxiang_type /位置 int danyu; /单元 int loucen; /楼层;struct loupans_type /房间详情 char num8; /楼号 char price20; /价格 char chaoxiang20; /朝向 int area; /面积 struct chaoxiang_type weizhi; /单元信息 struct chaoxiang_type kind; /类型;/*读取信息模块*/int read_file(struct loupans_type loupan) FILE
4、*fp; /FILE 文件、文件夹,fp = file pointer文件指针。 int i = 0; if(fp = fopen(loupans.txt, rt) = NULL) /fopen函数用来打开一个文件,其调用形式为:文件指针名 = fopen(文件名, 文件使用方法);rt 只读打开一个文件文本。 printf(n 库存文件不存在,请创建!n); return 0; /正常退出;return表示从被调函数返回到主调函数继续执行,返回时可带一个返回值(0正常,非0非正常)。 while(!feof(fp) /feof(fp)用于测试fp文件指针是否已经到达文件结尾,如果fp指针已经
5、到达文件结尾,则返回1,否则返回0; /!表示非,这里while(!feof(fp)表示当没有到文件末尾就循环,否则就退出。 fread(&loupani, sizeof(struct loupans_type), 1, fp); /fread从文件中读取。 if(loupani. num = 0) break; else i+; fclose(fp); /文件关闭 return i - 1;/*保存信息模块*/void save_file(struct loupans_type loupan, int sum) /save_file保存文件 FILE *fp; int i; if(fp =
6、fopen(loupans.txt, wt) = NULL) printf(读文件错误n); return; for(i=0; i sum; i+) if(fwrite(&loupani, sizeof(struct loupans_type), 1, fp) != 1) printf(写文件错误n); fclose(fp);/*输入模块*/int input(struct loupans_type loupan) int i = 0; int number; system(cls); printf(nnnn); printf(nt请输入要录入的楼盘的个数(最多%d个):, MAX); sca
7、nf(%d, &number); printf(nnt 录入楼盘信息 (最多录入%d个)n, number); printf( -n); while(i number) printf(ntt第%d个楼盘, i+1); printf(nnttt楼盘楼号:); scanf(%s, loupani.num); if(loupani.num = 0) break; printf(nttt价格(元/): ); scanf(%s, loupani.price); printf(nttt面向:); scanf(%s, loupani.chaoxiang); printf(n ttt面积(单位:):); sc
8、anf(%d, &loupani.area); printf(n ttt楼盘单元信息(单元-层):); scanf(%d-%d, &loupani.weizhi.danyu, &loupani.weizhi.loucen); printf(n ttt楼盘类型(厅-室):); scanf(%d-%d, &loupani.kind.danyu, &loupani.kind.loucen); i+; printf(nttt%d个楼盘信息录入完毕!n, i); getchar(); /getchar()函数等待输入直到按回车才结束,回车前所有输入字符都会显示在屏幕上,但只有第一个字符作为函数的返回值。
9、返回类型为int型,返回值为用户输入的ASCII码,出错返回EOF。 printf(n ttt按回车键返回主菜单!); getchar(); return i;/*输出模块*/void output(struct loupans_type loupan, int sum) FILE *fp; int i = 0; int j; system(cls); printf(nnn); fp = fopen(loupans.txt, rt); printf(nttt -楼盘信息表-nn); printf(楼盘楼号-单元信息(单元-层)-类型(厅-室)-面积(单位:)-面向-价格(元/)n); prin
10、tf(-n); for (j = 0; j sum; j+) fread(&loupani, sizeof(struct loupans_type), 1, fp); if(loupani.num != 0) printf(%6s %10d-%d %10d-%dt %4d %8s %3sn, loupani.num, loupani.weizhi.danyu, loupani.weizhi.loucen, loupani.kind.danyu, loupani.kind.loucen, loupani.area, loupani.chaoxiang, loupani.price); print
11、f(-n); i+; getchar(); printf(ttt按回车键返回主菜单); getchar(); fclose(fp);/*修改模块*/void modify(struct loupans_type loupan, int sum) int i = 0; int choice; int flag; char modify_num8; do system(cls); printf(nnnn); printf(n 输入要修改的楼盘的楼号:); scanf(%s, modify_num); for(i = 0; i sum; i+) if(!strcmp(loupani.num, mod
12、ify_num) printf(nttt-楼盘信息- n ); printf(楼盘楼号-单元信息(单元-层)-类型(厅-室)-面积(单位:)-面向-价格(元/)n); printf(-n); printf(%6s %10d-%2d %10d-%2dt %4d %8s %3sn, loupani.num, loupani.weizhi.danyu, loupani.weizhi.loucen, loupani.kind.danyu, loupani.kind.loucen, loupani.area, loupani.chaoxiang, loupani.price); printf(ttt1.
13、楼盘楼号 nnttt2.价格(/)nnttt3.面向nnttt4.面积(单位:) nnttt5.单元信息(单元-层)nnttt6.类型(厅-室)n); printf(请输入要修改项的楼号(选择1-6):); scanf(%d, &choice); switch(choice) case 1: printf(n ttt输入修改后的楼盘楼号:); scanf(%s, loupani.num); break; case 2: printf(n ttt输入修改后的价格(元/):); scanf(%s, loupani.price); break; case 3: printf(n 输入修改后的面向:)
14、; scanf(%s, loupani.chaoxiang); break; case 4: printf(n ttt输入修改后的面积(单位:):); scanf(%d, &loupani.area); break; case 5: printf(n 输入修改后的楼盘单元信息(单元-层):); scanf(%d-%d, &loupani.weizhi.danyu, &loupani.weizhi.loucen); break; case 6: printf(n ttt输入修改后的楼盘类型(厅-室):); scanf(%d-%d, &loupani.kind.danyu, &loupani.ki
15、nd.loucen); break; printf(nttt-楼盘信息-(修改后) n ); printf(楼盘楼号-单元信息(单元-层)-类型(厅-室)-面积(单位:)-面向-价格(元/)n); printf(-n); printf(%6s %10d-%2d %10d-%2dt %4d %8s %3sn,loupani.num,loupani.weizhi.danyu,loupani.weizhi.loucen,loupani.kind.danyu,loupani.kind.loucen,loupani.area,loupani.chaoxiang,loupani.price); getch
16、ar(); break; if(i = sum) printf(n ttt该楼盘不存在); getchar(); save_file(loupan, sum); printf(nn 继续修改吗?( Y/N(选择N则返回主菜单) )); choice = getchar(); if(choice = Y|choice = y) flag = 1; printf(n ttt继续修改!n); else flag = 0; while(flag = 1); printf(n);/*查询模块*/void reserch(struct loupans_type loupan, int sum) int i
17、 = 0; int flag; int choice; int key = 0; char reserch110, reserch210; do system(cls); printf(nttt请输入要查询的楼盘的价格范围(元/):nnn); printf(ttt请输入最低价格:nttt); scanf(%s, reserch1); printf(nnttt请输入最高价格:nttt); scanf(%s, reserch2); for(i = 0; i 0 & strcmp(loupani.price, reserch2) 0) key = 1; if(key = 1) printf(nttt
18、-楼盘信息- n ); printf(楼盘楼号-单元信息(单元-层)-类型(厅-室)-面积(单位:)-面向-价格(元/)n); printf(-n); for(i = 0; i 0 & strcmp(loupani.price, reserch2) 0) printf(%6s %10d-%2d %10d-%2dt %4d %8s %3sn, loupani.num, loupani.weizhi.danyu, loupani.weizhi.loucen, loupani.kind.danyu, loupani.kind.loucen, loupani.area, loupani.chaoxia
19、ng, loupani.price); printf(-n); printf(nnttt价格范围:%6s-%s, reserch1, reserch2); getch(); break; if(key = 0) printf(n ttt该楼盘不存在); getchar(); printf(nntt继续查询吗?( Y/N(选择N则返回主菜单) )); choice = getchar(); if(choice = Y | choice = y) flag = 1; printf(nttt按任意键继续查询!n); getch(); else flag=0; while(flag = 1); pri
20、ntf(n);/*排序模块*/void sort(struct loupans_type loupan, int sum) int i, j; struct loupans_type t; system(cls); printf(nnnn); for(i = 0; i sum - 1; i+) for(j = i + 1; j 0) t = loupani; loupani = loupanj; loupanj = t; printf(nttt按楼号排序:nn); printf(nttt-楼盘信息表-nn); printf(楼盘楼号-单元信息(单元-层)-类型(厅-室)-面积(单位:)-面向-
21、价格(元/)n); printf(-n); for(i = 0; i sum; i+) printf(%6s %10d-%2d %10d-%2dt %4d %8s %3sn,loupani.num, loupani.weizhi.danyu, loupani.weizhi.loucen, loupani.kind.danyu, loupani.kind.loucen, loupani.area, loupani.chaoxiang, loupani.price); printf(-n); getchar(); printf(n ttt按回车键返回主菜单!); getchar();/*删除模块*
22、/ int del(struct loupans_type loupan, int sum) int i; int j; int k = 0; char del_num8; system(cls); printf(nnnn); printf(tt请输入需要删除的楼盘信息的楼号nn); scanf(%s, del_num); for(i = 0; i sum; i+) if(!strcmp(loupani.num, del_num) for(j = i; j sum-1; j+) loupanj = loupanj+1; else k+; if(k = sum) printf(ttt该楼盘不存在
23、n); getchar(); printf(ttt按回车键返回主菜单); getchar(); return(sum); else save_file(loupan, sum); printf(ttt删除成功:n); getchar(); printf(n ttt按回车键返回主菜单!); getchar(); return(sum-1); /*添加模块*/void add(struct loupans_type loupan, int *sum) int i; int flag; char choice; system(cls); printf(nnnn); i = (*sum); do if(i MAX) printf( tt请输入要添加的楼盘的信息:n); printf(n ttt楼盘楼号:); scanf(%s, loupani.num); if(loupani.num = 0) break;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1