一道:数据结构实训题目
<---->
数据结构实训题目(靠大家了)
活动储蓄帐目管理
任务:为银行设计一个活期帐目管理系统。
活期储蓄处理中,储户开户、销户、存入、支出活动频繁,系统设计要求:能迅速地找到储户的帐户,以实现存款、取款记账;
能比较简单,迅速地实现插入和删除,以实现开户和销户的需要。
我没学数据结构:-(懂点C语言。能作吗?~~~~~我想在短时间内知道答案。
能否给个类似的题目和详解,看看我能否依葫芦画瓢^_^。
或者高手给出这题答案~~小弟感激不尽!
一道:数据结构实训题目
<---->
数据结构实训题目(靠大家了)
活动储蓄帐目管理
任务:为银行设计一个活期帐目管理系统。
活期储蓄处理中,储户开户、销户、存入、支出活动频繁,系统设计要求:能迅速地找到储户的帐户,以实现存款、取款记账;
能比较简单,迅速地实现插入和删除,以实现开户和销户的需要。
我没学数据结构:-(懂点C语言。能作吗?~~~~~我想在短时间内知道答案。
能否给个类似的题目和详解,看看我能否依葫芦画瓢^_^。
或者高手给出这题答案~~小弟感激不尽!
/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 ----类的实现
#include<iostream>
#include<cstring>
#include"saving.h"
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;}
//主文件
#include<iostream>
#include"Saving.h"
using namespace std;
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;
}
}