您的当前位置:首页正文

C++课程设计高校水电管理系统

2022-10-10 来源:易榕旅网


面向对象技术与C++课程

设计报告

题目:设计高校水电管理系统 班级:120604

学号:120604129 姓名:尤雅欢

2013年9月

课程设计任务书

一、设计目的与要求

1、目的:

(1)要求学生达到熟练掌握C++语言的基本知识和技能; (2)基本掌握面向对象程序设计的基本思路和方法;

(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。

2、基本要求:

(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计; (2)要求在设计的过程中,建立清晰的类层次;要分析和定义各个类,每个类中要有各自的属性和方法;要求运用面向对象的机制(继承、派生及多态性)来实现系统功能。

(3)在系统的设计中,要有清晰的界面设计,同时采用文件进行读写操作。

3、创新要求:

在基本要求达到后,可进行创新设计。

二、问题描述及功能要求

设计一个水电管理信息系统,能够对高校的水电费用进行管理,包括登记费用、查询费用和住户信息管理等。在设计时要考虑到学生和教工在用水电时的不同,学生可以免费使用一定额度的水电,超过这个额度的水电以后必须自费使用,且自费部分水电费的价格标准要高于教工的收费标准(主要是节约资源)。

完成如下功能:⑴实现对用户信息的录入。⑵实现水电煤气数据的录入。⑶计算并查询用户应缴费用。⑷查询未缴纳费用的名单。

三、问题的解决方案

根据系统功能要求,可以将问题解决分为以下步骤:

(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计; (2)分析系统中的各个实体及它们之间的关系包括属性和行为; (3)根据问题描述,设计系统的类层次;

(4)完成类层次中各个类的描述(包括属性和方法); (5)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能调试;

四、设计思路

1、在主函数中通过分支选择实现不同的功能。

2、在菜单函数中,通过设计界面与用户进行交互。

3、定义一个使用者类,在类的内部定义各种函数,实现显示、修改、删除、查询、统计用户信息等功能。

五、各功能模块和流程图

Input()函数

界面 Main()函数 高校水电管理系统 用 户 信 息 的 显示 用 户 信 息 的 修 改 用户信息的删除 水电信息的查询 Display()函数 Modify()函数 Delete()函数 Search()函数 Menu()函数

六、设计代码

#include #include #include #include using namespace std; class User{ private:

int num;//编号 string name;//姓名 string sex;//性别 string status;//身份 double water;//用水量 double power;//用电量 double watermoney;//水费 double powermoney;//电费

static int top; //top表示当前系统中存储的记录个数; public:

User();

void Display();//显示用户信息 void Modify();//修改用户信息 void Delete();//删除用户信息 void Search();//查询用户信息 void Save();//将该记录保存到文件 void Input();//输入函数 int Add();//统计人数 };

User::User(){}

void User::Input()//输入函数 {

cout<<\"请输入编号:\"<>num;

cout<<\"请输入姓名:\"<>name;

cout<<\"请输入性别:\"<>sex;

cout<<\" 请输入身份:\"<>status;

cout<<\"请输入用水量:\"<cin>>water;

cout<<\"请输入用电量:\"<>power;

cout<<\"请选择收费方式:\";

cout<<\"1. 教师收费 2.学生收费\"<>choice; switch(choice) {

case 1:watermoney=0.5*water; powermoney=0.5*power; break;

case 2:watermoney=0.6*(water-10); powermoney=0.6*(power-10); break;

default :cout<<\"输入错误。\"<void User::Display()//显示全部信息 {

ifstream inData(\"用户信息.txt\");

int num1;//编号 string name1;//姓名 string sex1;//性别 string status1;//身份 double water1;//用水量 double power1;//用电量 double watermoney1;//水费 double powermoney1;//电费 while

(inData >>num1>>name1>>sex1>>status1>>water1>>power1>>watermoney1>>powermoney1) {

cout<<\" \"<<\"编号\"<<\" \\"<<\"姓名\"<<\" \"<<\"性别\"<<\" \"<<\"身份\"<<\" \"<<\"用水量\"<cout<<\" \"<\"<<cout<<\"全部信息已显示!\"<void User::Modify()//修改用户信息 { ifstream inData(\"用户信息.txt\"); ofstream out(\"ren.txt\

int num1;//编号 string name1;//姓名 string sex1;//性别 string status1;//身份 double water1;//用水量 double power1;//用电量 double watermoney1;//水费 double powermoney1;//电费 bool flag=true;

cout<<\"请输入要修改的用户姓名:\"; cin>>name; while

(inData >>num1>>name1>>sex1>>status1>>water1>>power1>>watermoney1>>powermoney1) {

if (name1==name) {

cout <cout<<\" \"<<\"编号\"<<\" \\"<<\"姓名\"<<\" \"<<\"性别\"<<\" \"<<\"身份\"<<\" \"<<\"用水量\"<<<\"用电量\"<<out<<\" \"<out<<\" \"<<inData.close(); out.close(); if(flag)

cout<<\"库中无你要修改的用户!\\n\"; ofstream outt(\"用户信息.txt\"); ifstream inn(\"ren.txt\"); while

(inn >>num1>>name1>>sex1>>status1>>water1>>power1>>watermoney1>>powermoney1) {

outt<<\" \"<<outt.close(); inn.close(); if(!flag)

cout<<\"已修改完成!\"<void User::Delete()//删除 {

ifstream inData(\"用户信息.txt\"); ofstream out(\"ren.txt\");

int num1;//编号 string name1;//姓名 string sex1;//性别 string status1;//身份 double water1;//用水量 double power1;//用电量 double watermoney1;//水费 double powermoney1;//电费

cout<<\"请输入要删除的用户姓名:\"; cin>>name; while

(inData >>num1>>name1>>sex1>>status1>>water1>>power1>>watermoney1>>powermoney1) {

if (name1==name) {

cout <cout<<\" \"<<\"编号\"<<\" \\"<<\"姓名\"<<\" \"<<\"性别\"<<\" \"<<\"身份\"<<\" \"<<\"用水量\"<<<\"用电量\"<<continue; }

out<<\" \"<<out.close(); inData.close();

ofstream outt(\"用户信息.txt\"); ifstream inn(\"ren.txt\");

while

(inn >>num1>>name1>>sex1>>status1>>water1>>power1>>watermoney1>>powermoney1) {

outt<<\" \"<<outt.close(); inn.close(); }

void User::Search()//查询用户信息 {

ifstream inData(\"用户信息.txt\");

if (!inData) {

cout <cout<<\"请选择查询方式:1、按姓名查询 2、按编号查询 \"<cin>>choice;

int num1,num2;;//编号 string name1;//姓名 string sex1;//性别 string status1;//身份 double water1;//用水量 double power1;//用电量 double watermoney1;//水费 double powermoney1;//电费 string name2; switch(choice) {

case 1:cout<<\"请输入姓名:\"; cin>>name2; while

(inData >>num1>>name1>>sex1>>status1>>water1>>power1>>watermoney1>>powermoney1) {

if (name1==name2) {

cout <cout<<\" \"<<\"编号\"<<\" \\"<<\"姓名\"<<\" \"<<\"性别\"<<\" \"<<\"身份\"<<\" \"<<\"用水量\"<cout<<\" \"<<break;

case 2:cout<<\"请输入编号:\"; cin>>num2; while

(inData >>num1>>name1>>sex1>>status1>>water1>>power1>>watermoney1>>powermoney1) {

if (num1==num2) {

cout <cout<<\" \"<<\"编号\"<<\" \\"<<\"姓名\"<<\" \"<<\"性别\"<<\" \"<<\"身份\"<<\" \"<<\"用水量\"<<<\"用电量\"<cout<<\" \"<break; } }

void User::Save()//将该记录保存到文件 {

ofstream out(\"用户信息.txt\ if(!out) {

cout<<\"打开失败!\"<out<<\" \"<cout<<\"写入成功!\"<int Menu()

{cout<<\"******************欢迎进入高校水电管理系统*****************\\n\"<cout<<\" 1、用户信息的录入 \\n \"<cout<<\" 2、水电信息的查询 \\n \"<cout<<\" 3、用户信息的删除 \\n \"<cout<<\" 4、用户信息的修改 \\n\"<cout<<\" 5、显示所有用户信息

\\n\"<cout<<\" 6、退出系统 \\n\"<cout<<\"************************************************************\\n\"<cout<<\"请输入选择:\\n\"; int choice; cin>>choice; return choice; }

int User::Add() {

cout<<\"这是第\"<return top; }

int User::top=1;//静态数据成员初始化 void main() {

int choice; User us;

while (true)

{ choice=Menu(); switch (choice) {

case 1: us.Add();

us.Input();//输入函数 us.Save(); break; case 2:

us.Search();//查询用户信息 break; case 3:

us.Delete();//删除用户信息 break; case 4:

us.Modify();//修改用户信息 break; case 5:

cout <cout <<\"谢谢你的使用!\" <default:

cout<<\"无此选项,请重新输入!\"<七、心得体会

此次c++课程设计,在指导教师的精心教导下,我学会了如何用C++编写一个简单的应用程序。首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试。程序实现上,设计了简单的查询界面,将各个功能集中出来按照程序编写原则,便于查询。根据C++课程所学的概念、理论和方法,按照C++程序设计的基本步骤,设计出一个适当规模的程序;进一步加深对C++语言的理解和掌握。理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我在编程,就必须不断改进,才能更好提高编程能力。

因篇幅问题不能全部显示,请点此查看更多更全内容