超市商品管理系统(含附源代码)
(完整word版)c语言程序设计超市管理系统

实验题目:超市管理系统一、实验目的1.熟悉 c 语言的编译连接和运行过程。
2.掌握 c 语言的数据类型,熟悉整型、实型、字符型变量的定义方式及如何给它们赋值。
3.掌握if 语句及switch 语句的运用方法及嵌套应用方法。
4.掌握实现循环结构的三种语句while 、do-while. 、for 的使用。
5.掌握函数的定义方法和调用方法。
6.能够采用模块化思想调试程序。
二.实验内容1.编写程序并进行调试运行。
2.输入商品资料,并保存于文件。
每件商品包含信息如:商品号、商品名、商品类别、商品总量、商品上限和下限、商品价格、进货日期、生产日期、保质期等。
3.对已存入的商品信息进行更新操作,包括添加一件商品信息、删除某件商品信息和修改商品信息。
4.通过按商品名、商品种类、商品进货量的方式查询商品信息。
5.输入某商品号后对其利润进行统计、对进货价格相同的商品进行统计。
6 对商品的库存量和利润进行排序。
7.最后输出商品信息,供需要时打印。
二、需求分析1.该程序可用于对商品的基本信息的存储、更新、查询、输出、统计、排序等操作,以实现管理者对商品的管理和消费者对商品的了解。
2.其中更新功能包括:添加信息、删除信息、修改信息、可根据需要添加一个或多件商品信息,也可对个别商品信息进行适当的删除或修改。
以便随时更新商品信息。
3.程序中设计的查询功能可根据需要从若干数据中查询某件商品信息,并且可根据三种不同的方法查询:按商品名查询、按商品种类查询和按商品进货量查询。
以满足不同的需要。
四、概要设计1、方案设计对系统进行分析,给出结构图分析:系统要求实现许多的功能,因此遵循结构化程序设计思想来进行本系统的设计—自顶向下、逐步细化,将系统设计任务分解出许多子功能模块进行设计结构图如下:超市管理管理系统查询模块排序模块退出系统退出系统查询模块排序模块统计模块*更新模块*输出信息¥录入信息按商品名查询利润排行库存量排行退出系统第二类商品第一类商品退出系统2 •功能模块说明:对各个模块进行功能的描述(1).输入模块:录入需要管理的商品信息并将信息保存于文件中,以方便日后进行打印、读取、更新等操作。
超市管理系统(参考案例)

软件工程课程设计题目:超市前台POS销售系统及后台管理系统专业:班级:学号:姓名:指导老师:目录:一、问题定义 (3)1.系统开发目的 (3)2.背景说明 (3)3.项目确立 (3)4.应用范围 (3)5.名词定义 (3)二、可行性研究 (4)1.管理可行性分析 (4)2.经济可行性分析 (4)3.技术可行性分析 (4)4. 系统初步ER图 (5)5.可行性研究结论 (5)三、需求分析 (5)1. 用户需求分析 (5)2. 系统功能分析 (6)3. 系统结构 (7)4. 流程图 (7)5. 系统ER图 (9)四、设计 (1)1.系统模型: (1)2.模块子系统结构: (3)五、测试 (5)1. 测试过程分析: (5)2 .测试方案: (6)4. 测试结果 (9)5. 评估和建议 (9)六、实现 (10)七、维护 (10)八、总结 (10)一、问题定义1.系统开发目的1.大大提高超市的运作效率;2.通过全面的信息采集和处理,辅助提高超市的决策水平;3.使用本系统,可以迅速提升超市的管理水平,为降低经营成本,提高效益,增强超市扩张力,提供有效的技术保障。
2.背景说明21世纪,超市的竞争也进入到了一个全新的领域,竞争已不再是规模的竞争,而是技术的竞争、管理的竞争、人才的竞争。
技术的提升和管理的升级是超市业的竞争核心。
零售领域目前呈多元发展趋势,多种业态:超市、仓储店、便利店、特许加盟店、专卖店、货仓等相互并存。
如何在激烈的竞争中扩大销售额、降低经营成本、扩大经营规模,成为超市营业者努力追求的目标。
3.项目确立针对超市的特点,为了帮助超市解决现在面临的问题,提高小型超市的竞争力,我们将开发以下系统:前台POS销售系统、后台管理系统,其中这两个子系统又包含其它一些子功能。
4.应用范围本系统适应于各种超市。
5.名词定义①商品条形码:每种商品具有唯一的条形码,对于某些价格一样的商品,可以使用自定义条形码。
②交易清单:包括交易的流水账号、每类商品的商品名、数量、该类商品的总金额、交易的时间、负责本次收银的员工号。
超市各种商品代码的认识

