- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计
2013-11-12
目 录
一:程序设计题目……………………………………………2
二:程序设计目标……………………………………………2
三:问题描述…………………………………………………2
四:.需求分析………………………………………………2
五:概要设计…………………………………………………2
六:详细设计………………………………………………3
初始化表 ……………………………………………4
仓库管理系统和仓库链表的建立…………………4
插入数据……………………………………………4
仓库链表的查询……………………………………5
删除数据…………………………………………6
仓库链表的输出……………………………………6
测试分析…………………………………………6
使用说明…………………………………………6
数据测试…………………………………………6
七:程序源代码:课程设计总结
一.程序设计题目:仓库管理系统
二.程序设计目标:帮助学生熟练掌握线性表的基本操作在俩种存储结构上的实现,其中以双向链表链表的操作和应用为重点内容。
三.问题描述:建立一个仓库管理程序,可以按顺序和货物名称查询仓库存储情况,也可以增加或删除货物以及建立新的仓库存储系统。
四 .需求分析:
创建双向链表,设计仓库管理系统。
向链表中插入数据,输入数据
删除链表中的数据
查找链表中的内容
销毁双向链表,释放内存空间;
输出表格
五.概要设计:;可以采用双向链表的存储结构,如可定义如下的存储结构:
typedef struct dnode /*定义双向链表结构体*/
{
int number; /*商品编号*/
char name[max]; /*商品名称*/
int counter; /*商品数量*/
struct dnode *prior,*next; /*定义两指针,分别指向其前驱和后继*/
}dlnode;
六.详细设计:
总体操作步骤:
分配存储空间,初始化表;
(2) 对表进行插入、删除操作;
(3)完成操作。
初始化表 ?
(1)申请内存
(2)数据置空
(3)置表头,完成操作
2.仓库管理系统和仓库里链表的建立
3. 插入数据
? (1)申请内存
(2)置数据
(3)将结点插入,完成操作
4.数据查询(仓库链表的查询)
5. 删除数据
?(1)判断相应结点是否存在
(2)从链中取出该结点
(3)将结点释放,完成操作
6.新的仓库管理系统,仓库链表的输出:
7.测试分析
白盒:
查看代码完整性
黑盒:
测试是否可以正确的创建,删除,插入,打印,查找等操作
8.使用说明
插入删除语句:删除1条内容
插入语句:插入一条信息
自动打印:打印内容
9.测试数据:
测试内容 测试结果 删除一条数据 正确 插入一条数据 正确 正常打印数据 正确 正常查找内容 正确
七:程序源代码
#includestdio.h
#include string.h
#include stdlib.h
char NO[10]; //商品编号
char name[30]; //商品名称
char count[5]; //商品数量
} DataType;
typedef struct node { //结点类型定义
DataType data; //结点数据域
struct node *next; //结点指针域
} ListNode;
typedef ListNode *LinkList;
LinkList head;
ListNode *p;
LinkList CreateList(void);
void InsertNode(LinkList head,ListNode *p);
ListNode *ListFind(LinkList head);
void DelNode(LinkList head);
void PrintList(LinkList head);
/*******尾插法建立带头结点的仓库管理链表算法*******/
LinkList CreateList(void)
{
LinkList head=(ListNode *)malloc(sizeof(ListNode)); //申请头结点
ListNode *p,*rear;
char flag=y; //int flag=0; //结束标志置0
rear=head; //尾指针初始指向头结点
while (flag==y)
{
p=(ListNod
文档评论(0)