活期储蓄账目管理报告.doc

上传人:jian****018 文档编号:9069665 上传时间:2020-04-02 格式:DOC 页数:29 大小:227.50KB
返回 下载 相关 举报
活期储蓄账目管理报告.doc_第1页
第1页 / 共29页
活期储蓄账目管理报告.doc_第2页
第2页 / 共29页
活期储蓄账目管理报告.doc_第3页
第3页 / 共29页
点击查看更多>>
资源描述
课程设计(论文)题 目: 活期账目储蓄管理 院 (系): 信息与控制工程学院 专业班级: 姓 名: 学 号: 指导教师: 2013年 9 月 25日 任务书专业班级: 计算机1101 学生姓名: 张鸿娜 指导教师(签名): 一、课程设计(论文)题目活期储蓄帐目管理说明:实现储户开户、销户、存入、支出等活动。二、本次课程设计(论文)应达到的目的数据结构是实践性很强的课程。课程设计是加强学生实践能力的一个强有力手段。课程设计要求学生在完成程序设计的同时能够写出比较规范的设计报告。严格实施课程设计这一环节,对于学生基本程序设计素养的培养和软件工作者工作作风的训练,将起到显著的促进作用。本题目要达到目的:熟练掌握线性表的基本操作在两种存储结构上的实现。三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技术参数、设计要求等) 输入数据:储户姓名、身份证号、联系方式(电话、住址);储户账号、存款金额;查找储户的帐户; 根据储户的存取款金额实现存款、取款记账; 根据储户信息及账号实现插入和删除; 输出储户信息; 汇总活期储蓄存款总额并输出。四、应收集的资料及主要参考文献: 由于本课程没有安排“课内上机”学时,因此,在课程设计之前必须自己已经上机练习了“线性表”的基本操作。 参考文献:1. Robert L. Kruse,Data Structures And Program Design in C+,高等教育出版社,2001.5.2. 严蔚敏等编著,数据结构(C语言版),清华大学出版社,1997.4;3. 赵文静等编著,数据结构与算法,科学出版社,2005.08;五、审核批准意见教研室主任(签字) 设计总说明活期账户储蓄主要实现的功能有:开户、销户、查找、交易(包括存取、查询余额功能)、查询账户,另外还增加了显示交易记录的功能。功能有C语言实现,由链表实现账户的增、删、查。void InsertList()函数实现开户功能,void DeleteList()函数实现销户功能,void PrintList()函数实现查询账户的功能,void Deposit()函数实现存取款、查询余额的功能,void Search()函数实现查找的功能,void save()函数是将开户所有信息存入文本文件中,void Print()打开文本中的文件并显示,void chakan()函数用于查看交易记录、void menu()函数用于显示菜单、void choice()函数用于实现菜单中的功能。关键字:数据结构 链表 增、删、查目录 1.设计目的1 2.问题描述2 3.需求分析3 3.1数据需求 3 3.2基本功能需求 3 3.3非功能性需求 3 4.概要设计4 4.1数据结构4 4.2系统包含的函数4 4.3函数间的关系4 4.4系统功能模块图5 5.详细设计6 5.1结构体的详细定义6 5.2系统函数详细介绍7 5.3系统功能模块介绍17 5.4具体模块设计17 5.4.1开户功能 17 5.4.2销户功能 18 5.4.3查询功能 19 6.调试分析20 7.使用说明21 8.设计总结24 9.参考文献25 数据结构课程设计活期储蓄账目管理1.设计目的“数据结构”是计算机科学与技术专业一门十分重要的专业技术基础课,计算机科学各领域及有关的应用软件都要使用到各种数据结构。对于从事计算机科学及其应用的科技工作者来说,数据结构与算法是必须透彻地掌握的重要基础。学习数据结构与算法的最终目的是解决实际的应用问题,特别是非数值计算类型的应用问题。课程设计是加强学生实践能力的一个强有力手段。课程设计所安排的题目,在难度和深度方面都大于平时的上机训练,要求同学在完成设计和编写中小型软件的过程中,深化对数据结构与算法课程中基本概念、理论和方法的理解;训练综合运用所学知识处理实际问题的能力,强化面向对象的程序设计理念;使同学的程序设计与调试水平有一个明显的提高。课程设计要求学生在完成程序设计的同时能够撰写比较规范的设计报告。严格实施课程设计这一环节,对于学生基本程序设计素养的培养和软件工作者工作作风的训练,将起到显著的促进作用。2.问题描述 查找储户的帐户; 根据储户的存取款金额实现存款、取款记账; 根据储户信息及账号实现插入和删除; 输出储户信息; 汇总活期储蓄存款总额并输出。 3.需求分析3.1 数据需求 1.需先进行开户才可进行之后的所有的操作。 2.开户时需要的数据有姓名、身份账号、联系电话、联系地址、密码,账号会自动生成。 3.销户时,需用输入账号与密码方可销户;存取款时,也需登录方可进行交易。3.2 基本功能需求 基本的功能有开户、销户、存取款、查询账户资料、查询交易记录。 3.3 非功能性需求用户界面需求:简洁、易用、易懂、友好的用户界面。硬件要求:装有Visual C+6.0的计算机。可靠性需求:保证用户在正常使用本系统时,用户的操作或误操作不会产生数据的丢失。4.概要设计4.1 数据结构链表实现账户的增、删、查。4.2 系统包含的函数void InsertList()函数实现开户功能void DeleteList()函数实现销户功能void PrintList()函数实现查询账户的功能void Deposit()函数实现存取款、查询余额的功能void Search()函数实现查找的功能void save()函数是将开户所有信息存入文本文件中void Print()打开文本中的文件并显示void chakan()函数用于查看交易记录void menu()函数用于显示菜单void choice()函数用于实现菜单中的功4.3 函数间的关系 只有实现void InsertList()函数才能实现void DeleteList()函数、void PrintList()函数、void Deposit()函数、void Search()函数、void chakan()函数的功能。void InsertList()函数实现开户的功能,开户包括储户姓名、身份证号、联系方式(电话、住址)、储户账号、存款金额,开户后将这些信息用void save()函数保存在文本文件中,可由void PrintList()函数显示出文本文件中的信息。开户成功后,通过void Search()函数用账号密码查询账户,查询成功后通过void Deposit()函数用账号与密码登录实现存取款及余额查询;通过void DeleteList()函数用账号密码进行销户。void menu()函数用于显示菜单,void choice()函数通过调用这些函数,实现程序的功能。4.4 系统功能模块图活期储蓄账目管理显示菜单选择功能 1.储户开户 2.储户销户3.储户的账号存款取款。4.返回菜单。5.查看所有储蓄账户信息。 6.查看交易信息。 7.退出账目管理。图44系统功能模块图5. 详细设计5.1 结构体的详细定义 这里定义了一个ElemType;结构体,将开户所需所有信息放在结构体中。typedef struct ElemTypechar name8; /用户名int account; /账号char password6; /密码float money; /存款char address20; /联系地址char telephone11; /联系电话char idCard17; /身份证号ElemType;typedef struct lnode /定义一个结构体ElemType data;struct lnode *next;LINK;void InitList(LINK *&L) L=(LINK *)malloc (sizeof(LINK);L-next=NULL;5.2 系统函数详细介绍 用链表实现开户功能。在链表中插入一个,临时节点指针s指向链表的第一个节点,如果链表的下一个元素为空,则将链表的下一个元素(L-next)赋给s,否则将s-next赋给L-next。void InsertList(LINK *&L) /开户LINK *s; /插入一个临时节点s=(LINK*)malloc(sizeof(LINK);printf(请输入你要开户的姓名:); scanf(%s,s-data.name);printf(请输入你的身份证号:);scanf(%s,s-data.idCard);printf(请输入你的地址:);scanf(%s,s-data.address);printf(请输入你的联系电话:);scanf(%s,s-data.telephone);s-data.account=10001000+total+;printf(n你开户的账号为:%dn,s-data.account);printf(请输入你账号的密码:);scanf(%s,s-data.password);s-data.money=0.00;s-next=NULL;if(L-next=NULL)L-next=s; elses-next=L-next;L-next=s;printf(开户成功。n);用链表实现账户的销户功能Void DeleteList(LINK*&L) /销户LINK *p=L,*q;char pass6;int s;printf(请输入你要注销的账号:);scanf(%d,&s);printf(请输入该账号的密码:);scanf(%s,pass);while(p-next!=NULL)if(p-next-data.account=s)break;p=p-next;if(p-next!=NULL)while(strcmp(p-next-data.password,pass)!=0)printf(密码错误!请重新输入:);scanf(%s,pass);q=p-next;p-next=q-next;free(q);printf(账号注销成功。n);else printf(你所要销户的的账号不存在(或者已经销户)。n);进行存取款及查询账户。void Deposit(LINK *&L,LINK *p) /存款及查询 int cq;float mn;while(1)if(p!=NULL)printf(请选择存款(1)、取款(2)、查询余额(3)、退出账号(4)。n(请输入括号内的数字,输入其它字符默认为取款):);scanf(%d,&cq);if(cq=1) ofstream ouf(jiaoyi.txt,ios:app);printf(请输入你的存款金额:);scanf(%f,&mn);p-data.money=p-data.money+mn;printf(存款成功!n);oufendldata.nameendldata.accountendldata.moneyendldata.addressendlmnendldata.telephone;ouf.close();/姓名 账户 目前存款金额 地址 交易记录 联系电话else if(cq=3)printf(你账户的余额为:%.2fn,p-data.money);else if(cq=4)printf(账号退出成功。n);return;else printf(请输入你的取款金额:);FH:scanf(%f,&mn);if(p-data.money-mn)=0) ofstream ouf(jiaoyi.txt,ios:app);p-data.money=p-data.money-mn;printf(取款成功!n); oufendldata.nameendldata.accountendldata.moneyendldata.addressendl(mn-2*mn)endldata.telephone;ouf.close();elseprintf(取款失败!n);printf(你账户上的金额不足!你的账户余额为:%.2fRMBn,p-data.money);printf(请输入合适的取款金额:);goto FH;void Search(LINK *L) /查找账户LINK *p=L-next;int acc;char pass6;printf(请输入你要登录的账号:);scanf(%d,&acc);printf(请输入你的密码:);scanf(%s,pass);while(p!=NULL)if(p-data.account=acc)break;p=p-next;if(p=NULL)printf(不存在该账户n);elseif(strcmp(p-data.password,pass)=0)printf(账号登录成功。n); else while(strcmp(p-data.password,pass)!=0)char pa;printf(密码错误n);printf(是否重新输入(是,就输入任意键)、(否,从键盘上输入N or n):);scanf(n%c,&pa);if(pa=n|pa=N)system (cls);return;printf(n请重新输入你的密码:);scanf(%s,pass);Deposit(L,p);文件的保存与打开:void save(LINK *L) /保存FILE *fp;fp=fopen(Account.txt,w);LINK *p=L-next;while(p!=NULL)if(fwrite(p,sizeof(struct lnode),1,fp)!=1)printf(file write errorn);p=p-next;fclose(fp);void Print(LINK *&L)FILE *fp;LINK *p,*s;if(fp=fopen(Account.txt,r)=NULL)printf(can not open.n);exit(0);s=(LINK*)malloc(sizeof(LINK);s-next=NULL;for(;fread(s,sizeof(struct lnode),1,fp)!=0; )total+;/用于记录账号的,以致账号不重复if(L-next=NULL)L-next=s;p=s;p-next=s-next;elsep-next=s;p=s;p-next=s-next;s=(LINK*)malloc(sizeof(LINK);s-next=NULL;fclose(fp);查看交易记录:void chakan() /此函数用于将交易记录保存在jiaoyi.txt char name8; /用户名int account; /账号 float jilu;float money; /存款char address20; /联系地址char telephone11; /联系电话ifstream inf(jiaoyi.txt,ios:in);if(inf=NULL)printf(暂时无交易记录);else/姓名 账户 目前存款金额 地址 交易记录 联系电话cout用户名t账户tt账户余额t地址t交易记录t联系电话tnameaccountmoneyaddressjilutelephone; coutnametaccounttmoneyttaddresstjilutttelephonenext; printf(用户名t账号t身份证t电话t地址t密码t存款金额n);while (p!=NULL) printf(%st,p-data.name);printf(%dt%st%st%st%st%.2fn,p-data.account,p-data.idCard,p-data.telephone,p-data.address,p-data.password,p-data.money);p=p-next;5.3 系统功能模块介绍查找储户的帐户; 根据储户的存取款金额实现存款、取款记账; 根据储户信息及账号实现删除;5.4 具体模块设计5.4.1开户功能开始插入临时节点sL-next赋给s-next=将s赋给L-next 输入开户所需信息自动生成账号,开户成功结束判断L-next是否为空?是否 图541 开户功能5.4.2销户功能结束是否是否开始输入账号与密码输出“账号注销成功。”定义两个临时指针p、q输出“你所要销户的的账号不存在”当p-next!=NULL时,判断账号是否存在?判断密码输入是否正确输出“密码错误!请重新输入” 图542 销户功能5.4.3查询功能结束是否是否开始输入账号与密码输出“账号登录成功”定义临时指针p输出“不存在该账户”当p!=NULL时判断输入账户是否存在?判断密码输入是否正确输出“密码错误”图543 查询功能6.调试分析本软件是基于Windows的编程开发,所以,软件调试必须在Windows环境下进行。调试前须做好准备工作:(1) 需要安装Visual C+6.0的计算机一台;配置好之后,在Visual C+6.0环境下进行软件的调试。(2) 测试数据:先输入“1”进行开户操作,按照显示依次输入所需信息,系统会自动入“5”查看一下是否真的开户成功,确认后输入“3”进行存取款,登录账户,登录成功后出现“存款(1)、取款(2)、查询余额(3)、退出账号(4)”四个提示,按照提示进行操作,因为开户后账户余额为0元,故先存款,存款成功后还会出现以上提示,输入“2”取款,当存款余额小于取款金额的时候会出现“取款失败你账户上的金额不足!你的账户余额为:XXRMB请输入合适的取款金额:”的提示。否则取款成功生成账号,用于之后的销户,存取款等功能的实现。开户成功后输入“4”返回主菜单,输。之后我们可以直接输入“6”查询交易记录。输入“2”可以进行销户操作,输入账号、密码即可销户成功,如果账号输入错误则出现“你所要销户的的账号不存在(或者已经销户)”的提示;如果密码输入错误则出现“密码错误!请重新输入”的提示。销户成功后可在输入“5”查看是否销户成功。(3) 算法改进设想: 查询账户和交易记录时是输出全部用户信息,可改进为通过账号查询单个账户信息。7. 使用说明程序运行后初始界面如下:图71 系统主界面输入“1”进入开户界面输入开户所需信息后,显示开户成功:图72 开户开户成功后输入“3”进行存取款功能: 图73 存取款及查询余额输入“5”查询账户信息及输入“6”查询交易记录:图74 查询账户信息图75 查询交易记录输入“2”进行销户,并再次输入“5”、“6”查询账户信息级交易记录。图76 销户图77 销户后账户信息图78 销户后交易记录8.设计总结回顾数据结构课程设计这些日子,至今我感慨颇多,的确,学到了很多东西包括以前在课本上没有学到的知识,还使我懂得了理论和时间结合是很重要的。 这次课程设计中遇到了一些问题与同学一起讨论解决,让我明白同学间合作的重要性。这个课程设计并不完美,还有很多要改善的地方,例如查询账户时不能通过账号来查询账户,而是直接显示所有用户信息,还有就是交易记录也是显示所有用户的交易信息,没有交易时间的显示。还有一些没想到的细节。虽然不是很完美,但发现不足之处并在以后的设计中注意这些细节,对于将来的实践还是很有帮助,我们可以不断发现我们的不完美,并想办法去改进这些不完美。通过这次课程设计,让我进一步了解了C+程序设计方法,并且对这门课产生了浓厚的兴趣。更重要的是培养了自己耐心、细心、用心的良好品质。希望以后能有机会对这门课进行更深一步的了解,也很乐意通过自己的努力来提高自己在这个知识领域的水平。同时也非常感谢同学的帮助及老师的建议与指导。9.参考文献1 Clifford,A.Shaffer编著,数决结构与算法分析(C+版),电子工业出版社,2005.7 2 赵文静,祁飞等编著,数据结构与算法,科学出版社,2005.083 赵文静编著,数据结构-C+语言描述,西安交通大学出版社,1999.014Robert L.Kruse,Alexander J.Ryba编著,数据结构与程序设计C+语言描述(影印版),高等教育出版社,2005.7
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!