ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:200.35KB ,
资源ID:6720920      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6720920.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构课程设计实验报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构课程设计实验报告.docx

1、数据结构课程设计实验报告 数据结构课程设计 开始 主函数main( ) InitList(L) 功能表与编号选择1-5 输入数字,选择功能 ,输入1输入3,输入4, ,2输入输入5,InsertList(L)Search(L) PrintList(L)DeleteList(L)退出管 用户开户输出储户存款、取款 用户销户理系统 2 输入销户账号 3 输入要登录的账号 账户是否存在? 不存在该账号 是 输入账户密码 C 密码是否正确? 否 是 是 登录成功 是否重新 输入密码 Deposit(L,p) 否 退出登录 ,选择功能输入1-4 显示3,输入,4输入后,输输入输入1后,输2 当前余额 退

2、出账户 入取款金额 入存款金额 =取款金额C 余额? 否 4 否 是p=NULL? 帐号、输出姓名、 管理系统没有账户 密码、账户余额p=p-next 数据结构 课程设计报告 学院:信息科学与工程学院 班级:通信工程1301班 题目:活期储蓄帐目管理系统 指导老师:康松林 完成日期:2015年7月16日 1 数据结构课程设计 一、问题描述与基本要求 . 1 1.1问题描述 . 1 1.2基本要求 . 1 二、数据结构的设计 . 1 2.1数据结构的选择 . 1 2.2单链表的定义. 2 2.3重要函数的定义及说明 . 2 三、软件模块结构图 . 6 3.1大体模块关系图 . 6 3.2各模块具

3、体分析 . 7 四、程序流程图 . 8 五、源程序 . 11 六、调试分析 . 16 6.1程序错误修改及完善的过程 . 16 6.2最终程序所有功能运行结果 . 20 6.3测试数据 . 22 七、用户使用手册 . 23 八、心得体会 . 23 数据结构课程设计 一、问题描述与基本要求 1.1问题描述 设计一个活期储蓄帐目管理系统 活期储蓄处理中,储户开户、销户、存入、支出活动频繁。 1.2基本要求 系统设计要求: 1、能比较迅速地实现插入,以实现储户开户的功能,储户开户时需输入的信息包括储户姓名,密码。 2、能比较迅速地通过储户的账户序号和密码找到储户的账户,并删除该账户,以实现销户的功能

4、。 3、能比较迅速地通过储户的账户序号和密码找到储户的账户(密码不对时,可选择是否重新输入密码)实现账户登录的功能。登录成功后,再通过修改链表结点数据域中的对应元素,以实现存款、取款、显示余额等功能,若取款时账户余额不足,输出提示信息“取款失败!你账户上的金额不足!”,并显示账户当前余额,并且提示重新输入合适的取款金额。 4、查找活期储蓄帐目管理系统当前存在的储户,当输出活期储蓄帐目管理系统没有账户时,输出提示信息“活期储蓄帐目管理系统没有账户”,当有账户时,输出所有账户的相关信息,包括储户姓名,帐号,密码,账户余额。 二、数据结构的设计 2.1数据结构的选择 课程设计题目的要求是,要较简单迅

5、速地实现开户、销户、存款、取款、输出用户信息的功能,于是我很自然地想到了可以用单链表的结构,通过编写相应功能函数来实现建立新结点、删除结点、修改结点中数据域的内容、输出结点数据域中的内容等功能,即可满足课程设计题目的要求。 1 数据结构课程设计 2.2单链表的定义 先定义单链表结点的数据域,数据域包括储户姓名、账户序号、账户密码、 账户金额等储户信息,然后再定义链表结点,链表结点包括结点数据域和结点链域,最后再定义指向链表结点的指针。以下为单链表的相关定义: typedef struct ListData /定义结点数据域 char name3; /储户姓名 int account; /账户序

6、号 char password5; /账户密码 int money; /账户金额 ListData; typedef struct node /定义链表结点 ListData data; /结点数据域 struct node *next; /结点链域 ListNode; typedef ListNode *LinkList; /指向链表结点的指针 2.3重要函数的定义及说明 1、void InitList (LinkList &L) /建立空链表 2、void InsertList (LinkList &L) /插入链表结点,实现开户功能 (需要输入储户姓名和密码,以确定开户对象) 3、voi

7、d DeleteList (LinkList &L) /删除链表结点,实现销户功能 (需要输入账号和密码,以确定销户对象) 4、void Deposit (LinkList &L,LinkList p) /储户存款、取款、显示余额(要先通过账号和密码登录,若取款时账户余额不足,输出提示信息,显示账户当前余额,并且提示重新输入取款金额。) 5、void Search (LinkList L) /链表查找,实现用户登录功能 (需要输入账号和密码,以确定登录对象,密码输出错误时可选择是否重新输入密码) 6、void PrintList (LinkList L) /输出链表,实现储户姓名,账号序号,密

8、码,现有余额等相关信息。(当输出活期储蓄帐目管理系统没有账户时,输出提示信息,当有账户时,输出所有账户的相关信息。) 以下为重要函数的定义: 2 数据结构课程设计 void InitList(LinkList &L) /建立空链表 L=(ListNode*)malloc (sizeof(ListNode); L-next=NULL; void InsertList(LinkList &L) /链表插入结点,实现开户功能,需输入储户姓名和密码 LinkList p; p=(ListNode*)malloc(sizeof(ListNode); 牰湩晴尨请输入你要开户的姓名(不超过4个字符):);

9、scanf(%s,p-data.name); number=number+1; p-data.account=number; 牰湩晴尨你开户的账号为:%dn,p-data.account); 牰湩晴尨请输入你账号的密码(不超过6个字符):); scanf(%s,p-data.password); p-data.money=0; p-next=NULL; if(L-next=NULL) /前插法 L-next=p; else p-next=L-next; L-next=p; 牰湩晴尨开户成功!n); void DeleteList(LinkList &L) /删除链表结点,实现销户功能(需要输入

10、账号和密码) LinkList p=L,q; char mima5; int s; 牰湩晴尨请输入你要销户的账号:); scanf(%d,&s); 牰湩晴尨请输入该账号的密码:); scanf(%s,mima); while(p-next!=NULL) if(p-next-data.account=s) break; p=p-next; if(p-next!=NULL) 3 数据结构课程设计 while(strcmp(p-next-data.password,mima)!=0) 牰湩晴尨密码错误!请重新输入:); scanf(%s,mima); q=p-next; p-next=q-next;

11、 free(q); 牰湩晴尨销户成功。n); 汥敳瀠楲瑮?你所要销户的的账号不存在。n); void Deposit(LinkList &L,LinkList p) /储户存款、取款、显示余额 int m; int n; while(1) if(p!=NULL) printf(请输入数字选择功能:1、存款 2、取款 3、查询余额 4、退出账号 :); scanf(%d,&m); if(m=1) 牰湩晴尨请输入你的存款金额:); scanf(%d,&n); p-data.money=p-data.money+n; 牰湩晴尨存款成功!n); else if(m=2) 牰湩晴尨请输入你的取款金额:)

12、; gg: scanf(%d,&n); if(p-data.money-n)=0) p-data.money=p-data.money-n; 牰湩晴尨取款成功!n); else 牰湩晴尨取款失败!你账户上的金额不足!n); 牰湩晴尨你的账户余额为:%dn,p-data.money); 4 数据结构课程设计 牰湩晴尨请输入合适的取款金额:); goto gg; else if(m=3) 牰湩晴尨你账户的余额为:%dn,p-data.money); else if(m=4) 牰湩晴尨账号退出成功。n); return; void Search(LinkList L) /链表查找,实现用户登录功能(

13、需要输入账号和密码) LinkList p=L-next; int i; char mima5; 牰湩晴尨请输入你要登录的账号:); scanf(%d,&i); tt: 牰湩晴尨请输入你的密码:); scanf(%s,mima); while(p!=NULL) if(p-data.account=i) break; p=p-next; if(p=NULL) 牰湩晴尨不存在该账户n); else if(strcmp(p-data.password,mima)=0) 牰湩晴尨登录成功。n); else while(strcmp(p-data.password,mima)!=0) char j; 牰

14、湩晴尨密码错误n); 牰湩晴尨是否重新输入(是,从键盘输入Y )、(否,从键盘上输入N ):); 5 数据结构课程设计 scanf(%c,&j); if(j=N) return; else if(j=Y) goto tt; Deposit(L,p); void PrintList(LinkList L) /输出链表,实现储户信息输出 LinkList p=L-next; if(p=NULL) 牰湩晴尨活期储蓄帐目管理系统没有账户n); 汥敳瀠楲瑮?姓名 帐号 密码 账户余额n); while(p!=NULL) printf(%st,p-data.name); printf(%dt%stt%dn

15、,p-data.account,p-data.password,p-data.money); p=p-next; 牰湩晴尨请先输入enter键,再重新选择功能n); 三、软件模块结构图 3.1大体模块关系图 主函数 链表链链链 查找、表表表存款、显删插 款取示除入 模块模模模 块块块 6 数据结构课程设计 3.2各模块具体分析 链表插入模块具体分析如下: InsertList(L) scanf( ) p-data.name p-data.password 链表删除模块具体分析如下: scanf( ) DeleteList(L) s,mima 链表查找、存款、取款模块具体分析如下: i,mima

