商品销售统计系统

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

商品销售统计系统

课程设计报告

一、课程设计题目:商品销售统计

主要内容和要求:

编写商品销售统计程序,商品的信息有:商品的名称,计量单位(重量或件),单价。所有商品的信息事先已存入计算机,屏幕上

显示所有商品的名称,选择商品名,输入商品计量单位(如重量, 件数等),根据单价算出总价。客户一次购物可能购买多种商品,程序应计算出客户应付的钱款数。

程序分为两个部分:第一部分用于输入商品的信息并允许修改和删除;第二部分实现销售统计。程序运行时由用户选择进入哪一部分功能,并能在运行时在两部分之间切换。第二部分运行时,首先显示所有商品名称及代码(商品数目较多时,应考虑分屏显示),用户输入商品代码及商品重量或件数,用户一次操作可输入若干商品的购买信息,然后输入一个特殊的代码(如-1)表示本次购物结束<

此时。程序计算出应付钱款数并显示。

测试数据

程序应输入不少于10种商品的信息,并进行模拟运行。

实现提示

本程序的商品信息管理可采用与课程设计题目二类似的数据结构,既定义一个商品类,每种商品作为商品类的实例(对象)存储在链表节点中。

选做内容

程序在营业结束时统计每种商品的销售量,销售金额及总营业额。因此第二部分应有营业结束的选择,当用户选择此项时屏幕上显示当天营业的每种商品的销售量,销售金额及总营业额。注意,商品类的数据成员应增加有商品的销售量和销售金额。总营业额是所有商品的营业额之和,可用静态数据成员实现。或可由原商品类派生出一个特殊的类,增加上面的数据成员及相应的成员函数。

二、问题分析:

由设计题目的要求,我们需要对设计一个能够统计所销售商品的代码、名称、价格、数量等信息并且能够通过输入选择键调出仓库中所有商品的所有信息;实现通过代码来查询某个商品,并且输出该商品的所有信息;能够在用户购买商品时,根据情况给予用户反馈

信息,其中包括购买商品名称、代码、单价、所买数量,并对该商品进行一次小结,告知用户消费情况;购买结束后,统计用户所消费的总金额,记录其所付金额以及找零金额。实现这些功能,需要声明构造函数Sale (), 包含数据成员商品代码、名字、价格、数量。另外, 创建链表,用于储存商品录入信息,购买情况,以及所有商品的信息。利用switch语句来实现根据需要选择不同的功能。

创建链表,对头结点进行初始化,对数据域分配内存大小,通过指针域访问结点,来实现元素的储存调用等。

定义子函数,来实现商品的录入、查询、显示、购买等功能。录入功能需要包含商品的一些信息,如:代码、名称、价格等;查询功能则是为了方便用户获得所需购买物品的一些信息;显示功能可以使用户对仓库的储存情况一目了然;购买功能主要是进行商品的结算。

编写过程中,代码和名字需应用字符串,数量以整型输出,考虑到上平的数量可能会很多,故定义为unsigned int quality ,价格以浮点型输出。

三、算法设计:

1、需要定义一个构造函数Sale.包含数据成员:代码、名称、价格、数量。

2、定义主函数,编写菜单程序,通过判断输入

的格式是否正确,选择是否在屏幕上显示菜单,利用switch语句来选择不同的功能。

4、创建链表,它包括数据域和指针域,数据域用于群体中元素的内容,通过指针来访问结点。并对头结点进行初始化。对结点动态分配内存,存储录入商品的全部信息,并可以在需需要的时候将相应的信息调出来。

5、定义子函数,通过调用来实现所选功能。

6、运用switch语句选择键入0、1、2、3或4,选择所需进入功能。选择1,调用1号子函数,进行商品录入,录入商品的代码、名字、价格和数量;选择2,调用2号子函数,进入商品查询系统,输入所要查询商品的代码,如果存在此商品,便会输出该商品的一切信息。选择3,可以检录到所有库存商品的信息,方便用户选择;选择4,根据录入信息键入所要购买商品的代码和数量,并在购买一件商品结束后,输出用户的购买信息;选择0,

表示运行结束,退出系统。

6、应用一个功能完成后,都会有提示供用户选择,方便用户,也能使程序运行通畅。

四、用户手册:程序运行时,首先根据系统提示来选择需要进入的功

1、由于该程序编辑过程中并没有储存上平信息,因此需要

录入商品信息,输入1即可。系统会提示输

入代码、名称、价格和数量。录入一个后提示是否继续输

入,选择Y/N。

2、商品查询功能选择三,根据所输入的商品代码,

判断是否存在所查商品,仓库中有,输出该商品的全部信息,供消费者参考;如果没有则提示:“无此商品”。

3、输入3,则会显示当时情况下所有商品的库存信息。

4、输入4,2表示购买商品,输入2后会提示是否继续购买,如果我们要继续,只需输入任意键(空格、Enter键除外)。必须注意的是,如果输入数字,则只能是一位数,两位或多位,则会导致程序无法正常运行。

购买时会提示输入所买商品的代码以及数量。每一次购买结束屏幕上都会显示所买商品的信息:代码== 名称==价格==数量==小计(元)。如果所买商品代码未曾录入,会提示没有该商品。

5、键入0,退出系统。

五、调试过程:

错误之处;

1、代码和名字分别定义为整型和字符型。

2、未对链表头结点进行初始化。

3、数据域中没有分配内存。

4、在do-while语句结束时没有返回头结点。

5、显示程序不能实现,卖出商品后没有办法在原有的数据上减去卖出的部分,显示的仍旧是录入商品的全部数量。

导致的后果:

第一个错误导致在访问结点无法进行;与后面的不匹配。第二个错误,在运行程序时,无论时录入商品信息还是购买商品均不能进行第二步操作;第三个错误引发的后果与错误

2 一样;错误4则导致函数creat没有返回值。

最后的一个错误不符合任务书上的要求

改正方法:

1、定义代码和名字改用string ;

2、对头结点进行初始化并动态分配一个内存大小:

Head=(Link)new Node;// 每次动态分配一个Node 内存大小。

Head->n um="";

Head->n ame="";

Head->jiage=O.O; Head->shulia ng=O; Head-> next=NULL;

3、返回头结点:return Head;。

收获:

在编写次程序时,由于对来链表不是相当了解,以至于定义变量num name时没有注意其类型,无法与后

面Head->nu m="";Head->n ame="";if(p->num==num) 相匹配,程序出

现错误。而后通过问同学才有了一定的了解。同时还了解到应用量表的时候需哎哟注意对头结点进行初始化以及分配空间,

相关文档
最新文档