




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 西 安 邮 电 大 学 (计算机学院)高级语言课程设计报告题 目: 楼盘销售管理系统 专业名称:班 级: 学生姓名:学号(8位):指导教师:设计起止时间: 一设计目的该实践环节让学生综合应用所学的计算机基础知识和所掌握的程序设计语言(C语言),自行设计并实现一个较为完整的小型管理信息系统或小型应用系统。其主要目的是使学生通过系统分析、系统设计、编程调试、撰写实验报告等环节,初步掌握软件系统设计的方法和步骤,灵活运用程序设计语言进行软件开发、提高分析问题和解决问题的能力。二. 设计内容1. 问题分析和任务定义:根据设计题目要求,充分了解任务要求。2. 逻辑设计:对问题描述中的操作对象定义相应的
2、数据类型,并按照以数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型。说明各主要功能模块并画出模块调用关系图。3. 物理设计:定义所需的存储结构并进行算法设计,对数据结构和基本操作做出详细的设计和分析,写出函数形式的算法框架。4. 程序编码:将详细设计完善为程序。5. 程序调试与测试:自底向上、分模块进行。认真整理程序形成格式和风格良好的源程序清单和结果、同时系统界面友好、功能齐全。6. 结果分析:程序运行结果包括正确的输入及输出和含有错误的输入及输出,对算法的时间和空间复杂性进行分析。7. 撰写课程设计报告。三概要设计1功能模块图;2各个模块详细的功能描述。读取信息模块:在申请空间
3、内读取已存储的TXT文件,若文件未建立则系统自行建立一个TXT文件;更新信息模块:若要更新已储存的全部信息,则选择此模块进行信息录入,并将原信息全部覆盖;输出信息模块:将若未选择更新信息模块,则将原文件储存的信息全部输出,若选择更新信息模块,则将新录入的信息全部输出;添加信息模块:若有新的信息需要录入,则选择此模块,系统将在已经申请的并未存放信息空间将新的信息录入并保存;删除信息模块:若有一楼盘已经售出,则选择此模块将此楼盘信息删除,若该楼盘信息不存在,则系统显示不存在该信息并返回主菜单,若要删除则许选择输出模块查询该楼盘信息再重新选择删除模块进行删除;修改信息模块:若楼盘输入时错误,则可选用
4、此模块对录入错误的信息进行修改;若楼盘价格调整,也可选用此模块对楼盘信息进行修改;查询信息模块:用户可以根据自己的预计资金和承受范围,对楼盘进行查询,并在其中结合户型、朝向、面积等信息选择自己喜欢的楼盘;排序信息模块:若选用此模块,系统将根据楼盘楼号排序楼盘信息,可直观的看出各楼号楼盘的销售情况,并可对比看出哪个楼号的楼盘更受欢迎;统计信息模块:若选用此模块,用户可查看自己喜欢的户型的余量,销售者也可根据此模块判断消费者喜欢那种户型;保存信息模块:若在运行中选取了更新信息模块、添加信息模块、删除信息模块或修改信息模块,则此模块自动在对应的模块执行完毕后自动储存信息。四详细设计1功能函数的调用关
5、系图2 各功能函数的数据流 3 重点设计及编码/*查询模块*/void reserch(struct loupans_type loupan, int sum)int i = 0;int flag;int choice;int key = 0;char reserch110, reserch210;dosystem("cls");printf("nttt请输入要查询的楼盘的价格范围(元/):nnn");printf("ttt请输入最低价格:nttt");scanf("%s", reserch1);printf(&q
6、uot;nnttt请输入最高价格:nttt");scanf("%s", reserch2);for (i = 0; i < sum; i+)if (strcmp(loupani.price, reserch1) > 0 && strcmp(loupani.price, reserch2) < 0)key = 1;if (key = 1)printf("nttt-楼盘信息- n ");printf("楼盘楼号-单元信息(单元-房号)-类型(厅-室)-面积(单位:)-面向-价格(元/)n");p
7、rintf("-n");for (i = 0; i < sum; i+)if (strcmp(loupani.price, reserch1) > 0 && strcmp(loupani.price, reserch2) < 0)printf("%6s %10d-%d %14d-%dt %9d %6s %sn", loupani.num, loupani.weizhi.danyu, loupani.weizhi.loucen, loupani.kind.danyu, loupani.kind.loucen, loupan
8、i.area, loupani.chaoxiang, 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 = '
9、y')flag = 1;printf("nttt按任意键继续查询!n");_getch();elseflag = 0; while (flag = 1);printf("n");/*统计模块*/void statistics(struct loupans_type loupan, int sum)int i = 0;int j = 0;int k = 0;int flag;int choice;int ting;int shi;dosystem("cls");printf("请输入所要查询户型(厅-室):"
10、);scanf("%d-%d", &ting, &shi);for (i = 0; i < sum; i+)if (ting = loupani.kind.danyu && shi = loupani.kind.loucen)j+;elsek+;if (k = sum)printf("n ttt对不起,该户型不存在");getchar();elseprintf("您所查询的%d厅-%d室户型还剩余%d间n", ting, shi, j);getchar();printf("nntt继续查
11、询吗?( Y/N(选择N则返回主菜单) )");choice = getchar();if (choice = 'Y' | choice = 'y')flag = 1;printf("nttt按任意键继续查询!n");getchar();elseflag = 0;while(flag = 1);printf(" n");五测试数据及运行结果1正常测试数据和运行结果2异常测试数据及运行结果六调试情况,设计技巧及体会1改进方案输入数据时输入方式不正确会出现垃圾数据,并且对使用者没有输入错误的提示易造成错误,今后还需继
12、续改进。2体会1) 通过此次实习,我对C语言的编程实践有了更深的认识,对C语言也有更浓厚的兴趣。2) 当遇到程序调试不通过时,会通过缩小范围来分析来锁定问题,进而进一步解决。3) 熟悉了从自然语言转换成伪代码再转换为流程图的过程,还有各功能函数的流程图。4) 通过在程序中设定合适的全局变量,可以简化程序的编写难度。5) 通过本次C语言上机实习,我对计算机编程语言有了一定的体验,而且随着实验的成功与报告的完成,心里也是十分喜悦与骄傲,学习的不断深入,也让我发现还有很多高深的知识等待着我自己去挖掘去体验,我也要不断努力对C语言的学习,争取更上一层楼!七参考文献 C语言程序设计(王曙燕/主编 科学出
13、版社) C程序设计(谭浩强/主编 清华大学出版社) C语言程序设计习题解析与应用案例分析(黄维通 谢孟荣 编)八附录:源代码(电子版)#include"conio.h" #include"stdio.h"#include"stdlib.h"#include"string.h"#include <tchar.h>#define MAX 100#define N 3struct chaoxiang_type;/位置struct loupans_type;/房间详情int read_file(struct l
14、oupans_type loupan);/读取信息模块void save_file(struct loupans_type loupan, int sum);/保存信息模块int input(struct loupans_type loupan);/输入模块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 sor
15、t(struct loupans_type loupan, int sum);/排序模块int del(struct loupans_type loupan, int sum);/删除模块void add(struct loupans_type loupan, int *sum);/添加模块void statistics(struct loupans_type loupan, int sum);/统计模块struct chaoxiang_type/位置int danyu;/单元int loucen;/楼房号;struct loupans_type/房间详情char num8;/楼号char p
16、rice20;/价格char chaoxiang20;/朝向int area;/面积struct chaoxiang_type weizhi;/单元信息struct chaoxiang_type kind;/类型;/*读取信息模块*/int read_file(struct loupans_type loupan)FILE *fp;/FILE文件、文件夹,fp = file pointer文件指针。int i = 0;if (fp = fopen("loupans.txt", "rt") = NULL)/fopen函数用来打开一个文件,其调用形式为:文件
17、指针名 = fopen(文件名, 文件使用方法);rt 只读打开一个文件文本。printf("n 库存文件不存在,请创建!n");return 0;/正常退出;return表示从被调函数返回到主调函数继续执行,返回时可带一个返回值(0正常,非0非正常)。while (!feof(fp)/feof(fp)用于测试fp文件指针是否已经到达文件结尾,如果fp指针已经到达文件结尾,则返回1,否则返回0;/!表示非,这里while(!feof(fp)表示当没有到文件末尾就循环,否则就退出。fread(&loupani, sizeof(struct loupans_type),
18、 1, fp);/fread从文件中读取。if (loupani.num = 0)break;elsei+;fclose(fp);/文件关闭return i-1;/*保存信息模块*/void save_file(struct loupans_type loupan, int sum)/save_file保存文件FILE *fp;int i;if (fp = fopen("loupans.txt", "wt") = NULL)printf("读文件错误n");return;for (i = 0; i < sum; i+)if (f
19、write(&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);scanf("%d", &number);pri
20、ntf("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(&q
21、uot;nttt面向:");scanf("%s", loupani.chaoxiang);printf("n ttt面积(单位:):");scanf("%d", &loupani.area);printf("n ttt楼盘单元信息(单元-房号):");scanf("%d-%d", &loupani.weizhi.danyu, &loupani.weizhi.loucen);printf("n ttt楼盘类型(厅-室):");scanf(&qu
22、ot;%d-%d", &loupani.kind.danyu, &loupani.kind.loucen);i+;printf("nttt%d个楼盘信息录入完毕!n", i);getchar();/getchar()函数等待输入直到按回车才结束,回车前所有输入字符都会显示在屏幕上,但只有第一个字符作为函数的返回值。返回类型为int型,返回值为用户输入的ASCII码,出错返回EOF。printf("n ttt按回车键返回主菜单!");getchar();return i;/*输出模块*/void output(struct lou
23、pans_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");printf("-n");for (j = 0; j < sum; j+)
24、fread(&loupani, sizeof(struct loupans_type), 1, fp);if (loupani.num != 0)printf("%6s %10d-%d %14d-%dt %9d %6s %sn", loupani.num, loupani.weizhi.danyu, loupani.weizhi.loucen, loupani.kind.danyu, loupani.kind.loucen, loupani.area, loupani.chaoxiang, loupani.price);printf("-n");
25、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;dosystem("cls");printf("nnnn");printf("n 输入要修改的楼盘的楼号:");scanf("%s", modify_num);for (i = 0
26、; i < sum; i+)if (!strcmp(loupani.num, modify_num)printf("nttt-楼盘信息- n ");printf("楼盘楼号-单元信息(单元-房号)-类型(厅-室)-面积(单位:)-面向-价格(元/)n");printf("-n");printf("%6s %10d-%d %14d-%dt %9d %6s %sn", loupani.num, loupani.weizhi.danyu, loupani.weizhi.loucen, loupani.kind.da
27、nyu, loupani.kind.loucen, loupani.area, loupani.chaoxiang, loupani.price);printf("-n");printf("ttt1.楼盘楼号 nnttt2.价格(/)nnttt3.面向nnttt4.面积(单位:) nnttt5.单元信息(单元-房号)nnttt6.类型(厅-室)n");printf("请输入要修改项的楼号(选择1-6):");scanf("%d", &choice);switch (choice)case 1:printf(
28、"n ttt输入修改后的楼盘楼号:");scanf("%s", loupani.num);break;case 2:printf("n ttt输入修改后的价格(元/):");scanf("%s", loupani.price);break;case 3:printf("n 输入修改后的面向:");scanf("%s", loupani.chaoxiang);break;case 4:printf("n ttt输入修改后的面积(单位:):");scanf(&
29、quot;%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.kind.loucen)
30、;break;printf("nttt-楼盘信息-(修改后) n ");printf("楼盘楼号-单元信息(单元-房号)-类型(厅-室)-面积(单位:)-面向-价格(元/)n");printf("-n");printf("%6s %10d-%d %14d-%dt %9d %6s %sn", loupani.num, loupani.weizhi.danyu, loupani.weizhi.loucen, loupani.kind.danyu, loupani.kind.loucen, loupani.area, l
31、oupani.chaoxiang, loupani.price);printf("-n");getchar();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&qu
32、ot;);elseflag = 0;while (flag = 1);printf("n");/*查询模块*/void reserch(struct loupans_type loupan, int sum)int i = 0;int flag;int choice;int key = 0;char reserch110, reserch210;dosystem("cls");printf("nttt请输入要查询的楼盘的价格范围(元/):nnn");printf("ttt请输入最低价格:nttt");scanf(&
33、quot;%s", reserch1);printf("nnttt请输入最高价格:nttt");scanf("%s", reserch2);for (i = 0; i < sum; i+)if (strcmp(loupani.price, reserch1) > 0 && strcmp(loupani.price, reserch2) < 0)key = 1;if (key = 1)printf("nttt-楼盘信息- n ");printf("楼盘楼号-单元信息(单元-房号)-类
34、型(厅-室)-面积(单位:)-面向-价格(元/)n");printf("-n");for (i = 0; i < sum; i+)if (strcmp(loupani.price, reserch1) > 0 && strcmp(loupani.price, reserch2) < 0)printf("%6s %10d-%d %14d-%dt %9d %6s %sn", loupani.num, loupani.weizhi.danyu, loupani.weizhi.loucen, loupani.kind.
35、danyu, loupani.kind.loucen, loupani.area, loupani.chaoxiang, 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 (cho
36、ice = 'Y' | choice = 'y')flag = 1;printf("nttt按任意键继续查询!n");_getch();elseflag = 0; while (flag = 1);printf("n");/*排序模块*/void sort(struct loupans_type loupan, int sum)int i, j;struct loupans_type t;system("cls");printf("nnnn");for (i = 0; i <
37、sum - 1; i+)for (j = i + 1; j < sum; j+)if (strcmp(loupani.num, loupanj.num) > 0)t = loupani;loupani = loupanj;loupanj = t;printf("nttt按楼号排序:nn");printf("nttt-楼盘信息表-nn");printf("楼盘楼号-单元信息(单元-房号)-类型(厅-室)-面积(单位:)-面向-价格(元/)n");printf("-n");for (i = 0; i <
38、; sum; i+)printf("%6s %10d-%d %14d-%dt %9d %6s %sn", 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();/*删除模块*/int
39、 del(struct loupans_type loupan, int sum)int i;int j;int k = 0;char del_num8;int del_danyu = 0;int del_loucen = 0;system("cls");printf("nnnn");printf("tt请输入需要删除的楼盘信息的楼号 单元 房号nn");scanf("%s%d%d", del_num, &del_danyu, &del_loucen);for (i = 0; i < sum;
40、 i+)if (!strcmp(loupani.num, del_num) && (loupani.weizhi.danyu = del_danyu) && (loupani.weizhi.loucen = del_loucen)for (j = i; j < sum - 1; j+)loupanj = loupanj + 1;elsek+;if (k = sum)printf("ttt该楼盘不存在n");getchar();printf("ttt按回车键返回主菜单");getchar();return(sum);e
41、lsesave_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);doif (i < MAX)printf("
42、tt请输入要添加的楼盘的信息:n");printf("n ttt楼盘楼号:");scanf("%s", loupani.num);if (loupani.num = 0)break;printf("n ttt价格(元/):");scanf("%s", loupani.price);printf("n ttt面向:");scanf("%s", loupani.chaoxiang);printf("n ttt面积(单位:):");scanf(&quo
43、t;%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);(*sum)+;i = (*sum);getchar();printf(&
44、quot;n 成功添加一个楼盘的信息!n");getchar();printf("n 是否继续添加?( Y/N(选择N则返回主菜单) )n");choice = getchar();if (choice = 'Y' | choice = 'y')flag = 1;printf("n 继续添加!n");elseflag = 0;elseprintf("nttt返回主菜单n");_getch();break; while (flag = 1);/*统计模块*/void statistics(str
45、uct loupans_type loupan, int sum)int i = 0;int j = 0;int k = 0;int flag;int choice;int ting;int shi;dosystem("cls");printf("请输入所要查询户型(厅-室):");scanf("%d-%d", &ting, &shi);for (i = 0; i < sum; i+)if (ting = loupani.kind.danyu && shi = loupani.kind.loucen)j+;el
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水利水电工程政策法规适应试题及答案
- 2025年工程项目管理流程优化试题及答案
- 工程项目管理信任建立试题及答案
- 工程项目管理团队协作能力试题及答案
- 2025年市政工程考试信息技术的运用及试题及答案
- 系统分析市政工程考试试题及答案
- 工程项目管理的问题解决策略试题及答案
- 公共关系学影响力分析试题及答案
- 全面解析中级经济师试题及答案
- 公共关系在国际化中的挑战试题及答案
- 大风天气下的物流运输安全措施
- 老旧小区加装电梯使用公约协议
- 新生儿护理安全用药
- 2025年湖北省新华书店集团有限公司招聘笔试参考题库含答案解析
- 西医骨科发展简史
- 医疗护理医学培训 临时起搏器的使用及参数调整课件
- 《中国妇女妊娠期体重监测与评价》(T-CNSS 009-2021)
- 情境教学法在初中函数教学中的实践研究
- 2025年春季1530安全教育记录主题
- 初中语文教师校本培训内容
- 2024年国家公务员考试行测真题附解析答案
评论
0/150
提交评论