超市管理系统课程设计报告说明书

时间:2024.4.20

*******************

实践教学

****************

 兰州理工大学

计算机与通信学院

20##年秋季学期

面向对象 课程设计

题    目:超市管理系统的设计与实现

专业班级:计算机科学与技术1班      

姓    名:                  

学    号:                

指导教师:                

    成    绩:                        


摘  要

针对用户对超市管理系统要求,本应用软件运用C++语言编写,通过对系统程序的编写,实现了基本的超市商品管理功能,本应用软件中的时钟时间以所在电脑的系统时间为准,用户可在修改商品的界面中修改超市商品信息来对超市进行管理。

超市管理系统主界面通过操作阿拉伯数字实现超市商品的增加、修改、查询、统计、显示所有商品信息等。本系统的实现主要运用了两个类,商品类和超市类。商品类中有商品必要信息,商品代码,商品名称,商品产地,商品价格,商品库存量等。超市类中通过各类函数的实现对商品进行管理。可以增加商品,查询商品,删除商品,显示商品信息,统计商品库存量及价值等。

关键字:商品类超市管理  函数  指针


目录

一、需求分析.............................................................................................................. 3

二、总体设计.............................................................................................................. 4

三、详细设计.............................................................................................................. 6

四、编码.................................................................................................................... 16

五、测试.................................................................................................................... 17

六、设计总结........................................................................................................... 21

参考文献.................................................................................................................... 23


一、需求分析

 本系统为超市管理系统的设计与实现,可供超市管理者对超市商品信息的查询和修改,适用于各种小型超市,有效地提高了工作效率。若查询不符合实际情况,则会提示错误。Enter键确认。

本系统实现以下功能:

(1)进入系统后提示适用方法,键入相应数字依次将商品代码(由阿拉伯数字组成)、商品名称、商品产地、商品单价以及库存量等商品信息存入并保存。

(2)键入商品名称,可将要求删除商品调出,并予以删除。

(3)键入相应数字选项,可修改超市商品的所有信息。

(4)键入相应数字选项,可查询需要查询的商品的所有信息。

(5)键入相应数字选项,可显示超市所有商品的所有信息。

(6)键入数字7退出系统。


二、总体设计

2.1主界面流程图

设计超市管理系统的主界面, 主界面相应的现实有下列菜单:增加商品、删除商品、修改商品、查询商品、统计商品、显示商品、退出。

2.1主界面流程图

2.2  超市管理模块设计

(1) 超市初始化模块

类名为Goods和Supermarket,分别定义了商品的名称,代码,产地,单价和库存数量,以及需要在链表里面寻找的指针。

(2)增加商品的函数模块           

在文件中写入产品的信息,并且判断商品的单价和库存量是否超标(65535),并且加入链表。

(3)删除商品的函数模块

删除结点已达到删除产品的目的。

(4)修改商品的函数模块

载入商品的全部数据,并且放入内存,并且可以重新写入修改。如果没有找到商品,则返回。

(5)统计商品的函数模块

统计结点数以记录商品的数量,载入所有商品的数量和单价计算商品的总价值。

(6)数据存储的函数模块

将链表的所有数据写入文件,然后关闭文件。

(7)数据读入的函数模块

打开文件,然后将文件中的数据写入内存以备用。


三、详细设计

3.1 主界面流程图

设计超市管理系统的主界面,主界面相应的现实有下列菜单:增加商品、删除商品、修改商品、查询商品、统计商品、显示商品、退出。

3.1主界面流程图

3.2清除内存中的商品函数

在超市管理系统中,商品出售出去,库存中的商品信息必须清除。

类外定义一个函数clear,在函数中定义一个指针p,讲物品goods赋给p,为了使函数能够不断地清除内存中的数据,要使指针移动,首先将p->next赋予goods ,然后删除p中的数据,清空p中的数据,然后将goods赋给p,依次循环,从而实现删除库存中的一个或多个商品。

流程图如图

                  

图3.2清除内存商品流程图

3.3增加商品信息

类外定义一个函数add,首先在函数中定义变量商品代码 num 和商品数量count,都为double类型 ,商品名name和产地address为char类型 ,价格price 为int类型,首先要求用户输入商品信息,依次输入商品的代码、商品名称、商品产地、商品单价,判断单价是否在0~65535之间,如果不在范围内重新输入直到在范围之内再继续向下面执行,输入商品库存量,库存在0~99999之间,如果超出范围重新输入,在范围之内继续执行,保存数据。

图3.3 增加商品流程图


3.4删除商品信息的过程

(1)在Supermarket类下定义一个Delete函数作为删除商品信息的函数,然后定义商品名,输入商品信息。

(2)查找要删除的结点(节点中包含所有该商品的信息:商品代码、名称、产地、数量、单价),分别定义两个指针,原商品表信息指针p1和输入的商品信息指针p2,在p1循环的过程中比较输入的商品名与原有的商品名是否一致,如果一致则结束本次循环,否则p2指向p1,使得两指针同化,p1指针接着指向下一指针,这样依次向后查询。

(3)删除结点,如果找到要删除的结点则删除,在这个条件下,如果删除的结点是第一个结点,则继续将指针后移删除第一结点,如果删除的结点是后续结点,则将p2下一指针指向p1下一指针,则删除相应的后续结点。

输出的结果是:找到并删除或者sorry,未找到!

流程图如图3.5

图3.5 删除商品流程图

3.5修改商品信息的过程

(1)定义各参数变量的类型,然后是输入要查找等待修改的商品名称

(2)查找要修改的结点,定义p1、p2指针,p1为指向goods商品表指针,p2为输入的商品指针,判断p1指针,如果输入的商品名和原有的商品名一致,则结束本次循环,否则,p1和p2指针同化,p1接着指向p1的下一指针。

(3)修改结点,若找到相应的要修改的结点,则p1指向Output函数,接着输出要修改的信息,利用Switch语句来调用相应的修改信息。

(4)创建新商品的结点,把原来要修改的结点删除并重新替换要创建的商品结点。如果找到等待修改的结点则修改,否则保持商品表信息不变。

流程图如图3.6

图3.6 修改商品流程图              

3.6查询商品的过程:

(1)在Supermarket类下定义一个Query函数作为查询商品信息的函数,输入商品名。

(2)查找要查询的结点(结点中包含所有该商品的信息:商品代码、名称、产地、数量、单价),定义一个原商品表信息指针p1,在p1循环的过程中比较

输入的商品名与原有的商品名是否一致,如果一致则结束本次循环,否则 p1指针接着指向下一指针,这样依次向后查询。

(3)查询结点,如果找到要查询的结点则输出:查询成功并输出其所有信息,若没有找到输出:sorry未找到!

流程图如图3.7

                           图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

流程图: 可选过程: 开始

图3.8 统计商品流程图


3.8显示商品过程

(1)是在Supermarket类下定义一个Out函数作为显示商品信息的函数。

(2)将goods的首地址给p1,判断p1是否为空,若空则输出“没有商品”。否则输出该商品所有信息(商品代码、名称、产地、数量、单价)等。

(3)将p1赋给p2,p1->next赋给p1,进入循环,输出下一个商品信息。

流程图如图3.9

图3.9 显示商品流程图


四、编码

详见附录。


五、测试

打开软件后见到如图所示的界面正式进入超市管理系统

图5.1 系统主界面

该软件有增加商品、删除商品、修改商品、查询商品、统计商品、显示商品六大功能。

(1)增加商品 

选择1  进入商品录入界面   

图5.2 新增商品信息界面

依次录入商品代码、商品名称、商品产地、商品单价、商品的库存量并按Y保存,需要注意的是商品单价限制在0~65535,商品的库存量限制在0~99999范围内。

(2)删除商品

图5.3 删除商品界面

首先输入商品的名称,然后选择是Y 或者N。   

(3)修改商品

选择3  进入修改商品界面

图5.4 修改商品界面

输入商品的名称,系统会显示商品代码、名称、产地、价格、库存量,然后分别选择1 改商品代码、2改商品名称、3改商品产地、4改商品单价、5 改商品库存量 、7改全部信息。

(4)查询商品

图5.5 查询商品界面

输入商品名称后,系统会显示你所查询的商品信息,有商品的代码、商品的名称、商品的产地、商品的单价和库存量等。

(5)统计商品

图5.6 统计商品界面

选择5后进入统计商品,输入商品名称后,会显示出商品的数量和总价值。

选择6后 系统会显示所有商品的信息

图5.7 显示所有商品信息界面


六、设计总结

在年福忠老师的耐心指导下,经过我和同学们交流讨论,终于基本完成了超市管理系统的设计与实现。

