- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构软件技术基础课设解析
文具店的货品管理
一 目的
利用《软件技术基础》课程中链表的知识设计一个仓库货品管理系统,利用C/C++等语言进行程序设计,并规范地完成课程设计报告。通过课程设计,巩固和加深对链表的查找增加等理论知识的理解;掌握现实复杂问题的分析建模和解决方法(包括问题描述、系统分析、设计建模、代码实现、结果分析等);提高利用计算机分析解决综合性实际问题的基本能力。
二 需求分析
在文具店的日常经营过程中,存在对各种文具管理问题。当库存文具不足或缺货时,需要进货。日常销售时,需要出库。当盘点货物时,需要查询货物信息。请根据这些要求编写软件完成库存文具的管理功能。
所以每件文具有类别(如001、ddd、aaa)、名称(如文具、纸张、工具)和数量(如10、11、12)三个属性。请采用链表实现以下功能:
(1)初始化文具表;
(2)文具入库;
(3)文具出库;
(4)查询文具信息;
(5)显示文具信息;
(6)添加新文具类别;
三 概要设计
1.本程序包含两个模块:
(1)主程序模块:
main()
{
初始化空链表;
Switch(菜单选择函数)
{
Case..判断菜单选择函数返回值选择对应的功能函数
}
}
(2)各个功能函数:
int menu();
菜单选择函数,返回一个值sn,在后来的主函数用switch调用。
int init(linklist head);
初始化空链表;
int create(linklist head);
新建节点。
int insert(linklist head);
修改(增加)节点内的信息。
int find(linklist head);
查找节点信息。
int sale(linklist head);
修改节点信息(减少数量)。
int dispaly(linklist head);
打印所有节点信息。
int addnew(linklist head);
添加新的节点。
2 主界面设计
当输入相应的操作字符(比如:1-7),通过在主函数中选择并调用对应的子函数程序以及其他函数中的辅助调用,实现并完成各自的功能操作(比如:添加、查找、删除、显示等)。系统主界面如下:如图2.1所示
图1 菜单显示选择界面
3.系统功能图
系统功能图如图3.1所示。
图2.系统功能
四 详细设计
1、储存结构设计
依据给定的数据格式,仓库库存信息由三个字段来组成,即物品名称、类别和数量。
如:
名称 类别 数量 本子 A 100
通过C语言把库存物品信息用单链表形式连接,源程序要有适当的注释,使程序易于阅读,进行储存。同时进行各种修改,完成仓库库存信息管理等功能。
typedef struct{
char name[10];
char lb[10];
int count;
}store;
typedef struct node{
store Stationery;
struct node *next;
}listnode, *linklist;
系统功能设计
依据程序的数据结构和功能,遵照“自顶向下”原则,描述该程序的层次结构,在总体上包括数据的插入、添加、删除以及数据的显示等功能模块。
初始化空链表:head = (linklist)malloc(sizeof(listnode));申请头结点空间,if (!head)判断头结点是否为空,为空则退执行exit(ERROR);不为空则执行head-next = NULL;给头结点的指针域指向null即可。因为函数是整型所有返回整型数。return OK;//OK=1
菜单选择函数:即menu()函数,其中while((int)sn!=sn||sn1||sn7)判断输入的数据是不是整型而且是大于等于1小于等于7,若是则返回输入的值return sn;,若不是则提示输入错误重新输入,其中用到的递归的思想,以下函数除了退出管理系统都用到了这个思想!
初始化仓库:即添加新的节点,先定义两个linklist型指针变量p, rear,其中rear=head方便遍历原来的链表,让rear指针指向原链表的最后一个空节点,rear-next = NULL;;然后给p申请内存空间p=(linklist)malloc(sizeof(listnode));之后提示输入并保存输入至p内,再然后将p的指针域指向的下一个节点置空,rear的下一个节点赋值为p,就完成了添加操作。完成上述操作后提示判断是否继续,利用while(flag)控制是否继续执行添加节点至尾部的操作。具体函数如下
图
您可能关注的文档
最近下载
- 农行反洗钱与制裁合规知识竞赛考试题库大全-下(判断题).pdf VIP
- 甄嬛传英文剧本.docx
- 2022河南省家政服务业职业技能大赛母婴护理项目技术工作文件.pdf
- 2022八年级下学期信息技术期末考试(python).docx VIP
- Q∕CR 9210-2015铁路路基填筑工程连续压实控制技术规程 (2).pdf VIP
- Photoshop网店美工技巧-蒙版与通道的应用.pptx VIP
- 2023高中政治人教版新教材必修3 考前必背.pdf
- 奥迪C5使用说明书.pdf
- 2024北京门头沟初三二模物理试题及答案.pdf VIP
- Q∕CR 9212-2015 铁路桥梁钻孔桩施工技术规程.pdf VIP
文档评论(0)