C++:水费管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++ 课程设计报告
题目:水费管理系统——水费基本信息管理、
查询、统计、存盘和收费管理
学生姓名:
学号:
专业班级:
同组姓名:
指导教师:
设计时间: 2008年下学期第15~16周
指导老师意见:
评定成绩: 签名: 日期:
1 系统(项目)设计
1.1 系统功能模块图
通过查阅相关资料和仔细分析,得出系统功能模块图如图1所示。系统主要由用户信息管理、收费管理、查询与统计、存盘等几个功能模块组成,我负责的是收费管理、查询与统计、存盘功能。
其中收费管理包括用户本月用水量、本月所收水费、收费时间,查询与统计包括用户信息查询与收费查询与统计,存盘包括用户信息和收费信息存盘。
1.2 系统登陆模块
系统登陆模块主要完成系统登陆和系统退出功能。其详细流程图如图2所示。
1、密码输入;
2、判断密码的正确与否,即当前用户是否具有进入系统运行的权限;
3、主菜单中选择1、2、3、4,分别进入用户基本信息管理、收费管理、查询与
统计、存盘操作;
4、密码错误或主菜单中选择0,退出程序;
1.3 收费管理
收费管理模块主要完成对用户进行收费的功能,该模块包含用户本月所收水费、存盘等功能。其流程图如图3所示。 1.3.1 子菜单2模块
1、从子菜单2中选择1、2分别进入本月所收水费、存盘操作;
2、选择0,返回主菜单。
1.3.2 本月所收水费模块
该模块主要完成对用户本月收取水费的功能,其流程图如图 4所示。 1. 进入子菜单 2中选择 1,进行用户信息的添加;
2. 键盘输入要收水费用户的编、名称、收费时间和本月用水量,计算对该用户所收水费;
3. 一次用户信息输入完成,系统回到上一级菜单,提示存盘;
4. 输入2,进行存盘。
1.3.3 存盘模块
该模块主要完成用户收费信息的存盘,详情见流程图5.所示。
1、子菜单2中选择2,进行添加用户信息和所收水费存盘;
2、继续输入用户信息或返回上级菜单。
1.4 查询与统计模块
查询、统计模块主要完成对用户基本信息的和收费信息的查询和统计的功能,详情见流程图6所示。
1、从主菜单中选择3,进入查询与统计子菜单3;
2、从子菜单中选择1、2分别进行用户基本信息查询和收费记录的统计;
3、输入要查询用户的名称或编号,系统从consumer文本文档中找到要查询用户
的基本信息,屏幕输出信息,返回子菜单3;
4、输入要查询用户收费记录的日期,系统从charge文本文档中找到该用户信息
及收费记录,在屏幕上输出,返回子菜单3;
5、如果没找到该用户信息,返回子菜单3。
2 程序源代码
#include
#include
#include
#include
#include
#define NULL 0
//定义用户基本信息类
由组员郭文君完成
//定义收费信息类
class charge{
char * name; //用户名称
char * kind; //用户类型
float volumn; //本月用水量
float money; //本月所收水费
char * time; //收费时间
public:
static int i; //交费次数
charge * next;//指向charge类对象的指针
charge(char * n,char * k,float v,float m,char * t)
{
name=new char[strlen(n)+1];
strcpy(name,n);
kind=new char[strlen(k)+1];
strcpy(kind,k);
volumn=v;
money=m;
time=new char[strlen(t)+1];
strcpy(time,t);
++i;
}
charge()
{
name=new char[10];
kind=new char[10];
volumn=0;
money=0;
time=new char[10];
++i;
}
~charge()//析构函数
{
--i;
delete []kind;
delete []name;
delete []time;
}
char *getname()
{
return name;
}
char *getkind()
{
return kind;
}
float getvolumn()
{
return volumn;
}
float getmoney()
{
return money;
}
char *gettime()
{
return time;
}
void setname(char *x)//用成员函数修改私有数据成员
{
strcpy(name,x);
}
void setkind(char *y)
{
strcpy(kind,y);
}
void setvolumn(float z)
{
volumn=z;
}
void setmoney(float p)
{
money=p;
}
void settime(char *q)