简易银行卡管理系统报告数据结构课程设计c内容摘要:

//银行帐号 char ID[19]。 //身份证号 char Name[16]。 //姓名 char Password[7]。 //密码 int Amout。 //金额 开始 Menu11 开户 查看余额 存款 取款 转账 改密码 交易历史 销户 Menu2 挂失 解挂 返回上一级 退出系统 7 int kua。 //挂失标记符 CNode* next。 public: CNode()。 CNode(char *CardNo1,char *ID1,char *Name1,char *Password1,int Amout1,int kua1)。 virtual ~CNode()。 }。 节点类 Chistory,为用户交易历史类: class Chistory { public: char CardNo[20]。 //卡号 char Dw[10]。 //交易类型 int Money。 //交易金额 tm t_tm。 //交易时间 Chistory* next。 public: Chistory()。 Chistory(char* cardno,char *dw,tm t,int money)。 virtual ~Chistory()。 }。 8 链表类( CList): class CList { public: CNode m_head。 Chistory p_head。 public: int searchCard(char* cardno)。 //银行卡号查询功能 int searchKua(char* cardno,char* password)。 //银行卡号挂失查询功能 void readHistory()。 //用户交易历史文件读取功能 void ChangeMoney(char* cardno)。 //转账功能 void save_money(char* cardno)。 //存款功能 void get_money(char* cardno)。 //取款功能 void JieGua(char* cardno)。 //解挂功能 void GuaShi(char *cardno)。 //挂失功能 void ShowMoney(char* cardno)。 //余额查询功能 void DelUser(char *cardno)。 //销户功能 void int_to_string(int number,char string[6])。 //整形转化为字符串型函数 void read()。 //读取文件 void save()。 //保存文件 char * connect(char *str1,char *str2)。 //字符串连接功能 9 void show(char *cardno)。 //查看用户交易历史功能 void CodeModify(char *cardno,char *newpassword)。 //修改密码功能 int search(char *cardno,char *Password)。 //银行卡号和密码查询功能 void OpenC(char *ID,char *Name,char *Password,int Amout,int Kua)。 //开户功能 CList()。 virtual ~CList()。 }。 存款设计: 存款设计是在进入输入账户以后进行的。 当用户输入的账户存在,则可以进行转账。 首先利用顺序查找算法,在文件中找到该账户,然后将所要存的钱存入该账户。 再用一个交易类来保存这次交易。 包括时间的保存,存入金额的保存。 定义类型: int z=0。 int get。 CNode *m=amp。 m_head。 通过 while 循环进行顺序查找。 while(m) { if(strcmp(mCardNo,cardno)==0) { cout请输入您要存入的金额: endl。 cinget。 mAmout=mAmout+get。 cout存款成功 !endl。 Chistory *nt=new Chistory()。 10 strcpy(ntCardNo,cardno)。 strcpy(ntDw,存入 )。 ntMoney=get。 time_t timer。 time(amp。 timer)。 memcpy(amp。 ntt_tm, localtime(amp。 timer), sizeof(struct tm))。 ntnext=。 =nt。 return。 } m=mnext。 } 取款设计: 取款设计大体上和取款设计一样。 但区别在于对于取款时得判断余额与所去款数的大小。 如果取款金额过大则无发取 出。 同样在交易完之后利用 history 类进行保存。 定义类型: int z=0。 int get。 CNode *m=amp。 m_head。 顺序查找: while(m) { if(strcmp(mCardNo,cardno)==0) { cout请输入您要取出的金额: endl。 11 cinget。 for(。 getmAmout。 ) { cout对不起,您的余额不足。 endl。 cout请输入您要取出的金额: endl。 cinget。 } mAmout=mAmoutget。 cout取款成功 !endl。 Chistory *nt=new Chistory()。 strcpy(ntCardNo,cardno)。 strcpy(ntDw,取出 )。 ntMoney=get。 time_t timer。 time(amp。 timer)。 memcpy(amp。 ntt_tm, localtime(amp。 timer), sizeof(struct tm))。 ntnext=。 =nt。 return。 } 12 m=mnext。 } 转账设计: 转账时先判断对方的账户是否存在,如果不存在则无法进行转账,转账时同样判断余额的多少,如果转账的金额大于余额,否则无法转账。 类型: int z=0。 int get。 char cardno1[20]。 CNode *m=amp。 m_head。 顺序查找: while(m) { if(strcmp(mCardNo,cardno)==0) { cout请输入对方帐号: endl。 cincardno1。 CNode *n=amp。 m_head。 n=nnext。 while(n) { if(strcmp(nCardNo,cardno1)==0) { cout请输入您要转入的金额: endl。 cinget。 for(。 getmAmout。 ) 13 { cout对不起,您的余额不足。 endl。 cout请输入您要转入的金额: endl。 cinget。 } mAmout=mAmoutget。 nAmout=nAmout+get。 cout转帐成功 !endl。 return。 } n=nnext。 } cout对不起 ,对方的帐户错误或并不存在。 endl。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。