在实训期间,按时完成任务,进行整理融合。整理完毕后进行调试发现有不少有待改善之处,如商品价格和商品库存量不能为负数,也不能高的离谱等。在李杰老师的严格要求下,最后还增加了一个显示栏,通过该显示函数的实现可对超市所有商品一目了然。本着认真学习,对自己负责的态度,和同学们共同努力,对该系统程序的不足之处尽力修改,尽量达到程序的健壮性等。

但是尽管本组成员都非常努力,但该程序仍有不足之处,如对于商品代码num和商品库存量count若输入英文字母,按回车键后屏幕便会闪烁不停,重新打开系统后前面所输入的商品信息不能保存,在保存商品时按Y以外的键也可保存等。

总之,在年福忠老师的悉心指导下,我们收获颇丰!不仅深刻掌握了课本知识,而且加强了团队意识,在以后各自的人生发展道路上抹下了浓重的一笔!


                          致 谢

    在系统开发的两个月里,我受到了指导老师年老师的细心指导,老师严谨的指导态度与深厚的理论知识都让我受益非浅,从他身上我学到了很多的东西,无论是理论还是实践都使我的知识有很大的提高.借此我特提出感谢。     

                         


                    参考文献

1.姜灵芝,余健. C语言课程设计案例精编.北京:清华大学出版社,2008

2.王新,孙雷. C语言课程设计.北京:清华大学出版社,2009

3.游洪跃、彭骏、谭斌.C语言程序设计实验与课程设计教程.北京:清华大学出版社,2011

4.王连相.C/C++程序设计上机指导与测试. 北京:中国铁道出版社,2006

5.C语言函数手册,机械工业出版社,1999


第二篇:PB超市管理系统_课程设计说明书


课程设计任务书

设计题目 超市管理系统

一、课程设计目的

该课程设计是信息管理本科集中实践性环节之一,是学习完《数据库基础与应用》和《程序设计方法》课程后进行的一次全面的综合练习。其目的是通过本课程设计使学生对具体问题应用《程序设计方法》课程中所学的方法与技术,进行需求分析及软件设计的过程,不仅对程序设计方法课程中的所有知识点进行一个全面的复习巩固,更重要的是增强学生解决实际问题的能力。

二、设计内容、技术条件和要求

内容:

1、可对学生信息及权限进行管理;

2、用户根据不同的权限可对学生信息进行添加、删除、修改等操作;

3、可对学生的信息进行各种查询;

4、可对学生信息等进行报表打印和统计功能;

技术条件:powerbuilder开发工具的熟练运用,数据库理论知识和实际操作能力。 要求:

1、本课程设计要求学生独立设计完成。包括规划后台数据库、程序代码的编写以及软件界面的设计。

3、数据库中不能少于两个表。

4、程序应功能完善,界面友好,容错性好,操作方便。

三、时间进度安排

系统分析与规划 半周

系统设计与调试 一周

撰写课程设计说明书 半周

四、主要参考文献

郑阿奇.PowerBuilder实用教程.第2版.北京:电子工业出版社,2004. 孙秋冬主编.PowerBuilder 应用开发实用教程.第1版.北京:高等教育出版社,2005.

费雅洁主编.PowerBuilder程序设计教程.第1版.北京:人民邮电出版社,2006.

1. 创建进入窗口

PB超市管理系统课程设计说明书

按钮“进入”下的代码 open(w_login) close(w_main) 2. 创建登录窗口

PB超市管理系统课程设计说明书

按钮“登陆”下的代码

string uid_lr,pwd_lr string uid_db,pwd_db int i

uid_lr = sle_1.text pwd_lr = sle_2.text

select count(*) into :i from gly where id = :uid_lr using sqlca;

if i<1 then

