简单水电费管理系统

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
class user//构造一个学生类
{
    public:
    user();//构造函数
    ~user();//析构函数
friend void display();//显示所有用户信息
friend void Pay();//缴费
        friend void in();//友元函数
        friend void add();//添加用户信息
        friend void UsersDataSearch();//用户信息查询
        friend void UserPaySearch();//用户水电量查询
        friend void PaySearch();//用户缴费查询
        friend void SearchNoPay();//未交费用户查询
        friend double s(int i);//费用计算
        friend void delet();//用户删除
friend void m_fee();
friend void m_user();
    private:
int Flag;
        int age;
        string num;
        string name;
        string sex;
        double electricity;
        double water;
 };
 
   user u[15];//对象数组
   user::user(){};//调用构造函数
   user::~user(){};//调用析构函数
   double s(int i)
   {
double e,w,s;
if(u[i].electricity>0&&u[i].electricity<=180)
e=u[i].electricity*0.573;
else if(u[i].electricity>180&&u[i].electricity<=400)
e=180*0.573+(u[i].electricity-180)*0.623;
else
e=180*0.573+220*0.623+(u[i].electricity-400)*0.873;
if(u[i].water>0&&u[i].water<=25)
w=u[i].water*2.32;
else if(u[i].water>25&&u[i].water<=30)
w=25*2.32+(u[i].water-25)*3.08;
else
w=25*2.32+5*3.08+(u[i].water-30)*3.84;
s=e;
return s;
   }/*计算水电费*/

   void display(){

        int i,n=0;

ifstream f("data.txt",ios::binary);
        for(i=0;i<15;i++)
f>>u[i].num>>u[i].name>>u[i].age>>u[i].sex>>u[i].electricity>>u[i].water;
        f.close();
    for(i=0;i<15;i++)
{
if(u[i].water!=0)
cout<<"学号:"<<u[i].num<<" "<<"姓名:"<<u[i].name<<"年龄:"<<u[i].age<<" "<<"性别:"<<u[i].sex<<" "<<"用电量:"<<u[i].electricity<<" "<<"用水量:"<<u[i].water<<" "<<endl;
}
}/*显示用户信息*/


    void UsersDataSearch()
   {int i,flag=0;
ifstream f("data.txt",ios::binary);
   for(i=0;i<15;i++)
   f>>u[i].num>>u[i].name>>u[i].age>>u[i].sex>>u[i].electricity>>u[i].water;
   f.close();
   cout<<"输入所查用户的编号"<<endl;
   string num;
   cin>>num;
   for(i=0;i<15;i++)
   {
if(num==u[i].num)
{
flag=1;break;
}
   }
    if(flag==0)
    cout<<"查无此人"<<endl;
    if(flag==1)
    cout<<"学号:"<<u[i].num<<" "<<"姓名:"<<u[i].name<<"年龄:"<<u[i].age<<" "<<"性别:"<<u[i].sex<<" "<<"用电量:"<<u[i].electricity<<" "<<"用水量:"<<u[i].water<<" "<<endl;
   }/*用户信息查询*/
//*****************************************************************************
   void UserPaySearch()
   {int i,flag=0;
   ifstream f("data.txt",ios::binary);
   for(i=0;i<15;i++)
   f>>u[i].num>>u[i].name>>u[i].age>>u[i].sex>>u[i].electricity>>u[i].water;
   f.close();
   string number;
   cout<<"输入所查人的编号"<<endl;
   cin>>number;
   for(i=0;i<15;i++)
   {
if(number==u[i].num)
{
flag=1;break;
}
   }
    if(flag==0)
    cout<<"查无此人"<<endl;
    if(flag==1)
    cout<<"该学生本月的用水量为:"<<u[i].water<<"该学生本月用电量为:"<<u[i].electricity;
   }/*用户水电费查询*/
//*****************************************************************************
  void Pay() //查询位缴费用户信息
   { int i,flag=0;
   double money;
   ifstream f("data.txt",ios::binary);
   for(i=0;i<15;i++)
   f>>u[i].num>>u[i].name>>u[i].age>>u[i].sex>>u[i].electricity>>u[i].water;
   f.close();
   cout<<"输入需缴费用户的编号"<<endl;
   string number;
   cin>>number;
   for(i=0;i<15;i++)
   {
if(number==u[i].num)
{
flag=1;break;
}
   }
    if(flag==0)
    cout<<"查无此人"<<endl;
    if(flag==1)
    {
cout<<u[i].name<<"应缴费:"<<s(i)<<endl;
   cout<<"缴费金额:"<<endl;
cin>>money;
if((money-s(i))==0)
{
u[i].Flag=1;
cout<<"缴费成功!"<<endl;
}
else if((money-s(i))<0)
{
u[i].Flag=0;
cout<<"缴费失败!"<<endl;
}
else if((money-s(i))>0)
cout<<"找零:"<<money-s(i)<<endl;
}
 
 }/*用户缴费管理*/
   //*****************************************************************************
   void PaySearch()
   { int i,flag=0;
   double money;
   ifstream f("data.txt",ios::binary);
   for(i=0;i<15;i++)
   f>>u[i].num>>u[i].name>>u[i].age>>u[i].sex>>u[i].electricity>>u[i].water;
   f.close();
   cout<<"输入所查人的编号"<<endl;
   string num;
   cin>>num;
   for(i=0;i<15;i++)
   {
if(num==u[i].num)
{
flag=1;break;
}
   }
    if(flag==0)
    cout<<"查无此人"<<endl;
    if(flag==1)
cout<<"本月应缴费用总金额为:"<<s(i)<<endl;
   }/*用户缴费查询*/
