课程设计报告4019566.docx

上传人:b****8 文档编号:28627605 上传时间:2023-07-19 格式:DOCX 页数:28 大小:82.06KB
下载 相关 举报
课程设计报告4019566.docx_第1页
第1页 / 共28页
课程设计报告4019566.docx_第2页
第2页 / 共28页
课程设计报告4019566.docx_第3页
第3页 / 共28页
课程设计报告4019566.docx_第4页
第4页 / 共28页
课程设计报告4019566.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

课程设计报告4019566.docx

《课程设计报告4019566.docx》由会员分享,可在线阅读,更多相关《课程设计报告4019566.docx(28页珍藏版)》请在冰豆网上搜索。

课程设计报告4019566.docx

课程设计报告4019566

 

仲恺农业工程学院

课程设计报告

(居民水电费用管理系统)

课程面向对象课程设计

姓名袁家富

院(系)计算机科学与工程学院

专业年级计算机科学与技术083班

学号

指导教师陈勇

日期2010年8月30日-2010年9月12日

 

仲恺农业工程学院教务处制

目录

1、需求与功能分析1

2、系统总体框架XX

3、模块设计与分析XX

4、类的设计与分析XX

5、特色算法分析XX

6、功能测试XX

7、存在的不足与对策XX

8、程序源代码XX

9、使用说明XX

10、参考文献XX

1、需求与功能分析

1.1需求分析

水电管理系统为水电收费管理人员日常工作的抄表,报表生成,费用计算等提供充足的信息和快捷的查询手段。

利用VisualC++6.0软件及其提供的各种面向对象的开发工具,开发出功能完备,易使用的应用程序。

经过调试、编译与实现,该程序界面友好、程序设计风格朴素,使用起来美观大方、方便易用。

尤其是系统的“报表生成模块”的功能极大的减轻工作人员的工作量,并以快速、准确等优点取代人工操作,提高了水电管理工作效率。

1.2功能分析

本系统是面向普通的输人人员,所以系统使用必须尽可能简单。

根据对水电管理的具体要求及需要本软件实现的功能,将本软件分为7个大的模块,分别是:

第一部分:

住户信息录入;第二部分:

修改住户信息;第三部分:

删除住户信息;第四部分:

修改水电费用单价;第五部分:

住户水电费情况查询;第六部分:

报表生成程序;第七部分:

退出系统。

2、系统总体框架

3、模块设计与分析

1.住户信息录入

系统:

居民水电费用管理系统

模块:

住户信息录入

输入:

住户基本信息

输出:

提示信息

设计与分析:

1.进入系统时要设定住户数量。

2.然后进入此功能模块时,系统提示你输入你设定数量的住户的信息。

3.按提示输入住户的基本信息,包括姓名,编号,本月水用量和本月点用量。

4.全部信息输入后,退出模块,返回主菜单。

备注:

1.操作应简单。

2.按提示输入,否则可能会产生错误。

2.修改住户信息

系统:

居民水电费用管理系统

模块:

修改住户信息

输入:

住户的编号和修改后的信息

输出:

提示信息

设计与分析:

1.进入此功能模块时,系统提示你输入你想修改住户的编号。

2.然后系统会查找该住户。

3.如果找到该住户,按系统提示,修改住户的信息。

4.如果没有该住户,系统会提示“没有该住户的信息”。

3.执行完后,系统提示你是否继续修改。

4.输入Y继续进行修改操作。

5.按任意键,退出模块,返回主菜单。

备注:

1.操作应简单。

2.按提示输入,否则可能会产生错误。

3.删除住户信息

系统:

居民水电费用管理系统

模块:

删除住户信息

输入:

住户的编号

输出:

提示信息

设计与分析:

1.进入此功能模块时,系统提示你输入你想删除住户的编号。

2.如果删除成功,系统会提示“删除成功”。

3.如果没有该住户的信息,系统会提示“没有该住户的信息”。

4.执行完后,系统提示你是否继续修改。

5.输入Y继续进行删除操作。

6.按任意键,退出模块,返回主菜单。

备注:

1.操作应简单。

