活期储蓄账目管理报告.doc_第1页
活期储蓄账目管理报告.doc_第2页
活期储蓄账目管理报告.doc_第3页
活期储蓄账目管理报告.doc_第4页
活期储蓄账目管理报告.doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西安建筑科技大学课程设计(论文)课程设计(论文)题 目: 活期账目储蓄管理 院 (系): 信息与控制工程学院 专业班级: 姓 名: 学 号: 指导教师: 2013年 9 月 25日第2页 共?页 任务书专业班级: 计算机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页 共23页目录 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.参考文献252 数据结构课程设计活期储蓄账目管理1.设计目的“数据结构”是计算机科学与技术专业一门十分重要的专业技术基础课,计算机科学各领域及有关的应用软件都要使用到各种数据结构。对于从事计算机科学及其应用的科技工作者来说,数据结构与算法是必须透彻地掌握的重要基础。学习数据结构与算法的最终目的是解决实际的应用问题,特别是非数值计算类型的应用问题。课程设计是加强学生实践能力的一个强有力手段。课程设计所安排的题目,在难度和深度方面都大于平时的上机训练,要求同学在完成设计和编写中小型软件的过程中,深化对数据结构与算法课程中基本概念、理论和方法的理解;训练综合运用所学知识处理实际问题的能力,强化面向对象的程序设计理念;使同学的程序设计与调试水平有一个明显的提高。课程设计要求学生在完成程序设计的同时能够撰写比较规范的设计报告。严格实施课程设计这一环节,对于学生基本程序设计素养的培养和软件工作者工作作风的训练,将起到显著的促进作用。2.问题描述 查找储户的帐户; 根据储户的存取款金额实现存款、取款记账; 根据储户信息及账号实现插入和删除; 输出储户信息; 汇总活期储蓄存款总额并输出。 第26页 共25页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,);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);endldata.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); endldata.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,);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) 算法改进设想: 查询账户和交易记录时是输出全部用户信息,可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论