21:00(21:30)——21:30(22:00)
(1)负责货道的清洁工作
(2)货架的清洁
(3)商品的清洁
21:30(22:00)点名,下班
3、商品周转流程
理货员前一天打续货当日交于组长处审核次日早交于门店业务内勤通知供应商送货第三天供应商持送货单送货到门店验货员按送货单验货理货员接货复验商品上架销售
12:30点名
12:30——12:40交接班
12:40——16:30营业高峰期前的准备工作
(1)清洁整理自己负责的区域:包括货架、购物车篮、周围的地板、垃圾箱等
(2)熟记并确认当日的特价品、变价品、促销活动,以及重要商品所在位置
(3)整理、补充货架。将货架商品摆放整齐,并且量要充足,同时检查货堆上的
服装类:男装、女装、童装、内衣
鞋帽类:皮鞋、布鞋、拖鞋、袜子、帽子、手套、鞋垫、其他鞋
帽类
床上用品:被褥、垫盖、其他床上用品
箱包类:皮包类、其他箱包类
针织类:毛巾、台布、其他针织品
(4)文体区:文化用品、体育用品、玩具
文化用品:纸制品、办公用品、书籍、音像制品、其他文化用品
体育用品:球类、健身类、保护类、其他体育用品类
农副产品:禽蛋类、生鲜肉、蔬菜、水果、干货、其他农副产品
、现场加工
2、非食品类:洗化、百货、针织、文体
(1)洗化:洗涤品、卫生品、化妆品、护发用品、口腔护理
洗涤品:洗衣粉、肥皂、香皂、洗涤剂、洗洁精、杀虫剂、光亮
剂、其他洗涤品
卫生品:卫生纸、卫生巾、其他卫生品
化妆品:护肤品、洁肤品、彩妆、其他化妆品
(4)仪容仪表自查:发型、仪容是否整洁
7:40——7:50点名,晨会
超市各种商品代码的认识

副产品
调味料:佐料、酱油、醋、其他调料
粮油:袋装米面、散装米面、精品油、散油、方便面挂面、豆类 制品、其他粮油类
常温制品:常温肉制品、酱菜、罐头、其他常温制品 低温制品:低温肉制品、其他低温制品 速冻类:汤圆、水饺、丸子、冰糕、海产品、其他速冻食品 农副产品:禽蛋类、生鲜肉、蔬菜、水果、干货、其他农副产品
1、基本设备:货架(种类)、促销平台、立风柜、岛柜、空调、电源
2、辅助设备:电子秤、打价枪 理货员岗位职责及每日工作流程
1、理货员岗位职责
1、了解并掌握本区的商品名称、用途、价格、生产日期、保质期等基本信息 资料;
2、及时整理、补充商品,保证货架及货堆的丰满,管辖区域商品无缺物价签 现象;
3、每日按规定的时间打好续货单,及时补充货源;
帽类 床上用品:被褥、垫盖、其他床上用品 箱包类:皮包类、其他箱包类 针织类:毛巾、台布、其他针织品
(4)文体区:文化用品、体育用品、玩具 文化用品:纸制品、办公用品、书籍、音像制品、其他文化用品 体育用品:球类、健身类、保护类、其他体育用品类 玩具:电动玩具、智力玩具、毛绒玩具、其他玩具
3、联营商品(无库存,不参加盘点) 卖场内设备常识
(7)主管安排的其他事情
12:00——12:30
(1)货架整理,将商品摆放整齐,有不足的进行补充
(2)将购物车篮摆放在固定位置
12:30——12:40交班
(1)告诉下一班当日上午的到货情况
(2)当日上午未完成工作需下一班人员继续的内容
(3)需要续货的商品情况
12:40点名,下班
(二)午班
12:30以前
X8〜X6代表国家代码,X5〜X2代表商品项目代码,X1为校验码
商品订购系统设计完整代码

商品订购系统设计完整代码以下是一个商品订购系统的设计完整代码示例:```pythonimport jsonclass Product:def __init__(self, id, name, price):self.id = id = nameself.price = priceclass Order:def __init__(self, id, products):self.id = idself.products = productsdef calculate_total(self):total = 0for product in self.products:total += product.pricereturn totalclass OrderSystem:def __init__(self):self.products = []self.orders = []def add_product(self, product):self.products.append(product)def create_order(self, product_ids): order_products = []for id in product_ids:for product in self.products:if product.id == id:order_products.append(product)breakorder_id = len(self.orders) + 1order = Order(order_id, order_products) self.orders.append(order)return order_iddef get_order_total(self, order_id):for order in self.orders:if order.id == order_id:return order.calculate_totalreturn Nonedef save_to_file(self, filename): data ="products": [],"orders": []}for product in self.products:data["products"].append"id": product.id,"name": ,"price": product.price})for order in self.orders:order_product_ids = []for product in order.products:order_product_ids.append(product.id) data["orders"].append"id": order.id,"product_ids": order_product_ids})with open(filename, 'w') as file:json.dump(data, file)def load_from_file(self, filename):with open(filename, 'r') as file:data = json.load(file)for product_data in data["products"]:product = Product(product_data["id"], product_data["name"], product_data["price"])self.add_product(product)for order_data in data["orders"]:order_products = []for product_id in order_data["product_ids"]:for product in self.products:if product.id == product_id:order_products.append(product)order = Order(order_data["id"], order_products)self.orders.append(order)#创建商品订购系统示例order_system = OrderSystem#添加商品product_1 = Product(1, "苹果", 3)product_2 = Product(2, "香蕉", 2)product_3 = Product(3, "橙子", 4)order_system.add_product(product_1)order_system.add_product(product_2)order_system.add_product(product_3)#创建订单order_id = order_system.create_order([1, 3])#获取订单总价order_total = order_system.get_order_total(order_id) if order_total is not None:print(f"订单{order_id}总价为:{order_total}")else:print("订单不存在")#保存数据到文件order_system.save_to_file("order_data.json")#从文件加载数据order_system.load_from_file("order_data.json")```这个代码示例演示了一个简单的商品订购系统。
超市商品管理系统源代码

