超市商品管理系统含报告

合集下载

超市管理系统分析报告

超市管理系统分析报告

超市管理系统分析报告1. 引言超市作为零售行业的重要一环,面临着大量的商品管理、库存管理、销售数据分析等挑战。

为了提高超市的运营效率和管理水平,开发一套高效可靠的超市管理系统势在必行。

本文将从需求分析、系统设计、开发实施等方面进行分析,以期为超市管理系统的建设提供参考。

2. 需求分析2.1 功能需求超市管理系统的主要功能包括商品管理、进货管理、库存管理、销售管理等。

通过系统,管理员可以方便地对商品信息进行添加、修改和删除,并能够及时地了解商品的库存情况。

超市员工可以通过系统进行进货操作,并根据销售情况进行库存调整。

此外,系统还应支持销售数据的统计和分析,以便超市管理者能够了解销售趋势和盈利情况。

2.2 性能需求超市管理系统需要具备良好的性能,能够处理大量的商品信息和销售数据。

系统应具备快速响应的特性,以确保用户能够在短时间内完成各项操作。

同时,系统还需要具备较高的稳定性和可靠性,以防止数据丢失和系统崩溃。

2.3 安全需求由于超市管理系统涉及到商品信息和销售数据等敏感信息,因此系统需要具备较高的安全性。

系统应采用合适的身份验证机制,确保只有授权用户能够访问系统。

此外,系统还应具备数据备份和恢复的功能,以防止数据丢失或损坏。

3. 系统设计3.1 系统架构超市管理系统采用三层架构,分为表示层、业务逻辑层和数据访问层。

表示层负责与用户进行交互,展示商品信息、销售数据等内容。

业务逻辑层负责处理用户的请求,进行商品管理、进货管理、库存管理等操作。

数据访问层负责与数据库进行交互,实现数据的存取功能。

3.2 数据库设计超市管理系统的数据库采用关系型数据库,以存储商品信息、库存数据和销售数据等内容。

数据库中的主要表包括商品信息表、库存表和销售表。

商品信息表包含商品的名称、价格、描述等信息;库存表包含商品的库存数量和进货时间等信息;销售表包含销售记录、销售数量和销售时间等信息。

3.3 用户界面设计超市管理系统的用户界面应简洁明了,方便用户进行操作。

超市商品管理系统 实验报告

超市商品管理系统 实验报告

电子科技大学信息与软件工程学院实验报告(实验)课程名称C语言程序设计电子科技大学教务处制表电子科技大学实验报告学生姓名:学号:指导教师:实验地点:实验时间:一、实验室名称:通用计算机软件实验室二、实验项目名称:超市商品信息管理系统三、实验学时:8学时四、实验原理:使用Visual Studio等C语言集成开发环境(IDE),在微型计算机上对程序进行编辑、编译、连接与运行。

通过上机练习掌握在C编译器中编辑、编译、连接、和运行C程序的方法和过程。

五、实验目的:掌握C语言中函数、结构体、指针数组、指针、字符串、文件操作等重点知识点,并且能够熟练运用。

掌握用C语言实现小型交互式软件的技术方法。

理解模块化编程的思路,学会用模块化的思想分解实际问题。

六、实验内容:以文本形式建立一个超市商品的基本信息库,其中包括商品序号,名称,价格,折扣,总数,余数等;编写C程序,读入文件并用结构存储商品信息,其中序号,名称,价格,折扣等结构成员采用字符串数组存储信息,而总数及余数则采用整型变量存储;编写函数,实现软件界面控制,商品信息初始化,商品信息的查找,修改,增删等操作;其中info_search函数实现用名称查找商品并调用info_output函数输出商品信息,info_insert函数和info_dele函数则实现商品信息的插入和删除,info_change调用info_search函数确认商品存在并实现对商品信息的修改;最后,退出系统,并将商品信息写入到商品信息文件,释放所有已分配的内存。

七、实验器材(设备、元器件):硬件要求:pc机,CPU PII 以上,64M 内存,100M 硬盘空间即可。

软件要求:Windows 7/XP/2003等,包括C编译器的IDE。

八、实验步骤、实验编程与运行结果:实验代码见文件2014220701027-陈家浩.c步骤一、打开程序,运行:(运行程序成功则表明商品信息文件被成功读入,失败会有提示)步骤二、实现商品信息的修改过程:输入要删除的商品的名字,然后info_change函数调用info_search函数查找到商品信息,然后进行修改;未查找到则提示“该商品不存在!”。

