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

电子科技大学信息与软件工程学院实验报告(实验)课程名称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函数查找到商品信息,然后进行修改;未查找到则提示“该商品不存在!”。
校园超市商品管理系统介绍

数据库原理课程设计任务书题目名称校园超市商品管理系统学生学院信息科学与技术学院专业班级软件工程姓名余璐学号200905070230一、需求分析1.需求调查为了更好的设计数据库的功能结构,我们调查了学校门口的两个比较典型的小超市——宏得利超市和佳子缘超市。
他们都是机构简单,个体经营,雇佣少量员工,有会员卡制度,分工不太明确,商品种类相对侧重日用、食品、文具、运动用品等。
经过与他们的交流我们总结了一些他们的经营结构和具体需求。
以下我们进行具体介绍:⑴所选超市的组织机构、组织部门的组成以及各部门的职责●经理:(1)经理管理超市整体运营。
(2)商品进行定价、打折、促销计划,决策会员的优惠情况。
(3)管理员工的信息,进行工资的结算,裁定以及员工的如用辞退等。
●收银:进行销售结算并开具发票,记录交易的具体信息。
●采购:根据超市业务需求和各类商品的剩余量及时的制定采购计划。
经由经理批准于供货商之间进行采购活动。
●理货:整理货架的各类商品,及时补充货架,对于货余不足或销量很好的商品反映给采购部门。
⑵各部门的业务活动及新系统的各种要求::经理能够通过系统输入个人用户密码随时查询超市的经营状况,超市年度、季度、月份或某天的营业额、利润,以及各类商品的信息。
除此之外,还要了解供货商的分类信息。
以便作整体的经营策略。
经理可以通过视图察看并管理所有员工的基本信息,并组织集体为员工过生日。
●收银员通过扫描条形码或输入商品编号(名称)能够获得各种商品的信息(包括商品名称、价格、类别、剩余数量等),对顾客的各种商品价格加和计算出本次交易的总金额,同时通过计算机自动找零,如果顾客使用会员卡,通过刷卡进行结算,最后打印发票并制作流水账号存入数据库,记录本次交易细节。
●采购部门,通过系统视图可以容易的查询各类商品的剩余量,根据超市的需求和经营策略制出需要采购的商品清单,报告经理获得批准后,与供货商之间进行采购活动,并将采购的具体信息存入数据库。
高校超市管理系统的设计与实现_毕业论文(设计)正文 精品

高校超市管理系统的设计与实现摘要在计算机技术迅猛发展的今天,计算机已经进入千家万户,计算机技术也渗入到各个领域当中。
运用计算机技术管理高校超市也变得很普遍。
高校超市在营业当中总是面对大量的商品信息,会员信息,交易信息和供货商信息,提高处理每个信息的处理效率,对于高校超市至关重要。
超市管理人员需要对商品信息,会员信息,供货商信息等以及它们之间的相互作用产生的销售信息,进货信息等进行及时的处理,因此合适的工具是必须的。
开发一个高校超市管理系统既方便了管理者管理超市,又提高了管理者的工作效率。
本软件针对高校超市的特点,为收银员设计了前台收银系统,为超市管理员设计了后台管理系统。
前台收银系统简单实用,是收银员日常必需的常用操作的集合,包含了收银、增加会员、当日销售统计、修改密码、商品搜索等收银员最常用的操作。
界面简单易懂,操作方便快捷。
大幅度加快了收银效率。
后台管理系统功能强大,为超市管理员提供好多便捷的超市管理服务,是超市管理员管理超市的好工具。
应用本系统可以在计算机上灵活、方便地管理超市,使管理更加现代化。
关键词:管理系统;Microsoft Visual Studio ;Microsoft SQL Server;数据库Supermarket management system in colleges and universitiesABSTRACTIn today's rapid development of computer technology, computer has entered innumberable families, computer technology has penetrated into all fields. Using computer technology of supermarket management has become very common in colleges and universities. Supermarkets of colleges and universities in business always face a lot of commodity information, membership information, transaction information and supplier information, improve the efficiency of treatment of each information, the supermarket is essential for colleges and universities. Supermarket managers need to commodity information, sales information, supplier information, etc, and the interactions between them produce sales information, purchase information, such as timely treatment, so with the right tools is a must. Development of a university supermarket management system is convenient for managers to manage the supermarket, and improves the working efficiency of administrators. The software according to the characteristic of the supermarkets, designed for the cashier at the front desk cashier system, designed for supermarket administrator background management system. Front desk cashier system is simple and practical, is the cashier daily collection of common operations required, contains the cashier, add members, on the day of sales statistics, change passwords, commodity search, such as the cashier of the most commonly used operations. Interface is simple, convenient and quick operation. Dramatically accelerated the cashier efficiency. Powerful background management system for supermarket administrator to provide many convenient supermarket management services, is a good tool to administrators manage the supermarket. Application of this system can be flexibly and conveniently on the computer management of the supermarket, make management more modern. This system can provide university supermarket managers with very good help.Key words:management system;Microsoft Visual Studio;Microsoft SQL Server;database目录1前言 (1)1.1课题来源 (1)1.2课题在国内外的发展现状 (1)1.3课题开发的意义 (2)1.4系统设计目标 (2)2系统分析 (3)2.1需求分析 (3)2.1.1功能需求 (3)2.1.2性能需求 (5)2.1.3系统运行环境需求 (5)2.2可行性研究 (5)3系统设计 (7)3.1总体设计方案 (7)3.2系统设计思想 (7)3.3系统设计原理 (7)3.4功能模块图 (8)3.5系统DFD图 (8)3.6数据库设计 (10)3.7部分数据表之间的关系 (14)4系统实现 (17)4.1开发工具 (17)4.1.1M ICROSOFT V ISUAL S TUDIO 2005 (17)4.1.2M ICROSOFT SQL S ERVER 2005 (17)4.2系统功能实现 (17)4.2.1用户选择登录界面的实现 (17)4.2.2用户登录界面的实现 (18)4.2.3前台收银界面的实现 (21)4.2.4后台管理界面的实现 (34)4.3系统测试 (55)总结 (56)参考文献 (57)致谢 (58)附录 (59)1前言1.1 课题来源随着计算机科学技术的迅猛发展,计算机软件的应用渗透到社会生活各个领域,比如工业、农业、银行、航空、政府部门等。
学院超市进销存管理系统的需求分析

学院超市进销存管理系统的需求分析需求分析是指对系统或软件的要求进行详细的分析和定义。
在学院超市进销存管理系统的需求分析中,需要确定系统的功能要求、非功能要求、约束和限制以及其他相关要求。
以下是对学院超市进销存管理系统的需求分析,包括系统背景、功能需求、非功能需求和其他相关要求。
一、系统背景学院超市是为学生和教职工提供生活用品、食品和其他商品的场所。
为了提高管理效率、减少手工操作,需要开发一个学院超市进销存管理系统。
二、功能需求2.进货管理:包括进货单的录入、查询和修改,进货信息的统计和报表生成。
3.销售管理:包括销售单的录入、查询和修改,销售信息的统计和报表生成。
4.库存管理:包括库存信息的查询、修改和报警,库存统计和报表生成。
5.报表生成:包括进货、销售和库存的统计报表生成,可以按照时间、商品分类等条件进行筛选。
6.用户管理:包括用户的注册、登录、权限管理和密码修改。
7.系统设置:包括系统参数的设置,如库存报警值、报表打印设置等。
8.采购管理:包括对供应商的管理,采购订单的生成和管理。
9.促销管理:包括促销活动的录入、查询和管理。
三、非功能需求1.界面友好:系统的操作界面简单易用,用户能够迅速上手。
2.数据准确性:系统能够准确记录进货、销售和库存信息。
3.系统稳定性:系统能够稳定运行,不容易出现死机和数据丢失问题。
4.安全性:系统需要有用户登录和权限管理机制,保证数据的安全性和完整性。
5.性能要求:系统能够快速响应用户操作,并且能够处理大量的进货、销售和库存信息。
四、其他相关要求1.可扩展性:系统需要支持后续的功能扩展和升级。
2.系统兼容性:系统需要能够在不同的操作系统和浏览器上运行。
3.数据备份和恢复:系统需要提供数据备份和恢复功能,保证数据的安全性。
以上是对学院超市进销存管理系统的需求分析。
通过对系统的功能和非功能需求的分析,可以为系统的设计和开发提供明确的目标和方向。
同时,还需要通过与用户的讨论和反馈,进一步细化和完善系统的需求,以实现用户的期望和需求。
超市商品管理系统毕业设计

