1、 课程设计(大作业)报告课程设计(大作业)报告 课程名称: 数据结构 设计题目: 活期储蓄账目管理 院 系: 信息技术学学院 班 级: 物联网工程 1 班 设 计 者: 学 号: 指导教师: 设计时间: 2015.1.52014.1.10 课程设计(大作业)报告课程设计(大作业)报告 一、数据结构及算法描述 1. 数据类型定义: typedef struct log /存取记录 char DateTime25; /存取时间 char W_D; /存取标志 float Amount; /存取金额 log; typedef struct node_log /存取记录节点 log data; /存取
2、记录 struct node_log *next /下一存取记录节点指针 node_log,*p_node_log; typedef struct account /账户记录 char ID10; /账号 char Name10; /姓名 float Balance; /余额 account; typedef struct node_account /账户记录节点 account data; /账户记录 struct node_log *nlog; /存取记录节点指针 struct node_account *next; /下一账户记录节点指针 node_account,*p_node_acc
3、ount; 2. 功能函数设计 void Read(); /从文件中读入数据 void Write(); /将内存数据写入文件 void List(int); /若参数为 0,显示所有账户信息 /若参数为 1,查询某账号信息 /若参数为 2,查询某账号交易记录 void Create(); /储户开户,插入新账户节点 vode Distroy(); /储户销户,删除词账户节点及其交易记录节点 void Deposit(); /某账户存款,查找到对应账户后,修改其余字 段,并在其存取记录链表后插入此交易记录节点,调用 FindAAccount(char *)函数 void Withdraw(0;
4、 /某账户取款,查找到对应账户后,求改其余额 字 段,并在其存取记录链表后插入此交易记录节点,调用 FindAAccount(char *)函数 p_node_account FindAAccount(char *) /根据账号查找对应账号节点 3. 存储结构 (1) 线性表:在此课程设计中利用线性表来保存账户元素之间的关系。 (2) 链表存储结构:在链表存储结构中可以用指针来表示账户信息和存 取记录之间的关系。 4. 相关算法 储户开户:就是在账户链表中进行插入。当有新的账户要插入时,首先动 态创建一个账户信息节点,然后把该节点插入到头结点位置上。 显示所有账户信息:显示所有账户信息线性表中
5、所有的账户信息,按照线 性表从头到尾进行遍历并显示账户、姓名和余额。 查询某账户余额: 就是在查询账户链表, 找到对应账户记录并显示其余额。 查询某账户交易记录:就是先在账户线性表中找到该账户,然后显示该账 户对应的存取记录链表中的所有记录。 储户销户:就是在账户链表中删除该账户信息节点以及该账户的所有交易 记录。 查询账户:查询的方法是设置一个搜索指针,指针从链表的头开始,判断 该节点的账户是否是要查找的账户。如果是,则查询结束;如果不是,指 针指向下一个节点。重复以上过程,直到链表结束。 存款和取款:首先查找到相应账户,然后动态创建一个存取记录的节点, 给节点包括存取时间、存取标志、金额,
6、将此存取记录节点添加到该账户 的存取记录链表中,同时修正账户的余额。 二、程序测试并运行通过 1. 测试与分析、记录调试过程及结果 2 出现的问题、解决的方法 出现的问题:代码错误太多,程序运行一半不能运行,代码调试没错,一 运行就有错。 解决的方法:查阅资料,寻求同学和老师的帮助才得以解决问题,程序才 顺利的运行。 三、源程序 #include“stdio.h“ #include“conio.h“ #include“string.h“ #include“stdlib.h“ #include“time.h“ #define DATA_FILE “data.dat“ typedef struct log char DateTime25; char