还剩16页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
中国地质大学本科生课程论文封面课程名称计算机高级语言课程设计(C)教师姓名本科生姓名本科生学号本科生专业网络工程所在院系计算机学院类别:工科日期:16/1/2013课程设计评语对课程论文的评语:平时成绩课程论文成绩总成绩评阅人签名注
1、无评阅人签名成绩无效;
2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;
3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩摘要本文完成了综合练习中第20题物业管理系统的编程,程序用于小区的管理,管理的项目包括小区住户管理、物业收费项目管理、物业收费管理,并用文件存储相关信息文中给出了需求分析、功能模块图、数据结构、详细设计、程序运行结果、总结和致谢目录TOC\o1-3\h\z\u课程设计评语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.3数据结构设计根据问题描述,将住户信息、物业收费信息放在一个resident结构体内结点结构定义如下#defineN50intM;structresident{intfh;/*房号*/charname
[10];/*户主姓名*/int__f;/*保洁费*/intbaf;/*保安费*/inttcf;/*停车费*/intyj;/*已交*/intzj;/*总计*/intqj;/*欠交*/}s[N];/*s[N]中每个数组元素对应一个住户*/将住户信息储存在ZHSFBB.___文本文件中内容及格式101wang865080120102zhang77500127201zhao805060150202shang705510100301zhou886655130302mei56__1390401sun46667980402tian508040140501fang607030120502chen90604088601bian404040110602wu
808040803.详细设计
3.1数据读入模块小区住户信息采用结构体形式,把一个住户的信息作为结构体成员,若要存放若干个住户信息就要用到结构体数组,一条记录对应一户住户的信息,既符合习惯也方便信息管理代码/************************数据读入模块***********************/voidRe_file{FILE*fp;M=0;fp=fopenZHSFBB.___r;whilefscanffp%d%s%d%d%d%ds[M].fhs[M].names[M].__fs[M].bafs[M].tcfs[M].yj!=EOFM++;fclosefp;}
3.2计算模块主函数中已读入原始数据,计算总计=保洁费+保安费+停车费,欠交=总计-已交
3.3增加模块该模块的功能是增加新的小区住户记录,用户从键盘输入并逐条写到原来的输入文件中代码/************************增加模块***********************/voidAppend{intni;printf可输入增加的住户数:;scanf%dn;M=n+N;printf现在,请输入相关信息:\n;fori=1;i=n;i++{printf房号:;scanf%ds[M-n-1+i].fh;printf户主姓名:;scanf%ss[M-n-1+i].name;printf保洁费:;scanf%ds[M-n-1+i].__f;printf保安费:;scanf%ds[M-n-1+i].baf;printf已交:;scanf%ds[M-n-1+i].yj;}}
3.4修改模块该模块的功能是根据房号或户主姓名找到要修改的记录,并提示用户修改该记录的哪部分信息(保安费、保洁费、停车费、已交),然后根据用户的选择修改相应信息并形成新的报表
3.5删除模块用户输入要删除的房号或姓名,根据房号或户主姓名查找工资记录并删除,删除位置后面的记录往前__代码/************************删除模块***********************/voidDelete{intij=-1d;charm
[20];printf删除模块:;printf\n\n\n;printf*******************************\n;printf**\n;printf**\n;printf**\n;printf*1:房号2:户主姓名*\n;printf**\n;printf**\n;printf**\n;printf*******************************\n;printf\n\n请输入删除选项:;scanf%di;ifi==1{printf请输入房号:;scanf%dd;fori=0;iN;i++ifd=s[i].fhj=i;}elseifi==2{printf请输入户主姓名:;scanf%sm;fori=0;iN;i++ifstrcmpms[i].name==0j=i;}ifj!=-1{M=M-1;fori=j;i-Nj!=-1;i++s[i]=s[i+1];}elseifj==-1printf没有找到!\n;}
3.6任务结束后的返回菜单voidMenu{intsele;sele=1;whilesele{systemcls;printf\n\n;printf*************************************\n;printf**\n;printf*1:浏览2:增加*\n;printf*3:更改4:删除*\n;printf*5:退出*\n;printf**\n;printf*************************************\n;printf\n\n请选择功能序号:;scanf%dsele;switchsele{case1:Calculate;Display;Menu;break;case2:Append;Display;Menu;break;case3:Modify;Display;Menu;break;case4:Delete;Display;Menu;break;case5:exit0;break;}printf\n\n按任意键继续\n;getch;}Wr_file;}
4.程序运行结果
4.1主函数界面(也称主界面)主界面如图所示
4.2浏览模块在主界面中输入“1”,然后按Enter键,进入浏览模块,如图所示
4.3增加模块在主界面中输入“2”,然后按Enter键,进入增加模块,如图所示
4.4更改模块在主界面中输入“3”,然后按“Enter”键,进入更改模块,如图所示
4.5删除模块在主界面中输入“4”,然后按“Enter”键,进入删除模块,如图所示5.编程中遇到的困难及解决方法
(1)课程设计刚开始的时候,C语言的教学尚未结束,“用户自己建立数据类型”(包括结构体、链表、共用体、枚举类型、声明新类型等内容)及“对文件的输入输出”两大章重要内容还未进行学习,这样的条件下很难进行程序的编辑在这种情况下,我采取“磨刀不误砍柴工”的策略,先深入研读并理解了《C程序设计(第四版)》一书中这两张的内容,并将相应的一些简单程序上机调试,做到基本熟练掌握这些内容后,才着手此程序的编译工作
(2)作为第一个刚C语言不到半年的“入门级”新手,第一次面对此种较大型的程序案例,刚开始着实不知道从何下手,所以我决定先练习《基于PBL的C语言课程设计及学习指导》一书上的实例,通过“庖丁解牛”,我开始懂得不管一个程序多么复杂,其实它都是由最基本的函数组成,只要我们弄清结构、一切都会迎刃而解
(3)初读题目时无法抽象出问题模型,而“举一反三”中的实例与本课题有很多相似之处,通过“举一反三”,我总结出了此题目的设计思路、功能模块、数据结构设计等6.总结心得及良好建议这次课程设计共八次,时间不长,却__很深无论是在学习知识还是在解决问题的能力上,都有深刻的认识,总结如下
(1)程序设计思路一定要清晰,主函数尽量简洁,这样在调试过程中若出现错误,只要沿着主函数的思路逐个排查即可一个条理清楚的框架结构有利于编译过程中查找并解决问题
(2)编译、调试时最好分模块进行我第一次调试时是在整个程序编辑完后一次性编译,一下子出现了很多处错误在老师及同学们的指导下,我新建了一个工作区并从主函数开始分模块进行编译调试,一个函数确认没有错误后在加入下一个函数,这样分步进行使每处错误便于查找和更改3细节处一定要注意,我刚刚编程时很容易丢落“;”“}”等符号,而这会对程序的编译造成极大的不便一个优秀的程序员应时刻注意细节,养成细心的良好品质7.致谢在课程设计过程中经常遇到诸多问题,多亏有刘老师指导和班上同学的耐心帮助,才能坚持做下去,在此表示衷心感谢!
8.____
[1]张冬梅,刘远兴,陈晶,王媛妮等.基于PBL的C语言课程设计及学习指导.北京清华大学出版社,2011
[2]谭浩强.C程序设计(第四版).北京清华大学出版社,2012物业管理系统更改删除增加浏览计算图2-2功能模块图fhname__fbaftcfyjzjqj开始定义循环计数器ii小于或等于总住户数?计算总计=保洁费+保安费+停车费计算欠交=总计-已交i=i++结束图3-2计算模块流程图开始1选择删除选项2输入房号d定义数组下标i=0iN时,查找是否有无d=s[i].fh有输入户主姓名m定义数组下标i=0iN时,利用字符串有比较函数判断有无无strcmpms[i].name==0输出“没有找到”输出“没有找到”输入要修改信息1234修改已交修改停车费修改保安费修改保洁费结束图3-4修改模块流程图开始1选择删除选项2输入户主姓名m定义数组下标i=0iN时,利用字符串有比较函数判断有无无strcmpms[i].name==0删除s[i]输出“没有找到”输入房号d定义数组下标i=0iN时,查找是否有有d=s[i].fh无删除s[i]输出“没有找到”结束图3-5删除模块流程图图4-1-1主函数界面图4-2-1浏览界面1图4-2-2浏览界面2图4-3-1增加界面1图4-3-2增加界面2图4-4-1更改界面1图4-4-2更改界面2图4-5-1删除界面。