收藏 分销(赏)

商品销售统计程序设计基础课程设计报告--毕设论文.doc

上传人:快乐****生活 文档编号:2160596 上传时间:2024-05-21 格式:DOC 页数:25 大小:233.50KB 下载积分:10 金币
下载 相关 举报
商品销售统计程序设计基础课程设计报告--毕设论文.doc_第1页
第1页 / 共25页
商品销售统计程序设计基础课程设计报告--毕设论文.doc_第2页
第2页 / 共25页


点击查看更多>>
资源描述
石河子大学信息科学与技术学院 信息科学与技术学院 程序设计基础课程设计报告 题目名称: 商 品 销 售 统 计 专业班级: 电子信息工程12级1班 目录 目录 2 1 课程设计题目与要求 3 1.1设计题目 3 1.2设计要求 3 2总体设计 4 3 详细设计 4 3.1 主界面流程图 5 3.2清除内存中的商品函数 6 3.3增加商品信息 7 3.4删除商品信息的过程 8 3.5修改商品信息的过程 10 3.6查询商品的过程: 12 3.7统计商品的过程 14 3.8显示商品过程 16 4 运行结果 17 5 总 结 20 6编程中的问题及解决方法 21 7心得体会 22 8程序设计方法 23 9程序运行环境 24 9.1 软件环境 24 9.2 硬件环境 24 10参考文献 25 1 课程设计题目与要求 1.1设计题目 商品销售统计程序。 1.2设计要求 商品销售统计 问题描述 编写商品销售统计程序,商品的信息有:商品的名称,计量单位(重量或件),单价。所有商品的信息事先已存入计算机,屏幕上显示所有商品的名称,选择商品名,输入商品计量单位(如重量,件数等),根据单价算出总价。客户一次购物可能购买多种商品,程序应计算出客户应付的钱款数。 基本要求 程序分为两个部分:第一部分用于输入商品的信息并允许修改和删除;第二部分实现销售统计。程序运行时由用户选择进入哪一部分功能,并能在运行时在两部分之间切换。第二部分运行时,首先显示所有商品名称及代码(商品数目较多时,应考虑分屏显示),用户输入商品代码及商品重量或件数,用户一次操作可输入若干商品的购买信息,然后输入一个特殊的代码(如-1)表示本次购物结束。此时,程序计算出应付钱款数并显示。 测试数据 程序应输入不少于10种商品的信息,并进行模拟运行。 实现提示 本程序的商品信息可用一个结构体数组或链表进行管理。 至少要有文本菜单实现。 2总体设计 商品销售统计系统设计 商品信息管理 商品销售 商品信息录入 商品信息修改 商品信息保存 商品信息显示 商品买入 3 详细设计 3.1 主界面流程图 设计超市管理系统的主界面,主界面相应的现实有下列菜单:增加商品、删除商品、修改商品、查询商品、统计商品、显示商品、退出。 超市管理系统 商品类 超市类 查询商品 统计商品 修改商品 增加商品 删除商品 显示商品 找到 是 否 开始 结束 3.1主界面流程图 3.2清除内存中的商品函数 在超市管理系统中,商品出售出去,库存中的商品信息必须清除。 类外定义一个函数clear,在函数中定义一个指针p,讲物品goods赋给p,为了使函数能够不断地清除内存中的数据,要使指针移动,首先将p->next赋予goods ,然后删除p中的数据,清空p中的数据,然后将goods赋给p,依次循环,从而实现删除库存中的一个或多个商品。 开始 定义指针 goods赋值p给p 将p的next赋值给goods 删除p中的数据 goods赋值给p 是否有需要删除的商品 结束 YES NO 图3.2清除内存商品流程图 3.3增加商品信息 类外定义一个函数add,首先在函数中定义变量商品代码 num 和商品数量count,都为double类型 ,商品名name和产地address为char类型 ,价格price 为int类型,首先要求用户输入商品信息,依次输入商品的代码、商品名称、商品产地、商品单价,判断单价是否在0~65535之间,如果不在范围内重新输入直到在范围之内再继续向下面执行,输入商品库存量,库存在0~99999之间,如果超出范围重新输入,在范围之内继续执行,保存数据。 开始 定义变量 输入商品代码名称产地 输入商品价格 ( 0~65535 ) 输入商品库存 (0~99999) 保存 No No Yes Yes 图3.3 增加商品流程图 25 25 3.4删除商品信息的过程 (1)在Supermarket类下定义一个Delete函数作为删除商品信息的函数,然后定义商品名,输入商品信息。 (2)查找要删除的结点(节点中包含所有该商品的信息:商品代码、名称、产地、数量、单价),分别定义两个指针,原商品表信息指针p1和输入的商品信息指针p2,在p1循环的过程中比较输入的商品名与原有的商品名是否一致,如果一致则结束本次循环,否则p2指向p1,使得两指针同化,p1指针接着指向下一指针,这样依次向后查询。 (3)删除结点,如果找到要删除的结点则删除,在这个条件下,如果删除的结点是第一个结点,则继续将指针后移删除第一结点,如果删除的结点是后续结点,则将p2下一指针指向p1下一指针,则删除相应的后续结点。 输出的结果是:找到并删除或者sorry,未找到! 流程图如图3.5 查找要删除的结点 定义指针p1 p2 比较输入商品名和商品表已知商品名是否一致 是否找到结点 继续向后查找 p2=p1;p1=p1->next 是否为第一结点 找到则删除成功 查找后续结点 是 是 是 否 否 否 开始 结束 图3.5 删除商品流程图 3.5修改商品信息的过程 (1)定义各参数变量的类型,然后是输入要查找等待修改的商品名称 (2)查找要修改的结点,定义p1、p2指针,p1为指向goods商品表指针,p2为输入的商品指针,判断p1指针,如果输入的商品名和原有的商品名一致,则结束本次循环,否则,p1和p2指针同化,p1接着指向p1的下一指针。 (3)修改结点,若找到相应的要修改的结点,则p1指向Output函数,接着输出要修改的信息,利用Switch语句来调用相应的修改信息。 (4)创建新商品的结点,把原来要修改的结点删除并重新替换要创建的商品结点。如果找到等待修改的结点则修改,否则保持商品表信息不变。 流程图如图3.6 输入要查的商品名 查找要修改的结点 比较输入商品名和商品表已知商品名是否一致 是否找到第一结点 继续向后查找 p2=p1;p1=p1->next 继续查找后续结点 删除并替换 是 是 否 否 是 否 开始 结束 图3.6 修改商品流程图 3.6查询商品的过程: (1)在Supermarket类下定义一个Query函数作为查询商品信息的函数,输入商品名。 (2)查找要查询的结点(结点中包含所有该商品的信息:商品代码、名称、产地、数量、单价),定义一个原商品表信息指针p1,在p1循环的过程中比较 输入的商品名与原有的商品名是否一致,如果一致则结束本次循环,否则 p1指针接着指向下一指针,这样依次向后查询。 (3)查询结点,如果找到要查询的结点则输出:查询成功并输出其所有信息,若没有找到输出:sorry未找到! 流程图如图3.7 定义指针p1 比较输入商品名和商品表已知商品名是否一致 是否找到商品 继续向后查找 p1=p1->next 是 是 否 否 输入要查询商品的名字 开始 结束 图3.7查询商品流程图 3.7统计商品的过程 (1)是在Supermarket类下定义一个Add_up函数作为统计商品信息的函数,然后定义两个double型变量Amount和Value分别表示要求统计商品的总量和总价值,输入商品名字name。 (2)查找要统计的结点(结点中包含所有该商品的信息:商品代码、名称、产地、数量、单价),定义一个指针p1,原商品表信息指针p1,在p1循环的过程中比较输入的商品名与原有的商品名是否一致,如果一致则结束本次循环,p1指针接着指向下一指针,这样依次向后查询。没找到则输出:sorry,未找到! (3)统计商品,每当找到一个商品后就将Amount与p1所指count相加存入Amount,并将此时p1所指的count与price相乘再加上Value存入Value,循环查找相加,最后分别输出。 流程图如图3.8 开始 查找要统计的结点 定义指针p1 比较输入商品名和商品表已知商品名是否一致 是否找到结点 继续向后查找 p1=p1->next 是 是 否 否 否 Amount+=p1->count; Value+=p1->count*p1->price Value+=p1->count*p1->price 从 当前指针p1 输出 结束 图3.8 统计商品流程图 3.8显示商品过程 (1)是在Supermarket类下定义一个Out函数作为显示商品信息的函数。 (2)将goods的首地址给p1,判断p1是否为空,若空则输出“没有商品”。否则输出该商品所有信息(商品代码、名称、产地、数量、单价)等。 (3)将p1赋给p2,p1->next赋给p1,进入循环,输出下一个商品信息。 流程图如图4.9 定义数据 P=goods 是否有商品 输出该商品信息 指针移向下一个商品 输出没有商品 否 是 开始 图3.9 显示商品流程图 4 运行结果 4.1运行结果截图 4.1.1软件进入界面 4.1.2商品添加 4.1.2商品查询信息 4.1.3商品销售 4.1.4商品删除 5 总 结 通过这次实践,我们成功的实现了数据的输入与保存,并在程序中实现了使用类对各个学生的各参数的基本操作。该系统的难点在于不使用任何数据库,只使用磁盘文件来实现对每个学生的信息的存储和读取。虽然测试的学生的信息条数不够多,但是题目的要求是完全能够达到的,在现有的基础上只要稍加修改就能够满足批量数据的存储和查阅。要想增加更多学生信息,只要增加相应的对象的属性即可,前提是在拥有相似的属性的时候。若有不同的属性,可以增加相应的类就可满足需求。其中重要的是打开文件,保存文件,也就是对数据的妥善的存储和再次的调用的操作。本次的课程设计对我们也是一个很好的实践的机会,锻炼了自己,提高了自己编程的能力,为今后的项目打好基础。 6编程中的问题及解决方法 (1) 录入数据难以保存,通过参考一系列的指导书得以解决。 (2) 对于预处理函数的概念不清楚,在同学的讲解下,自己才能得以明白。 (3) 对于切换界面的方法不是特别理解,通过参考大量的资料,找到了解决方法。 7心得体会 a) 对于程序设计有了新的认识,一个好的程序员必须要对程序整体有足够的认识,才能够写出一个完美的程序。 b) 要想对每一个代码熟悉,只有不停的实验和不停的变形不同的程序来检验它的作用,正如“实验室检验真理的唯一标准”。同样的对于编程也是如此。 c) 熟悉程序是怎样运行的,每一个函数调用的目的、每一个函数的作用和功能。具体是怎样执行的,这些问题都必须弄得透彻。 8程序设计方法 根据系统功能要求,可以将问题解决分为以下步骤: (1)分析系统中的各个实体之间的关系及其属性和行为; (2)根据问题描述,设计系统的类层次; (3)完成类层次中各个类的描述(包括属性和方法); (4)完成类中各个成员函数的定义; (5)完成系统的应用模块; (6)功能调试; (7)完成系统总结报告以及系统使用说明书。 9程序运行环境 9.1 软件环境 操作系统: Windows 98//2000/XP/7(推荐使用Windows XP) 调试环境: Visual C++及以上版本。 9.2 硬件环境 处理器:CPU主频在500MHz以上 内存:128MB以上 硬盘空间:10MB。 10参考文献 [1]《C++面向对象程序设计》(第一版) 谭浩强 北京:清华大学出版社 2006年1月 [2]《C程序设计 》(第三版) 谭浩强 北京:清华大学出版社2005年7月
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服