sM.add(label1);
sM.add(label2);
sM.add(field1);
sM.add(field2);
sM.add(button1);
sM.add(button2);
for(int i=0;i<4;i++)
dispose();
}
if(p.getSource()==pS[3])
{
View3 frame=new View3();
dispose();
}
if (p.getSource()==button2)
{
String numb=field2.getText();
}
}
if(p.getSource()==pS[0])
{
View2 frame=new View2();
dispose();
}
if(p.getSource()==pS[2])
{
Frm_Main frame=new Frm_Main();
private JButton[] pS={new JButton("销售界面"),
new JButton("销售管理"),
new JButton("商品管理"),
new JButton("用户管理")}; //personty 按钮
rs=sql.executeQuery("SELECT count(goodsnum) FROM information where goodsnum='"+num+"'");
(店铺管理)超市进销存系统最全版

(店铺管理)超市进销存系统壹、进销存系统概述(壹)进销存管理信息系统简介进销存管理是商业企业运营管理中的核心环节,也是壹个企业能否取得效益的关键。
如果能做到合理生产、及时销售、库存量最小,减少积压,那么企业就能取得最佳的效益。
由此可见,进销存管理决策的正确和否直接影响了企业的经济效益。
在手工管理的情况下,销售人员很难对客户做出正确的供货承诺,同时企业的采购部也缺少壹份准确的采购计划,目前的库存及市场需求很难反应到采购中去,部门之间的通讯也经常不通畅,这在激烈竞争的市场中是非常不利的。
企业的进销存管理信息系统就是在这种情况下应运而生的。
它利用计算机技术,使得企业采购,库存和销售能够有利结合起来,供销衔接,提高企业的效率和效益。
(二)X公司简介及项目开发背景大连大兴商贸X公司是壹家以销售计算机及周边配件为主的中小型高科技贸易X公司,凭着其良好的销售业绩及雄厚的技术实力,X公司成为了多家国际知名品牌计算机的二级代理商。
该X公司货源主要来自其产业链上游的全国总代理或地区总代理,其客户主要是大连本地或本地周边的商业用户。
因此该X公司的货物吞吐量较大,而X公司目前进销存环节的操作均以人工作业为主,X公司的销售人员不清楚库存的数量,而采购员则又不能及时了解目前产品的销量,所有货品的出库、配送及入库均采用人工开单,办事效率低下,随着X公司业务的日益增长,整个物流环节的办事效率正逐渐成为X公司发展的瓶径。
因此,为了满足日益增长的业务需求,X公司决定开发壹套进销存管理信息系统,以提高办事效率,理顺物流环节。
X公司的组织机构图如图壹所示:图1X公司组织结构图(三)开发设计思想1.尽可能利用X公司现有的软硬件环境,及先进的管理系统开发方案,从而达到充分利用X公司现有资源,提高系统开发水平和应用效果的目的。
2.系统应符合采购、销售、库存的规定,满足X公司日常工作需要,且达到操作工程中的直观、方便、实用、安全等要求。
3.系统采用先进的俩层体系结构,客户端负责提供表达逻辑、显示用户界面信息,基本操作;服务器端负责实现数据服务。
python代码完成超市管理系统的设计与实现

python代码完成超市管理系统的设计与实现超市管理系统是一个相对复杂的系统,涵盖了商品管理、库存管理、销售管理、员工管理等多个模块。
以下是一个简化的超市管理系统的Python代码示例,主要实现了商品管理和销售管理两个功能。
pythonclass Product:def __init__(self, id, name, price, quantity):self.id = id = nameself.price = priceself.quantity = quantityclass Supermarket:def __init__(self):self.products = []def add_product(self, product):self.products.append(product)def sell_product(self, product_id, quantity):for product in self.products:if product.id == product_id:if product.quantity >= quantity:product.quantity -= quantityreturn quantity * product.priceelse:return "库存不足"return "商品不存在"# 示例supermarket = Supermarket()# 添加商品product1 = Product(1, "苹果", 5, 100)product2 = Product(2, "香蕉", 3, 50)supermarket.add_product(product1)supermarket.add_product(product2)# 销售商品print(supermarket.sell_product(1, 10)) # 输出 50print(supermarket.sell_product(2, 30)) # 输出 "库存不足"在这个示例中,我们定义了两个类:Product和Supermarket。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
黔南民族师范学院软件设计课程设计报告题目超市商品管理系统系部名称:计科系专业名称:信息管理与信息系统班级:学号:B12计信班1208045139学生姓名:胡崇祯指导教师:黄茹时间:2013年11月9日至2013年12月8日、课程设计目的1. 通过本课程设计,强化上机动手能力,使学生在理论和实践的基础上进一步巩固《 C 语言程序设计》课程学习的内容,掌握工程软件设计的基本方法。
2. 学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。
3. 为后续各门计算机课程的学习打下坚实基础。
4. 为毕业设计和以后工作打下必要基础。
、课程设计内容1. 编写程序并进行调试运行。
2. 输入商品信息,并保存于文件。
每个商品信息包含信息如:库存量、进价、售价、保质期、生产商等。
3. 对已存入的商品信息进行更新操作,包括添加一个商品信息、删除某个商品信息和修改某个商品信息。
4. 通过输入商品名、商品号、商品类型的方式查询商品信息。
5. 最后输出商品信息,供需要时打印。
、需求分析1. 该程序可用于对商品基本信息的存储、更新、查询、排序、输出等操作,以实现对商品信息的管理。
2. 其中更新功能包括:添加信息、删除信息、修改信息、可根据需要添加一个或多个商品信息,也可对个别商品信息进行适当的删除或修改。
以便随时更新商品信息。
3. 程序中设计的查询功能可根据需要从若干数据中查询某个商品信息,并且可根据三种不同的方法查询:按商品号查询、按商品类型和按商品查询,以满足不同的需要。
四、概要设计1、方案设计对系统进行分析,给出结构图分析:系统要求实现许多的功能,因此遵循结构化程序设计思想来进行本系统的设计—自顶向下、逐步细化,将系统设计任务分解出许多子功能模块进行设计结构图如下:2、模块功能说明(对各个模块进行功能的描述)(1) .输入模块:录入需要管理的商品信息并将信息保存于文件中,以方便日后进行打印、读取、更新等操作。
(2) .添加模块:可添加一个或多个商品信息,并将所添加商品信息保存, 方便查找。
(3) .删除模块:可对售完的商品信息做删除处理。
(4) •修改模块:可根据需要对多个商品信息进行修改,也可随时对个别项进行修改。
(5) •查询模块:可对已建立的商品信息进行查询,并且可根据需要选择按商品名查询或按商品号查询。
(6) .保存模块:用于对信息进行保存。
(7) .输出模块:将所有商品信息或想要查询的商品信息显示于屏幕,用于打印商品信息或查找某些商品信息。
(8) .退出系统:选择该项,自动退出该系统五、详细设计及运行结果保存数据结束输入模块: 输出模块: 排行模块:六、调试情况,设计技巧及体会1、对自己设计进行评价,指出合理和不足之处,提出改进的方案。
此次实践课编写的是一个应用程序,相对于以前我们见到的程序,它要大得多,开始时,数据的输出格式不太规范,而且各模块也出现了一些小问题,在老师和同学的帮助下,通过自己一次又一次的进行调试和修改,最后运行的结果基本上达到了预期的目的。
由于时间问题和考虑得不够周全,可能在某些功能上不是很完善,不过已有的功能已能基本满足一般用户的需求,如果能通过不断的实验和使用过程中所积累的问题进行改进。
如:数量,价格的输入值为负值时,程序也能继续执行,这就给运用上带来一些不便或可能出现一些莫名其妙的错误。
不过总的来说,对于自己首次能够自主完成一个这样大的程序来说,还是比较满意。
2、在设计过程中的感受。
本次C语言的实习课让我对C语言的学习又有了更深入的了解,也让我更深刻地领悟到了“实践出真理”这个道理,在上机实践过程中学到的知识远远超过了在课堂上十几周学到的,学校组织的这次实习让我们这些实践知识较缺乏的大学生增添了许多实践经验,为我们将来走上工作岗位其了不小的铺垫作用。
本次实习中遇到了很多以前没有遇到过的问题,也曾想过要放弃,但看到自己一般写过的大量程序,给了我继续的信心。
在老师和同学的帮助下,我顺利的完成了本次实习,让我体会到了经过不懈的努力,有过挫折有过坎坷,但最终实现目标后的成就感,也让我充分感受到友谊和团结的重要性。
七、参考文献《C语言程序设计》王曙燕曹锰八、附录:#in elude <stdio.h>#in elude <math.h>#in elude <stri ng.h>#i ncludevc on io.h>#in elude<stdio.h>#i ncludevstri ng.h>#defi ne MAX 20#defi ne PRINT1 printf(" ------------------------------------------------------- \n")#define PRINT2 printf("商品号--商品名称--商品种类--销售价格--生产日期 (年-月-日)--保质期\n")#defi ne PRINT3printf("%4d%8s%8s%8d%8d-%2d-%2d%4d\n",goods[i].num,goods[i].name,goods[i] .kind,goods[i].out_price,goods[i].pro_time.year,goods[i].pro_time.month,goods[i].pro _time.day,goods[i].save_day)int sum; struct date{ int year; int month; int day; };struct goods_type /* 定义结构体 */{int num; char name[10]; char kind[10]; int amount; int in_price; int out_price;struct date pro_time; int save_day; int profit; }goods[MAX];Save_Message(int sum); /* 函数声明 */ void Inquire_message(void); void Inquire_goodskind(void); void Inquire_goodsname(void) int Read_Message(void); void Renew_Messahe(void); voidRevise_Message(void); void Delete_Message(void); void Insert_Message(); void Show_Message(void); int Input_Message(void); void Count_Message(); long Count_Profit(); long Count_Amount(); void Sort_amount(void); void Sort_Message(void); void Sort_Message(void) {int choice; do{clrscr();printf("\n\n\n ******* printf(" printf(" printf("scanf("%d",&choice) switch(choice){case 1:Sort_amount();break; case 0:break;}}while(choice!=0);}void Sort_amount(void) /* 库存量排序 */{struct goods_type *p,*q[MAX]; int i,j,k; clrscr();printf(" 库存排行 "); PRINT1;printf("\n\n 排名 商品号 商品名称 商品类别 p=goods;for(i=0;i<sum;i++)q[i]=p++; for(i=0;i<sum;i++){k=i;for(j=i+1;j<sum;j++) if(q[k]->amount<q[j]->amount) k=j;if(k!=i) {p=q[i];q[i]=q[k]; q[k]=p;}}for(i=0;i<sum;i++){商品信息排行 ********\n\n"); 1:按库存量排行 \n\n");0:返回主菜单 \n\n"); 请选择 (0-1): "); 库存量 \n\n");printf(" %d ",i+1);printf(" %d ",q[i]->num);printf(" %s ",q[i]->name);printf(" %s ",q[i]->kind);printf(" %d \n ",q[i]->amount);}bioskey(0);}long Count_Amount() /* 统计库存量*/{int i,j=0,choice,count_num,Amount;char inquire_name[10];clrscr();printf("\n 请输入想要统计的商品号: "); scanf("%d",&count_num);for(i=0;i<sum;i++)if(goods[i].num==count_num){Amount=goods[i].amount; printf(" ");printf(" 商品号 库存量 "); printf("\n%8d%8d",goods[i].num,Amount); }elsej++; if(j==sum) printf(" 该商品信息不存在 !!!"); bioskey(0);}long Count_Profit() /* 统计利润模块 */{int i,choice,j=0,count_num,profit;clrscr();printf("\n 请输入想要统计的商品号 : "); scanf("%d",&count_num);for(i=0;i<sum;i++) if(goods[i].num==count_num){profit=goods[i].out_price-goods[i].in_price; printf("\n 商品利润 ");printf("\n ------------------------------ "); printf("\n 商品号 利润 ");printf("\n %8d%8d\n",&goods[i].num,&profit); }else j++; if(j==sum)printf("\n 该商品不存在 !!!"); printf("\n 按任意键返回主菜单 !!");bioskey(0);}void Count_Message(void) /*统计模块 */{int choice; do{clrscr(); switch(choice)printf(" f **************统计商品信息 *************\n\n\n");printf("******* 1: 统计库存量printf("******* 2: 统计利润printf("******* 0: 返回主菜单printf("******* 请选择 (0-2):scanf("%d",&choice); ************\n\n\n"); ************\n\n\n"); ************\n\n\n"); ************\n\n\n");{case 1:Count_Amount();break;case 2:Count_Profit();break;case 0:break;}}while(choice!=0);}int Input_Message(void) /*输入模块*/{int i=0,s=MAX;char bd;clrscr();printf(" 开始输入商品信息.\n");printf("\n\n 商品信息:( 最多%d) \n",s);printf(" ===============================\n");do{printf("\n 第%d 商品",i+1);printf("\n 商品号: ");scanf("%d",&goods[i].num);if(goods[i].num==0) break;printf("\n 商品名称: ");scanf ("%s",goods[i].name);printf("\n 商品种类: ");scanf ("%s",goods[i].kind);printf("\n 商品库存量: ");scanf ("%d",&goods[i].amount);printf("\n 进货价格: ");scanf ("%d",&goods[i].in_price);printf("\n 销售价格: ");scanf ("%d",&goods[i].out_price);printf("\n 生产日期(yyyy-mm-dd): ");scanf("%d-%d-%d",&goods[i].pro_time.year,&goods[i].pro_time.month,&goods[i].pro_ti me.day);printf("\n 保质期: ");scanf ("%d",&goods[i].save_day);printf("继续输入信息,y or斤??");fflush(stdin);scanf("%c",&bd);if(bd=='y')i++;elsebreak;}while(i<MAX);printf("\n--%d 所有商品录入完毕!--\n\n\n",i+1);getch();printf(" 按任意键返回主菜单.");sum=i;printf(" 输入回车返回主菜单!!!"); bioskey(0);}void Show_Message(void) /* 显示输出模块*/{int i=0,j=0,count,page=7;clrscr();printf("\n\n --商品信息--在第%d 页\n\n",page);PRINT2;PRINT1;do{if(goods[i].num!=0){j++;if(j%page!=0){PRINT3;PRINT1;}else{PRINT3;PRINT1;if(goods[i+1].num!=0){printf(" 按任意键继续!");bioskey(0);clrscr();printf("\n\n --------- 商品信息---- 在第%d 页\n\n",++page);PRINT2;PRINT1;}}}i++;}while(goods[i].num!=0);printf("按任意键返回主菜单!!!!!");bioskey(0);}void Insert_Message(void)/*添加商品信息模块*/{int i=sum,j,flag=0;char choice;clrscr();printf("\n\n 添加一种新商品\n\n ");printf("\n ----------------------------------------------- \n");do{goods[i].num=++sum;printf("\n 新商品号:%d",goods[i].num);printf("\n 新商品名: ");scanf("%s",goods[i].name);printf("\n 新商品种类: ");scanf("%s",goods[i].kind);printf("\n 新商品数量: "); scanf("%d",&goods[i].amount);printf("\n 进价: ");scanf("%d",&goods[i].in_price);printf("\n 售价: ");scanf("%d",&goods[i].out_price);printf("\n 生产日期(yyyy-mm-dd): ");scanf("%d-%d-%d",&goods[i].pro_time.year,&goods[i].pro_time.month,&goods[i].pr o_time.day);printf("\n 保质期: ");scanf("%d",&goods[i].save_day);i++;printf("\n\n 想继续添加商品吗?(Y/N)");fflush(stdin);choice=getch();if(choice=='y'||choice=='Y'){printf(" 继续");flag=1;}elseflag=0;}while(flag==1);printf("\n\n\n 按任意键返回主菜单...... ");bioskey(0);}void Delete_Message(void)/*删除商品信息模块*/{int i,j,numberkey,flag=0;char choice;printf(" 开始删除.. \n\n");do{clrscr();printf("请输入你要删除的商品号:\n");scanf("%d",&numberkey);for(i=0;i<sum;i++){if(goods[i].num==numberkey){ for(j=i;j<sum;j++) goods[j]=goods[j+1]; sum--; flag=1;printf(" 删除成功!!\n\n\n");break;} } if(flag==0) { printf(" 不存在该商品信息!!!"); bioskey(0);}printf("\n\n 是否继续输入(y/n)?\n"); getchar();scanf("%c",&choice); }while(choice=='y'||choice=='Y'); printf("\n 按任意键返回");bioskey(0);}void Revise_Message(void)/*修改商品信息模块*/{int i,j,flag,choice,revise_num; char ch;do{clrscr();printf("\n\n 开始修改...");printf("\n\n 请输入你想输入的商品号:\n"); scanf("%d",&revise_num);for(i=0;i<sum;i++){ if(goods[i].num==revise_num){printf(" 确定修改此商品信息吗?(y/n)"); PRINT1; PRINT2;PRINT3; getchar();ch=getchar(); if(ch='y'){ printf("\n\n\n 修改商品信息的哪一项?"); printf("\n\n 1:商品名称");printf("\n\n 2:商品类型");printf("\n\n 3:销售价格");printf("\n\n 4:生产日期");printf("\n\n 5:保质期");printf("\n\n 请选择(0-5)\n");scanf("\n %d",&choice); switch(choice) {case 1:printf("请输入修改后的商品名\n");scanf("%s",&goods[i].name);break;case 2:printf("请输入修改后的商品类型\n");scanf("%s",&goods[i].kind);break;case 3:printf("请输入修改后的商品销售价格\n");scanf("%d",&goods[i].out_price);break;case 4:pri ntf("请输入修改后的商品生产日期\n");scanf("%d-%d-%d",&goods[i].pro_time.year,&goods[i].pro_time.month,&goods[i].pr o_time.day);break;case 5:printf("请输入修改后的商品保质期\n");scanf("%d",&goods[i].save_day);break;case 0:break;}printf(" 修改商品信息:\n");PRINT2;PRINT3; }elsebreak;}else j++;if(j==sum)printf(" 不存在该商品信息..");} printf("\n\n 继续修改商品信息吗(y/n)?");getchar();ch=getchar();if(ch=='y') {printf("继续.\n"); flag=1;}elseflag=0; }while(flag==1); printf(" 修改完成!!\n\n"); getch();} void Renew_Message(void) /*更新商品信息模块*/{int choice;do{clrscr(); printf("\n\n********* 更新商品信息*********"); printf("\n\n 1:添加商品信息.\n\n");printf("\n\n 2:删除商品信息.\n\n");printf("\n\n 3:修改商品信息.\n\n");printf("\n\n 0:返回上一级.\n\n");printf("\n\n 请选择(0-3): ");scanf("%d",&choice);switch(choice){case 1:Insert_Message();break;case 2:Delete_Message();break;case 3:Revise_Message();break;case 0:break;}}while(choice!=0);}int Read_Message(void) /* 读取信息模块*/{FILE *fp;int i=0;if((fp=fopen("999.txt","rb"))==NULL){printf("\n\t 现在还没有保存全部信息,按回车键回到主菜单输入商品信息!!");printf("\n\t 按任意键返回!!!!\n");getch();return;}while(feof(fp)!=1){fread(&goods[i],sizeof(struct goods_type),1,fp); if(goods[i].num==0)break;elsei++;}fclose(fp);return(i);}void Inquire_goodsname(void)/*按商品名称查询*/{int i,j,choice;char namekey[10];j=0;printf(" 开始查询...");printf(" 请输入你要查询的商品号:\n"); scanf("%s",namekey);for(i=0;i<sum;i++)if(strcmp(goods[i].name,namekey)==0&&goods[i].num!=0) {printf(" ---商品信息--------------------- ");PRINT1;PRINT2;PRINT3;} else j++;if(j==sum)printf(" 该商品不存在!");printf(" 按任意键返回主菜单."); getch();}void Inquire_goodskind(void)/* 按商品类型查询*/{ int i,j,choice; char kindkey[10]; j=0;printf("开始查询...");printf("请输入你要查询的商品种类:\n"); scanf("%s",kindkey);for(i=0;i<sum;i++)if(strcmp(goods[i].kind,kindkey)==0&&goods[i].num!=0) {printf(" ---商品信息-- ");PRINT1;PRINT2;PRINT3;} else j++;if(j==sum)printf(" 该商品不存在!"); printf(" 按任意键返回主菜单.");getch();}void Inquire_Message(void) /*查询模块*/{int choice;do{printf("\n ***** 查询商品信息***** \n");printf("\n *****1: 按商品名称.***** \n");printf("\n *****2: 按商品种类.***** \n");printf("\n *****0: 返回上一级.***** \n"); printf("\n 请选择(0-2): ***** \n");scanf("%d",&choice);switch(choice){case 1:Inquire_goodsname();break; case2:Inquire_goodskind();break;case 0:break;}}while(choice!=0);}Save_Message(int sum) /*保存模块*/{FILE *fp;int i;if((fp=fopen("999.txt","wb"))==NULL){printf("\n\n 不能打开文件!\n\n");exit();} for(i=0;i<=sum;i++) if(fwrite(&goods[i],sizeof(struct goods_type),1,fp)!=1) printf("写文件出错!"); -fclose(fp);}void main(void) /*主函数*/{int choice; clrscr(); sum=Read_Message(); bioskey(0);do{clrscr();printf("**************************************************松 «H\ ・printf(" ************超市商品管理系统**************\n");printf(" ****** ******\n");printf(" ****** ******\n");printf(" ****** ******\n");printf(" ****** 欢迎登陆******\n");printf(" ****** ******\n");printf(" ******printf("*************************************************printf("************************************************* getchar (); clrscr();*****\n");scanf("%d",&choice); switch(choice){case 1:Input_Message();break; case 2:Show_Message();break; case 3:Renew_Message();break; case 4:Inquire_Message();break; case 5:Count_Message();break; case 6:Sort_Message();break; case 0:break;}}while(choice!=0);**\n");printf(" ********\n");**\n");**\n");printf("**************************\n\n");printf("***** *****\n\n");printf("***** *****\n\n");printf("***** *****\n\n");printf("***** *****\n\n");printf("***** *****\n\n");printf("**********\n\n");printf("***** 1: 输 入 商 品 信 息丿2:输 出 商 品 信息丿Li 3:更 新 商 品 信息丿Li 4:查 询 商 品 信息丿Li5: 统 计 商 品 信 息 6:商 品 信 息 排 序0:退 出 系 统*****\n\n");printf(" *****超市商品管理系统 请 选 择 (0-6):Save_Message(sum);printf("\n- 信息已经保存!-(file name:999.txt)\n");。