//*****************************************************************************
   void SearchNoPay()
   {int i;
   ifstream f("data.txt",ios::binary);
   for(i=0;i<15;i++)
  f>>u[i].num>>u[i].name>>u[i].age>>u[i].sex>>u[i].electricity>>u[i].water;
   f.close();
   cout<<"以下用户未缴纳费用\n"<<endl;
   for(i=0;i<15;i++)
   {
  if(u[i].Flag==0)
  cout<<u[i].name<<endl;
   }
   
   }/*未缴费用户查询*/
   //**************************************************************************
   void add()
   {user *p1=new user[1];
   cout<<"输入要增加用户的ID"<<" ";
   cin>>p1[0].num;
   cout<<"输入要增加用户的姓名"<<" ";
   cin>>p1[0].name;
    cout<<"输入要增加用户的年龄"<<" ";
   cin>>p1[0].age;
   cout<<"输入要增加用户的性别"<<" ";
   cin>>p1[0].sex;
   cout<<"输入要增加用户的用电量"<<" ";
   cin>>p1[0].electricity;
   cout<<"输入要增加用户的用水量"<<" ";
   cin>>p1[0].water;
   ofstream outfile("data.txt",ios::app|ios::out);
   outfile<<p1[0].num<<" "<<p1[0].name<<" "<<p1[0].age<<" "<<p1[0].sex<<" "<<p1[0].electricity<<" "<<p1[0].water<<endl;
   outfile.close();
   delete []p1;
   }/*添加用户*/
   //*************************************************************************


   void delet()
   {
int i;
int flag=0,t;
user *u=new user[15];
string number;
cout<<"\t输入所删除用户的编号:";
cin>>number;
ifstream f("data.txt",ios::binary);
for(i=0;i<15;i++)
f>>u[i].num>>u[i].name>>u[i].age>>u[i].sex>>u[i].electricity>>u[i].water;
for(i=0;i<15;i++)
if(u[i].num==number)
{flag=1;t=i;break;}
if(flag==0)
cout<<"\t该用户信息不存在或已删除";
if(flag==1)
{ofstream ma("data.txt",ios::trunc);
ma.close();
for(i=t;i<14;i++)
u[i]=u[i+1];
ofstream m("data.txt");
for(i=0;i<14;i++)
m<<u[i].num<<" "<<u[i].name<<" "<<u[i].age<<" "<<u[i].sex<<" "<<u[i].electricity<<" "<<u[i].water<<endl;
cout<<"\t删除成功";
m.close();
}
   }/*删除用户*/


void m_user(){
int choice=0;
GOTO1:system("cls");
printf("\t\t\t  **         **\n");
printf("\t\t\t *  *       *  *\n");
printf("\t\t\t*       *       *\n");
printf("\t\t\t*  用户管理^_^  *\n");
printf("\t\t\t*              *\n");
printf("\t\t\t *            *\n");
printf("\t\t\t   *         *\n");

printf("\n\t\t\t1.输出所有用户信息\n\t\t\t2.输入用户\n\t\t\t3.查询用户信息\n\t\t\t4.删除用户信息\n\t\t\t5.查询未缴费用户名单\n\t\t\t6.退出");
printf("\n\t\t\t请输入您的选择:");
GOTO2:scanf("%d",&choice);
switch(choice)
{
case 1:
display();
system("pause");
goto GOTO1;
case 2:
add();
system("pause");
goto GOTO1;
case 3:
UsersDataSearch();
system("pause");
goto GOTO1;
case 4:
delet();
system("pause");;
goto GOTO1;
case 5:
SearchNoPay();
system("pause");;
goto GOTO1;
case 6:
break;
default:
printf("\t\t\t输入有误,请重新输入:");
goto GOTO2;
}
}/*用户管理界面*/

void m_fee(){
int i,choice=0,flag=0;
GOTO3:system("cls");
printf("\t\t\t---------------------\n");
printf("\t\t\t|    收费管理^_^    |\n");
printf("\t\t\t---------------------\n\n\n");
   ifstream f("data.txt",ios::binary);
   for(i=0;i<15;i++)
   f>>u[i].num>>u[i].name>>u[i].age>>u[i].sex>>u[i].electricity>>u[i].water;
printf("\n\t\t\t1.用户水电量查询\n\t\t\t2.缴费管理\n\t\t\t3.总费用\n\t\t\t4.退出\n");
printf("\n\t\t\t请输入您的选择:");
GOTO4:scanf("%d",&choice);
switch(choice)
{
case 1:
UserPaySearch();
system("pause");
goto GOTO3;
case 2:
Pay();
system("pause");
goto GOTO3;
case 3:
PaySearch();
system("pause");
goto GOTO3;
case 4:
printf("管理完毕!\n");
break;
default:
printf("\n\t\t\t输入错误,请重新输入:");
goto GOTO4;
}
}/*费用管理界面*/
void main(){
int choice=0;
GOTO5:system("cls");
printf("\t\t\t-----------------------------------\n");
printf("\t\t\t|    欢迎进入水电费管理系统^_^    |\n");
printf("\t\t\t-----------------------------------\n\n\n");


printf("\n\t\t\t1.用户管理\n\t\t\t2.收费管理\n\t\t\t3.退出\n");
printf("\n\t\t\t请输入您的选择:");
GOTO6:scanf("%d",&choice);
switch(choice)
{case 1:
m_user();
system("pause");
goto GOTO5;
case 2:
m_fee();
system("pause");
goto GOTO5;
default:
printf("\n您的输入有误,请重新输入:");
goto GOTO6;
}
}/*水电费管理系统界面*/
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值