版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 计算机科学与技术学院C高级语言程序设计课程设计报告 ( 2014 / 2015 学年 第 1 学期)学生姓名: 高攀 学生专业: 网络工程学生班级: 132002 学生学号: 201320030206指导教师: 张荣国 2015年1月9日 计算机科学与技术学院课程设计任务书课程设计名称C高级语言程序设计课程设计课程设计题目小区物业费管理学生姓名高攀专业班级网络工程132002学号201320030206课程设计任务内容问题描述针对小区物业费管理,应用C语言程序设计的基本理论和方法,从对问题的分析研究开始,到编程调试结束的整个过程进行分析和设计,具体包括以下几点。基本要求(1)了解程序设计的方
2、法和步骤,对小区物业费管理进行分析研究。(2) 收集小区物业费管理过程中所需要的信息,如户主名称、户主住址、收费项目、管理单位、收费日期,收费价格等。(3) 系统以菜单方式工作,可以进行:物业费信息录入功能、物业费信息的显示、物业费信息的删除、物业费信息的修改功能、物业费信息查询功能(如给定人名查询物业费信息,给定管理单位查询某月的收费信息)、物业费的统计功能(如按月、按年对物业费进行统计)等,所有录入的信息要以数据文件的形式存放。(4)画流程图:将主函数和每个功能模块的函数的流程图分别画出来;(5) 编写程序代码,对每个模块实现的功能进行详细的说明, 对程序中使用的变量予以说明,对程序中主要
3、语句的功能予以说明;(6)提交课程设计报告。测试要求(1)设计的程序能够方便地运行,达到设计的目的; (2)每个模块都要用不少于20条的实际数据加以测试,并给出测试结果; (3)用户界面友好,功能明确,操作方便。指导教师: 张荣国 时 间:2014年 12 月 13日 计算机科学与技术学院课程设计成绩评审表课程设计名称C高级语言程序设计课程设计课程设计题目小区物业费管理学生姓名高攀专业班级 网络工程132002班同组人学号201320030206指导教师张荣国设计成绩评价内容签 字: 时 间: 年 月 日 目录第一章 设计问题描述与分析.1 1.1物业收费项目.11.2 实现对物业信息的录入,
4、删除的功能.11.3系统目标分析.11.4 整体模块.21.5 相应菜单信息栏.31.6 操作选项.3第二章 算法设计与流程图.4 2.1 算法设计.4 2.1.1 主函数.4 2.1.2 物业信息.5 2.2 流程图.6 2.2.1主函数.6 2.2.2 物业信息.7第3章 程序设计编码与测试.83.1首次登录界面.83.2修改密码 .123.3 进入系统.14 3.3.1进入菜单选项.14 3.3.2信息录入.17 3.3.3增加数据.20 3.3.4修改数据.22 3.3.5信息查询.27 3.3.6 信息删除.32 3.3.7退出系统 .36第四章 心得体会.38附件:流程图与代码.3
5、9 附件一 流程图 .39 附表1 主函数.39 附表2 物业信息模块.40 附件二 代码.41第一章 设计问题描述与分析1.问题描述本物业管理系统能够提供物业费的查询,输入,删除,插入,修改等操作。其业务如下图所示。小区物业收费管理系统 物业费项目垃圾费报警费清理费停车费水电费 图1-1 物业收费项目1.1物业费收费项目实现对水费的录入,管理和查询的功能物业收费项目基本信息包括(水电费,垃圾费,停车费,报警费,清理费,) 1.2实现对物业费的录入,删除和查询的功能。 物业费包括(物业费ID、业主ID、收费标准、计费起始日期、计费终止日期、应收金额、实收金额、本年余额、是否收缴、收费日期、累计
6、缴费)1.3系统目标分析数据流程分析本系统包括以下外部实体。业主:接收系统生成的缴费单。物业中心:负责业主信息登记,录入业主每月水表及煤气表读数及计费标准。小区收费系统数据流程图如下 图 1-3 小区收费系统数据流程图1.4整体模块 模块功能实现对模块信息简单的描述,模块图如下所示; 界面 菜单选项 菜单信息 功能菜单 操作各对应子程序输入,增加,删除,查找,插入等操作各种物业项目的ID,收费标准,收费日期,是否缴费等基本信息水费,电费,煤气费公共区域维修费等项目ID进入(用户ID密码) 物业项目 图 1-4 小区收费系统过程流程图 1.5相应菜单信息栏 信息选项 A,水电费 B,垃圾费 C,
7、煤气费 D,停车费 E,报警费 F,公共水电费 G,清理费 提示“请输入您要进入的标号:” 输入标号: A-I (判断) 图 1-5 物业菜单选项1.6操作选项 操作选项 1,输入 2,增加 3,修改 4,查询 5,删除 6,退出 提示“请输入您要执行的标号:” 输入标号:1-6 (判断进入) 图 1-6 操作选项功能 第二章 算法设计与流程图2.1算法设计 开始2.1.1主函数Y 相应 操作选项号码是否有效N输入密码 执行子程序是否正确输入操作号 结束N 选择菜单函数 物业项目Y 进入菜单函数 Y标号是否有效Y输入选项NN输入标号 进入菜单函数系统 图 2-1 主函数流程图2.1.2物业信息
8、 开始输入一个数判断是否有效 YN 进入菜单函数输入z判断是否有效ny 进入功能模块函数 执行相应功能 结束 图 2-2 物业信息模块2.2流程图2.1.2主函数 开始Y 操作选项k是否有效Nmima 执行子程序Key=Mima?Cin>>k 结束N 选择物业项目 Main_menu()Y YCin>>pw是否有效YNCin>>w Y 进入系统 图2-3 主函数流程图 2.2.2物业信息模块 开始输入zz>=a&&z<=i? NY Main_menu()输入zx=1&&x=6ny Fun() 结束 图 2-4 物业
9、信息模块流程图 第三章 程序设计编码与测试 程序代码与测试描述 3.1首次登陆界面 主函数为密码函数,进入系统时提示输入管理员密码。若是首次登陆提示预设密码,输入预设密码,正确即可显示下一指令。如图3-1 图 3-1 管理员登陆界面int Key()char mima20,key20;char yu_mima20="12345"int flag;int p;char w; int j;ifstream in;ofstream out;fstream f; /输入输出对象cout<<" * "<<endl; /登录界面cout<
10、;<" 欢迎登陆小区物业资费管理系统 "<<endl;cout<<" * "<<endl<<endl;doflag=0;cout<<"请输入管理员密码:"<<endl;in.clear();in.open("F:a.txt",ios:in); if(in.fail()j=1;elsej=2;switch(j)case 1: /首次登录cout<<endl<<" 首次登陆,您的预设密码为:12345:&qu
11、ot;<<endl<<endl;cout<<"请输入:"cin>>mima ;cout<<endl;if(strcmp(yu_mima,mima)=0)flag=1;cout<<" 密码正确,请输入下一步指令:"<<endl<<endl;break;case 2: char odd_mima20; f.open("F:a.txt",ios:in);f>>odd_mima; cin>>mima; /从文件中输出,并比较
12、if(strcmp(odd_mima,mima)=0)flag=1;cout<<" 密码正确,请输入下一步指令:"<<endl<<endl; elsedo cin>>mima; if(strcmp(odd_mima,mima)=0)flag=1;elseflag=0;cout<<" 密码错误,请重新输入"<<endl<<endl; while(flag=0);break;in.close();if (flag=0)cout<<" 密码有误,请重新输入
13、"<<endl<<endl;while (flag=0); cout<<" *"<<endl; cout<<" * 0.修改密码 *"<<endl; cout<<" * 1.进入系统 *"<<endl; cout<<" * 2.退出系统 *"<<endl; cout<<" *"<<endl; do cout<<" 请输入你
14、的指令(0 2):"<<endl; cin>>p; switch(p) case 0: /修改密码 cout<<"请输入新密码:"<<endl; cin>>key; out.open("F:a.txt",ios:out); out.clear(); out<<key; out.close(); break; case 1: charges_menu();break; /进入系统 case 2: /退出系统 cout<<"谢谢使用小区物业资费管理系统!
15、"<<endl<<endl<<" 拜拜,欢迎下次进入"<<endl<<endl; exit(0); break; default : cout<<" 输入指令有误,请重新输入:"<<endl<<endl;break; while (p<0|p>2); cout<<" 你想继续其他操作吗? y / n :"<<endl<<" " do cin>>w; c
16、out<<endl; if(w='n' ) exit(0); if(w!='y' && w!='n') cout<<" 指令有误!请重新输入: "<<endl; while (flag=0); if (w='y') cout<<" 请输入操作代码: 0 修改密码"<<endl; cout<<" 1 进入系统"<<endl; cout<<" 2 退出系统
17、"<<endl; while (w='y');cin>>p;return p; /密码函数int main()Key();return 0; 3.2 修改密码 将初始密码改为自己想设置的密码,并保存;下次登陆识别更改的密码。如下图3-2,3-3。 图 3-2 修改密码 图 3-3密码保存到文件中 case 0: /修改密码 cout<<"请输入新密码:"<<endl; cin>>key; out.open("F:a.txt",ios:out); out.clear();
18、 out<<key; out.close(); break; case 1: charges_menu();break; /进入系统 case 2: /退出系统 cout<<"谢谢使用小区物业资费管理系统! "<<endl<<endl<<" 拜拜,欢迎下次进入"<<endl<<endl; exit(0); break; default : cout<<" 输入指令有误,请重新输入:"<<endl<<endl;brea
19、k; while (p<0|p>2);3.3进入系统 3.3.1进入菜单选项 根据收费项目菜单选项提示,输入相应编号,进入系统。如图3-3 图 3-3 系统菜单编号输入编号后,会有物业功能选项提示,如3-4图。 图 3-4 物业功能选项显示代码如下:void charges_menu () /物业项目cout<<" * "<<endl;cout<<" 欢迎进入小区物业管理资费系统 "<<endl;cout<<" * "<<endl;cout<&l
20、t;" * "<<endl;cout<<" * 物业费收费项目菜单选项提示 * "<<endl;cout<<" * a. 垃圾费 * "<<endl;cout<<" * b. 供暖费 * "<<endl;cout<<" * c. 停车费 * "<<endl;cout<<" * d. 报警费 * "<<endl;cout<<"
21、 * e. 清理费 * "<<endl;cout<<" * f. 水电费 * "<<endl;cout<<" 请输入你要进入菜单选项的编号(aj): "char p;cin>>p;cout<<endl;docin>>p;cout<<" 选项错误!请重新输入:"while(p<='a'&& p>='i'); switch(p) case 'a': fun()
22、; break; case 'b': fun();break; case 'c': fun();break; case 'd': fun();break; case 'e': fun();break; case 'f': fun();break; case 'g': fun();break; case 'h':fun();break; /读出物业费收费项目3.3.2 信息录入 输入标号,进入信息录入模块,输入信息,系统自动保存到文件中。如图3-5 ,3-6。 图3-5 信息录入 图
23、3-6 信息存入文件代码如下:case '1' : char name 20;char ID_num10;char biaozhun5;char this_num5;char last_num5;char gave_charge5;char vir_charge5;char use_num5;char state_date20;char end_date20;char odd_charge5;char wh_charge2;char acc_charge5;char c;ofstream out;out.open("dat", ios:out|ios:app
24、);docout<<" 请输入物业名:" ;cin>>name;cout<<" 请输入物业ID : "cin>>ID_num;cout<<" 请输入标准 : "cin>>biaozhun;cout<<" 请输入本月读数: "cin>>this_num;cout<<" 请输入上月读数: "cin>>last_num;cout<<" 请输入应收金额:"
25、;cin>>gave_charge;cout<<" 请输入实收金额:"cin>>vir_charge;cout<<" 请输入使用数: "cin>>use_num;cout<<" 请输入计费起始日期:"cin>>state_date;cout<<" 请输入计费终止日期:"cin>>end_date;cout<<" 请输入本月余额:"cin>>odd_charge;co
26、ut<<"请输入是否缴费:"cin>>wh_charge;cout<<" 请输入累计金额:"cin>>acc_charge;cout<<endl;out<<setw(20)<<name<<setw(10)<<ID_num<<setw(5)<<biaozhun<<setw(5)<<this_num<<setw(5)<<last_num<<setw(5)<<
27、gave_charge<<setw(5)<<vir_charge<<setw(5)<<use_num<<setw(20)<<state_date<<setw(20)<<end_date<<setw(5)<<odd_charge<<setw(5)<<wh_charge<<setw(5)<<acc_charge; /物业费信息 文件输入cout<<" 数据输入成功,想继续其他操作吗? y / n :"
28、<<endl<<" "cin>>c;cout<<endl;doif (c!='y' && c !='n')cout<<" 指令错误!请重新输入 !"<<endl<<" "char c;cin>>c;else flag=1;while(flag=0);while(c='y');out.close();break; break;3.3.3增加数据 输入菜单编号2,进入增加数据函数中
29、,根据提示,输入要添加的数据,添加后系统会自动保存到文件夹中。如图3-7 ,3-8。 图 3-7 增加数据 图 3-8 添加的数据保存到文件中代码如下: case '2': /增加数据 char name 20;char ID_num10;char biaozhun5;char this_num5; char last_num5;char gave_charge5;char vir_charge5;char use_num5;char state_date20;char end_date20;char odd_charge5;char wh_charge2;char acc_c
30、harge5;char c;out.open("dat" ,ios:app);docout<<" 请输入用户名:" ;cin>>name;cout<<" 请输入用户ID : " cin>>ID_num;cout<<" 请输入标准 : "cin>>biaozhun;cout<<" 请输入本月读数: "cin>>this_num;cout<<" 请输入上月读数: "cin&
31、gt;>last_num;cout<<" 请输入应收金额:"cin>>gave_charge;cout<<" 请输入实收金额:"cin>>vir_charge;cout<<" 请输入使用数: "cin>>use_num;cout<<" 请输入计费起始日期:"cin>>state_date;cout<<" 请输入计费终止日期:"cin>>end_date;cout<&
32、lt;" 请输入本月余额:"cin>>odd_charge;cout<<"请输入是否缴费:"cin>>wh_charge;cout<<" 请输入累计金额:"cin>>acc_charge; out<<setw(20)<<name<<setw(10)<<ID_num<<setw(5)<<biaozhun<<setw(5)<<this_num<<setw(5)<<
33、;last_num<<setw(5)<<gave_charge<<setw(5)<<vir_charge<<setw(5)<<use_num<<setw(20)<<state_date<<setw(20)<<end_date<<setw(5)<<odd_charge<<setw(5)<<wh_charge<<setw(5)<<acc_charge; /物业费信息插入 文件输入 cout<<&q
34、uot; 数据输入成功,想继续其他操作吗? y / n :"<<endl<<" "cin>>c;cout<<endl;doif (c!='y' && c !='n')cout<<" 指令错误!请重新输入 !"<<endl<<" "char c;cin>>c;else flag=1; while(flag=0);while(c='y');out.close();brea
35、k;3.3.4修改数据 输入标号3,根据提示输入你要修改的用户名,再根据格式输入新的数据。数据输入后,系统自动保存到文件中。如图3-9。 图3-9 修改信息 代码如下:case '3': /物业费信息修改 char name 20;char ID_num10;char biaozhun5;char this_num5;d char last_num5;char gave_charge5;char vir_charge5;char use_num5;char state_date20;char end_date20;char odd_charge5;char wh_charge2
36、;char acc_charge5;char c; char na20; char ID10; char biao20; char tn5; char ln5; char gc5; char vc5; char un5; char sd20; char ed20; char oc5; char wc2; char ac5; do int flag=0; cout<<"请输入你要修改的用户名:"<<endl; cin>>na; cout<<endl; f.open("dat",ios:in|ios:out);
37、 f.seekg(0,ios:beg); f.clear(); while (!f.eof() f>>name; if(strcmp(name,na)=0) flag=1;cout<<" 请输入用户名名:" ;cin>>na; cout<<" 请输入用户ID : " cin>>ID;cout<<" 请输入标准 : "cin>>biao;cout<<" 请输入本月读数: "cin>>tn;cout<<
38、;" 请输入上月读数: "cin>>ln;cout<<" 请输入应收金额:"cin>>gc;cout<<" 请输入实收金额:"cin>>vc;cout<<" 请输入使用数: "cin>>un;cout<<" 请输入计费起始日期:"cin>>sd;cout<<" 请输入计费终止日期:"cin>>ed;cout<<" 请输入本月
39、余额:"cin>>oc;cout<<"请输入是否缴费:"cin>>wc;cout<<" 请输入累计金额:"cin>>ac; cout<<endl; strcpy (name ,na);strcpy( ID_num ,ID); strcpy(biaozhun ,biao); strcpy (this_num, tn); strcpy(last_num, ln); strcpy(gave_charge,gc); strcpy(vir_charge, vc); strcpy(us
40、e_num,un); strcpy(state_date,sd); strcpy(end_date,ed); strcpy(odd_charge,oc); strcpy(wh_charge,wc); strcpy(acc_charge,ac); f.seekp(0,ios:cur); f<<setw(20)<<na<<setw(10)<<ID<<setw(5)<<biao<<setw(5)<<tn<<setw(5)<<ln<<setw(5)<<gc&l
41、t;<setw(5)<<vc<<setw(5)<<un<<setw(20)<<sd<<setw(20)<<ed<<setw(5)<<oc<<setw(2)<<wc<<setw(5)<<ac; /物业信息修改插入 文件输入 cout<<" 修改成功! "<<endl<<endl;break; f.close(); if(flag=0) cout<<"你要修改的
42、物业不存在! "<<endl<<endl; cout<<" 你想继续修改吗? y/n :"<<endl; cin>>c; cout<<endl; if(c='n' ) break; if(c!='y'&& c!='n') cout<<" 指令错误! 请重新输入:"<<endl<<" " cin>>c; while (c='y')
43、; break;3.3.5信息查询 输入标号4,进入信息显示模块,选择你想查询的方式进行查询。根据提示输入想要查找的用户或编号,系统会自动显示信息。如图 3-11 ,3-12。 图 3-11 信息显示 图 3-12 文件中的信息代码如下:case '4': /信息查询 char name 20;char ID_num10;char biaozhun5;char this_num5; char last_num5;char gave_charge5;char vir_charge5;char use_num5;char state_date20;char end_date20;c
44、har odd_charge5;char wh_charge2;char acc_charge5;char c; cout<<" 请选择你要查询的方式: "<<endl<<endl<<" 1.按用户名查找"<<endl<<endl<<" 2.按ID号查询"<<endl<<endl;int k;cin>>k;switch (k)case 1: / 按用户名查询char na20;char c;doifstream in
45、;in.open("dat",ios:in);in.seekg(0,ios:beg);in.clear();int flag=0;cout<<"请输入你要查找的用户名:"<<endl;cin>>na;cout<<endl;while (!in.eof()in>>name>>ID_num>>biaozhun>>this_num>>last_num>>gave_charge>>vir_charge>>use_num&
46、gt;>state_date>>end_date>>odd_charge>>wh_charge>>acc_charge; if(strcmp(name,na)=0)flag=1;cout<<"你要查询的用户名:"<<name<<"的信息是:"<<endl<<endl;cout<<"名称 物业ID 标准 本月读数 上月读数 应收金额 实收金额 使用数"<<endl;cout<<"
47、起始计费日期 终止计费日期 本月余额 是否缴费 累计余额"<<endl;ofstream out; out<<setw(20)<<name<<setw(10)<<ID_num<<setw(5)<<biaozhun<<setw(5)<<this_num<<setw(5)<<last_num<<setw(5)<<gave_charge<<setw(5)<<vir_charge<<setw(5)<
48、;<use_num<<setw(20)<<state_date<<setw(20)<<end_date<<setw(5)<<odd_charge<<setw(5)<<wh_charge<<setw(5)<<acc_charge; /物业费信息查询插入 文件输入in.close();if(flag=0)cout<<"对不起,你要查询的用户信息不存在!"<<endl<<endl;cout<<"你想
49、继续查询吗? y/n :"char c;cin>>c;cout<<endl;if(c='n')break;if(c!='y'&&c!='n')cout<<"指令错误!请重新输入!"<<endl;cin>>c;while (c='y');break; case 2: /按ID号查询do int flag=0;cout<<"请输入你要查询的ID号:"<<endl;char ID10;cin>>ID;cout<<endl;in.open("dat",ios:in);in.seekg(0,ios:beg);in.clear();while(! in.eof() in>>name>&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《过敏性紫癜曹伟》课件
- 《代商务礼仪》课件
- 《确定市场调研目标》课件
- 房屋租赁合同(2篇)
- 《硬盘使用前的处理》课件
- 2024年汽轮机油产品研发与技术转移合作协议3篇
- 2025年郑州货运从业资格证题库
- 2025年昌都货运从业资格证考试模拟考试题库下载
- 2024年混凝土构件生产及安装合同
- 2025年济南道路运输从业人员从业资格考试
- 监理公司各部门职责
- 253种中药材粉末显微鉴别主要特征
- 论辛弃疾词作的愁情主题及其审美价值
- 新形势下我国保险市场营销的现状、问题及对策
- LTE无线网络优化PPT课件
- 动态血压监测在社区高血压患者管理的意义
- 管道中英文对照表
- 240灯控台_说明书
- 新形势下加强市场监管局档案管理工作的策略
- 例行检查和确认检验程序
- 上海旅游资源基本类型及其旅游区布局特点(共5页)
评论
0/150
提交评论