| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1193 人关注过本帖
标题:"活期储蓄帐目管理"运行不出来
取消只看楼主 加入收藏
雨中沉思
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-6-3
收藏
 问题点数:0 回复次数:2 
"活期储蓄帐目管理"运行不出来

题目:活期储蓄帐目管理
活期储蓄处理中,储户开户、销户、存入、支出活动频繁,系统设计要求:
能比较迅速地找到储户的帐户,以实现存款、取款记账;
能比较简单,迅速地实现插入和删除,以实现开户和销户的需要。


#include<iostream>
#include<cstring>
#include"saving.h"
using namespace std;


//saving.h 定义类的头文件---用链表实现的

class Person //声明一个结点类
{friend Save;
private:
char name[10]; //姓名
char number[30]; //身份证号
double money; //存款余额
Person *next;};

class Save //声明一个存款管理类
{private:
person *head; //指向头结点的指针
public:
Save()
{head=0;}
~Save();
Save& CreatePerson(void); //开户
Bool DeletePerson(Person man); //销户
bool CheckIn(void); //存款
bool CheckOut(void); //取款
static int Select(void); //包含有四个选项---开户,销户,存款,取款
};

//saving.cpp ----类的实现

const int error=0;
const int true=1;
using namespace std;
Save::~Save()
{Person *p=head->next;
while(head)
{delete head;
head=p;
p=p->next;}

Save& Save::CreatePerson(void)
{char na[10],num[30];
cout<<"请输入你的姓名"<<endl;
cin>>na;
cout<<"请输入你的身份证号码:"<<endl;
cin>>num;
Person *p=new Person;
Person *s1,*s2; //两个查找指针
strcpy(p->name,na);
strcpy(p->number,num);
p->money=0;
p->next=null;
if (head)
head=p;
else
{s1=head;s2=head->next;
while(s2)
{s1=s2;
s2=s2->next;}
s1->next=p;}
return *this;}

Bool Save::DeletePerson(Person man)
{Person*p=head,*p1=head->next;
if(strcmp(head->number,man.number))
{head=head->next;
delete p;}
while(strcmp(p1->number,man.number)||p1)
{p=p1;
p1=p1->next;}
if (p1)
return error;
p->next=p1->next;
delete p1;
return true;}

bool Save::CheckIn(void)
{char num[30];
double mom;
cout<<"请输入身份证号码"<<endl;
cin>>num;
cout<<"请输入金额"<<endl;
cin>>mom;
Person *p=head;
while(strcmp(p->number,num)||p)
p=p->next;
if(p)
{cout<<"你输入的身份证号码有错误"<<endl;
return error;}
p->money=p->mooney+mom;
return true;}

bool Save::CheckOut(void)
{char num[30];
double mom;
cout<<"请输入身份证号码"<<endl;
cin>>num;
cout<<"请输入提款金额"<<endl;
cin>>mom;
Person *p=head;
while(strcmp(p->number,num)||p)
p=p->next;
if(p)
{cout<<"你输入的身份证号码有错误"<<endl;
return error;}
if(p->money<mom)
{cout<<"你卡上的余额不足"<<endl;
return error;}
p->money=p->money-mom;
cout<<"你已经成功的提取了"<<mom<<endl;
return true;
}

int Save:: Select(void)
{cout<<"银行存储管理系统"<<endl;
cout<<"1 开设一个新的帐户"<<endl;
cout<<"2 销毁一个帐户"<<endl;
cout<<"3 存入金额"<<endl;
cout<<"4 提取金额"<<endl;
int a ;
cin>>a:
return a;}


void main()
{Save one;
int a=Save::Select();
char b=0;
while(b==27)
{
switch(a)
{case 1:
one.CreatePerson();break;
case 2:
one.DeletePerson();break;
case 3:
one.CheckIn();break;
case 4:
one.CheckOut();break;
}
cout<<"要继续请按下任意键,退出请按下ESC键"<<endl;
cin>>b;
}
}

搜索更多相关主题的帖子: 活期 帐目 身份证 储蓄 saving 
2007-06-11 16:40
雨中沉思
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-6-3
收藏
得分:0 
本人笨,请高手指点

2007-06-11 16:45
雨中沉思
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-6-3
收藏
得分:0 

改成这样了,可以运行,就是结果有点问题,恳请大家看看,帮改一下...


#include <iostream>
#include <cstring>
#include <stdio.h>
using namespace std;

//saving.h 定义类的头文件---用链表实现的
class Save;
class Person //声明一个结点类
{
friend Save;
private:
char name[10]; //姓名
char number[30]; //身份证号
double money; //存款余额
Person *next;
};


class Save //声明一个存款管理类
{
private:
Person *head; //指向头结点的指针
public:
Save()
{
head=0;
}
~Save();
Save& CreatePerson(void); //开户
bool DeletePerson(Person man); //销户
bool CheckIn(void); //存款
bool CheckOut(void); //取款
static int Select(void); //包含有四个选项---开户,销户,存款,取款
};

//saving.cpp ----类的实现

const int error=0;
const int True=1;
using namespace std;
Save::~Save()
{
Person *p=head->next;
while(head)
{
// delete head;
head=p;
p=p->next;
}
}
Save& Save::CreatePerson(void)
{
char na[10],num[30];
cout<<"请输入你的姓名"<<endl;
cin>>na;
cout<<"请输入你的身份证号码:"<<endl;
cin>>num;
Person *p=new Person;
Person *s1,*s2; //两个查找指针
strcpy(p->name,na);
strcpy(p->number,num);
p->money=0;
p->next=NULL;
if
(head)head=p;
else
{
s1=head;s2=head->next;
while(s2)
{
s1=s2;
s2=s2->next;
}
s1->next=p;
}
return *this;
}
bool Save::DeletePerson(Person man)
{
Person *p=head,*p1=head->next;
if(strcmp(head->number,man.number))
{
head=head->next;
delete p;
}
while(strcmp(p1->number,man.number)||p1)
{
p=p1;
p1=p1->next;
}
if(p1)
return error;
p->next=p1->next;
delete p1;
return True;
}
bool Save::CheckIn(void)
{
char num[30];
double mom;
cout<<"请输入身份证号码"<<endl;
cin>>num;
cout<<"请输入金额"<<endl;
cin>>mom;
Person *p=head;
while(strcmp(p->number,num)||p)
p=p->next;
if(p)
{
cout<<"你输入的身份证号码有错误"<<endl;
return error;
}
p->money=p->money+mom;
return true;
}
bool Save::CheckOut(void)
{
char num[30];
double mom;
cout<<"请输入身份证号码"<<endl;
cin>>num;
cout<<"请输入提款金额"<<endl;
cin>>mom;
Person *p=head;
while(strcmp(p->number,num)||p)
p=p->next;
if(p)
{
cout<<"你输入的身份证号码有错误"<<endl;
return error;
}
if(p->money<mom)
{
cout<<"你卡上的余额不足"<<endl;
return error;
}
p->money=p->money-mom;
cout<<"你已经成功的提取了"<<mom<<endl;
return true;
}
int Save::Select(void)
{
cout<<"银行存储管理系统"<<endl;
cout<<"1 开设一个新的帐户"<<endl;
cout<<"2 销毁一个帐户"<<endl;
cout<<"3 存入金额"<<endl;
cout<<"4 提取金额"<<endl;
int a;
cin>>a;
return a;
}


int main()
{
Save one;
int a=one.Select();
char b=0;
while(b!=27)
{
switch(a)
{
case 1:
one.CreatePerson();break;
case 2:
//one.DeletePerson();
break;
case 3:
one.CheckIn();break;
case 4:
one.CheckOut();break;
}
cout<<"要继续请按下任意键,退出请按下ESC键"<<endl;
cin>>b;
}
return 0;
}



2007-06-12 12:35
快速回复:"活期储蓄帐目管理"运行不出来
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.083885 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved