商品销售管理系统设计(doc 41页)
- 格式:doc
- 大小:119.50 KB
- 文档页数:42
2010-2011 学年第二学期《软件工程课程设计》网上书店系统的UML建模班级08软件工程组员崔会令刘园园谷雅俊解凯添组长张俊格任课教师郭烨日期2011年5月30日目录1 系统需求 (2)2 需求分析 (3)2.1 识别参与者 (3)2.2 识别用例 (3)3 静态结构模型 (4)3.1 定义系统对象 (4)3.2 定义用户界面类 (4)3.3 建立类图 (5)4 动态行为模型 (6)4.1 创建系统顺序图(协作图) (6)4.2 创建系统的状态图 (8)4.3 创建系统的活动图 (9)5 物理模型 (11)5.1 创建系统组件图 (11)5.2 创建系统部署图 (11)6总结 (11)7参考文献 (12)1 系统需求网上书店管理系统业务描述:网上书店提供给人们更加便捷的购书模式。
从网上书店系统不同参与者的角度 ,可以将其系统功能分为前台与后台两大功能模块。
通过对电子商务网站及网上书店的考察、分析以及实际的市场调查,要求本系统具有以下功能:●统一友好的操作界面,能保证系统的易用性。
●规范、完善的基础信息设置。
●图书分类详尽,可按不同类别查看商品信息。
●按图书大类及图书名称进行模糊查询。
●实现网上购书。
●新书及特价图书展示。
满足上述需求的系统主要包括下面几个模块:图 1.1系统功能需求2 需求分析2.1 识别参与者在书店管理系统中,需要销售者和用户的的参与。
销售者可以有自己的用户名和密码对网站的后台进行维护和更新。
用户可以注册也可以登录来对图书进行浏览和购买,确认购买后通过转账汇款。
网站需要一个专门的管理者进行日常维护与管理,所以需要有系统管理员的参与。
参与者有销售者和用户以及系统管理员,销售者也可以替代系统管理员的功能。
2.2 识别用例(1)管理员的用例图从图中可以清楚地看到泛化关系与各个参与者所参与的用例。
(2)用户参与的用例图用户参与者的用例图如下图所示。
3 静态结构模型3.1 定义系统对象管理员,用户,购物车,图书。
武汉工程大学课程设计报告课题名称:静轩花圃网上花店系统专业班级: 09级电子商务01班学生学号: 0920070111 0920070116 0920070122 0920070124 0920070128 学生姓名:学生成绩:指导教师:王毅彦课题工作时间:2012年5月14日至 2012年6月22日目录一、项目简介1.1 产生背景 (9)1.2 主营业务 (9)1.3 盈利模式 (9)1.4优势 (9)二、系统分析2.1 建立新系统的必要性 (10)2.2 业务流程分析 (12)2.3 数据流程图 (14)2.4 数据字典 (15)2.5 E-R图 (18)三、系统设计3.1 系统功能设计 (19)3.2 代码设计 (19)3.3 系统运行环境与数据库设计 (20)3.4输入/输出设计 (22)四、系统实施4.1 系统实施 (26)附录课程设计心得与体会《静轩花圃网上花店系统》课程设计报告一、项目简介:1.1、产生背景:网络的出现正以飞快的速度遍及我们生活中的各个方面并一直在延伸,许多几年前我们想都不敢想的东西被搬上了叫做网络的东西,并取得成功。
2000年当马云一个劲忙碌着阿里巴巴时多少人讥笑怀疑他,电子商务这十年前只属于少数人的东西,也逐渐被越来越多的人所接受,这不仅为商家提供了盈利的平台,也大大的为用户提供了方便。
网上花店作为这种趋势下的一个子集,它是为时下快节奏的生活方式提供一种及时方便的服务,例如你在一个没有花店的地方,你可以通过手机或电脑购买,手指动一动就能坐等产品送到家。
1.2、主营业务:●花卉销售●为商家提供平台1.3、盈利模式:静轩网上花城有三种盈利方式:●广告盈利:允许广告商在在本网站投放一定数量的广告从中收取一定的广告费用。
●销售收入:通过网站上架自己的商品,卖给用户所得的收入。
●佣金:本公司外的商家在本网站上架产品后与客户达成订单后,我公司从中扣除的5%的费用。
1.4、优势:●人性化服务,网站除发布花卉的价格品种外还有与花有关的各种知识以供购花人买花时能有更多的用户体验。
ISO13485标准(DOC 41页)目录前言 (3)0引言 (4)0.1总则 (4)0.2过程方法 (4)0.3与其他标准的关系 (4)0.4与其它管理体系的相容性 (5)1范围 (5)1.1总则 (5)1.2应用 (5)2引用标准 (6)3术语和定义 (6)4质量管理体系 (7)4.1总要求 (7)4.2文件要求 (8)5管理职责 (9)5.1管理承诺 (9)5.2 以顾客为关注焦点 (9)5.3 质量方针 (9)5.4 策划 (10)5.5职责、权限和沟通 (10)5.6管理评审 (10)6资源管理 (11)6.1资源提供 (11)6.2人力资源 (11)6.3 基础设施 (12)6.4 工作环境 (12)7产品实现 (12)7.1产品实现的策划 (12)7.2与顾客有关的过程 (13)7.3 设计和开发 (13)7.4采购 (15)7.5生产和服务提供 (16)7.6监视和测量装置的控制 (18)8测量、分析和改进 (19)8.1总则 (19)8.2监视和测量 (19)8.3不合格品的控制 (20)8.4数据分析 (20)8.5改进 (21)附录A (22)附录B (26)参考文献目录 (50)前言本标准等同采用ISO13485:2003《医疗器械质量管理体系用于法规的要求》本标准将取消并代替YY/T0287:1996和YY/T0288:1996。
过去使用YY/T0288:1996的组织可以按照1.2条,通过删减某些要求来使用本标准。
由于任何标准都会被修订,本标准出版时,本标准引用文件的最新的版本(包括任何修改)适用。
本标准是一个以GB/T19001为基础的独立标准,并遵循了ISO9001 GB/T19001的格式。
为了方便医疗器械行业的使用者,在本标准的正文中,与GB/T19001不同的内容采用黑色宋体字表示。
本标准中所加的“注”是为英文版国际标准的使用者所提供的附加信息,为等同采用国际标准,本标准仍保留了这些内容。
晋中学院本科毕业论文(设计)题目基于JAVA的网上购物系统的设计与实现院系计算机科学与技术专业_ 计算机科学与技术(网络工程方向)申请学位学士学位2013年5 月15 日基于JAVA的网上购物系统的设计与实现学生姓名:聂澎指导教师:李俊丽摘要:本系统是尝试用JSP在网络上架构一个动态的电子商务网站,它是在Windows 7下,以MySQL为数据库开发平台,Tomcat网络信息服务作为应用服务器,基于J2EE 多层体系结构,应用Java、Struts、Hibernate等技术开发的网上购物系统。
系统分注册与登录部分和购物车部分,注册与登录部分主要包括用户注册与登录功能;购物车部分主要包括购物车添加商品,删除商品,修改商品数量等功能。
建立后的网站系统是一个动态、交互式、具有用户登陆与注册、购物车删除与恢复、订单生成等功能的电子商务网站。
关键词:java;jsp;Ajax;MySQL;strutsDesigned in the Online Shopping System based on JSPAuthor’s Name:NiePeng Tutor: LiJunLiABSTRACT :The system is trying to use Java in a dynamic network ofe-commerce websites structure, which is in Windows 7, MySQL for database development in platform, Tomcat application server as a network information services, use Java、Struts、Hibernate、Spring technology development online shopping system. Prospects and the background of some of his hours, the prospects of users, including users registered, a shopping cart management, order management, personal information management, message board management functions; Background in part by managers, including commodity management, processing orders, customer information management, inform- ation management, and other functions links. After the establishment of the website is a dynamic, interactive, with commodities, systems management, voice mail, and other functions of the e-commerce website users.KEYWORDS:java;jsp;Ajax;MySQL;struts目录1 引言 (1)1.1 研究背景 (1)1.2 研究现状 (1)1.3 发展趋势 (1)2 系统概述 (2)2.1网站的设计目标 (2)2.2 网站的可行性 (3)2.3 系统的主要架构及开发模式 (3)2.4 系统主要技术简介 (4)3 系统功能需求 (5)3.1 系统功能需求 (5)3.2 系统流程分析 (5)4 系统数据库设计 (8)4.1 数据库需求分析 (8)4.2数据库中各表间关系 (9)5 系统详细设计 (9)5.1 用户注册与登录 (9)5.2 购物车管理 (10)5.3 订单生成 (12)6 系统测试 (12)6.1 系统关键部分测试分析 (12)6.2 测试分析总结及说明 (13)6.3 系统的性能分析 (13)6.4 系统的整体设计和规划中的问题 (13)6.5 开发功能模块所遇到的难点 (14)6.6 系统中存在的问题及拟定的解决方法 (14)7 结束语 (15)致谢 (16)参考文献 (17)1 引言1.1 研究背景随着全球信息网络的发展,Internet在世界上已不仅仅是一种技术,更重要的是它已成为一种新的经营模式,彻底改变了人类工作,学习,生活,娱乐的方式,已成为国家经济和区域经济增长的主要动力。
1.系统需求 (2)2.需求分析 (4)2.1功能设置 (4)2.2模块划分 (5)2.3识别参与者和用例 (6)2.3.1 顾客Customer用例图 (7)2.3.2 系统管理员用例 (13)2.3 静态结构模型 (16)2.3.1 类Customer (17)2.3.2类Goods (18)2.3.3类Order (19)2.3.4管理员 (20)2.3.5标题title类 (20)2.3.6二级标题类 (21)2.3.7公共操作类 (22)2.3.8类图 (23)3.动态行为模式 (23)3.1时序图 (23)3.1.1顾客注册成为会员时序图 (24)3.1.2顾客反馈信息时序图 (25)3.1.3顾客浏览商品时序图 (26)3.1.4顾客查询商品时序图 (27)3.1.5顾客购买商品时序图 (28)3.2.6管理员添加商品时序图 (29)3.2.7管理员删除商品时序图 (29)3.2.8管理员添加二级商品目录时序图 (30)3.2.9管理员删除二级商品目录时序图 (31)3.2.10管理员编辑促销产品时序图 (31)3.2.11管理员编辑条款信息时序图 (32)3.2.12管理员编辑购买流程时序图 (33)3.2.13管理员删除会员时序图 (34)3.2.14用户结算时序图 (35)3.3.活动图 (35)3.3.1用户顾客的活动图 (35)3.3.2管理端管理员的活动图 (36)3.4协作图 (38)3.4.1顾客登录协作图 (38)3.4.2顾客注册协作图 (38)3.4.3顾客浏览商品协作图 (39)3.4.4反馈信息协作图 (39)3.4.5顾客查询商品协作图 (40)3.4.6顾客购买商品协作图 (40)3.4.7管理员删除会员协作图 (41)3.4.8管理员添加商品协作图 (41)3.4.9管理员添加商品标题协作图 (42)3.4.10管理员删除商品协作图 (42)3.4.11管理员删除标题协作图 (43)3.4.12管理员编辑文本协作图 (43)4.系统数据库设计 (44)4.1数据库的需求分析 (44)4.2数据库的逻辑设计 (44)5.参考文献: (47)系统分工:梁志负责总体设计和画用例图、活动图:王向宝负责前台设计包括:注册、浏览、反馈、登录罗全力负责前台设计包括:购买、查询、顾客和管理员类的设计张雅东负责后台设计包括:商品管理(添加、删除商品,添加、删除标题)、会员管理、商品类和标题类的设计李俊负责后台设计包括:文本编辑管理(编辑购物流程、条款信息、促销信息)和订单管理、订单类的设计电子商务系统1.系统需求随着社会的发展,电子商务成为了一个热门的话题,而网上购物已经成为当今社会一种比较流行的购物方式。
网上商城系统需求规格说明书版本:1.0系统版本变更记录目录1.简介 (4)1.1开发背景 (4)1.2目的 (4)1.3业务范围 (4)1.4参考文档 (4)2.约束及假定 (5)2.1 软件运行环境以及技术约束 (5)2.1.1 软件约束 (5)2.1.2 硬件约束 (5)2.2 交付及部署约束 (5)3薪酬发放流程(主要业务流程) (6)4 系统角色模型 (7)5 系统任务模型(总体任务模块) (8)6 缩写、数据字典、与规则 (9)7 功能性需求描述 (11)8 用例描述(含用例图,用例规约,用例事件流图) (12)9 需求优先级表 (20)10 非功能性需求描述 (21)1.简介1.1开发背景系统名称:网上商城系统;系统用户是负责此系统管理的系统管理员,使用此系统的游客及商城会员;1.2目的本文档定义了网上商城系统的详细需求,明确了网上商城系统的功能内容、功能边界、开发途径。
1.3 业务范围网上商城购物系统是为了方便顾客购物而开发出来。
包括用户购物、用户注册、修改个人信息、对商品评价。
以及管理员对商品信息管理、公告信息管理、订单管理、普通用户信息管理等功能。
网上商城系统是一个web应用形式(B/S),可以通过互联网进行访问。
1.4参考文档2.约束及假定2.1 软件运行环境以及技术约束2.1.1 软件约束网上商城系统采用Java技术进行开发。
开发及运行的软件环境为:●Java开发包JDK:jdk1.6.0_10-windows版●应用服务器Tomcat:apache-tomcat-6.0.18●数据库SQL:sql2005-windows版●开发框架Struts:Struts2.0.14●ORM工具Hibernate:Hibernate3.22.1.2 硬件约束Web服务器及数据库服务器均采用SONY(2.5G HZ)笔记本电脑。
内存4GB、硬盘320G。
2.2 交付及部署约束网上商城系统要在两个月内开发完成,交付时要以独立的war文件作为应用程序发布形式。
项目编号:01<正大软件项目管理系统>项目开发计划version:项目承担部门:软件一系.net项目组撰写人(签名):郑孝宗完成日期:2007年7月23日本文档使用部门:□主管领导□项目组□客户(市场)□维护人员□用户评审负责人(签名):评审日期:普耀科技公司,2007 修订历史记录copyright ? 重庆正大普耀科技有限公司, all right reserved 目录1. 引言.............................................................................. ........................................................ 1 1.1编写目的 ............................................................................. ................................................ 1 1.2项目简介 ............................................................................. ................................................ 1 1.2.1项目名称 ............................................................................. ............................................. 1 1.2.2产品标识 ............................................................................. ............................................. 1 1.2.3项目背景 ............................................................................. ............................................. 1 1.3定义 ............................................................................. ....................................................... 1 1.4参考资料 ............................................................................. ................................................ 1 2 项目概述.............................................................................. ................................................. 1 2.1 2.2 2.3 2.4 工作内容.............................................................................. .......................................... 2 项目进度和资源 ............................................................................. ................................ 2 交付项和非交付项.............................................................................. ............................ 2 其他需求与约束 ............................................................................. .. (2)3. 项目组织和资....................................... 2 3.1 项目组织.............................................................................. .......................................... 2 3.2 项目资源.............................................................................. ............ 错误!未定义书签。
ISO13485标准(DOC 41页)部门: xxx时间: xxx整理范文,仅供参考,可下载自行编辑前言 (3)0引言 (4)0.1总则 (4)0.2过程方法 (4)0.3与其他标准的关系 (4)0.4与其它管理体系的相容性 (5)1范围 (5)1.1总则 (5)1.2应用 (5)2引用标准 (6)3术语和定义 (6)4质量管理体系 (7)4.1总要求 (7)4.2文件要求 (8)5管理职责 (9)5.1管理承诺 (9)5.2 以顾客为关注焦点 (9)5.3 质量方针 (9)5.4 策划 (10)5.5职责、权限和沟通 (10)5.6管理评审 (10)6资源管理 (11)6.1资源提供 (11)6.2人力资源 (11)6.3 基础设施 (12)6.4 工作环境 (12)7产品实现 (12)7.1产品实现的策划 (12)7.2与顾客有关的过程 (13)7.3 设计和开发 (13)7.4采购 (15)7.5生产和服务提供 (16)7.6监视和测量装置的控制 (18)8测量、分析和改进 (19)8.1总则 (19)8.2监视和测量 (19)8.3不合格品的控制 (20)8.4数据分析 (20)8.5改进 (21)附录A (22)附录B (26)参考文献目录 (50)本标准等同采用ISO13485:2003《医疗器械质量管理体系用于法规的要求》本标准将取消并代替YY/T0287:1996和YY/T0288:1996。
过去使用YY/T0288:1996的组织可以按照1.2条,通过删减某些要求来使用本标准。
由于任何标准都会被修订,本标准出版时,本标准引用文件的最新的版本(包括任何修改)适用。
本标准是一个以GB/T19001为基础的独立标准,并遵循了ISO9001 GB/T19001的格式。
为了方便医疗器械行业的使用者,在本标准的正文中,与GB/T19001不同的内容采用黑色宋体字表示。
本标准中所加的“注”是为英文版国际标准的使用者所提供的附加信息,为等同采用国际标准,本标准仍保留了这些内容。
系统设计目录系统成员:余凯、胡威、周飞虹、陈建、王泽荃、樊钊文档变更第1章引言1.1编写目的----------------------------------------------------------------------------------------31.2系统背景介绍-----------------------------------------------------------------------------------31.3定义-----------------------------------------------------------------------------------------------31.4参考资料-----------------------------------------------------------------------------------------4第2章系统结构2.1系统软件体系架构(基于B/S模式,C/S模式)--------------------------------------------------42.2系统功能模块层次图--------------------------------------------------------------------------------42.3 系统子模块清单--------------------------------------------------------------------------------------52.4 功能需求与程序的关系----------------------------------------------------------------------------5第3章数据库设计3.1数据实体描述------------------------------------------------------------------------------------------53.2实体之间的关系--------------------------------------------------------------------------------------63.3数据库表结构设计-----------------------------------------------------------------------------------6第4章系统功能设计4.1用户管理功能设计----------------------------------------------------------------------------74.1.1 功能描述-------------------------------------------------------------------------------------74.1.2 模块主要功能-------------------------------------------------------------------------------74.1.3 性能-------------------------------------------------------------------------------------74.1.4 输入项()------------------------------------------------------------------------------------74.1.5 输出项-----------------------------------------------------------------------------------------74.1.8逻辑流程(流程图\PAD图等)---------------------------------------------------------------84.1.9 接口---------------------------------------------------------------------------------------------84.1.10 存储分配-------------------------------------------------------------------------------------84.1.11 注释设计-------------------------------------------------------------------------------------84.1.12 限制条件--------------------------------------------------------------------------------------84.1.13 测试计划--------------------------------------------------------------------------------------94.1.14 尚未解决的问题----------------------------------------------------------------------------104.2主页面功能设计----------------------------------------------------------------------------------104.2.1 功能描述----------------------------------------------------------------------------------------104.2.2 模块主要功能----------------------------------------------------------------------------------104.2.3 性能----------------------------------------------------------------------------------------------104.2.4 接口-----------------------------------------------------------------------------------------------104.2.5测试计划------------------------------------------------------------------------------------------114.2.6 尚未解决的问题--------------------------------------------------------------------------------114.3后台功能设计--------------------------------------------------------------------------------------114.3.1 功能描述------------------------------------------------------------------------------------------114.3.2 模块主要功能------------------------------------------------------------------------------------114.3.3 性能------------------------------------------------------------------------------------------------114.3.4 接口------------------------------------------------------------------------------------------------12第5章系统接口设计5.1用户接口-----------------------------------------------------------125.2 外部接口-----------------------------------------------------------------------------------------125.3 内部接口------------------------------------------------------------------------------------------12 第6章系统界面设计6.1用户登录界面-------------------------------------------------------136.2用户修改界面-------------------------------------------------------146.3用户注册界面-------------------------------------------------------15第7章系统出错处理设计7.1出错信息及补救措施---------------------------------------------------------------------------167.2系统维护设计------------------------------------------------------------------------------------16第一章引言1.1编写目的目的是为了设计大学生交友网站的软件结构,即将本网站的需求规格转换为体系结构,划分出程序基本模块的组成,确保模块间的相互关系,并确定系统的数据结构。
问题描述:已知一公司有10种产品(产品编号,产品名称,产品价格,产品产地,库存数量(最开始为1000个)),设计一程序,完成以下功能:1)1)销售:从键盘输入顾客姓名,销售数量、销售日期,实现销售功能。
需要判断产品是否存在,销售数量是否小于库存数量,销售日期格式是否合法(格式为:YYYY-MM-DD,如2009-01-02))2)2)能根据产品编号查询产品的销售历史3)3)计算时间段内各个产品的销售总额4)4)能根据顾客姓名,查询购买历史5)5)能显示所有顾客的姓名提示:●●定义一个日期结构体保存日期,具体信息为:年、月、日●●判断存款日期和取款日期的格式是否合法时,需要判断长度是否为10,第5位和第8位是否为’-’,字符,将1-4位表示的年份,6-7位表示的月份,9-10位表示的日期分别转换成整数。
判断是否满足构成日期的条件闰年月份只能是1-12之间的数,如果是闰年,二月可以是29天否则不能大于28,1,3,5,7,8,10,12月可以是31天,其余只能小于等于30(建议写成函数)。
●●定义一个结构体数组保存10种产品信息,具体信息为:产品编号,产品名称,产品价格,产品产地,库存数量(最开始为1000个)●●定义一个链表,保存销售信息,具体为:顾客代码,销售数量、销售日期。
●●定义一个链表保存顾客信息,具体为:顾客代码,顾客姓名●●当输入销售信息时查询顾客链表,如果在链表中存在该姓名的顾客记录,则将其代码在该销售链表中插入一条记录,如果不存在,则在顾客链表中插入一条记录,#include "stdlib.h" /*标准库函数*/#include "string.h"/*字符串函数*/#include "ctype.h" /*字符操作函数*/#include "time.h" /*时钟函数*/#include "cstdlib"#include "conio.h"int x,k;/*定义全局变量用于保存当前商品种类*/struct product /*定义商品数据结构*/{int num;/*商品编号*/char name[20];/*商品名称*/float price;/*商品售价*/char place[10];/*商品名称*/int storage;/*商品库存*/}_product[10],product1[10];//定义主结构体数组和备用结构体数组struct data//定义日期结构体{int year,month,day;};struct sell /*定义销售数据结构*/{int cus;/*顾客代码*/int num;/*商品编号*/float sells;/*销售数量*/char data1[12];/*日期*/struct sell *next;}*head_s,*pp,*tail_s;//定义头指针操、作指针以及尾指针struct customer /*定义销售数据结构*/{int cus;/*顾客代码*/char name[10];/*顾客姓名*/struct customer *next;}*head_c,*qq,*tail_c;//定义头指针操、作指针以及尾指针void load();//读取文件函数void add();//添加销售信息函数int search_num();//根据商品编号查询商品的销售历史void cal();//计算时间段内各个商品的销售总额int search_name();//根据顾客姓名,查询购买历史void list_name();//显示所有顾客的姓名void main();//主函数int judge();//主体判断函数int judge_data(char*data1);//细节判断函数,用于判断日期是否合法void download_s();//写入销售信息(顾客代码,销售数量、销售日期)文件void download_c();//导出顾客购买记录void display();//显示现在的商品信息//主函数void main(){int choice;struct customer * head;//定义结构指针head=malloc(sizeof(struct customer));//申请动态存储空间head->next=NULL;do{printf("***********************欢迎使用商品销售管理系统!!!*******************\n\n");printf("1. 导入商品信息\n");printf("2. 显示商品信息\n");printf("3. 输入销售记录记录\n");printf("4. 按编号查寻商品销售历史\n");printf("5. 计算时间段内各个销售总额\n");printf("6. 按顾客姓名查找购买历史\n");printf("7. 显示顾客姓名\n");printf("8. 导出销售信息(顾客代码,销售数量、销售日期)文件\n");printf("9. 导出顾客信息文件\n");printf("0. 退出\n");printf("************************************* **********************************\n");printf("请选择不同功能输入0----9的数字\n 若输入其它值会提前退出\n");scanf("%d",&choice);system("cls");switch(choice){case1:load();system("cls");break;case2:display();break;case3:add();break;case4:search_num();break;case5:cal();break;case6:search_name();break;case7:list_name(head);break;case8:download_s();break;case9:download_c();break;case0:printf("\n\n\n\n");printf("*************谢谢使用************\n\n\n\n");break;}}while(choice>0&&choice<=9);}void display(){int code,i=0;pp=(struct sell *)malloc(sizeof(struct sell));//申请动态存储空间并将指针转变为结构类型qq=(struct customer *)malloc(sizeof(struct customer));//申请动态存储空间并将指针转变为结构类型pp->next=NULL;qq->next=NULL;system("cls");/*清屏*/printf("**************************商品信息**************************\n\n\n");printf(" 商品编号商品名称商品价格商品产地库存数量\n");while(i<10){//输出商品记录printf("%8d%12s %12.2f%10s%14d\n",_product[ i].num,_product[i].name,_product[i].price,_product[i].place,_product[i].sto rage);i++;}printf("\n\n查询完毕,请按任意键继续......");getch();system("cls");}void load(){//读取文件函数int i=0,n=0,a,b,j;FILE *fp;//指向文件的指针do{printf("请选择导入商品信息的方法\n1:通过键盘输入\n2:通过文件导入\n");scanf("%d",&a);if(a==2){if((fp=fopen("商品信息.txt","rb"))==NULL)//打开文件{printf("不能打开文件,请检查文件路径\n");//不能打开exit(0);//退出*/}printf("*****************88商品信息88*******************\n");printf("编号名称价格产地库存数量\n");while(!feof(fp)){//读入文件fscanf(fp,"%d%s%f%s%d",&_product[i].num,_prod uct[i].name,&_product[i].price,_product[i].place,&_product[i].storage );printf("%-10d%-10s %-10.2f%-12s%-12d\n",_prod uct[i].num,_product[i].name,_product[i].price,_product[i].place,_prod uct[i].storage);i++;}for(i=0;i<10;i++)product1[i]=_product[i];//对备用结构体数组赋值fclose(fp);//关闭文件printf("\t\t数据读入成功!按任意键继续......\n");}if(a==1){if((fp=fopen("商品信息1.txt","w"))==NULL)//打开文件{printf("不能打开文件,请检查文件路径\n");//不能打开exit(0);//退出*/}printf("请输入商品种数");scanf("%d",&b);printf("*************商品信息***************\n");printf("编号名称价格产地库存数量\n");for(j=1;j<=b;j++){scanf("%d%s%f%s%d",&_product[i].num,_product[i].name,&_ product[i].price,_product[i].place,&_product[i].storage);fprintf(fp,"%-6d%-6s%-6.2f%-6s%-6d\n",_product[i].num,_ product[i].name,_product[i].price,_product[i].place,_product[i].stora ge);}fclose(fp);//关闭文件printf("\t\t数据读入成功!按任意键继续......\n");}}while(a!=1&&a!=2);}//细节判断函数,用于判断日期是否合法int judge_data(char*data1){intn=1,m,year=(data1[0]-48)*1000+(data1[1]-48)*100+(data1[2]-48)*10+(dat a1[3]-48),month=(data1[5]-48)*10+(data1[6]-48),day=(dat a1[8]-48)*10+(data1[9]-48);m=strlen(data1);if(m!=10)n=0;if(data1[4]!='-'||data1[7]!='-')n=0;if(year>10000||year<1000||month>12||month<1||day>31||day< 1) n=0;if(((year%4==0&&year%100!=0)||(year%400==0))&&month==2)if(day>30) n=0;if(month==2&&day>=29) n=0;if(month==4||month==6||month==9||month==11)if(day>30) n=0;return n;}//判断函数int judge()//判断商品编号数量日期是否正确{int i,j=0,k,temp;for(i=0;i<10;i++)if(pp->num==_product[i].num){j++;x=k=i;temp=_product[k].storage;if((_product[k].storage-(int)pp-> sells)>=0)_product[k].storage-= (int)pp->sells;//判断计算剩余量break;}if(j==0)return3;//判断是否存在输入编号的商品else if(temp-(int)pp->sells<0)return2;//判断输入量是否大于剩余库存量elseif(pp->sells-(int)pp->sells>=1e-6)return4;//商品量elseif(judge_data(pp->data1)==0)return0;//判断日期else return1;//完全正确}//添加销售信息函数void add(){int code,i=0,n,m;pp=(struct sell *)malloc(sizeof(struct sell));//申请动态存储空间并将指针转变为结构类型qq=(struct customer *)malloc(sizeof(struct customer));//申请动态存储空间并将指针转变为结构类型srand(time(0));code=rand();pp->next=NULL;qq->next=NULL;system("cls");/*清屏*/printf("请输入销售记录\n\n\n");/*提示输入记录*/printf("顾客姓名商品编号销售数量销售日期\n");printf("-----------------------------------------------------------\n");scanf("%s%d%f%s",qq->name,&pp->num,&pp->sells,pp->data1);/*输入记录*/n=(int)pp->sells;if(n<=0){printf("商品数量有误!!!请从新输入");scanf("%f",&pp->sells);}while(1){m=judge();//判断商品编号数量日期是否正确if(m==1){// pp=(struct sell *)malloc(sizeof(struct sell));//申请动态存储空间并将指针转变为结构类型// qq=(struct customer *)malloc(sizeof(struct customer));pp->cus=qq->cus=code;//随机数if(head_s==NULL)head_s=pp;elsetail_s->next=pp;tail_s=pp;if(head_c==NULL) head_c=qq;else tail_c->next=qq;tail_c=qq;printf("\t\t销售信息输入成功!按任意键继续......\n");getch();system("cls");break;}else if(m==2){system("cls");printf("销售数量已大于库存数量,请重新输入:\n\n\n");printf("请输入销售数量\n\n\n");/*提示输入记录*/printf("销售数量 \n");scanf("%f",&pp->sells );/*输入记录*/continue;}else if(m==3){system("cls");printf("无此商品,请重新输入:\n\n\n");printf("请输入销售记录\n\n\n");/*提示输入记录*/printf(" 商品编号\n");scanf("%d",&pp->num);/*输入记录*/continue;}else if(m==4){system("cls");printf("商品数量输入错误,请重新输入商品数量:\n\n\n");printf("请输入销售记录\n\n\n");/*提示输入记录*/printf("销售数量:\n");scanf("%f",&pp->sells );/*输入记录*/continue;}else if(m==0){system("cls");printf("销售日期不合法,请重新输入销售日期:\n\n\n");/*提示输入记录*/printf("销售日期\n");scanf("%s",pp->data1) ;/*输入记录*/continue;}k++;}}//根据商品编号查询商品的销售历史search_num(){int i,num,k=0,flag=1,n=0;struct sell * ptr;system("cls");printf("请输入商品编号:\n");scanf("%d",&num);for(i=0;i<10;i++)if(num==_product[i].num){flag=0;break;}if(flag==1){ system("cls");printf("无此商品,请查实商品编号后按任意键准备重新输入!!!");getch();system("cls");return0;}for(ptr=head_s;ptr;ptr=ptr->next)if(num==ptr->num){if(k==0){printf("商品编号销售数量销售总额销售日期\n");printf("-----------------------------------------------------------\n");k++;}printf("%5d%20d%20.2f%15s\n",pt r->num,(int)ptr->sells,(int)ptr->sells*_pr oduct[i].price,ptr->data1);}if(k==0){printf("该商品记录为空!!!按任意键继续......");getch();system("cls");return0;}else{printf("\n\n查询完毕,请按任意键继续......");getch();system("cls");return0;}}//计算时间段内各个商品的销售总额void cal(){int i,n=0;struct sell s1,s2,*p=&s1,*q=&s2,*ptr;system("cls");printf("请输入开始日期:");scanf("%s",p->data1);system("cls");do{if(judge_data(pp->data1)!=1){ printf("输入日期不合法,请重新输入:");scanf("%s",p->data1);system("cls");n=1;}elsen=0;}while(n==1);printf("请输入结束日期:");scanf("%s",q->data1);system("cls");do{if(judge_data(q->data1)!=1){ printf("输入日期不合法,请重新输入:");scanf("%s",q->data1);system("cls");n=1;}elsen=0;}while(n==1);printf("销售记录如下:\t\t时间:%s至%s\n",p->data1,q->data1);printf("\n\n\t\t商品编号销售总额\n");printf("\t\t---------------------------\n\n");for(ptr=head_s;ptr;ptr=ptr->next){for(i=0;i<10;i++)if(product1[i].num==p tr->num)break;product1[i].storage-=(int)ptr->se lls;}for(i=0;i<10;i++)printf("\t\t%2d\t\t%.2f\n",product1[i].num,pr oduct1[i].price*(1000-product1[i].storage));printf("\n\n查询完毕,请按任意键继续......");getch();system("cls");}//根据顾客姓名,查询购买历史int search_name(){int i,k=1;char name[10];struct customer * ptr1;struct sell * ptr2;system("cls");printf("请输入顾客姓名:\n");scanf("%s",name);for(ptr1=head_c;ptr1;ptr1=ptr1->next){for(ptr2=head_s;ptr2;ptr2=ptr2->next)if(ptr1->cus==ptr2->cus)break;for(i=0;i <10;i++)if(ptr2->num==_product[i].num)break;if(strcmp(name,ptr1->name)==0){// if(k==0||k%8==0){printf("顾客姓名顾客代码商品编号购买数量购买总额购买日期\n");--------------------------------------------------------------------------------\n");}printf("%2s%15d%15d%10d%15.2f%1 5s\n",ptr1->name,ptr1->cus,ptr2->num,(int)ptr2->sells,((int)ptr2->sel ls)*product1[i].price,ptr2->data1);//k++;}k=0;}if(k==0){printf("不存在此顾客!!!按任意键继续......");system("c ls");return0;}else{printf("\n\n查询完毕,请按任意键继续......");getch();system("cls");return0;}}//显示所有顾客的姓名void list_name(){int n=1;struct customer * ptr;system("cls");if(head_c!=NULL)//判断链表是否为空{printf("顾客姓名如下:\n");//用来显示所有顾客的姓名for(ptr=head_c;ptr;ptr=ptr->next){ printf("\t\t%s\n",ptr->name);n++;}printf("\n\n顾客姓名查询完毕,请按任意键继续......");getch();system("cls");}else{printf("顾客链表为空!!!请按任意键继续......");getch();system("cls");}}void download_s()//写入销售信息(顾客代码,销售数量、销售日期)文件{int i=0;FILE *fp;struct customer *ptr1;struct sell *ptr2;system("cls");if((fp=fopen("销售信息文件.txt","w"))==NULL){ printf("销售信息文件无法生成!\n");exit(0);}if(qq!=NULL){fprintf(fp," 顾客代码销售数量购买日期\n");for(ptr1=head_c;ptr1;ptr1=ptr1->next){for(ptr2=head_s;ptr2;ptr2=ptr2->ne xt)if(ptr1->cus==ptr2->c us){for(i=0;i< 10;i++)if(ptr2->num==_product[i].num)break;break;}fprintf(f p,"%8d%10d %10s\n",ptr1->cus,(int)ptr2->sells,ptr2->da ta1);}fclose(fp);printf("文件保存完毕!“销售信息文件.txt”文件.\n");printf("按任意键继续......\n");getch();system("cls");}else{printf("顾客记录为空!!!按任意键继续......");getch();system("cls");}}void download_c()//导出顾客购买记录{int i=0;FILE *fp;struct customer *ptr1;struct sell *ptr2;system("cls");if((fp=fopen("顾客信息文件.txt","w"))==NULL){ printf("顾客信息文件无法生成!\n");exit(0);}if(qq!=NULL){fprintf(fp,"顾客姓名顾客代码\n");for(ptr1=head_c;ptr1;ptr1=ptr1->next){for(ptr2=head_s;ptr2;ptr2=ptr2->ne xt)if(ptr1->cus==ptr2->c us){for(i=0;i< 10;i++)if(ptr2->num==_product[i].num)break;break;}fprintf(f p,"%5s%10d\n",ptr1->name,ptr1->cus);}fclose(fp);printf("文件保存完毕!“顾客信息文件.txt”文件.\n");printf("按任意键继续......\n");getch();。