超市商品管理系统毕业设计
本文旨在介绍一个超市商品管理系统的毕业设计。
此系统旨在帮助超市更加有效地管理商品、提高管理效率,为顾客提供更好的购物体验。
该系统主要包括以下功能:
1. 商品管理:管理员可以添加、修改、删除商品信息,包括商品名称、价格、库存等信息。
2. 销售管理:管理员可以查看每日、每周、每月的销售情况,包括销售额、商品种类、销售量等信息。
3. 顾客管理:管理员可以查看顾客购买历史记录、积分情况等信息。
4. 库存管理:管理员可以根据销售情况自动更新商品库存,防止库存不足或过剩。
5. 支付管理:系统支持多种支付方式,包括现金、银行卡、支付宝等。
6. 统计与分析:系统可以自动生成各种报表,如销售统计报表、顾客消费报表等,方便管理员进行数据分析。
通过该系统,超市可以更加有效地管理商品,提高管理效率,为顾客提供更好的购物体验,从而提高超市的竞争力和盈利能力。
- 1 -。
校园超市管理信息系统

校园超市管理信息系统分析与设计一、系统开发的目的及背景(一)系统开发的目标超市管理信息系统的总体目标是及时反应超市企业的经济活动状态和所需的各种商情信息,为各级管理者提供良好的决策支持环境,成为各级管理人员的有力助手,提高校园超市的经济效益。
(二)系统开发的背景现在的校园超市业务越来越好,顾客的购买量很大,日益频繁的业务产生了大量的数据。
对于每天产生的大量销售信息,如果不加以适当的存储和分析,就失去了利用这些销售信息挖掘出客户购买偏好的机会,就不能从看似无用的大量数据背后得出消费者潜在的消费习惯,失去了潜在的商机。
因此,开发这样一套以促进管理体制和管理手段改进,改善决策发放和决策依据的管理信息系统是很有必要的。
二、系统分析(一)组织结构的调查校园超市的组织结构部门包括:经理办公室、采购部、销售部、财务部、仓库管理处。
在人员业务方面,校园超市的成员由经理、仓库管理人员、采购员、和超市业务员组成。
(二)业务流程分析分析具体的业务流程,主要是对业务的各种流程进行详细的分析,以便得到更加具体的数据流程,为进一步系统的分析与设计打下良好的基础。
经理根据以往数据做出分析决策,经过核实之后交给管理人员,管理人员根据已录入的资料,产生采购计划、发货计划、交给采购员和发货员。
采购员根据采购计划完成采购,把进货单返回给管理人员;发货员完成发货并进行铺货,并把发货单和退货单返回给管理人员;销售人员销售货物,输入销售信息,并把销售单据交给资料管理人员;管理人员输入采购、发货和退货数据。
具体的业务流程如图:以上只是业务过程中比较主要的部分,它可以代表超市业务的主要过程,解决好这一部分就可以从最基本的业务角度出发,分析出主要数据流程的情况,妥善解决分析阶段的各种问题。
(三)数据流程分析根据校园超市组织结构和业务流程的调查分析,可以得到要求开发的校园超市管理系统。
下边是校园超市系统数据流图:第一层数据流程图:第二层数据流程图:第三层数据流程图:(四)数据字典的定义为了对数据流程图中的各个元素做出详细说明,由必要建立数据字典。
超市商品管理系统+含报告

超市商品管理的设计与实现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 *)函数使用时,未弄清该函数的返回值问题,相关功能便会出现相反的结果;再者便是一些常见的语法上的错误,一一改正之后,程序运行正常。
超市商品管理系统设计说明书

