活期储蓄账目管理系统

qq_38454111 2017-12-23 09:49:14
这个活期储蓄账目管理系统的要求是这样的:
1)实现储户开户。开户时需要填写登记卡,记录储户信息(包括姓名和账号),并设置开户余额为0。
(2)实现储户销户。需要先找到储户的账号信息,然后将其删除。
(3)向某账户存款。需要找到账户信息,然后修改账户的余额(原来的余额+存入金额)。
(4)从某账户取款。需要找到账户信息,然后修改账户的余额(原来的余额-存入金额)。
(5)排序显示所有账户信息。根据账号对所有账户信息排序。
(6)查询某账户余额。找到要查找的账户,然后显示账户余额。
(7)查询某账户及交易记录。找到要查询的账户,然后显示该账户的交易记录。
(8)所有账户及其交易信息存储至文件,程序运行时从文件中读入。
前七个功能基本都实现了,最后一个存储到文件并且从文件中读取。。这一步,没有什么头绪,望大家能能教教我。
下面我贴一下我打出的代码

#include <iostream>
#include<cstdio>
#include<cstdlib>
using namespace std;

typedef struct log //记录存取 信息
{
char Datetime[25]; //时间
char W_d; //状态
float Amount; //金额
} log;
typedef struct node_log //记录存取信息的指针域
{
log data;
struct node_log *next;

}node_log,*p_node_log;
typedef struct account //记录账户信息
{
int Id;
char Name[10];
float Balance;
}account;
typedef struct node_account
{
account data;
struct node_log *nlog; //存取记录节点指针
struct node_account *next; //下一账户记录节点指针
}node_account,*p_node_account;
void Deposit(p_node_account,p_node_account);
void choice(p_node_account &L);
void Initlist(p_node_account &L) //构造一个空的单链表
{
L=new node_account;
L->next=NULL;
}
void Creat_accout(p_node_account &L)
{
int a=10000;
int b=0;
node_account *s;
s=new node_account;
cout << "请填写登记卡信息" << endl;
cout << "姓名";
cin >> s->data.Name

;
(s->data.Balance)=0.00;
b=a+rand()%1000;
(s->data.Id)=b;
s->next=NULL;
if(L->next==NULL)
{
L->next=s;
}
else //前插法
{
s->next=L->next;
L->next=s;
}
cout << s->data.Id << endl << s->data.Balance << endl << s->data.Name;
cout << "开户成功!" << endl;
}
void Listdelete(p_node_account &L) //注销账号
{
node_account *d=L,*q;
int s;
cout << "请输入你要销户的账号:";
cin >> s;
while(d->next!=NULL)
{
if(d->next->data.Id==s)
break;
d=d->next;
}
q=d->next;
d->next=q->next;
cout << "注销成功!";
}
void Search(p_node_account &L) //寻找账号
{
node_account *p=L->next;
int ac;
cout << "输入你想要存取的账号:";
cin >> ac;
while(p!=NULL)
{
if(p->data.Id==ac)
break;
p=p->next;
}
if(p==NULL)
cout << "不存在此账户." << endl;
else
{
int cq;
float mm;
while(1)
{
if(p!=NULL)
{
cout << "请选择存款(1),取款(2),查询余额(3),退出账号(4)" << endl;
cin>>cq;
if(cq==1)
{
int j;
cout << "请输入你的存款金额:";
cin >> mm;
(p->data.Balance)=(p->data.Balance)+mm;
cout << "存款成功" << endl;
}
else if(cq==2)
{
cout << "请输入你的取款金额:";
cin >> mm;
if((p->data.Balance-mm)>=0)
{
p->data.Balance=(p->data.Balance)-mm;
cout << "取款成功!!" << endl;
}
else
{
cout << "取款失败" << endl;
cout << "你的账户余额为" << p->data.Balance << endl;
cout<< "请输入合适的存款金额,谢谢!" << endl;
}
}
else if(cq==3)
{
cout << "你的余额为" << p->data.Balance << endl;
}
else if(cq==4)
{


choice(L);

}
}
}
}
}


void menu() //主菜单
{
cout<<" *********欢迎进入活期储蓄账目管理系统********* "<<endl;
cout<<" ※ 1.储户开户 ※ "<<endl;
cout<<" ※ 2.储户销户 ※ "<<endl;
cout<<" ※ 3.储户的账号存款 ※ "<<endl;
cout<<" ※ 4.储户的账号取款 ※ "<<endl;
cout<<" ※ 5.查询余额 ※ "<<endl;
cout<<" ※ 5.交易记录 ※ "<<endl;
cout<<" ※ 6.查看所有储蓄账户信息 ※ "<<endl;
cout<<" ※ 7.返回菜单 ※ "<<endl;
cout<<" ※ 8.退出账目管理 ※ "<<endl;
cout<<" ********************************************** "<<endl;
}
void choice(p_node_account &L)
{

while(1)
{


int m=6;
char ch;
cout<<"请选择你需要的功能:";
cin>>m;
if(m==7)
break;
system ("cls");
switch(m)
{
case 1:Creat_accout(L);ch=getchar();break;
case 2:Listdelete(L);ch=getchar();break;
case 6:Search(L);ch=getchar();break;
}
}
}
int main()
{

p_node_account L;
Initlist(L);
menu();
choice(L);
return 0;
}

...全文
1456 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
tanta 2018-03-23
  • 打赏
  • 举报
回复
保存时把所有保存的数据信息都按一定规则写入文件,读取时按规则读取所有数据。。。

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