主要包括以下操作:
1、商品基本信息处理:由于商品种类众多,这里把商品首先按名称分成大类,如冰箱,电视等;在每种类别下有详细的信息,如某电视的产品编号、产品型号、厂家编号、厂家名称、进价、销售价、总价,数量等。存储结构可参考提示(1)。
2、商品的进货和销售管理:建议使用进货和出货函数实现。
进货时:货物按照厂家编号排序,如货物为新增品种,应进行插入排序,使新的货物仍按厂家编号排序;如货物为已有货物,则修改数量和单价(单价的计算参阅提示(2))
出货(即销售)时:如有该货物,则修改数量,并把该销售信息存入销售信息链表(该表是操作4的数据源)中。如该货物销售完毕,应删除该货物信息,并保存当次销售信息(建议使用链表);如数量不足,应提示,中止操作;如该货物不存在,也应提示,中止操作。
3、 查询并输出相应商品信息
要求查询窗口灵活,基本可以按照商品的任何明细信息查询。例如:可按产品编号、产品名称、厂家等查询。
4、销售信息的文件写入和读取
主要实现销售信息的永久保存,并可以随时查阅以前年度的销售信息。
5、业绩评价管理:根据历史的销售信息,建议可以按商品销售量,利润率等排序输出商品信息,实现方法参见提示4。
提示:
(1) 对商品的存储可以考虑采用链式存储(见图1)或采用二叉排序树存储(见图2);
(2) 对于同一型号的产品的进货,考虑到每次的进价不同,可采用移动加权平均法,即单价=(该批货物的进货总价+进货前所有货物的总价)/(该批货物的数量+进货前的货物数量);
(3) 货物的编码和厂商的编码自己设计,可参考商品大类初始信息表的编码方式;
(4) 数据结构按自己的理解设计;
(5) 利润即售价减进价;
(6)对于操作5要求采用如下方法;(A)二叉排序树的中序输出。如货物的存储采用链表存储,采用此方法;(B)采用链表的插入排序,冒泡排序或选择排序中的任何一种。如采用二叉排序树,则采用此方法。
货物的二叉排序树的存储方法(其中二叉排序树按商品大类信息的编码进行创建。实线中的信息表示商品的大类信息,如冰箱001,而虚线中的表示商品的明细信息,如产品编号001001表示三星某某型号的冰箱)
(7)产品初始信息如下;
商品大类编码 商品大类名称
005 电视
001 冰箱
007 微波炉
008 电脑
003 空调
002 洗衣机
商品大类初始信息表
产品编号 产品型号 厂家编号 厂家名称 进货单价 销售单价 数量 进价总价(略)
005001 X11 001 三星 1000 1500 200
002001 X23 001 三星 2000 1900 100
003007 X24 003 美的 1100 2000 40
007001 X56 002 格兰仕 1200 1800 70
002001 X89 008 索尼 12000 16000 30
002003 X80 008 索尼 300 800 200
001001 X20 003 美的 600 1000 90
003001 X19 002 格兰仕 900 1200 80
002008 X22 002 格兰仕 2000 3000 110
002004 X21 001 三星 1300 1800 700
002010 X67 008 索尼 1200 1700 200
005002 X69 002 格兰仕 1000 1900 100
商品明细初始信息表
求一份数据结构课程设计报告
哪些编程高手帮我编一下吧~~~一、课程设计内容:1.用C或C++语言编写一个程序实现学员成绩管理,每个学员包括3门课的成绩,从键盘输入学员信息。2.学员信息... 时间有点赶,12.3中午前。哪些编程高手帮我编一下吧~~~一、课程设计内容: 1.用C或C++语言编写一个程序实现学员成绩管理,每个学员包括3门课的成绩,从键...
数据结构课程设计报告(一元多项式的计算)
【基本要求】能用链表实现一元多项式的加法计算,并能打印出计算结果。【所需知识】(1)基本编程方法和程序设计知识。(2)链表的理解和运算与运用。【所用算法】遍历算法和递归算法。【操作平台】Visual C++ include<stdio.h> include<graphics.h> define MAX 100 typedef struct polynode { ...
数据结构课程设计《报数游戏》队列问题 c语言
约瑟夫环问题:如果你用队列做的话,设一个计数器,如果计数器<m就出队后再入队,等于m时那个元素只出队不入队,输出这个元素并且让m等于0。循环到队列为空就行了。
数据结构课程设计
这个是程序:include "string.h"define NULL 0 unsigned int key;unsigned int key2;int *p;struct node { char name[20],address[20];char num[11];struct node *next;} phone;nam;address;typedef struct node *pnode;typedef struct node *mingzi;void hash(char num[11]){ int i = 3;...
数据结构的问题 高手帮忙总结一下有哪些排序方法是稳定的哪些是不稳定...
这个网站数据结构很全 http:\/\/student.zjzk.cn\/course_ware\/data_structure\/web\/paixu\/paixu8.1.1.1.htm 先讲讲吧;稳定的概念:在待排序的文件中,若存在多个关键字相同的记录,经过排序后这些具有相同关键字的记录之间的相对次序保持不变,该排序方法是稳定的;若具有相同关键字的记录之间的相对次序...
数据结构(C语言版) 图的遍历和拓扑排序
任务:给定一个有向图,实现图的深度优先, 广度优先遍历算法,拓扑有序序列,并输出相关结果。功能要求:输入图的基本信息,并建立图存储结构(有相应提示),输出遍历序列,然后进行拓扑排序,并测试该图是否为有向无环图,并输出拓扑序列。 麻烦哪位高手帮忙下 谢谢~! 展开 我来答 3...
高手帮忙做下这个数据结构题,谢过了
术语:Integer = 整型,IntegerArray = 整型数组,Initalize = 初始化,loop = 循环,Assign = 赋值 Integer sum( IntegerArray s[], Integer h, Integer n ){ Integer i Integer ret initalize with value 0 for i Initalize with value 1 loop from h to n-1 { Assign ret with ret + s...
数据结构习题请高手帮忙?
第四步调整根为42的子树,由于移动结点时破坏了原有的平衡,需要调整两次:第一次:50 33 42 25 30 29 45 12 18 第二次:50 33 45 25 30 29 42 12 18 建堆完成
数据结构高手来帮忙(简答题、算法题)
1、顺序存储方式只能用于存储线性结构。( N )2、数组不适合作为二叉树的存储结构。( N )3、串是一种数据对象和操作都特殊的线性表。( Y )4、线性表采用链表存储时,结点和结点内部的存储空间可以是不连续的。( Y )5、栈和队列都是限飞过海英语角制存取点的线性结构。( Y )6...
湖北第二师范《数据结构》题,哪位高手帮忙看看? 1.在n个结点的二叉树中...
然后直接删 除*p ,再然后另*p=*q-->next。所以为0(1).B. 要查找第一个元素,S设表尾指针为*p,*p-->next为表头指针, 所以为0(1).D. 只有表头指针的带表头结点的循环单向链表:要查找第一个元素 ,设表头指针为*p,*p-->next为首元节点,所以为0(1).> 4.C 5.A 如图 ...