超市管理信息系统分析报告

超市管理信息系统分析报告

超市管理信息系统分析报告一、系统开发背景作为国内市场的一些中小型超市,它们在信息化过程中的步伐要落后于大中型超市,而对于这些企业的资源管理,信息的存储和处理也显得迫切需要,要适应市场竞争,就需要有高效的处理方式和管理方法,因此加快超市的信息化进程是必可少的。

我国超市形成在20世纪90年代初期,现在已经成为我国零售业的一种重要形态。

随着超市高速的发展,其经营管理也变得愈加复杂,早期的售货员站柜台的形式早已不能满足现有销售也的发展,这样就迫切地需要引入新的管理技术。

中商平价光谷购物广场位于武汉市洪山区珞瑜路453号,关山三路光谷国际写字楼的1-3层,于2006年正式营业。

超市商品总类达3万多种,几乎覆盖了国内外各种商品。

随着超市规模的发展不断扩大,商品数量急剧增加,有关商品的各种信息量也成倍增长。

超市时时刻刻都需要对商品各种信息进行统计分析。

加快网络信息化建设,对超市的运行和发展,迫在眉睫。

二、系统开发必要性POS(Point Of Sale)机管理系统经过20年的发展,在当今竞争激烈、物品多样化的卖方市场的情况下,已经不能适应快速反应信息、快速组织货物,提高资金周转效率等发展要求了,造成许多人力、物力和财力的浪费。

超市管理信息系统分析与设计,针对超市的具体需求,在对超市原有的业务流程进行规范、整合之后,结合超市发展的新要求进行设计和开发的。

系统上线后,可以轻松解决超市在商品流管理、物流管理、人力资源管理、信息流管理等一系列问题,迅速提高超市经营管理水平,实现稳固客户群,增加经济效益,提高商业零售竞争力的目标。

三、可行性分析经济可行性经营产品的经销商或者是商家都要求有雄厚的资金支持。

所以,在系统的开发过程中,企业完全有能力承担开发费用。

因为通过网络传递销售信息可以不受距离的限制,因此可以节约许多的人力和物力,方便管理,由此可以减少不必要的开支,同时该系统可以提高超市的销售效率,即提高了超市的经济效益,所以从经济上完全是可行的。

超市管理系统设计报告

超市管理系统设计报告

超市管理系统设计报告一、引言超市作为零售业的重要一环,在现代社会中扮演着重要的角色。

随着科技的发展和人们生活水平的提高,超市管理系统的设计和实施变得尤为关键。

本文将介绍一个基于云计算的超市管理系统的设计。

二、系统概述超市管理系统是一个基于云计算的综合管理平台,用于实现超市日常运营的各种管理操作。

该系统包括以下几个主要模块:商品管理、库存管理、销售管理、顾客管理、员工管理以及报表统计等。

通过集中管理和自动化处理,该系统能够提高超市的管理效率,降低运营成本。

三、系统功能模块1. 商品管理该模块用于管理超市的商品信息,包括商品的分类、名称、价格、库存等。

管理员可以对商品进行增加、删除、修改和查询等操作,并且可以根据销售情况进行智能推荐,提高商品的销售量。

2. 库存管理库存管理模块用于记录和监控超市的库存情况。

系统能够实时更新库存信息,并自动生成库存报表。

当库存数量低于预设阈值时,系统还能够发出库存预警通知,方便管理员及时补充货物。

3. 销售管理超市销售管理是系统的核心模块之一。

它能够实时记录销售信息,包括销售时间、商品种类、数量、价格等。

通过与商品管理和库存管理模块的联动,系统能够自动更新库存信息,并实时生成销售报表。

管理员可以通过该模块对销售情况进行分析和统计,以便制定更合理的经营策略。

4. 顾客管理顾客管理模块用于记录和管理超市的顾客信息。

系统能够自动识别顾客并分配唯一标识,方便管理员进行顾客管理和定制化服务。

同时,系统还能够记录顾客的购买历史,为顾客提供个性化推荐和专属优惠。

5. 员工管理员工管理模块用于管理超市的员工信息和工作安排。

系统能够记录员工的工作时间、工作内容和绩效等信息,并自动生成工资报表。

管理员可以通过该模块对员工进行排班和考勤管理,提高工作效率和员工满意度。

6. 报表统计报表统计模块用于生成各种统计报表,包括销售分析报表、顾客消费报表、库存报表等。

这些报表能够提供给管理员全面的数据支持,帮助其进行业务决策和经营优化。

学校超市管理系统分析报告

学校超市管理系统分析报告

学校超市管理系统分析报告一.现性系统调查和分析报告目标分析:超市管理系统依靠现代化的计算机信息处理技术来管理超市, 以求节省大量的人力、物力, 改善了员工的工作条件, 减轻了劳动强度, 并且能够快速反映出商品的进、销、存等状况和各种反馈信息分析, 使管理人员快速对市场的变化做出相应的决策, 加快超市经营管理效率。

存在问题分析:现行系统对于商品的管理以及对商品信息的提供和实时跟踪上不够详细, 并且对于消费者的知情权有着蒙蔽的弊害。

现行系统对于员工管理方面不够详细, 容易把员工的消息泄漏。

环境分析:由于是学校的超市的系统, 因此所处环境较为小众, 不面向广大的群体, 仅仅是对学生, 老师以及部分家长。

因此每日的货物商品吞吐量并不大, 因此对于系统要求不大。

新系统功能、数据与流程需求分析:新系统在功能上增加了对货物商品的跟踪报告, 能更快的对库存商品进行实时更新, 并且在员工管理上更为严谨, 也更为规范鲜明。

在数据上表现的更加简洁明了, 一目了然, 更新也更为迅速, 传递速度更加快速, 表现张力更强。

在流程上更加简单明了, 抛弃了以往的冗杂。

2.新系统逻辑模型设计报告1.新系统目标:克服现行系统的所以缺点, 并且在可以条件允许的情况下, 对员工进行单个的指导交流, 可以更好的对员工进行辅导。

2.新系统功能模型和功能说明:(1)进货业务进货管理是企业生产经营活动中及其重要的一环, 它关系到产品质量能否得到保证, 生产是否能够顺利进行, 采购成本能否得到有效控制等问题。

企业现代管理理念中对企业的进货管理提出新的要求;企业进货时对供货商的选择更见慎重, 双方不再是讨价还价的买卖关系, 而是一种相互依存的合作伙伴关系, 并且还需要认识到企业产品质量要从采购抓起, 这就关系到供方的供货、服务质量。

下面是进货业务程序的主要内容:供货商的情况调查: 在实施采购之前, 超市首先就要对市场上各大商品供货商进行详细的调查, 了解公司的具体情况, 评定企业的信誉级别和公司的市场口碑, 做到准确无误, 采购顺利。

《软件工程》超市商品管理系统设计报告

《软件工程》超市商品管理系统设计报告
2、 数据的准确性和精度
数据的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而使系统的工作失去意义。数据的输入来源是手工输入。手工输入要通过系统界面上的安排系统具有容错性,并且对操作人员要进行系统的培训。
3、数据的保持时间
在系统中数据未被管理员修改之前,数据应保持不变。
性能需求
于十秒,登录并更新数据时间正常情况下少于五秒。
4、适用性
该系统软件适用于windows操作系统。
2.2
硬件环境:服务器、CPU为Intel(R) Core(TM)2 Duo Cpu E7400 @ 2.8GHz,主存容量为4GB,硬盘空间为1TB
软件环境:操作系统为windows
2.3
2.
该系统的模块划分如下所示:
模块名
输入
输出
性能要求
销售管理模块
前台销售信息和库存信息
销售清单、销售排行榜
能快正确地通过销售信息和库存信息,获得销售清单,进行排行
进货管理模块
进货清单、采购清单
更新后的库存清单
通过进货清单和采购清单,对数据库进行准确地更新
数据库管理模块
用户查询信息要求
用户希望得到的信息
能够将信息准确地反映给用户
2.3.3
*分支2:
*
*
**/
c.对各变量的功能、范围、缺省条件等所加的注释;
在该语句后注释//注释
d.对使用的逻辑所加的注释等等。
/**
*注释
**/
4.11
(无)
4.12
5.1
该模块将超市中的各种信息管理起来,用于超市定期进行利润计算、查看各商品的剩余量等各种有关超市的信息,防止其丢失。

c语言超市商品管理系统实训报告

c语言超市商品管理系统实训报告

超市商品管理系统实训报告1. 背景超市商品管理系统是为了提高超市的商品管理效率和服务质量而开发的一款软件系统。

传统的超市商品管理方式通常依赖于人工操作,存在着工作效率低下、易出错、信息不及时等问题。

为了解决这些问题,我们开发了一套基于C语言的超市商品管理系统。

2. 分析2.1 系统需求分析在进行系统设计之前,我们首先对超市商品管理的需求进行了全面的分析。

通过与超市管理员和员工的沟通和访谈,我们得出了以下主要需求:•商品信息管理:包括商品的录入、修改、查询和删除等功能。

•库存管理:包括库存数量的统计、调整和报警等功能。

•销售管理:包括销售记录的录入、查询和报表生成等功能。

•会员管理:包括会员信息的录入、修改、查询和积分计算等功能。

2.2 系统设计思路基于以上需求分析,我们设计了一套简单而实用的超市商品管理系统。

该系统采用模块化设计,分为以下几个模块:•商品信息模块:负责处理商品信息的录入、修改、查询和删除等操作。

•库存管理模块:负责处理库存数量的统计、调整和报警等操作。

•销售管理模块:负责处理销售记录的录入、查询和报表生成等操作。

•会员管理模块:负责处理会员信息的录入、修改、查询和积分计算等操作。

系统采用了文件存储方式,将商品信息、库存信息、销售记录和会员信息保存在不同的文件中,以便于数据的读取和修改。

系统还提供了简单的用户界面,方便管理员和员工进行操作。

3. 结果经过系统设计和开发,我们成功实现了超市商品管理系统。

该系统在测试中表现良好,满足了超市商品管理的基本需求,并具备以下特点:•界面友好:系统采用简洁直观的用户界面,方便用户进行操作。

•功能完善:系统实现了商品信息管理、库存管理、销售管理和会员管理等多个功能模块。

•数据准确:系统通过文件存储方式,保证数据的准确性和可靠性。

•操作简便:系统提供了简单易用的操作方式,降低了用户学习成本。

4. 建议虽然超市商品管理系统已经取得了一定的成果,但仍存在改进空间。

超市管理系统实践报告

超市管理系统实践报告

超市管理系统实践报告在当今竞争激烈的商业环境中,超市作为人们日常生活中不可或缺的购物场所,其管理的高效性和科学性至关重要。

为了提升超市的运营效率、优化顾客体验、实现精准的库存管理和营销策略,我们引入并实施了一套先进的超市管理系统。

通过一段时间的实践应用,该系统为超市的管理带来了显著的变革和提升。

一、超市管理系统的概述我们所采用的超市管理系统是一款集商品管理、库存管理、销售管理、员工管理、财务管理和客户关系管理等多个模块于一体的综合性软件。

它采用了先进的数据库技术和网络技术,能够实现数据的实时共享和快速处理,为超市的管理者提供了全面、准确、及时的信息支持。

二、系统的功能与特点1、商品管理系统提供了完善的商品信息管理功能,包括商品的名称、规格、价格、供应商、库存数量等。

管理者可以方便地对商品进行分类、编码和查询,同时还能够快速地更新商品信息,确保商品数据的准确性和及时性。

2、库存管理库存管理是超市运营的关键环节之一。

该系统能够实时监控库存水平,当库存低于设定的预警值时,系统会自动发出提醒,便于及时补货。

此外,系统还支持库存盘点和调整,大大提高了库存管理的效率和准确性。

3、销售管理系统能够准确记录每一笔销售交易,包括销售时间、商品种类、销售数量、销售金额等。

通过对销售数据的分析,管理者可以了解不同商品的销售情况,从而制定更加合理的销售策略,促进销售额的增长。

4、员工管理员工管理模块可以记录员工的基本信息、工作岗位、工作时间和绩效等。

管理者可以通过系统进行排班管理、考勤管理和绩效考核,提高员工的工作效率和服务质量。

5、财务管理财务管理模块包括了采购付款、销售收款、费用管理和利润核算等功能。

系统能够自动生成财务报表,为管理者提供清晰的财务状况分析,有助于做出科学的财务决策。

6、客户关系管理通过收集和分析客户的购买记录和偏好,系统能够帮助超市实现个性化的营销和服务。

例如,向常客推送个性化的优惠券和促销活动,提高客户的满意度和忠诚度。

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

