




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中 国 地 质 大 学本科生课程论文封面课程名称 计算机高级语言课程设计(C)教师姓名 本科生姓名 本科生学号 本科生专业 网络工程 所在院系 计算机学院 类别: 工科 日期: 16/1/2013 课程设计评语对课程论文的评语:平时成绩:课程论文成绩:总 成 绩:评阅人签名:注:1、无评阅人签名成绩无效;2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。摘要:本文完成了综合练习中第20题物业管理系统的编程,程序用于小区的管理,管理的项目包括小区住户管理、物业收费项目管理、物业收费管理,并用文件存储相关信息。文中给出了需求分析、功能模块图、数据结构、详细设计、程序运行结果、总结和致谢。目 录课程设计评语2作者简介及摘要3目 录41课程论文题目52总体设计63详细设计84程序运行结果125编程中遇到的困难及解决方法166总结心得及良好建议177致谢188参考文献191.课程论文题目:物业管理系统1.1问题描述物业管理系统问题的描述是:用于小区的物业管理,管理的项目包括小区住户管理、物业收费项目管理、物业收费管理。要求用文件存储相关信息。1.2基本要求(1) 可随时浏览、录入和更改小区住户、收费项目等数据。(2) 随时可增、删、改、查收费项目及其标准。(3) 生成小区住户收费报表(包括全部、已交、欠交)。1.3需求分析住户信息、物业收费信息用一个文件存储,因而要提供文件的输入/输出操作;另外,还要提供键盘式选择菜单以实现功能选择。2.总体设计:2.1总体思路整个管理系统设计为住户信息、物业收费信息的浏览、增加、更改、删除等模块。2.2功能模块图物业管理系统更改删除增加浏览计算图2-2功能模块图2.3数据结构设计根据问题描述,将住户信息、物业收费信息放在一个resident结构体内。结点结构:fh name bjf baf tcf yj zj qj定义如下:#define N 50 int M;struct residentint fh;/*房号*/char name10;/*户主姓名*/int bjf;/*保洁费*/int baf;/*保安费*/int tcf;/*停车费*/int yj;/*已交*/int zj;/*总计*/int qj;/*欠交*/sN;/*sN中每个数组元素对应一个住户*/将住户信息储存在ZHSFBB.txt文本文件中内容及格式:101 wang 86 50 80 120102 zhang 77 50 0 127201 zhao 80 50 60 150202 shang 70 55 10 100 301 zhou 88 66 55 130302 mei 56 89 13 90401 sun 46 66 79 80402 tian 50 80 40 140501 fang 60 70 30 120502 chen 90 60 40 88601 bian 40 40 40 110602 wu 80 80 40 803.详细设计3.1数据读入模块: 小区住户信息采用结构体形式,把一个住户的信息作为结构体成员,若要存放若干个住户信息就要用到结构体数组,一条记录对应一户住户的信息,既符合习惯也方便信息管理。代码:/*数据读入模块*/ void Re_file() FILE *fp;M=0;fp=fopen(ZHSFBB.txt,r);while(fscanf(fp,%d%s%d%d%d%d,&sM.fh,sM.name,&sM.bjf,&sM.baf,&sM.tcf,&sM.yj)!=EOF)M+;fclose(fp); 3.2 计算模块主函数中已读入原始数据,计算:总计=保洁费+保安费+停车费,欠交=总计-已交。开始定义循环计数器ii小于或等于总住户数? 计算 总计=保洁费+保安费+停车费计算 欠交=总计-已交i=i+结束图3-2计算模块流程图3.3增加模块该模块的功能是增加新的小区住户记录,用户从键盘输入并逐条写到原来的输入文件中。代码:/*增加模块*/void Append() int n,i; printf(可输入增加的住户数:); scanf(%d,&n);M=n+N; printf(现在,请输入相关信息:n); for(i=1;i=n;i+) printf(房号:); scanf(%d,&sM-n-1+i.fh);printf(户主姓名:);scanf(%s,sM-n-1+);printf(保洁费:);scanf(%d,&sM-n-1+i.bjf);printf(保安费:);scanf(%d,&sM-n-1+i.baf);printf(已交:);scanf(%d,&sM-n-1+i.yj); 3.4修改模块:该模块的功能是根据房号或户主姓名找到要修改的记录,并提示用户修改该记录的哪部分信息(保安费、保洁费、停车费、已交),然后根据用户的选择修改相应信息并形成新的报表。开始1 选择删除选项 2输入房号d定义数组下标i=0iN时,查找是否有无 d=si.fh 有输入户主姓名m定义数组下标i=0iN时,利用字符串有 比较函数判断有无 无strcmp(m,)=0 输出“没有找到”输出“没有找到”输入要修改信息1 2 3 4修改已交修改停车费修改保安费修改保洁费结束图3-4修改模块流程图3.5删除模块用户输入要删除的房号或姓名,根据房号或户主姓名查找工资记录并删除,删除位置后面的记录往前移动。开始1 选择删除选项 2输入户主姓名m定义数组下标i=0iN时,利用字符串有 比较函数判断有无 无strcmp(m,)=0 删除si 输出:“没有找到”输入房号d定义数组下标i=0iN时,查找是否有有 d=si.fh 无删除si 输出:“没有找到”结束图3-5删除模块流程图代码:/*删除模块*/void Delete()int i,j=-1,d;char m20;printf(删除模块:);printf(nnn);printf( *n);printf( * *n);printf( * *n);printf( * *n);printf( * 1:房号 2:户主姓名 *n); printf( * *n);printf( * *n);printf( * *n);printf( *n);printf(nn请输入删除选项:);scanf(%d,&i);if (i=1)printf(请输入房号:);scanf(%d,&d);for(i=0;iN;i+)if(d=si.fh)j=i;else if(i=2)printf(请输入户主姓名:);scanf(%s,&m);for(i=0;iN;i+)if(strcmp(m,)=0) j=i;if(j!=-1) M=M-1;for(i=j;i-N&j!=-1;i+)si=si+1; else if(j=-1)printf(没有找到!n);3.6任务结束后的返回菜单void Menu()int sele;sele=1; while(sele) system(cls); printf(nn); printf( *n); printf( * *n); printf( * 1:浏览 2:增加 *n); printf( * 3:更改 4:删除 *n); printf( * 5:退出 *n); printf( * *n); printf( *n); printf(nn请选择功能序号:); scanf(%d,&sele); switch(sele) case 1:Calculate();Display();Menu();break;case 2:Append();Display();Menu();break;case 3:Modify();Display();Menu();break;case 4:Delete();Display();Menu();break;case 5:exit(0);break; printf(nn按任意键继续n); getch(); Wr_file();4. 程序运行结果4.1主函数界面(也称主界面)主界面如图所示。图4-1-1主函数界面4.2浏览模块在主界面中输入“1”,然后按Enter键,进入浏览模块,如图所示。图4-2-1浏览界面1图4-2-2浏览界面24.3增加模块在主界面中输入“2”,然后按Enter键,进入增加模块,如图所示。图4-3-1增加界面1图4-3-2增加界面24.4更改模块在主界面中输入“3”,然后按“Enter”键,进入更改模块,如图所示。图4-4-1更改界面1图4-4-2更改界面24.5删除模块在主界面中输入“4”,然后按“Enter”键,进入删除模块,如图所示。图4-5-1删除界面5编程中遇到的困难及解决方法(1)课程设计刚开始的时候,C语言的教学尚未结束,“用户自己建立数据类型”(包括结构体、链表、共用体、枚举类型、声明新类型等内容)及“对文件的输入输出”两大章重要内容还未进行学习,这样的条件下很难进行程序的编辑。在这种情况下,我采取“磨刀不误砍柴工”的策略,先深入研读并理解了C程序设计(第四版)一书中这两张的内容,并将相应的一些简单程序上机调试,做到基本熟练掌握这些内容后,才着手此程序的编译工作。(2)作为第一个刚C语言不到半年的“入门级”新手,第一次面对此种较大型的程序案例,刚开始着实不知道从何下手,所以我决定先练习基于PBL的C语言课程设计及学习指导一书上的实例,通过“庖丁解牛”,我开始懂得不管一个程序多么复杂,其实它都是由最基本的函数组成,只要我们弄清结构、一切都会迎刃而解。(3)初读题目时无法抽象出问题模型,而“举一反三”中的实例与本课题有很多相似之处,通过“举一反三”,我总结出了此题目的设计思路、功能模块、数据结构设计等。6总结心得及良好建议这次课程设计共八次,时间不长,却感受很深。无论是在学习知识还是在解决问题的能力上,都有深刻的认识,总结如下:(1)程序设计思路一定要清晰,主函数尽量简洁,这样在调试过程中若出现错误,只要沿着主函数的思路逐个排查即可。一个条理清楚的框架结构有利于编译过程中查找并解决问题。(2)编译、调试时最好分模块进行。我第一次调试时是在整个程序编辑完后一次性编译,一下子出现了很多处错误。在老师及同学们的指导下,我新建了一个工作区并从主函数开始分模块进行编译调试,一个函数确认没有错误后在加入下一个函数,这样分步进行使每处错误便于
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司组织体检活动方案
- 公司气氛年会策划方案
- 公司春训活动策划方案
- 公司植树节春游活动方案
- 公司环保推广活动方案
- 公司月度拓展活动方案
- 公司放假前活动方案
- 公司用净水器展销活动方案
- 公司给员工做美甲活动方案
- 公司福利电影票活动方案
- GB/T 45150-2024老龄化社会认知症包容性社群框架
- 华师版 八年级数学下册 第二学期 期末综合测试卷(2025年春)
- 2022年全国森林、草原、湿地调查监测技术规程-附录
- 2025年春新北师大版数学一年级下册课件 综合实践 设计教室装饰图
- 如何做好临床护生的带教
- 森林防火工程技术标准
- 体育赛事舆情处理及应对方案
- 2025年中医治未病服务工作计划及措施
- 《光伏电站运行与维护》课件-项目五 光伏电站常见故障处理
- 委托办事合同范例
- 江西省抚州市2023-2024学年高二下学期期末考试数学
评论
0/150
提交评论