通信与信息工程学院
面向对象技术课程设计
一、课程设计目的
(1)要求学生达到熟练掌握C++语言的基本知识和技能;(2)基本掌握面向对象程序设计的基本思路和方法;(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
二、程序设计要求
1、基本功能:设计一个高校水电管理信息系统,能够对
高校的水电费用进行管理,包括登记费用、查询费用和住户信息管理等。完成如下功能:⑴实现对用户信息的录入。⑵实现水电数据的录入。⑶计算并查询用户应缴费用。(4)显示当前系统中所有学生和教工的记录(5)可根据查询结果对相应的记录进行修改(6)计算电费和水费。
2、程序主菜单:教师水电费管理,学生水电费管理,退出系统三个选项
3、设计流程图:画出本程序的总体设计流程图(手画)
4、功能框图:画出本程序的功能框图(手画)
三、程序功能设计
1、功能设计:添加功能查询功能显示功能编辑功能删除功能统计功能保存功能读取功能计算水费和电费
2、组员分工:赵政类的定义马晶晶史娟丽杨洁功能的实现姜田茹界面设计
设计思路:
1、在主函数中通过分支选择实现不同的功能。
2、在菜单函数中,通过设计界面与用户进行交互。
3、定义一个使用者类,在类的内部定义各种函数,实现
显示、修改、删除、查询、统计用户信息等功能。
四、程序数据结构(手写)
五、程序函数设计(手写)
六、程序源代码(此部分可打印)
七截图(手写)
八心得(手写)
附录:程序源代码
#include
#include
const int TMAX=50;
using namespace std;
class Person
{
public:
int num;
string name;
string sex;
int age;
double water;
double power;
public:
Person(int n=0,string nm="",string s="",int a=0,double w=0.0,double p=0.0)
{
num=n;
name=nm;
sex=s;
age=a;
water=w;
power=p;
};
virtual void Input(){};
virtual void Output(){};
int GetNum(){return num;}
string GetName(){return name;}
double GetWater(){return water;}
double GetPower(){return power;}
};
class Teacher:virtual public Person
{
public:
string depart;
double watermoney;
double powermoney;
int choice1;
int choice2;
public:
Teacher(int n=0,string nm="",string s="男",int a=0,string d="任课教师",double w=0.0, double p=0.0, double wm=0.0, double pm=0.0) :Person(n,nm,s,a,w,p),depart(d)
{
watermoney=wm;
powermoney=pm;
};
void Input()
{
cout<<"请输入编号:"< cin>>num; cout<<"请输入姓名:"< cin>>name; cout<<"请选择性别:"; cout<<"(1.男 2.女)"< cout<<"请输入你的选择"< cin>>choice2; switch(choice2) { case 1:sex="男";break; case 2:sex="女";break; default:cout<<"输入错误。"< break; } cout<<"请输入年龄:"< cin>>age; cout<<"请选择工作部门:"< cout<<"1.任课教师"<<"2.教务处"<<"3.财政处"<<"4.校团委"< cout<<"请输入你的选择"< cin>>choice1; switch(choice1) { case 1:depart="任课教师"; break; case 2:depart="教务处"; break; case 3:depart="财政处"; break; case 4:depart="校团委"; break; default:cout<<"输入错误。"< break; } cout<<"请输入本月的用水量"< cin>>water; cout<<"请输入本月的用电量"< cin>>power; watermoney=0.5*water; powermoney=0.5*power; } void Output() { cout<<" "< <<" "< <<" "< <<" "< <<" "< <<" "< <<" "< <<" "< <<" "< < } }; class Student:virtual public Person { public: string bj; double watermoney; double powermoney; int choice1; int choice2; public: Student(int n=0,string nm="",string s="男",int a=0,string z="",double w=0.0, double p=0.0, double wm=0.0, double pm=0.0) :Person(n,nm,s,a,w,p),bj(z) { watermoney=wm; powermoney=pm; }; void Input() { cout<<"请输入学号:"< cin>>num; cout<<"请输入姓名:"< cin>>name; cout<<"请选择性别:"; cout<<"(1.男 2.女)"< cout<<"请输入你的选择"< cin>>choice2; switch(choice2) { case 1:sex="男";break; case 2:sex="女";break; default:cout<<"输入错误。"< } cout<<"请输入年龄:"< cin>>age; cout<<"请选择所在班级:"< cout<<"1.通信1201班"<<"2.通信1202班"<<"3.通信1203班"<<"4.通信1204班"< cout<<"请输入你的选择"< cin>>choice1; switch(choice1) { case 1:bj="通信1201班";break; case 2:bj="通信1202班";break; case 3:bj="通信1203班";break; case 4:bj="通信1204班";break; default:cout<<"输入错误。"< } cout<<"请输入本月的用水量"< cin>>water; cout<<"请输入本月的用电量"< cin>>power; watermoney=0.5*(water-10); powermoney=0.5*(power-10); } void Output() { cout<<""< <<""< <<""< <<""< <<""< <<""< <<""< <<""< <<""< < } }; class Stu_Manage { Student Stu[TMAX]; int top;top public: Stu_Manage(){top=0;} void Add(); void Show(); void Search(); void Edit(); void Delete(); void Total(); }; void Stu_Manage::Add() { if(top>=TMAX) { cout<<"用户已满"< return; } Student s; cout<<"输入新添加的人员的信息"< s.Input(); for(int i=0;i if (s.GetNum()==Stu[i].GetNum()) { cout<<"该编号的人员已存在"< return; } Stu[top]=s; top=top+1; cout<<"添加成功!"< void Stu_Manage::Show() { if(top==0) { cout<<"无数据!"< return; } cout<<""<<"学号" <<""<<"姓名" <<""<<"性别" <<""<<"年龄" <<""<<"班级" <<""<<"用水量" <<""<<"用电量" <<""<<"水费" <<""<<"电费" < for(int i=0;i Stu[i].Output(); } void Stu_Manage::Search() { if(top==0) { cout<<"当前系统中没有存储记录"< return; } int choice; cout<<"请选择查找方式:1.按姓名查询 2.按用水量查询 3.按用电量查询"< cin>>choice; switch(choice) { case 1: { cout<<"请输入要查找的姓名"< string name; cin>>name; cout<<""<<"学号" <<""<<"姓名" <<""<<"性别" <<""<<"年龄" <<""<<"班级" <<""<<"用水量" <<""<<"用电量" <<""<<"水费" < for(int i=0;i { if(Stu[i].GetName()==name) { Stu[i].Output(); } } return; cout<<"查无此人!"< }break; case 2: { cout<<"请输入要查找的水量:"< double water; cin>>water; cout<<""<<"学号" <<""<<"姓名" <<""<<"性别" <<""<<"年龄" <<""<<"班级" <<""<<"用水量" <<""<<"用电量" <<""<<"水费" < for(int i=0;i { if(Stu[i].GetWater()==water) { Stu[i].Output(); } } return; cout<<"查无此人!"< }break; case 3: { cout<<"请输入要查找的电量:"< double power; cin>>power; cout<<""<<"学号" <<""<<"姓名" <<""<<"性别" <<""<<"年龄" <<""<<"班级" <<""<<"用水量" <<""<<"用电量" <<""<<"水费" < for(int i=0;i { if(Stu[i].GetPower()==power) { Stu[i].Output(); } } return; cout<<"查无此人!"< }break; default :cout<<"无此选项!请重试!"< } } void Stu_Manage::Edit() { if(top==0) { cout<<"当前系统中没有存储记录!"< return; } int num; cout<<"请输入要查找的学号:"< cin>>num; for(int i=0;i { if(Stu[i].GetNum()==num) { cout<<"请对这位学生的信息进行修改:"< Stu[i].Input(); cout<<"修改成功"< } } cout<<"查无此人"< } void Stu_Manage::Delete() { if(top==0) { cout<<"当前系统中没有存储记录!"< return; } cout<<"1、按编号查找删除 2、按姓名查找删除"< int choice; cin>>choice; switch(choice) { case 1: { cout<<"请输入编号:"; int num; cin>>num; for(int i=0;i { if(num==Stu[i].num) { cout<<"是否确认删除? 1、是 2、否 "< int choice; cin>>choice; switch(choice) { case 1: { for(int j=i;j Stu[j]=Stu[j+1]; cout<<"删除成功!"< top--; };break; case 2: return; default:cout<<"无此项,失败!"< break; }return; } } cout<<"无此人!"< }; break; case 2: { cout<<"请输入姓名:"; string name; cin>>name; for(int i=0;i { if(name==Stu[i].name) { cout<<"是否确认删除? 1、是 2、否 "< int choice; cin>>choice; switch(choice) { case 1: { for(int j=i;j Stu[j]=Stu[j+1]; cout<<"删除成功!"< top--; };break; case 2: return; default:cout<<"无此项,失败!"< }return; } } cout<<"无此人!"< };break; default:cout<<"没有此项,失败:"< } } void Stu_Manage::Total() { cout<<"1 学生所用水电量的总量 2 学生总的水电费 "< int choice; cout<<"请输入你的选择"< cin>>choice; switch(choice) { case 1: { double zwater=0.0, zpower=0.0; for(int i=0; i { zwater+=Stu[i].water; zpower+=Stu[i].power; } cout<<"学生的总用水量为"< cout<<"学生的总用电量为"< }break; case 2: { double zwatermoney=0.0, zpowermoney=0.0; for(int i=0; i { zpowermoney+=Stu[i].powermoney; zwatermoney+=Stu[i].watermoney; } cout<<"学生的总水费为"< cout<<"学生的总电费为"< }break; default:cout<<"输入错误。请重新输入"< } } class Tea_Manage { Teacher Tea[TMAX]; int top; public: Tea_Manage(){top=0;}