超市商品管理系统设计说明书超市商品管理系统设计说明书1. 引言在如今竞争激烈的超市行业中,提高商品管理效率和精确度对于超市的运营至关重要。
超市商品管理系统旨在帮助超市管理层更好地管理和控制商品库存、销售和采购等方面的信息。
本文档旨在详细说明超市商品管理系统的设计原则、功能模块和技术实现等内容。
2. 需求分析2.1 用户需求分析超市商品管理系统的用户主要包括超市管理员、收银员和采购员等。
根据用户的需求,系统应具备以下功能:- 商品库存管理:实时记录商品库存信息,包括商品名称、价格、数量等。
- 销售管理:记录每笔销售订单,并更新商品库存信息。
- 采购管理:记录采购订单及供应商信息,并更新商品库存。
- 报表统计:各类报表,如销售统计、采购统计等,用于分析和决策。
- 价格管理:超市管理员能够对商品价格进行维护和调整。
2.2 系统需求分析根据用户需求,系统需求可细分以下模块:- 商品管理模块:实现商品信息的增删改查,包括商品名称、价格、库存等。
- 销售管理模块:记录销售订单信息和销售统计报表,支持订单查询和销售数据分析。
- 采购管理模块:记录采购订单信息和采购统计报表,支持订单查询和采购数据分析。
- 报表统计模块:根据销售和采购数据各类报表,如销售统计、采购统计等。
- 价格管理模块:超市管理员能够对商品价格进行维护和调整。
3. 系统设计3.1 概要设计超市商品管理系统采用三层架构设计,包括表现层、业务逻辑层和数据访问层。
- 表现层:提供用户界面,包括商品管理界面、销售管理界面、采购管理界面、报表统计界面等。
- 业务逻辑层:处理用户请求,对数据进行验证、计算和处理,包括商品业务逻辑、销售业务逻辑、采购业务逻辑、报表统计业务逻辑等。
- 数据访问层:与数据库进行交互,包括商品数据访问、销售数据访问、采购数据访问等。
3.2 数据库设计超市商品管理系统的数据库采用关系型数据库,设计以下数据表:- 商品表:存储商品信息,包括商品ID、名称、价格和库存等字段。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库原理
课程设计任务书
题目名称校园超市商品管理系统学生学院信息科学与技术学院专业班级软件工程
姓名余璐
学号200905070230
一、需求分析
1.需求调查
为了更好的设计数据库的功能结构,我们调查了学校门口的两个比较典型的小超市——宏得利超市和佳子缘超市。
他们都是机构简单,个体经营,雇佣少量员工,有会员卡制度,分工不太明确,商品种类相对侧重日用、食品、文具、运动用品等。
经过与他们的交流我们总结了一些他们的经营结构和具体需求。
以下我们进行具体介绍:
⑴所选超市的组织机构、组织部门的组成以及各部门的职责
●经理:(1)经理管理超市整体运营。
(2)商品进行定价、打折、促销计划,决策会员的优惠情况。
(3)管理员工的信息,进行工资的结算,裁定以及员工的如用辞退等。
●收银:进行销售结算并开具发票,记录交易的具体信息。
●采购:根据超市业务需求和各类商品的剩余量及时的制定采购计划。
经
由经理批准于供货商之间进行采购活动。
●理货:整理货架的各类商品,及时补充货架,对于货余不足或销量很好
的商品反映给采购部门。
⑵各部门的业务活动及新系统的各种要求:
:经理能够通过系统输入个人用户密码随时查询超市的经营状况,超市年度、季度、月份或某天的营业额、利润,以及各类商品的信息。
除此之外,还要了解供货商的分类信息。
以便作整体的经营策略。
经理可以通过视图察看并管理所有员工的基本信息,并组织集体为员工过生日。
●收银员通过扫描条形码或输入商品编号(名称)能够获得各种商品的信
息(包括商品名称、价格、类别、剩余数量等),对顾客的各种商品价格
加和计算出本次交易的总金额,同时通过计算机自动找零,如果顾客使
用会员卡,通过刷卡进行结算,最后打印发票并制作流水账号存入数据
库,记录本次交易细节。
●采购部门,通过系统视图可以容易的查询各类商品的剩余量,根据超市
的需求和经营策略制出需要采购的商品清单,报告经理获得批准后,与
供货商之间进行采购活动,并将采购的具体信息存入数据库。
●员工输入自己的用户密码可以察看个人信息。
●各员工根据用户ID的不同拥有不同的权限,各用户通过密码可登陆和察
看相应表格和视图。
2.数据流程图
(1)基本符号
(2)数据流程图
外部实体 处理 数据流 数据存储
图1 数据流程图基本符号
图2-1 顶层数据流程图
图2 第2层数据流程图
图3-1 第三层数据流程图
计划进货视图供应商表
图3-2 第三层数据流程图
(3)数据字典
根据以上需求分析与数据流图建立数据字典
数据汇总
二、概念结构设计(1)E-R图
(2)、系统ER图说明
1)商店中的所有用户(员工)可以销售多种商品,每种商品可由不同用户
(员工)销售;
2)每个顾客可以购买多种商品,不同商品可由不同顾客购买;
3)每个供货商可以供应多种不同商品,每种商品可由多个供应商供应。
(3)、视图设计
1)计划进货视图(v_PlanStock)——用于查询进货计划的视图;
2)销售视图(v_Sale)——用于查询销售明细记录的视图;
供货视图(v_Stock)——用于查询供货情况的视图。
三、逻辑结构设计
关系模式
a)商品信息表(商品编号,商品名称,价格,条形码,促销价格,促销起
日期,促销止日期,允许打折,库存数量,库存报警数量,计划进货数,
允许销售,生产日期,生产商ID)
b)用户表(用户编号,姓名,用户密码,用户类型,用户生日)
c)会员表(会员ID,会员卡号,累积消费金额,注册日期)
d)销售表(销售编号,商品编号,用户编号,销售数量,销售金额,销售
日期)
e)供货表(供货编号,商品编号,供货商ID,入库数量,入库单价,进货
日期)
f)供货商表(供货商ID,供货商名称,供货商地址,供货商电话)
g)厂商表(厂商ID,厂商名称,厂商地址,厂商电话)
四、物理结构设计
/*----------创建基本表----------*/
/*创建销售表*/
CREATE TABLE 销售表
(
销售编号 Varchar (10) Primary key ,
销售日期 datetime NOT NULL ,
销售金额 money NOT NULL ,
用户编号 varchar(10) NULL ,
销售数量 Varchar(4) NOT NULL,
商品编号 Varchar(10) NOT NULL
)
/*创建厂商表*/
CREATE TABLE 厂商表
(
厂商ID varchar(10) Primary key ,
厂商名称 varchar(50) NOT NULL ,
厂商地址 varchar(250) NULL ,
厂商电话 varchar(25) NULL
)
/*创建会员表*/
CREATE TABLE 会员表
(
会员ID varchar(10) Primary key ,
会员卡号 varchar(20) NOT NULL ,
累计消费金额 money NOT NULL ,
注册日期 datetime NOT NULL
)
/*创建商品信息表*/
CREATE TABLE 商品信息表
(
商品编号 varchar(10) Primary key ,
商品名称 varchar(50) Unique NOT NULL ,价格 money NOT NULL ,
库存数量 varchar(4) NOT NULL ,
库存报警数量 varchar(4) NOT NULL ,
计划进货数量 varchar(4) NOT NULL ,
条形码 varchar(50) Unique NOT NULL ,
促销价格 money NULL ,
促销起日期 datetime NULL ,
促销止日期 datetime NULL ,
允许打折 varchar NOT NULL ,
允许销售 varchar NOT NULL ,
生产商ID Varchar(10) NOT NULL ,
生产日期 Datetime NOT NULL
)
/*创建供货商表*/
CREATE TABLE 供货商表
(
供货商ID varchar(10) Primary key ,
供货商名称 varchar(50) NOT NULL ,
供货商地址 varchar(250) NULL ,
供货商电话 varchar(25) NULL
)
/*创建供库表*/
CREATE TABLE 供货表
(
供货编号 varchar(10) Primary key ,
商品编号 varchar(10) NOT NULL ,
供货商ID varchar(10) NOT NULL ,
入库单价 money NOT NULL ,
入库数量 varchar(4) NOT NULL ,
进货日期 datetime NOT NULL
)
/*创建用户表*/
CREATE TABLE 用户表
(
用户编号 varchar(10) Primary key ,
姓名 varchar(25) NOT NULL ,
用户密码 varchar(50) NOT NULL ,
用户类型 varchar(4) NOT NULL ,
用户生日 Datetime NULL
)
/*----------创建视图----------*/
/*创建用于查询计划进货的视图*/
CREATE VIEW 计划进货视图
AS
SELECT 商品信息表.商品编号,商品名称,条形码,生产商ID,供货商表.供货商ID,计划进货数量
FROM 商品信息表,供货商表,供货表
Where 商品信息表.商品编号 = 供货表.商品编号
and 供货商表.供货商ID=供货表.供货商ID
and 商品信息表.库存数量<=1 /*创建用于查询销售明细记录的视图*/ /*创建用于查询销售明细记录的视图*/
CREATE VIEW 销售视图
AS
SELECT 销售编号,商品编号, 用户编号,销售日期,
销售数量,销售金额
FROM 销售表
/*创建用于查询供库情况的视图*/
CREATE VIEW 供货视图
AS
SELECT 商品信息表.商品编号,供货商ID,入库数量,
入库单价,进货日期,条形码,生产商ID
FROM 商品信息表,供货表
Where 商品信息表.商品编号 = 供货表.商品编号
六、主要查询功能及SQL语句
1.查询所有用户的信息
SELECT * FROM 用户表;
2.查询某天销售的信息
SELECT * FROM 销售表 WHERE 销售日期="2008.01.01";
3.查询某一供货商的所有供货信息
SELECT * FROM 供货表 WHERE 供货商ID=01234;
4.查询所有供货商的电话
SELECT 供货商电话 FROM 供货商表;
5.查询所有允许打折的商品信息
SELECT * FROM 商品信息表 WHERE 允许打折 NOT NULL;
6.查询某一商品库存
SELECT 库存数量 FROM 商品信息表 WHERE 商品编号=01234;。