版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《数据结构》课程设计报告设计题目活期储蓄账目管理学院名称信息工程学院专业班级13计本1姓名潘彤彤学号1312210112题目:活期储蓄账目管理设计目标帮助学生熟练掌握线性表的根本操作,在线性表中实现查找、插入、删除的功能。问题描述活期储蓄中,储户开户、销户、存入、支出频繁,系统设计要求:1.能比拟迅速地找到储户的账户,以实现存款、取款记账。2.能比拟简单、迅速地实现插入和删除,以实现开户和销户的要求。需求分析创立单链表;向单链表中插入数据;查找单链表中的数据;删除单链表中的内容;销毁单链表,释放内存空间;概要设计本程序用C++语言实现,完成银行管理系统的生成,储户开户、销户、存入、支出等功能。1.创立文件2.以数组形式存储账户数据,开户时自定义输入用户账户、用户姓名、开户金额3.用户登录时输入正确的账号及姓名,完成登陆后才可以实现存款、取款、查询余额、销户等操作。六.测试分析开户:查询:存取款:存款直接输入数值,取款在数值前加“+”存入支出销户:六.使用说明按键1:查询账户按键2:开户按键3:支出存储记录按键4:销户按键5:退出测试数据九:心得体会通过本次设计,我学会了链表节点的具体运用方法,熟悉节点类的作用,更加知道了在具体编程中数据结构这门课的具体运用,可以促使我在今后的学习中更加灵活使用我在数据结构中学到的知识进行编程。程序开始程序开始输入储户信息程序菜单:1,3〔查询〕2-〔开户〕4-〔销户〕5-〔退出〕Case2:系统开户〔插入新的节点〕作为新的户头〔不可重复〕Case1,3:系统查找〔账户比照〕存取消费操作Case4:〔用户销户〕删除当前节点出去信息1查找成功0出程序结束1删除成功0出程序员结束程序〔系统退出〕程序结束附:程序代码#include<iostream>#include<string>usingnamespacestd;template<classT>//构建节点类模板classNode{public: Node<T>*next;//T可省指针 stringname; Tdata; longintnumber;};template<classT>classSavingList{public: SavingList(){}; Node<T>*CreatSavingList(); voidSearchAccount(longintx); Node<T>*DeleteAccount(longintx); Node<T>*InsertAccount(longintx); voidRecord(longintx,inty);private: Node<T>*head;};template<classT>//建立已有储户数据Node<T>*SavingList<T>::CreatSavingList(){ head=newNode<T>;//初值 intk=1;//分配动态空间 Node<T>*p,*q; head->next=NULL;//赋初值 longintnumber,Number; intdata; stringname; cout<<"请输入账户号〔八位整数〕:"; cin>>number; Number=number; cout<<"请输入姓名:"; cin>>name; cout<<"请输入账户余额:"; cin>>data; while(number/1e7>=1&&number/1e7<=10) { p=newNode<T>; q=newNode<T>; p->number=number;//节点初值 p->name=name; p->data=data; p->next=head->next;//将p插入连中 head->next=p; cout<<"是否继续输入信息按1继续输入按0退出"<<endl; cin>>k; if(k==0) break; cout<<"请输入账户号〔八位整数〕:"; cin>>number; q=head->next; while(q)//账号的重复判断 { if(q->number==number) { cout<<"账号已存在!"<<endl; break; } else q=q->next; } if(!q) { cout<<"请输入姓名:"; cin>>name; cout<<"请输入账户余额:"; cin>>data; } } returnhead;}template<classT>//查找账户voidSavingList<T>::SearchAccount(longintx){ if(x/1e7<1||x/1e7>10) { cout<<"您输入的账户不存在"<<endl; return; } Node<long>*p; p=head; while(p!=NULL&&p->number!=x) { p=p->next;//向下移位继续查找 } if(p==NULL) { cout<<"您输入的账户未找到"<<endl; } else { cout<<"账户名:"<<p->name<<endl; cout<<"账户号码:"<<p->number<<endl; cout<<"账户余额:"<<p->data<<"元"<<endl; }}template<classT>//销户Node<T>*SavingList<T>::DeleteAccount(longintx){ Node<T>*p,*q;//节点类型 p=head; while(p!=NULL&&p->number!=x) { q=p; p=p->next; } if(p==NULL) { cout<<"您输入的账户已不存在"<<endl; } else { q->next=p->next;//将p删掉 } returnhead;}template<classT>//开户Node<T>*SavingList<T>::InsertAccount(longintx){ Node<T>*p,*q; q=newNode<T>; charw[10];//名字 inti; p=head; q->number=x; q->next=p->next; p->next=q;//插入q(新的账号) cout<<"请输入姓名:"; cin>>w; cout<<"请输入余额:";cin>>i; q->name=w; q->data=i; cout<<"您的新账户的信息是:"<<endl; cout<<"账户名:"<<q->name<<endl; cout<<"账户号码:"<<q->number<<endl; cout<<"账户余额:"<<q->data<<"元"<<endl; returnhead;}template<classT>//存取款记录voidSavingList<T>::Record(longintx,inty){ Node<T>*p; p=head; while(p!=NULL&&p->number!=x)//循环查找P的相同正确值节点下移 { p=p->next; } if(p==NULL) cout<<"您输入的账户不存在"<<endl; else { p->data=p->data+y; if(p->data<0) cout<<"余额缺乏请充值!"<<endl; else { cout<<"目前您的账户信息:"<<endl; cout<<"账户名〔八位〕:"<<p->name<<endl; cout<<"账户号码:"<<p->number<<endl; cout<<"账户余额:"<<p->data<<"元"<<endl; } }}intMenu(){ intn; cout<<"--------------------------Menu---------------------------"<<endl; cout<<"\t1.查询账户2.开户\n\n"<<endl;cout<<"\t3.支出存储记录4.销户\n\n"<<endl; cout<<"\t5.退出"<<endl; cout<<"---------------------------------------------------------"; cout<<endl; do { cout<<"请输入你的选择(1--5):\n"<<endl; cin>>n; } while(n<1||n>5); returnn;}intmain(){ SavingList<long>T; Node<long>*head; head=T.CreatSavingList(); longintx; inty,n; for(;;) { switch(Menu()) { case1: { cout<<"请输入您要查询的账户:"; cin>>x; T.SearchAccount(x); cout<<"是否需要继续进行操作?是请输入1,放弃那么输入0:"; cin>>y; if(y==1) { cout<<"-----------------------------------------------------\n\n\n"; cout<<"\t1.支出存入2.销户\n\n"; cout<<"-----------------------------------------------------\n\n\n"; do { cout<<"请输入你选择的操作:"; cin>>n; } while(n!=1&&n!=2); if(n==1) { cout<<"请输入你存取的钱数:"; cout<<"存入钱数在前加,取出钱数在前加"<<endl; inta; cin>>a; T.Record(x,a); } if(n==2) { cout<<"销户请输入1,不进行操作输入0!:"; intb; cin>>b; if(b==1) T.DeleteAccount(x); } } } break; case2: { longintc; Node<long>*q; q=head->next; cout<<"请输入您的账号〔八位〕:"; cin>>c; while(q) { if(q->number==c) { cout<<"账号已存在!"<<endl; break; } else q=q->next; } if(!q) { while(c/1e7<1||c/1e7>10) { cout<<"输入的位数不正确:"; cin>>c; } T.InsertAccount(c); } } break; case3: { longintr; intt,l; cout<<"请输入执行操作的账号:"; cin>>r; cout<<"请输入你存取的钱数:"; //cout<<"存入钱数在前加"+",取出钱数在前加"-""<<endl; cin>>t; T.Record(r,t); cout<<"继续操作请输入1,退出输入0:"<<endl; cin>>l; while(l==1) { cout<<"请输入执行操作的账号:"; cin>>r; cout<<"请输入你存取的钱数:"; cout<<"存入钱数在前加,取出钱
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年企业资产重组与并购合同
- 上海市浦东新区民办欣竹中学2024-2025学年八年级上学期期中英语试题(解析版)
- 2024学年幼儿园健康牛奶供应协议版
- 2024年专业公路零担货物运输服务协议模板版B版
- 2024员工汽车租赁合同
- 江南大学《服装CAD》2023-2024学年第一学期期末试卷
- 江南大学《测试技术》2021-2022学年第一学期期末试卷
- 江南大学《工程地质》2022-2023学年第一学期期末试卷
- 佳木斯大学《儿科护理学》2021-2022学年第一学期期末试卷
- 暨南大学《金融企业会计》2021-2022学年第一学期期末试卷
- 2025年国家外汇管理局中央外汇业务中心招聘25人笔试备考试题及答案解析
- 《食品的干制》课件
- 小学生活老师培训
- 2024年半固定电阻项目可行性研究报告
- 雨雪冰冻天气应急预案(30篇)
- 中国寰球工程有限公司招聘笔试题库2024
- 2024新版有限空间作业安全大培训
- 三中全会专题研讨交流发言
- 南方少数民族传统合唱精讲智慧树知到答案章节测试2023年四川音乐学院
- 思想道德与法治课件:第六章 第四节 自觉尊法学法守法用法
- 10以内口算100道题共16套-直接打印版
评论
0/150
提交评论