课程名称: 数据结构。
设计题目: 活期储蓄账目管理
院系: 信息技术学学院
班级: 物联网工程1班
设计者。学号。
指导教师。设计时间: 2015.1.5—2014.1.10
姓名:刘安奎院(系):信息技术学院。
专业:物联网工程学号:201311050212
任务起止日期:
课程设计题目:
活期储蓄账目管理。
课程设计要求:
要求通过学生复习数据结构的逻辑特性和物理表示,在设计过程中进一步理解和掌握各种数据结构的定义、算法设计及实现等方面,并加深对课程基本内容的理解。同时,在算法的实现以及上级操作等基本技能方面受到综合的训练,进一步培养学生分析问题、解决问题的能力。
工作计划及安排:
第一天, 复习相关的课程设计所需的内容,提出要求、提供选择并检索资料、确定设计项目。
第二天, 数据类型定义、确定存储结构、算法设计、
第三天, 编写算法。
第四天, 运行调试程序。
第五天, 编写课程设计报告。
指导教师签字。
年月日 课程设计(大作业)成绩。
学号:201311050212姓名:刘安奎指导教师:刘渝妍。
课程设计题目:
活期储蓄账目管理。
总结:本次课程设计,使我对《数据结构》这门课程设计有了更加深入的理解。《数据结构》是一门实践较强的课程。为了学好这门课程,必须在掌握理论知识的同时,加强上机实验。
我的课程设计题目是活期储蓄账目管理系统。刚开始做这个程序的时候,感到不知从**下手,但在查阅许多资料以及参考文献后,便开始着手编写程序,调试程序的时候遇到了很多问题,通过询问同学和请教老师最终基本解决问题。
通过这次课程设计,我明白了理论与实际应用相结合的重要性,培养了基本的、良好的程序设计技能以及综合能力,并对c语言有了更深入的了解,同时也巩固和复习了上学期学习的c语言知识。
通过这周的课程设计,我认识到数据结构是一门很难的课程。需要花很多时间上机练习。这次的程序训练培养了我实际分析问题和动手能力,使我掌握了程序设计的基本技能,提高了我适应实际、实际编程的能力。
总的来说,这次课程设计让我获益匪浅,对数据结构也有了进一步的理解和认识。
指导教师评语:
成绩:填表时间指导教师签名:
课程设计(大作业)报告。
一、数据结构及算法描述。
1. 数据类型定义:
typedef struct log存取记录。
char datetime[25]; 存取时间。
char w_d存取标志。
float amount存取金额。
log;typedef struct node_log //存取记录节点。
log data存取记录。
struct node_log *next //下一存取记录节点指针。
node_log,*p_node_log;
typedef struct account //账户记录。
char id[10账号。
char name[10姓名。
float balance余额。
account;
typedef struct node_account //账户记录节点。
account data账户记录。
struct node_log *nlog; /存取记录节点指针。
struct node_account *next; /下一账户记录节点指针。
node_account,*p_node_account;
2. 功能函数设计。
void read从文件中读入数据。
void write将内存数据写入文件。
void list(int若参数为0,显示所有账户信息。
若参数为1,查询某账号信息。
若参数为2,查询某账号交易记录。
void create储户开户,插入新账户节点。
vode distroy储户销户,删除词账户节点及其交易记录节点。
void deposit某账户存款,查找到对应账户后,修改其余字。
段,并在其存取记录链表后插入此交易记录节点,调用findaaccount(char *)函数。
void withdraw(0某账户取款,查找到对应账户后,求改其余额字。
段,并在其存取记录链表后插入此交易记录节点,调用findaaccount(char *)函数。
p_node_account findaaccount(char *)根据账号查找对应账号节点。
3. 存储结构。
1) 线性表:在此课程设计中利用线性表来保存账户元素之间的关系。
2) 链表存储结构:在链表存储结构中可以用指针来表示账户信息和存取记录之间的关系。
4. 相关算法。
储户开户:就是在账户链表中进行插入。当有新的账户要插入时,首先动态创建一个账户信息节点,然后把该节点插入到头结点位置上。
显示所有账户信息:显示所有账户信息线性表中所有的账户信息,按照线性表从头到尾进行遍历并显示账户、姓名和余额。
查询某账户余额:就是在查询账户链表,找到对应账户记录并显示其余额。
查询某账户交易记录:就是先在账户线性表中找到该账户,然后显示该账户对应的存取记录链表中的所有记录。
储户销户:就是在账户链表中删除该账户信息节点以及该账户的所有交易记录。
查询账户:查询的方法是设置一个搜索指针,指针从链表的头开始,判断该节点的账户是否是要查找的账户。如果是,则查询结束;如果不是,指针指向下一个节点。重复以上过程,直到链表结束。
存款和取款:首先查找到相应账户,然后动态创建一个存取记录的节点,给节点包括存取时间、存取标志、金额,将此存取记录节点添加到该账户的存取记录链表中,同时修正账户的余额。
二、程序测试并运行通过。
1. 测试与分析、记录调试过程及结果。
2.. 出现的问题、解决的方法。
出现的问题:**错误太多,程序运行一半不能运行,**调试没错,一运行就有错。
解决的方法:查阅资料,寻求同学和老师的帮助才得以解决问题,程序才顺利的运行。
三、源程序。
#include""
#include""
#include""
#include""
#include""
#define data_file ""
typedef struct log
char datetime[25];
char w_d; /存取标志。
float amount;
log;typedef struct node_log
log data;
struct node_log *next;
node_log, *p_node_log;
/定义账户信息数据域:
typedef struct account
char id[10];
char name[10];
float balance;
account;
/定义账户信息链表结点类型,包括account型的数据域和指向下一个结点的指针域。
typedef struct node_account
account data;
struct node_log *nlog;
struct node_account *next;
node_account,*p_node_account;
/定义账户信息链表的头指针为全局变量:
p_node_account headaccount;
/声明函数:
void printaccounttitle();
void printaccoun(account);
void printlogtitle();
void printlog(log);
void read();
void write();
void list(int);
void create();
void distroy();
void deposit();
void withdraw();
void freelogs(p_node_log);
p_node_account findaaccount (char *)
void main()
char choice ='0';
headaccount =null;do
system("cls");
printfmenun");显示菜单。
printfn");
printf(" file;");
printf(" account;");
printf(" account;");
printf(""
printf(""
printf(" all account;");
printf(" account;");
printf(" log;");
printf(" file;");
printf(""
printfn");
printf("pleasea make a choice:")
scanf("%c",&choice);
switch(choice)
case '1':/读取文件。
readbreak;
case '2':/创建账户链表。
数据结构课程设计报告
东莞理工学院城市学院。题目 二叉排序树 专业 计算机科学与技术 本 年级 2010级计算机科学与技术专业 1 班。个人姓名 何振江。指导教师 张娟老师 时间 2010至2011第二学期第18周 地点 实验楼615机房 东莞理工学院城市学院计算机与信息科学系制。2011年 6月。实习报告的内容。一 问...
数据结构课程设计报告
设计一个校园导游程序,为来访的客人提供信息查询服务。1 设计学校的校园平面图。选取若干个有代表性的景点抽象成一个无向带权图 无向网 以图中顶点表示校内各景点,边上的权值表示两景点之间的距离。2 存放景点代号 名称 简介等信息供用户查询。3 为来访客人提供图中任意景点相关信息的查询。4 为来访客人提供...
数据结构课程设计报告
河北科技大学。课程设计报告。学生姓名学号。专业班级。课程名称数据结构。学年学期 2 012 2 013学年第 2 学期指导教师 黄春茹。2 0 13年 6 月。课程设计成绩评定表。一 数据结构课程设计目标。二 问题描述。三 需求分析。四 概要设计。五 详细设计。六 软件说明书 给出软件如何使用,使用...