您好,欢迎访问三七文档
青岛理工大学C++面向对象课程设计报告院(系):计算机工程学院专业:软件工程学生姓名:沈芳班级软件133学号:201307246题目:高校水电费管理系统设计_______起迄日期:_2015.6.29~2015.7.10设计地点:计算机学院机房指导教师:王成钢周全强完成日期:2015年7月10日任务书题目9“高校水电费管理系统设计”1、问题描述住宿学生信息包括:学号、姓名、性别、年龄、班级、用电量、用水量等信息。教工信息包括职工号、姓名、性别、年龄、工作部门、用电量、用水量等信息。能计算出学生和教工每月所要交的电费和水费。定义一个人员类,实现学生和教工共同的信息和行为。2、功能要求(1)添加功能:程序能够添加不同学生和教工的记录,提供选择界面供用户选择所要添加的类别,要求编号号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。(2)查询功能:可根据姓名、用水量、用电量信息对已添加的学生或教工记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。(3)显示功能:可显示当前系统中所有学生和教工的记录,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。(5)删除功能:主要实现对已添加的学生或教工记录进行删除。如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作。(6)统计功能:能根据多种参数进行统计。能统计学生和教工的用水用电量、所要交纳的电费和水费、未交纳水电费的人员信息等。(7)保存功能:可将当前系统中各类记录存入文件中,存入方式任意。(8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。(9)计算电费和水费。学生每月都有一定额度的水电是免费使用的,超过的部分需要交费。3、问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述;(5)完成类中各个成员函数的定义;(6)完成系统的应用模块;(7)功能调试;(8)完成系统总结报告。课程设计报告内容一、需求分析1.选做此课题或项的目的1、目的:(1)要求学生达到熟练掌握C++语言的基本知识和技能;(2)基本掌握面向对象程序设计的基本思路和方法;(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。2、基本要求:(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计;(2)要求在设计的过程中,建立清晰的类层次;要分析和定义各个类,每个类中要有各自的属性和方法;要求运用面向对象的机制(继承、派生及多态性)来实现系统功能。(3)在系统的设计中,要有清晰的界面设计,同时采用文件进行读写操作。2.程序所实现的功能(1)添加功能:程序能够添加职工的记录和工作量,可提供选择界面供用户选择所要添加的类别,要求职工的编号要唯一,如果添加了重复职工号的职工记录时,则提示数据添加重复并取消添加。(2)查询功能:可根据职工号、姓名等信息对已添加的职工记录进行查询。还可以按职工号对工作量进行查询。如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。(3)显示功能:可显示当前系统中所有职工记录和工作量统计信息,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。(5)删除功能:主要实现对已添加的人员记录进行删除和工作量进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存在。(6)统计功能:对职工可按工作量进行统计,并排名次。(7)保存功能:可将当前系统中各类人员记录存入文件中,存入方式任意。(8)读取功能:可将保存在文件中的人员信息读入到当前系统中,供用户进行使用。(9)计算电费和水费。学生每月都有一定额度的水电是免费使用的,超过的部分需要交费。二、内容设计1.根据所选题目,给出模块图高校水电费管理系统main()函数界面学生界面统计学生信息返回上层系统添加学生信息查询学生信息修改学生信息删除学生信息显示学生信息读取学生信息main()Add()Search()Compile()Delete()Show()Read()Total()studentMenu()函数教师界面统计教师信息返回上层系统添加教师信息查询教师信息修改教师信息删除教师信息显示教师信息读取教师信息main()Add()Search()Compile()Delete()Show()Read()Total()teacherMenu()函数图2.1高校水电费管理系统模块图2.画出主程序及其主要模块的流程图NONOchoice=0?YES退出系统choice=1?YESteacherMenu()函数choice=2?studentMenu()函数不存在此选项!请重选!输入choice的值开始主菜单YESNO图2.2main()函数结束主程序amount=100?NO将信息存入文件输入信息编号是否存在?NO输出用户已满!YES输出用户已存在!YES结束图2.3添加函数YESRead()函数YESTotal()函数YESmain()函数choice=4?NOchoice=5?NOchoice=6?NOchoice=7?NOchoice=0?NO输出“不存在此选项!请重选!”YESCompile()函数YESDelete()函数YESShow()函数YESAdd()函数YESSearch()函数主程序将文件记录读入系统菜单输入choice的值choice=2?choice=1?NONOchoice=3?NO结束图2.4菜单函数主程序amount=0?输出当前系统无存储记录!YESNO输入chioce的值chioce=1?YES输入姓名i++iamount?姓名存在?YES输出信息i=0chioce=3?YES输入用电量i=0NOchioce=2?YES输入用水量i=0NOi++iamount?用水量存在?YES输出信息i++iamount?用水量存在?YES输出信息结束结束结束NO无此选项!请重试图2.5查找函数主程序amount=0?NO输出当前系统无存储记录!YES输入编号i=0iamount?YES编号存在?YES将更改信息存入文件输入新信息i++NO输出查无此人!NO结束图2.6修改函数输出信息主程序amount=0?NO输出当前系统无存储记录!YESi=0iamount?YESi++NO结束图2.7显示函数输出无此项!结束NO输出查找到但未删除!YESYES输出删除信息输入choice的值结束输出查无此姓名!YES姓名存在?i++NONONOiamount?chioce=2?i=0YES输入姓名输入chioce的值主程序amount=0?NO输出当前系统无存储记录!YESchioce=1?i=0YES输入编号iamount?YESYESi++NO编号存在?结束输出查找到但未删除!choice=1?输出删除信息输入choice的值YES输出删除成功!NONO输出查无此职工号!结束choice=1?输出删除成功!结束NO图2.8删除函数3.编写程序关键代码voidAdd()//添加信息{Students;cout输入新添人员信息endl;s.Input();for(inti=0;iamount;i++)if(s.num==stu[i].num){cout该编号的用户已存在!endl;return;}stu[amount]=s;cout添加成功!endl;ofstreamout_file(学生.txt,ios::app);//将添加记录更新到文件if(!out_file){cout打开失败!endl;return;}out_filestu[amount].numstu[amount].namestu[amount].sexstu[amount].oldstu[amount].classromestu[amount].waterstu[amount].watermoneystu[amount].powerstu[amount].powermoneystu[amount].flagendl;out_file.close();amount++;}voidSearch()//查询信息{intchioce;cinchioce;switch(chioce){case1:{stringname;cinname;intk=0;for(inti=0;iamount;i++){if(stu[i].name==name){coutstu[i].numstu[i].name)stu[i].sexstu[i].oldstu[i].classromestu[i].waterstu[i].watermoneystu[i].powerstu[i].powermoneystu[i].flag\nendl;k=1;}}if(k==0)cout查无此人!endl;}break;case2:{doublewaters;cinwaters;intk=0;for(inti=0;iamount;i++)if(stu[i].water==waters){coutstu[i].numstu[i].name)stu[i].sexstu[i].oldstu[i].classromestu[i].waterstu[i].watermoneystu[i].powerstu[i].powermoneystu[i].flag\nendl;k=1;}if(k==0)cout查无此用水量!endl;}break;case3:{doublepowers;cinpowers;intk=0;for(inti=0;iamount;i++)if(stu[i].power==powers){coutstu[i].numstu[i].name)stu[i].sexstu[i].oldstu[i].classromestu[i].waterstu[i].watermoneystu[i].powerstu[i].powermoneystu[i].flag\nendl;k=1;}if(k==0)cout查无此用电量!endl;}break;default:cout无此选项!请重试!endl;break;}}voidShow()//显示信息{coutstu[i].numstu[i].name)stu[i].sexstu[i].oldstu[i].classromestu[i].waterstu[i].watermoneystu[i].powerstu[i].powermoneystu[i].flag\nendl;}voidStudent::Compile()//修改学生信息{stringnums;cinnums;intk=0;for(inti=0;iamount;i++)if(stu[i].num==nums){Students;s.Inputs();for(intt=0;tamount;t++)if(s.num==stu[t].num){if(t==i)continue;cout该编号的用户已存在!修改不成功!endl;return;}stu[i]=s;coutstu[i].numstu[i].name)stu[i].sexstu
本文标题:高校水电费管理
链接地址:https://www.777doc.com/doc-5833715 .html