1、数据结构课程设计任务书及模板 湖南工业大学课 程 设 计资 料 袋 商学院 学院(系、部) 2016 2017 学年第 1 学期 课程名称 数据结构C语言描述 指导教师 邓晓军 职称 教授 学生姓名 专业班级 学号 题 目 成 绩 起止日期 2016 年 12 月 12 日 2016 年 12 月 16 日目 录 清 单序号材 料 名 称资料数量备 注1数据结构设计说明书123张456湖南工业大学课程设计任务书2016 2017 学年第 1 学期 商学院 学院(系、部) 信息管理 专业 1501-1502 班级课程名称: 数据结构 (C语言程序描述) 设计题目: 第2章第7章课后算法设计题任选
2、2题 完成期限:自 2016 年 12 月 12 日至 2016 年 12 月 16 日共 1 周内容及任务根据教材数据结构(C语言版)第2章至第7章自选2个及以上习题(不能选同一章)作为课程设计题目,要求通过设计,在数据结构的逻辑特性和物理表示、数据结构的选择应用、算法的设计及其实现等方面加深对课程基本内容的理解和综合运用。主要任务:1、在处理每个题目时,要求从分析题目的需求入手,按设计抽象数据类型、构思算法、通过设计实现抽象数据类型、编制上机程序和上机调试等若干步骤完成题目,最终写出完整的分析报告。前期准备工作完备与否直接影响到后序上机调试工作的效率。在程序设计阶段应尽量利用已有的标准函数
3、,加大代码的重用率。 2、设计的题目要求达到一定工作量(300行以上代码),并具有一定的深度和难度。3、程序设计语言推荐使用C/C+,程序书写规范,源程序需加必要的注释;4、每位同学需提交可独立运行的程序;进度安排起止日期工作内容2016.12.12-12.13选好课设题目,并完成程序框架设计,各类函数及函数之间的链接和转换 2016.12.14-12.15程序的实现及调试2016.12.16程序的完善及资料整理主要参考资料数据结构及应用C语言描述,沈华等编著,机械工业出版社数据结构C语言版,严蔚敏等编著,清华大学出版社指导教师(签字): 年 月 日系(教研室)主任(签字): 年 月 日数据结
4、构课程设计设计说明书(题目)起止日期: 2016 年 12 月 12 日 至 2016 年 12 月 16 日学生姓名曹爽班级信管1502学号15415400233成绩指导教师(签字)计算机学院(部)2016年 12 月 16 日1 课程设计内容介绍1.1 题目一将两个递增的有序链表合并为一个递增的有序链表。要求结果链表仍使用原来两个链表的存储空间, 不另外占用其它的存储空间。表中不允许有重复的数据。1.2 题目二设计一个算法,求图G中距离顶点v的最短路径长度最大的一个顶点,设v可达其余各个顶点。 2 数据结构的设计2.1 题目一 逻辑结构和存储结构设计逻辑结构:线性结构存储结构:链式结构假设
5、头指针为LA和LB的单链表分别为线性表LA和LB的存储结构,现在要归并LA和LB得到单链表LC。但是链表节点之间的关系是通过指针指向建立起来的,所以要用链表进行合并不需要另外开辟储存空间,可以直接利用原来两个表的存储空间,合并过程中只需把LA和LB两个表中的节点重新进行链接即可。合并后的新表使用头指针Lc指向,pa和pb分别是链表La和Lb的工作指针,初始化为相应链表的第一个结点,从第一个结点开始进行比较,当两个链表La和Lb均为到达表尾结点时,依次摘取其中较小者重新链接在Lc表的最后。如果两个表中的元素相等,只摘取La表中的元素,删除Lb表中的元素,这样确保合并后表中无重复的元素。当一个表到
6、达表尾结点,为空时,将非空表的剩余元素直接链接在Lc表的最后。2.2 题目二 逻辑结构和存储结构设计3 功能模块(或算法)描述3.1 题目一将两个递增的有序链表合并为一个递增的有序链表。要求结果链表仍使用原来两个链表的存储空间, 不另外占用其它的存储空间。表中不允许有重复的数据。3.1.1 流程图1.指针Pa和Pb初始化,分别指向LA和LB的第一个节点。2.Lc的指针取值为LA的头结点。3.指针Pc初始化,指向Lc的头结点。4.当指针Pa和Pb均未到达相应表尾时,则依次比较Pa和Pb所指向的元素值,从LA和LB中摘取元素值较小的节点插入到LC的最后。5.将非空表的剩余段插入到Pc所指结点之后。
7、6.释放LB的头结点。3.1.2 主要功能模块cls() 清屏功能3.3搜索date_sc(int shibie) 按日期搜索name_sc(int shibie) 按书名搜索3.4修改shuru_sc(int i) 输入、修改图书信息3.5编辑e_insert() 插入新的图书信息e_delete() 删除图书信息e_update() 修改图书信息3.6显示所有图书display() 输出全部图书all_display() 输出全部图书(和display函数一起用)shuchu(int n) 显示所有信息3.7排序date_sort() 按日期排序3.8统计statistic() 统计每类书
8、籍的数量,和display函数一起用3.9文件操作xieru_sc(int shibie) 将内存中的数据写入文件f_open() 打开文件 和 新建文件(关闭文件直接用fclose函数即可,所以不用另外写函数)4.1主菜单4.2编辑文件4.3显示所有书籍Xxxxxxxxxxxxxxxxxxxxxxx参考文献1 朱站立数据结构-使用C语言(第3版)西安:西安交通大学出版社,2004.2朱站立,张选平等.数据结构-使用C语言典型题解与上机实验指导.西安:西安交通大学出版社,2007.附源代码#include#include#include#include#include#define MaxSi
9、ze 200 /定义数组最大值为200struct BookType /结构体类型为BookType int year; /定义 购买日期 年 int month; /定义 购买日期 月 int day; /定义 购买日期 天 char name20; /定义 书名 char author8; /定义 作者 int type; /定义 类型号码 float price; /定义 价格aMaxSize,zancunMaxSize,tihuanMaxSize,bMaxSize,cMaxSize;/ListGet用zancun数组和b数组,ListInsert用a数组,排序操作用tihuan和zan
10、cun数组,c数组用于删除操作int dateMaxSize;/用来相加 年 月 日 排序时候用typedef BookType DataType; /DataType的类型为BookType类型的结构体#include LinList.h /引用单链表 头文件FILE *fp; /定义文件指针SLNode *head; /定义单链表的头结点/=void menu(); /主菜单void end(); /结束界面void cls(); /清屏void search(int shibie); /搜索界面 void date_sc(int shibie); /日期搜索 void name_sc(i
11、nt shibie); /书名搜索 void author_sc(int shibie); /作者搜索 void type_sc(int shibie); /类型搜索 void price_sc(int shibie); /价格搜索 void shuru_sc(int i); /修改文件信息操作-修改信息 void xieru_sc(int shibie); /修改文件信息操作-将修改的信息写入文件int f_open(); /打开文件 void edit(); /编辑图书信息界面 void e_insert(); /插入图书 void e_delete(); /删除图书 void e_upd
12、ate(); /修改原来存在图书的信息void display(); /输出全部数据void all_display(); /输出全部图书void sort(); /分类界面 包括日期排序、书名排序、作者、编号排序、价格排序,如果某一项相同则继续按书名排序 void date_sort(); /日期排序 void name_sort(); /书名排序 void author_sort(); /作者排序 void type_sort(); /类型排序 void price_sort(); /价格排序 void paixu(int j); /进行赋值和替换的操作 void shuchu(int n); /显示所有信息void statistic(); /统计每类书籍的数量,显示统计结果/=void main()/主函数menu();/=
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1