messagebox("对不

起","该用户不存在!")

sle_1.text = "" sle_2.text = "" sle_1.setfocus() return

end if

select password into :pwd_db from gly

where id = :uid_lr

3. 创建进出口货窗口

PB超市管理系统课程设计说明书

then using sqlca; if pwd_db <> pwd_lr sle_2.text = "" sle_2.setfocus() return end if messagebox("对不open(w_manage) close(w_login) 起","密码错误!")

4. 创建商品信息窗口

PB超市管理系统课程设计说明书

按钮“上一条”下的代码

int kk kk=dw_1.getrow() if kk=1 then

messagebox("

提示信息","已到达第一条!")

else

dw_1.scrollpriorrow()

end if

按钮“下一条”下的代码

if dw_1.getrow() = dw_1.rowcount() then

messagebox("提示

","已经是最后一条!")

else dw_1.scrollnextro

w()

end if

按钮“第一条”下的代码

dw_1.scrolltorow(1) 按钮“最后一条”下的代码

int kk

kk=dw_1.rowcount

()

dw_1.scrolltorow(kk) 按钮“添加”下的代

码 //int kk //

kk=dw_1.insertrow(0) //

dw_1.scrolltorow(kk) //

dw_1.setcolumn("goods")

// dw_1.setfocus() // int i

i = dw_1.insertrow(0) dw_1.scrolltorow(i) dw_1.setfocus() 按钮“更新”下的代码

int kk,count

dw_1.accepttext()

count=dw_1.modif

iedcount()+dw_1.deletedcount()

if count>0 then if dw_1.update()=1

then

commit using sqlca;

messagebox("

提示信息", "已保存

"+string(count)+"条数据!")

else

rollback using

sqlca;

messagebox("提示信息","数据更新失败!")

end if

end if

按钮“删除”下的代

int kk

kk=messagebox("

提示信息","确定要删除该数

吗?",exclamation!,yesno!)

if kk=1 then

dw_1.deleterow(0)

dw_1.update() end if

5. 创建供应商信息窗口

PB超市管理系统课程设计说明书

按钮“上一页”下的i_count = 代码 dw_1.modifiedcount()+dw_

1.deletedcount() dw_1.scrollpriorrow()

按钮“下一页”下的if i_count > 0 then 代码

if dw_1.getrow() = IF dw_1.update() = dw_1.rowcount() then 1 THEN

messagebox("提示 COMMIT ","已经是最后一条!") USING SQLCA;

else

dw_1.scrollnextromessagebox("提示","您已w() 经成功保存

end if "+string(i_count)+"条数据!按钮“保存”下的代")

码 ELSE

long rtn

int i_count ROLLBACK USING SQLCA; messagebox("提示","保存失败!") END IF end if 按钮“添加”下的代码 int i i = dw_1.insertrow(0) dw_1.scrolltorow(i) dw_1.setfocus() 按钮“删除”下的代码 int i i = messagebox("提示","你真的要删除该条记录

吗?",question!,yesno!,1)

if i=1 then

6. 创建查询窗口

PB超市管理系统课程设计说明书

dw_1.deleterow(0) end if

按钮“查询”下的代码

string kk

kk = sle_1.text dw_1.settransobject(sqlca)

dw_1.retrieve(kk)

创建增减删除记录窗口

PB超市管理系统课程设计说明书

查找下的代码 ext string uid_seek from gly

uid_seek = sle_1.text where id= :uid_seek select id,password using sqlca; into :sle_1.text,:sle_2.t

添加下的代码string uid_lr,pwd_lr int i select count(*)

into :i uid_lr = sle_1.text from gly pwd_lr = sle_2.text where id = :uid_lr

using sqlca; if trim(uid_lr) = "" or

trim(pwd_lr) = "" then if i>=1 then messagebox("对不

messagebox("对

起","请输入用户名和不起","该用户已经存密码!") 在!")

return

sle_1.setfocus() end if

return

if sqlca.sqlcode = 100 then

messagebox("对

不起","该用户不存在!")

end if insert

into

gly(id,password) values(:uid_lr,:pwd_lr) using sqlca;

if sqlca.sqlnrows > 0 then

messagebox("提

示","添加成功!")

commit

using

sle_1.text = "" sle_2.text = "" sle_1.setfocus()

return

end if

sqlca; sle_2.setfocus()

else

messagebox("提示","添加失败!")

rollback

using

sqlca;

sle_2.setfocus()

end if

删除下的代码 string uid_del int i,net

uid_del = sle_1.text

net = MessageBox("删除","是否真的要删除"+uid_del+"?",Exclamation!,OKCancel!,2) if net = 2 then

return

end if select count(*) into :i from gly

where id = :uid_del using sqlca;

if i<1 then

messagebox("删

除失败","该用户不存在!") sle_1.setfocus()

return

end if

delete from gly where id = :uid_del using sqlca;

if sqlca.sqlcode <> 0 then

messagebox("数

据库错误","删除失败!") rollback;

else

messagebox("删除成功",uid_del + "用户的信息已经被删除!") sle_1.text = "" sle_2.text = ""

commit;

end if 更新下的代码 string uid_lr,pwd_lr int i

uid_lr = sle_1.text pwd_lr = sle_2.text messagebox("",string(sle_1.taborder)) sle_2.taborder = 20

if trim(uid_lr) = "" or trim(pwd_lr) = "" then messagebox("对不起","请输入用户名和密码!")

return

end if select count(*) into :i from gly where id = :uid_lr using sqlca;

if i<1 then

messagebox("对

不起","该用户不存在,无法修改其密码!" &

+"~n要修改用户

名,请先删除再添加!") sle_1.setfocus()

return

end if

update gly

set password=:pwd_lr where id =:uid_lr using sqlca;

if sqlca.sqlnrows > 0 then

messagebox("提

示","密码修改成功!")

commit

using

sqlca; sle_2.setfocus()

else

messagebox("提示","密码修改失败!")

rollback

using

sqlca;

sle_2.setfocus()

end if

更多相关推荐:
Visual C++超市管理系统课程设计报告

超市管理系统设计课程设计报告书设计名称VisaulC课程设计题目学生姓名林业辉张玉山覃美芬专业计算机科学与技术数字媒体班别计科本092班学号090440220109044022170904402228指导老师日...

中小型超市管理系统数据库课程设计报告

数据库原理课程项目综合设计项目名称课程名称班级任课教师小组名称组长成员完成日期中小型超市管理系统数据库设计数据库原理1项目计划11系统开发目的1大大提高超市的运作效率2使用本系统可以迅速提升超市的管理水平为降低...

java超市管理系统课程设计报告

湖南文理学院课程设计题目:超市管理系统系别计算机科学与技术班级计科12102学生姓名学号指导教师谭文学课程设计进行地点:第三实验楼A617任务下达时间:20##年5月21日起止日期:20##年5月21日起至20…

超市信息管理系统课程设计报告

目录摘要2第1章概述311超市管理系统实现的目标312超市管理系统实现方案3第2章系统设计421系统功能模块设计4第3章数据库设计531数据库概念结构设计532登录模块的设计界面633系统的实现7参考文献81摘...

C++《超市商品管理系统》课程设计报告

面向对象程序设计课程设计报告学院电气与信息工程学院专业班级计科1301班学生姓名胡凯学号20xx443401设计地点单位计算机自主学习中心设计题目超市商品管理系统完成日期20xx年1月12日指导教师评语成绩五级...

超市管理信息系统课程设计报告

目录1需求分析111开发背景112系统可行性分析2111管理可行性分析2112经济可行性分析2113运行上的可行性2114社会可行性分析2115可行性研究结论32系统功能分析421系统功能422系统功能概述53...

C++超市管理系统课程设计

一设计题目问题描述和要求1题目人事管理系统2问题描述某小型公司主要有四类人员经理兼职技术人员销售经理和兼职推销员现在需要存储这些人员的姓名编号级别当月薪水计算月薪总额并显示全部信息要求1其中人员编号在生成人员信...

c 语言课程设计 超市员工管理系统

includeltstdiohgtincludeltstdlibhgtincludeltwindowshgt清屏函数头文件includeltstringhgtstructStuffcharnumber10员工编...

c语言超市管理系统报告书(C语言课程设计)

电子商务课程设计一需求分析随着现代生活质量的提高超市这种便利的服务开始走进我们的生活同时随着超市涌入我们的生活如何更便利的对超市进行系统和有序的操作成为了我们需要考虑的问题本程序运用C语言程序设计了一个超市管理...

超市管理系统报告

河南科技大学课程设计说明书课程名称数据库课程设计题目超市管理系统院系电子信息工程学院班级计科102学生姓名何萍指导教师赵海霞王志强刘中华日期20xx0611课程设计任务书1第一章绪论311开发背景312开发环境...

数据库课程设计报告(仓库管理系统)

数据库课程设计报告(仓库管理系统)三概要设计3.1ER图和相关说明类别(类别编号,类别名称,上级类别)仓库(仓库编号,隶属单位,备注)用户(用户名,密码,权限类型);客户(客户编号,联系人,单位,联系电话,传真…

仓库管理系统课程设计报告

湖北文理学院程序设计课程设计报告项目名称仓库管理系统学生姓名张三学号20xx19xx17班级物联网1311日期20xx19xx17年9月9日一需求分析1项目描述仓库管理系统用于仓库的货物管理实现货物信息的维护等...

超市管理系统课程设计报告(17篇)