2.按提示输入,否则可能会产生错误。

4.修改水电费用单价

系统:

居民水电费用管理系统

模块:

修改水电费用单价

输入:

更改后的水电费单价

输出:

原来的水电费单价以及提示信息

设计与分析:

1.进入此功能模块时,系统提示你原来的水电费单价。

2.按照提示,修改水电费单价。

3.修改成功后,退出模块,返回主菜单。

备注:

1.操作应简单。

2.按提示输入,否则可能会产生错误。

5.住户水电费情况查询

系统:

居民水电费用管理系统

模块:

住户水电费情况查询

输入:

住户的编号

输出:

该住户水电费情况

设计与分析:

1.进入此功能模块时,系统提示你输入你想查询住户的编号。

2.若查找到该住户,系统会输出该用户的基本信息和水电费用情况。

3.如果没有该住户的信息,系统会提示“没有该住户的信息”。

4.执行完以后,系统会提示你是否继续查询。

5.输入Y继续进行查询操作。

6.按任意键,退出模块,返回主菜单。

备注:

1.操作应简单。

2.按提示输入,否则可能会产生错误。

6.报表生成

系统:

居民水电费用管理系统

模块:

报表生成

输入:

输出:

列出全部住户水电费情况

设计与分析:

1.进入此功能模块后,系统会输出所有住户的基本信息和水电费用情况。

2.退出模块,返回主菜单。

备注:

1.操作应简单。

7.退出系统

系统:

居民水电费用管理系统

模块:

退出系统

输入:

按提示输入

输出:

设计者信息以及提示信息

设计与分析:

1.进入此功能模块后,系统会输出设计者的信息。

2.系统提示信息,输入Y则退出系统;按任意键,退出模块,返回主菜单。

备注:

1.操作应简单。

4、类的设计与分析

1.Date类

classDate//日期

{

public:

voidSetvalue(inty,intm,intd)//初始化

{

year=y;

month=m;

date=d;

}

voidDisplay()//输出日期

{

cout<

}

private:

intyear;//年

intmonth;//月

intdate;//日

};

表1Date类说明表

名称

属性

说明

year

数据成员

记录日期对象的年份

month

数据成员

记录日期对象的月份

date

数据成员

记录日期对象的日期

Setvalue

成员函数

对日期对象初始化

Display

成员函数

输出日期

2.information类

classinformation

{

public:

information();

~information();

voidinput();

intgetid();

voidprice();

voidchangeprice(doublew,doublee);

voidaccount();

voidinput_time(inty,intm,intd);

voidoutput_time();

voiddisplay();

protected:

stringname;//姓名

intid;//编号

doublewater;//用水量

doubleelec;//用电量

doublew_1;//水费单价

doublee_1;//电费单价

Datetime;//日期

};

表2information类说明表

名称

属性

说明

name

数据成员

记录住户的姓名

id

数据成员

记录住户的编号

water

数据成员

记录住户的本月用水量

elec

数据成员

记录住户的本月用电量

w_1

数据成员

记录当前水费单价

e_1

数据成员

记录当前电费单价

time

数据成员

记录日期

information

成员函数

构造函数

~information

成员函数

析构函数

input

成员函数

输入住户的信息

getid

成员函数

返回住户的编号

price

成员函数

输出当前水电费单价

changeprice

成员函数

改变水电费单价

account

成员函数

计算住户水电费用

input_time

成员函数

初始化日期

output_time

成员函数

输出日期

display

成员函数

输出用户水电费情况

5、特色算法分析

功能:

1.进入住户水电费情况查询选项后,首先执行“清屏”,然后在显示提示信息,按提示信息输入要查询的住户的编号。

然后逐个查找,当找到该编号的住户时,输出该住户的水电费情况的信息;若找不到该编号的住户,系统会输出提示语言:

“没有该住户信息”。

2.查找完成后(找到或找不到),系统会提示你是否继续查找,若选择继续,则重复1的步骤;若选择退出,则返回上一层菜单。

算法思路:

1.要实现查找功能,用For语句,从第一个对象开始查找,用if语句来判断当前的对象是否为要查找的对象。