16、,j scanf( ) Search(L) m,n Deposit(L,p) p-data.money 链表输出模块具体分析如下: PrintList(L) printf( ) p-data.name,p-data.password p-data.account,p-data.money 7 数据结构课程设计 注:以上具体分析中,无箭头的线段表示函数的调用关系,椭圆中的数据为输入、输出或传递的值,箭头表示值的方向。 四、程序流程图 显示余额。 信息 结束 1 3 2 4 A B D C 注:因为整个程序流程图太长,一页画不下,所以上图为大体流程图,上图中1A ,2B,3C,4D间流程省略了,以

17、下为1A,2B,3C,4D间详细流程图。 8 数据结构课程设计 1 A 1 输入开户姓名 输入开户密码 开户成功 A 2B 否 账户是否存在 是 的户要你所销 输入账户密码 的账号不存在 否 密码是否正确? 是 销户成功 B 9 数据结构课程设计 3C 是重新输入 取款金额 取款成功 存款成功 10 数据结构课程设计 4D 否 是 p=NULL? D 五、源程序#include #include #include 定义的全局变量,用于开户 / int number=0; 定义结点数据域typedef struct ListData / 储户姓名 / char name3; /账户序号 int

18、account; 账户密码 / char password5; / 账户金额 int money; ListData; typedef struct node /定义链表结点 /结点数据域 ListData data; 结点链域/ struct node *next; ListNode; 11 数据结构课程设计 typedef ListNode *LinkList; /指向链表结点的指针 void InitList(LinkList &L) /建立空链表 L=(ListNode*)malloc (sizeof(ListNode); L-next=NULL; void InsertList(Li

19、nkList &L) /链表插入结点,实现开户功能,需输入储户姓名和密码 LinkList p; p=(ListNode*)malloc(sizeof(ListNode); 牰湩晴尨请输入你要开户的姓名(不超过4个字符):); scanf(%s,p-data.name); number=number+1; p-data.account=number; 牰湩晴尨你开户的账号为:%dn,p-data.account); 牰湩晴尨请输入你账号的密码(不超过6个字符):); scanf(%s,p-data.password); p-data.money=0; p-next=NULL; if(L-nex

20、t=NULL) /前插法 L-next=p; else p-next=L-next; L-next=p; 牰湩晴尨开户成功!n); void DeleteList(LinkList &L) /删除链表结点,实现销户功能(需要输入账号和密码) LinkList p=L,q; char mima5; int s; 牰湩晴尨请输入你要销户的账号:); scanf(%d,&s); 牰湩晴尨请输入该账号的密码:); scanf(%s,mima); while(p-next!=NULL) 12 数据结构课程设计 if(p-next-data.account=s) break; p=p-next; if(p

21、-next!=NULL) while(strcmp(p-next-data.password,mima)!=0) 牰湩晴尨密码错误!请重新输入:); scanf(%s,mima); q=p-next; p-next=q-next; free(q); 牰湩晴尨销户成功。n); 汥敳瀠楲瑮?你所要销户的的账号不存在。n); void Deposit(LinkList &L,LinkList p) /储户存款、取款、显示余额 int m; int n; while(1) if(p!=NULL) printf(请输入数字选择功能:1、存款 2、取款 3、查询余额 4、退出账号 :); scanf(%d

22、,&m); if(m=1) 牰湩晴尨请输入你的存款金额:); scanf(%d,&n); p-data.money=p-data.money+n; 牰湩晴尨存款成功!n); else if(m=2) 牰湩晴尨请输入你的取款金额:); gg: scanf(%d,&n); if(p-data.money-n)=0) 13 数据结构课程设计 p-data.money=p-data.money-n; 牰湩晴尨取款成功!n); else 牰湩晴尨取款失败!你账户上的金额不足!n); 牰湩晴尨你的账户余额为:%dn,p-data.money); 牰湩晴尨请输入合适的取款金额:); goto gg; els

23、e if(m=3) 牰湩晴尨你账户的余额为:%dn,p-data.money); else if(m=4) 牰湩晴尨账号退出成功。n); return; void Search(LinkList L) /链表查找,实现用户登录功能(需要输入账号和密码) LinkList p=L-next; int i; char mima5; 牰湩晴尨请输入你要登录的账号:); scanf(%d,&i); tt: 牰湩晴尨请输入你的密码:); scanf(%s,mima); while(p!=NULL) if(p-data.account=i) break; p=p-next; if(p=NULL) 牰湩晴尨不存在该账户n); else 14 数据结构课程设计 if(strcmp(p-data.password,mima)=0) 牰湩晴尨登录成功。n); else while(strcmp(p-data.password,mima)!=0) char j; 牰湩晴尨密码错误n); 牰湩晴尨是否重新输入(是,从键盘输入Y )、(否,从键盘上输入N ):); scanf(%c,&j); if(j=N) return; else if(j=Y) goto tt;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1