超市商品管理的设计与实现1.系统描述1.1 问题说明要求设计并实现一个简单超市商品管理系统,至少实现数据的增加、修改、删除、查询和显示相应结果,内存数据用链表组织,数据文件用文本文件,用户界面用字符界面,枚举量用枚举类型表示。

1.2 数据需求1.3 功能需求2.系统设计2.1 开发平台计算机系统:Microsoft Windows XP;开发工具:Microsoft Visual Studio 6.0;语言:C++ 2.2内存数据结构设计用单链表表示商品数据记录,链表接点定义为:struct node{ProductsInfo productsInfo;node *pnext;};其中自定义数据类型ProductsInfo定义为:struct ProductsInfo //定义超市商品的相关属性{char no[14];char name[25];float price;int num;char sort[12];};枚举菜单类型与操作类型:enum MenuType {MAINMENU, SUBMENU}; //枚举菜单类型enum FuncType {NONE, ADD, PRINT, DELETE, MODIFY,QUERY, QB_NO, QB_NAME, QB_price,QB_num, QB_sort, SA VE, EXIT}; //枚举操作类型2.3数据文件设计数据记录保存在文本文件productsInfo.txt里,利用C++流类库进行数据读写操作,每条数据记录之间换行分隔开。

2.4用户界面设计用户界面为控制台字符模式,根据功能为用户设计了主菜单与分菜单,界面友好,易于操作,主菜单如下:cout << "*&*&*&*&*&*&*&*欢迎使用商品管理系统*&*&*&*&*&*&*\n";cout << "* *\n";cout << "* 请按下面的选单进行功能选择: *\n";cout << "* (1) 添加商品记录*\n";cout << "* (2) 显示商品清单*\n";cout << "* (3) 删除一条商品记录*\n";cout << "* (4) 修改一条商品记录*\n";cout << "* (5) 查询*\n";cout << "* (6) 保存至文档*\n";cout << "* (7) 退出*\n";cout<<"*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&\n";查询功能的分菜单如下:cout << "*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*\n";cout << "* 商品信息管理系统*\n";cout << "*主菜单->查询*\n";cout << "* (1) 按商品编号查询*\n";cout << "* (3) 按商品价格查询*\n";cout << "* (4) 按商品分类查询*\n";cout << "* (5) 返回*\n";cout << "***********************************************\n";2.5具体功能设计根据功能需求分析,定义了如下功能函数:FuncType PrintMenu(MenuType which); //菜单选择函数node * CreateProList(char filename[]); //读取数据文件,建立数据链表void RemoveProList(); //撤销内存空间void RemoveQueryRes();void Save(char filename[]); //保存至文件void Print(node *pnode); //显示数据信息void Print(QueryRes *pnode);void modify(); //修改指定数据条目QueryRes * Query(ProductsInfo& productsInfo, FuncType func);//查询指定数据条目node * Add(ProductsInfo& productsInfo); //添加数据项bool Delete(); //删除指定条目ProductsInfo& GetproductsInfo(ProductsInfo& productsInfo); //从终端接收数据ProductsInfo& SetproductsInfo1(ProductsInfo& productsInfo,FuncType func);功能函数调用关系图如下:附:源程序清单//products.h//文件功能:定义超市商品的数据结构及其相关操作#include <iostream>#include <iomanip>#include <fstream>#include <string>struct ProductsInfo //定义超市商品的相关属性{char no[14];char name[25];float price;int num;char sort[12];};struct node //定义数据链表结点{ProductsInfo productsInfo;node *pnext;};struct QueryRes{node * pnode;QueryRes * pnext;};node *phead = NULL; //定义数据链表头指针QueryRes *pqueryres = NULL;enum MenuType {MAINMENU, SUBMENU}; //枚举菜单类型enum FuncType {NONE, ADD, PRINT, DELETE, MODIFY,QUERY, QB_NO, QB_NAME, QB_price,QB_num, QB_sort, SA VE, EXIT}; //枚举操作类型FuncType PrintMenu(MenuType which); //菜单选择函数node * CreateProList(char filename[]); //读取数据文件,建立数据链表void RemoveProList(); //撤销内存空间void RemoveQueryRes();void Save(char filename[]); //保存至文件void Print(node *pnode); //显示数据信息void Print(QueryRes *pnode);void modify(); //修改指定数据条目QueryRes * Query(ProductsInfo& productsInfo, FuncType func); //查询指定数据条目node * Add(ProductsInfo& productsInfo); //添加数据项bool Delete(); //删除指定条目ProductsInfo& GetproductsInfo(ProductsInfo& productsInfo); //从终端接收数据ProductsInfo& SetproductsInfo1(ProductsInfo& productsInfo,FuncType func);// products.h文件结束//products.cpp#include "products.h"using namespace std;FuncType PrintMenu(MenuType which) {FuncType func = NONE;int choice = 0;switch(which) {case MAINMENU: //主菜单选项cout << "*&*&*&*&*&*&*&*欢迎使用商品管理系统*&*&*&*&*&*&*\n";cout << "* *\n";cout << "* 请按下面的选单进行功能选择: *\n";cout << "* (1) 添加商品记录*\n";cout << "* (2) 显示商品清单*\n";cout << "* (3) 删除一条商品记录*\n";cout << "* (4) 修改一条商品记录*\n";cout << "* (5) 查询*\n";cout << "* (6) 保存至文档*\n";cout << "* (7) 退出*\n";cout<<"*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&\n";cout << "* 请选择(1-6):";cin >> choice;switch(choice) {case 1: func = ADD; break;case 2: func = PRINT; break;case 3: func = DELETE; break;case 4: func = MODIFY; break;case 5: func = QUERY; break;case 6: func = SA VE; break;case 7: func = EXIT;break;default: func = NONE; break;}break;case SUBMENU: //分菜单选项cout<<"*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*\n";cout << "* 商品信息管理系统*\n";cout << "*主菜单->查询*\n";cout << "* (1) 按商品编号查询*\n";cout << "* (2) 按商品名称查询*\n";cout << "* (3) 按商品价格查询*\n";cout << "* (4) 按商品分类查询*\n";cout << "* (5) 返回*\n";cout << "***********************************************\n";cout << "* 请选择(1-6):";cin >> choice;switch(choice) {case 1: func = QB_NO; break;case 2: func = QB_NAME; break;case 3: func = QB_price; break;case 4: func = QB_sort; break;case 5: func = EXIT; break;default: func = NONE; break;}break;default:cout << "没有查询到该条商品记录!!\n";break;}return func;}node * CreateProList(char filename[]) {node * p=NULL;ifstream products(filename);if(!products){cerr<<"文件不存在!请添加商品记录!"<<endl;return NULL;}while(!products.eof()) { //装载数据文件if(p = new node()) {products >> p->productsInfo.no;products >> p->;products >> p->productsInfo.price;products >> p->productsInfo.num;products >> p->productsInfo.sort;p->pnext = phead;phead = p;}}products.close();return phead;}void RemoveProList() { //撤销内存空间for(node *p2, *p1 = phead;p1;p1 = p2) {p2 = p1->pnext;delete p1;phead = NULL;}void RemoveQueryRes() {for(QueryRes *p2, *p1 = pqueryres;p1;p1 = p2) { p2 = p1->pnext;delete p1;}pqueryres = NULL;}void Save(char filename[]) { //保存至文档node * p;ofstream products(filename);if(!products) {return;}for(p = phead;p;p=p->pnext) {products << " " << p->productsInfo.no;products << " " << p->;products << " " << p->productsInfo.price;products << " " << p->productsInfo.num;products << " " << p->productsInfo.sort<<endl;}products.close();}void Print(node *pnode) { //输出数据for(node *p = pnode;p;p = p->pnext) {cout<<p->productsInfo.no << " " ;cout<<p-> << " " ;cout<<p->productsInfo.price << " " ;cout<<p->productsInfo.num << " " ;cout<<p->productsInfo.sort << "\n";}}void Print(QueryRes *pnode) {for(QueryRes *p = pnode;p;p = p->pnext) {cout << p->pnode->productsInfo.no << " ";cout << p->pnode-> << " ";cout << p->pnode->productsInfo.price << " ";cout << p->pnode->productsInfo.num << " ";cout << p->pnode->productsInfo.sort << "\n";}QueryRes * Query(ProductsInfo& productsInfo, FuncType func) { //查询功能实现int hasRes = 0;QueryRes *pquery = NULL;for(node *p = phead;p;p = p->pnext) {switch(func) {case QB_NO: //按编号查询if(!strcmp(p->productsInfo.no, productsInfo.no)) {hasRes = 1;}break;case QB_NAME: //按名称查询if(!strcmp(p->, )) {hasRes = 1;}break;case QB_price: //按价格查询if(p->productsInfo.price == productsInfo.price) {hasRes = 1;}break;case QB_sort: //按分类查询if(!strcmp(p->productsInfo.sort, productsInfo.sort)) {hasRes = 1;}break;default:break;}if(hasRes) {if(pquery = new QueryRes()) {pquery->pnode = p;pquery->pnext = pqueryres;pqueryres = pquery;}hasRes = 0;}}return pqueryres;}node * p;if(p = new node()) {strcpy(p->productsInfo.no, productsInfo.no);strcpy(p->, );p->productsInfo.price = productsInfo.price;p->productsInfo.num = productsInfo.num;strcpy(p->productsInfo.sort, productsInfo.sort);p->pnext = phead;phead = p;}return phead;}bool Delete() { //删除指定数据项cout<<"请输入商品编号:"<<endl;char no[14];cin>>no;if(phead==NULL) {cout<<" 不存在商品记录!"<<endl; return false;}node *p=phead;if(!strcmp(p->productsInfo.no, no)){phead=phead->pnext;return true;}for(phead;p->pnext;p = p->pnext){if(!strcmp(p->pnext->productsInfo.no, no)) break;}if(p->pnext==NULL){cout<<"不存在商品记录!"<<endl; return false;}p->pnext=p->pnext ->pnext;delete p->pnext;return true;}void modify() //修改指定条目{node *p=phead;if (p==NULL){cout<<"不存在商品记录!";return;}char no[14];cout<<"请输入要修改的商品编号:";for(p=phead;p;p = p->pnext){if(!strcmp(p->productsInfo.no, no)) break;}if (p==NULL){cout<<"不存在该编号的商品!\n";return;}cout<<"请重新输入该商品信息:";GetproductsInfo(p->productsInfo);}ProductsInfo& GetproductsInfo(ProductsInfo& productsInfo) { //从终端接收数据cout << "请输入商品编号: ";cin >> productsInfo.no;cout << "请输入商品名称: ";cin >> ;cout << "请输入商品价格: ";cin >> productsInfo.price;cout << "请输入商品数量: ";cin >> productsInfo.num;cout << "请输入商品类别: ";cin >> productsInfo.sort;return productsInfo;}ProductsInfo& SetproductsInfo1(ProductsInfo& productsInfo,FuncType func) { switch(func){case QB_NO:cout << "请输入商品编号: ";cin >> productsInfo.no;break;case QB_NAME:cout << "请输入商品名称:";cin >> ;break;case QB_price:cout << "请输入商品价格: ";cin >> productsInfo.price;break;case QB_num:cin >> productsInfo.num;break;case QB_sort:cout << "请输入商品类别: ";cin >> productsInfo.sort;break;}return productsInfo;}int main(){ProductsInfo productsInfo;int cont = 1;int cont1 = 1;phead = CreateProList("productsInfo.txt"); //装载数据文件while(cont) {switch(PrintMenu(MAINMENU)) {case ADD: //添加数据条目GetproductsInfo(productsInfo);phead = Add(productsInfo);break;case PRINT: //显示商品清单cout << "*&*&*&*&*&*&*&*以下是商品清单*&*&*&*&*&**&*&\n";Print(phead);break;case DELETE: //删除指定条目if(Delete())cout << "已删除!\n";else cout << "删除失败!\n";break;case MODIFY: //修改指定条目modify();break;case QUERY: //查询操作cont1 = 1;while(cont1) {FuncType func;func = PrintMenu(SUBMENU);switch(func) {case QB_NO:case QB_NAME:case QB_price:case QB_sort:SetproductsInfo1(productsInfo,func);Print(Query(productsInfo, func));RemoveQueryRes();break;case EXIT:cont1 = 0;break;default:break;}}break;case SA VE: //保存至文件Save("productsInfo.txt");break;case EXIT: //退出RemoveProList();cont = 0;break;default:break;}}return 0;}3.系统测试3.1 程序调试多个功能在执行时均出现健壮性较差的问题,输入非法数据后程序容易出错而停止运行,或是在查询、修改一条数据链表中记录时,也回出现类似情况,发现该问题后加入了检查输入数据非法性的语句,程序运行正常;另在int strcmp(char *,char *)函数使用时,未弄清该函数的返回值问题,相关功能便会出现相反的结果;再者便是一些常见的语法上的错误,一一改正之后,程序运行正常。

相关文档
最新文档