当找到该对象,输出该对象的内容;若找不到该对象,测输出提示信息,表明没有该对象的信息。

2.要实现多次查找,用do循环语句,算法一开始时,先进行一次查找,然后查找完成后,判断终止条件,终止条件由用户输入,若不满足终止条件,则继续执行循环体的内容,即继续进行查找;若满足终止条件,则退出循环体,然后进行其他相应的操作,最后返回主菜单。

代码:

do

{

system("cls");

cout<<"|**************住户水电费情况查询***************|"<

cout<<"请输入要查询的住户的编号:

";

enternum(c);

for(m=0;m

{

if(c==p[m].getid())

{

menu6(p[m]);

p[m].display();

cout<

}

elseif(p[m].getid()==0)

cout<<"没有该住户信息"<

}

}

while(jixu());

system("pause");

system("cls");

break;

流程图:

6、功能测试

图6-1住户基本信息录入功能测试图

图6-2报表生成功能测试图

图6-3修改住户信息功能测试图

图6-4住户水电费情况查询功能测试图

图6-5删除住户信息功能测试图

7、存在的不足与对策

由于设计者水平有限以及时间等方面的原因,本系统的功能比较简单,基本实现住户信息录入、修改、删除、查询等功能。

由于进入系统的时候已经设定好住户的数量,所以不能添加住户,到目前为止,还没找到合适的方法来解决迟问题。

此外,系统的查错能力也不强,对于一些不正确的输入可能会造成一些难以预料的结果,因此要按照系统提示信息输入数据,不要故意输入错误的信息。

还有的就是由于《数据库原理》的课程还没学完,对数据库的开发及应用还没有掌握好,因此,本系统没有用到数据库来管理系统的数据,导致本系统很多的功能不能实现。

在今后的学习当中,本人会更多地学习各种的编程技巧和扩充知识面,并且加强对数据库开发方面的学习,从而开发出功能更强大,更完善的数据管理系统。

8、程序源代码

/***********************"head.h"***********************/

#include

#include

#include

#include

usingnamespacestd;

/***********************Date.h***********************/

#if!

defined(DATE)

#defineDATE

#include"head.h"

classDate//日期

{

public:

voidSetvalue(inty,intm,intd)//初始化

{

year=y;

month=m;

date=d;

}

voidDisplay()//输出日期

{

cout<

}

private:

intyear;//年

intmonth;//月

intdate;//日

};

#endif

/***********************"information.h"***********************/

#if!

defined(INFORMATION)

#defineINFORMATION

#include"Date.h"

//信息类的定义

classinformation

{

public:

information();

~information();

voidinput();

voidoutput();

intgetid();

voidprice();

voidchangeprice(doublew,doublee);

voidaccount();

voidinput_time(inty,intm,intd);

voidoutput_time();

voiddisplay();

protected:

stringname;//姓名

intid;//编号

doublewater;//用水量

doubleelec;//用电量

doublew_1;//水费单价

doublee_1;//电费单价

Datetime;//日期

};

#endif

/***********************"information.cpp"***********************/

#include"information.h"

//成员函数的实现

information:

:

information()//构造函数

{

name="\0";

id=0;

water=0;

elec=0;

w_1=1.32;

e_1=0.75;

}

information:

:

~information()//析构函数

{

name="\0";

id=0;

water=0;

elec=0;

}

voidinformation:

:

input()//输入住户信息

{

cin>>name;

cin>>id;

cin>>water;

cin>>elec;

}

voidinformation:

:

output()//输出住户信息

{

cout<<""<

}

intinformation:

:

getid()//返回住户编号

{

returnid;

}

voidinformation:

:

price()//输出当前水电费单价

{

cout<<""<<"水费单价:

"<

cout<<"电费单价:

"<

}

voidinformation:

:

changeprice(doublew,doublee)//改变水电费单价

{

w_1=w;

e_1=e;

}

voidinformation:

:

account()//计算水电费用

{

doublew,e,we;

w=water*w_1;

e=elec*e_1;

we=w+e;

cout<<""<

}

voidinformation:

:

display()//输出住户水电费情况

{

cout<<""<

account();

}

voidinformation:

:

input_time(inty,intm,intd)//输入日期

{

time.Setvalue(y,m,d);

}

voidinformation:

:

output_time()//输出日期

{

time.Display();

}

/***********************"main.cpp"***********************/

#include"information.h"

voidenternum(int&num)//清除流的错误

{

charstr[80];

cin>>num;

while(!

cin)

{

cin.clear();

cin.getline(str,80);

cout<<"你的输入有误,请重新输入:

";

cin>>num;

}

}

intjixu()//继续则返回1.退出返回0

{

charc;

cout<<"继续请按Y,退出请按任意键:

";

cin>>c;

if(c=='Y'||c=='y')

return1;

else

return0;

}

intconfirm()//确定则返回1,取消返回0

{

charc;

cout<<"确定请按Y,取消请按任意键:

";

cin>>c;

if(c=='Y'||c=='y')

return1;

else

return0;

}

voidmenu4()

{

cout<<"|--|"<

cout<<"|姓名|编号|本月用水量|本月用电量|"<

cout<<"|--|"<

}

voidmenu1(intn)

{

cout<<"|-|"<

cout<<"|****************住户基本信息录入*****************|"<

cout<<"|---输入"<

----|"<

cout<<"|请按以下方式输入住户信息,不同数据之间以空格分割|"<

cout<<"|-|"<

menu4();

}

voidmenu2()

{

cout<<"|----修改住户信息如下:

----|"<

cout<<"|-|"<

cout<<"|请按以下方式输入住户信息,不同数据之间以空格分割|"<

cout<<"|-|"<

menu4();

}

voidmenu6(informationp)

{

cout<<"日期:

";

p.output_time();

cout<<"||"<

cout<<"|姓名|编号|本月用水量|本月用电量|水费金额|电费金额|总金额|"<

cout<<"||"<

}

voidmenu0()

{

cout<<"|------|"<

cout<<"|*****************面向对象课程设计******************|"<

cout<<"|------|"<

cout<<"|班级:

计机083姓名:

袁家富学号:

|"<

cout<<"|------|"<

cout<<"|题目:

居民水电费用管理系统|"<

cout<<"|------|"<

cout<<"|确定退出请按Y|返回系统请按任意键|"<

cout<<"|------|"<

}

intmenu()

{

inti;

cout<<"|------|"<

cout<<"|**************居民水电费用管理系统**************|"<

cout<<"|------|"<

cout<<"|||"<

cout<<"|1住户信息录入|2修改住户信息|"<

cout<<"|||"<

cout<<"|3删除住户信息|4修改水电费用单价|"<

cout<<"|||"<

cout<<"|5住户水电费情况查询|6报表生成|"<

cout<<"|||"<

cout<<"|------|"<

cout<<"|**************0退出系统**************|"<

cout<<"|------|"<

cout<<"请输入序号:

";

enternum(i);

while(i>6)

{

cout<<"你的输入有误,请重新输入:

";

cin>>i;

}

returni;

}

/*主函数*/

intmain()

{

intn,m,k;

doublew,e;

chari;

inta,b,c;

intY,M,D;

information*p;

cout<<"|------|"<

cout<<"|**********欢迎进入居民水电费用管理系统**********|"<

cout<<"|------|"<

cout<<"请输入住户数量:

";

enternum(n);

p=newinformation[n];

cout<<"设置日期:

"<

cout<<"年:

";

cin>>Y;

cout<<"月:

";

cin>>M;

cout<<"日:

";

cin>>D;

for(k=0;k

{

p[k].input_time(Y,M,D);

}

system("cls");

for(;;)

{

switch(menu())

{

case1:

system("cls");

menu1(n);

for(m=0;m

p[m].input();

system("pause");

system("cls");

break;

case2:

do

{

system("cls");

cout<<"|*****************修改住户信息*******************|"<

cout<<"请输入要修改的住户的编号:

";

enternum(a);

for(m=0;m

{

if(a==p[m].getid())

{

menu

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1