C语言超市管理系统软件报告.docx
《C语言超市管理系统软件报告.docx》由会员分享,可在线阅读,更多相关《C语言超市管理系统软件报告.docx(27页珍藏版)》请在冰豆网上搜索。
C语言超市管理系统软件报告
北京化工大学C语言实训
实习报告
题目
小型超市管理系统的设计与实现
学生姓名
齐鹏飞
学号
学生姓名
叶亮亮
学号
学生姓名
刘迩海
学号
学生姓名
金震
学号
所在系(院)
信息科学与技术学院
专业名称
自动化
年级
2009级
2011-07-04
第1章软件需求分析
第1.1节软件编写目的
【21世纪以来,科技的快速发展推动人类社会不断进步,人们的生活水平不断提高,对物质产品的要求也不断提升。
作为当今社会为人们生活提供物质服务的重要载体----超市,其服务水平也在一定程度上影响了人们生活中的方方面面。
超市的服务水平主要取决于超市的管理水平,计算机的运用实现了超市的数字化管理,而超市管理系统将作为数字化管理的重要环节,为超市管理提供帮助。
一款优秀的超市管理系统将为超市管理者解决诸如超市产品销量如何、库存产品是否满足顾客需求、超市员工能否胜任自己的本职工作等问题。
通过超市管理系统实时数据更新,管理者可以得到最为直接有效的数据,让超市管理者正确把握超市经营方向,实现高水平、高效率、高品质的服务。
】
第1.2节项目背景
【本次小型超市管理系统的设计与实现,是北京化工大学2010-2011学年第三学期中,c语言程序设计实训的课题之一,参与的人员包括2009级部分自动化和测控的学生。
我组隶属于本次程序设计实训中第五大组的第9小组,完成课题为小型超市管理系统的设计与实现】
第1.3节定义
【专业术语:
算法:
有基本运算及规定的运算顺序所构成的完整的解题步骤。
整体模块图:
功能模块图是软件工程过程中的一个重要环节它将显示工程所要实现的各种功能,并分类。
char:
计算机编程语言(c、c++、java、VFP等)中可容纳单个字符的一种基本数据类型。
float:
小数在C语言中小数类型值。
】
第1.4节参考资料
【本报告参考的相关资料:
1北京化工大学课程设计指导手册C语言课程设计
2C语言程序设计
】
第1.5节软件功能说明
【软件系统结构:
管理人员模块:
实现包括对员工和商品信息的录入、查询、整体浏览、修改和删除以及销售信息的查看的功能,另外可对系统登录密码修改;
普通员工模块:
由管理人员模块获取登录员工号和初始密码后,可对个人信息查询以及销售操作。
第1.6节软件功能的验收标准
【小型超市管理系统的总体目标是实现商品信息和员工信息的动态管理。
管理员对商品信息的管理包括管理员对商品信息的录入、修改、查看及删除等一系列操作,对员工信息的管理与商品信息管理基本相同,区别在于管理员对员工信息的录入将为员工分配账号和初始密码,以便员工的销售操作。
在员工模块中有关销售操作,将会被记录由管理员查看。
通过库存商品的查看和员工的销售记录两项功能,实现本软件对商品销售和员工信息动态管理的总体目标】
第2章软件概要设计
第2.1节任务概述
【目标:
确定本系统中主要分为两个模块,包括管理员模块和普通员工模块。
管理员模块将完成商品信息和员工信息管理的大多数操作;普通员工可查看个人信息并且进行销售的操作。
普通员工销售商品的相关信息将被记录。
运行环境:
一般在windows系统下可操作运行
需求概述:
小型超市实现数字化管理,实现对员工和商品信息的动态管理,必须保证系统的稳定性和信息安全性,客户界面简单明了,并且有友好的人机互动。
】
第2.2节总体设计
【系统主要面对三个对象,分别是管理人员、普通员工和库存商品。
管理人员对普通员工和库存商品有相关的操作,普通员工仅对库存商品进行操作,因此系统应包括两个操作对象和两个被操作对象。
系统实现的简略图如下:
】
第2.3节软件模块设计
【Manager的大模块下,包括了信息管理模块、销售额查看模块和修改密码模块:
信息管理模块:
包括员工信息管理和商品信息管理两个结构相同、内容不同的模块。
由于面对对象不同,因此为员工信息管理和商品信息管理分别建立了两个文件,分别为yglr.dat和splr.dat。
用户进行操作时,得到用户的操作对象后,将调用相应的文件进校操作,实现对文件信息的输入、输出、修改和删除,即对员工信息和商品信息进行录入、查看、修改和删除。
销售额查看模块:
通过建立sale.dat文件记录员工相关销售信息,用户在以管理员身份进行操作时,通过调用sale.dat实现对销售额的查看
修改密码模块:
首先验证code.dat文件中的密码是否与用户输入的密码相同,若相同要求用户输入新密码,用新密码进行覆盖,等下次用户进入系统时验证的密码将是用户的新密码。
Worker模块下,包括了个人信息管理、商品销售和修改个人密码。
进入Worker模块必须以Manger模块中已录入相关的登录信息为前提。
登录时将调用yglr.dat对使用者输入的工号和密码进行对比,二者均相同时方可登录。
个人信息管理模块:
在使用者登录Worker模块的同时,系统已记录使用者的工号,在用户查看个人信息时,将通过调用yglr.dat选择性显示员工的个人信息。
商品销售:
通过使用者输入的商品编号调用splr.dat文件中的编号信息进行比对,找到后输出该商品的相关信息,要求使用者输入相应数量,减去相应库存商品中的数量,将销售数量和单价相乘得出应付金额,输入所收金额计算出找零,同时员工的工号和姓名信息以及出售商品的信息将被写入sale.dat文件中,以便管理员的查看。
修改密码模块:
首先用户输入原有密码,不正确将强制返回,正确则要求用户输入新密码。
将新密码写入yglr.dat,下次用户登录将使用新密码进行比对。
】
第2.4节数据结构
【员工结构体:
structemployee
{
charstaffID[20];//员工编号
charname[20];//员工姓名
charage[20];//年龄
charsex[20];//性别
charphone[20];//联系方式
charkey[MAX];//密码
}staff[SIZE];
商品结构体:
structgoods
{
charmerchID[20];//商品编号
charfullname[20];//商品名称
charkind[20];//商品种类
floatunitcost;//商品单价
floatspsl;//商品数量
floatxfje;//消费金额
}product[KCZL];
销售记录结构体:
structsale//商品销售结构体
{
charstaffID[20];//员工编号
charname[20];//员工姓名
charmerchID[20];//商品编号
charfullname[20];//商品名称
floatxssl;//商品数量
floatxfje;//消费金额
}sale[SIZE];】
第2.5节容错设计
【用户错误输入反应机制:
功能选择菜单中,若用户输入是无效字符或无次选项的数字,系统将自动提示用户输入错误,要求重新输入,直到用户输入正确为止。
用户失误输入反应机制:
在商品信息和员工信息录入中,将限制用户对于商品编号和员工工号的输入,若用户输入已存在的商品编号或员工工号时,系统将自动提示此商品编号或工号存在,要求重新输入;在商品信息修改和员工信息修改中也包括商品编号和员工工号的选项,若用户将商品编号或员工工号修改为已存在的编号或工号也将得到提示,用户可选择继续修改或取消修改。
用户失误操作:
在用户开始有关文件录入,修改和删除操作时,系统会提示是否开始操作,避免用户操作失误造成麻烦;若录入错误信息,用户也可通过修改或删除对信息进行纠正。
】
第3章软件详细设计
第3.1节程序描述
功能:
进行用户功能选择
性能:
良好;
输入选择数字,输出所选择的相应模块
功能:
完成员工信息管理
性能:
良好
输入项目:
员工相关个人信息
输出项目:
员工个人信息
功能:
完成商品信息管理
性能:
良好
输入项目:
商品信息管理功能选择
输出项目:
相关商品信息的功能操作
功能:
完成员工的登陆操作
性能:
良好
输入项目:
工号和个人密码
输出项目:
员工操作菜单
功能:
完成销售记录查看
性能:
良好
输入项目:
相应的选择项目
输出项目:
销售记录
功能:
完成商品销售
性能:
良好
输入项目:
商品编号商品数量收费金额
输出项目:
商品相关信息成交金额找零
功能:
完成修改密码操作
性能:
良好
输入项目:
原密码
输出项目:
新密码
【逐个模块给出以下的说明:
】
3.1.1功能
3.1.2性能
3.1.3输入项目
3.1.4输出项目
第3.2节算法
【略】
第3.3节程序逻辑
第3.4节接口
【由于系统的各种内外接口都是通过VisualC++软件实现的,是完全在内部进行操作的,故此处省略相关内容】
第3.5节存储分配
【无】
第3.6节限制条件
【条件与限制:
考虑到使用对象为小型超市管理系统,员工人数和商品总数有限,另外密码设计采用较为普遍的六位数。
】
第3.7节测试要点
【测试模块的主要测试要求:
1.用户在正确输入的情况下能完成对应功能。
2.用户在输入错误或操作的情况下能够及时提示并予以修正,保证系统运行的稳定性。
3.用户登录必须通过密码验证,以保证系统中的信息安全
4.对文件进行相应操作后,使用后重新录入的数据必须准确无误。
】
第4章软件使用说明
第4.1节安装和初始化
【操作说明:
1.用户在第一次使用该软件时,双击打开超市管理系统的exe文件即可运行小型超市管理系统的软件,出现欢迎界面按回车键后即可进入操作菜单;
2.初次登录用户必须选择管理员模块,普通人员模块将无法运行。
初次登录管理员模块要求用户输入初始密码,之后可进行管理员模块中的所有操作选项;
3.管理员需对员工信息和商品信息进行相关操作,在对员工信息进行录入时,即分配员工的工号和初始密码,其为登录员工模块的必要条件,即使得普通员工模块初始化;
4.用户作为普通员工操作软件时必须先确认自己的信息已经录入系统中,并得到登录工号和初始密码后方可登录;登录后用户可以查看自己的个人信息和修改密码,在已有商品信息的情况下可以开始商品销售操作,其销售记录将被记录下来。
5.初始化后再进行登录应使用修改后的密码,否则无法进行软件操作
】
第4.2节输入
【输入数据一览表详见4.8节】
4.2.1数据背景
【用户所输入数据,将对应保存在yglr.datsplr.datsale.dat中,质量管理较差,可直接删除,须改进。
】
【说明数据来源、存储媒体、出现频度、限制和质量管理等。
】
4.2.2数据格式
【数据格式详见4.8节表】
4.2.3输入举例
【暂无】
第4.3节输出
【给出每项输出数据的说明。
】
4.3.1数据背景
【输出数据将之间在屏幕显示,使用次数由用户自行决定。
】
4.3.2数据格式
【输出数据格式详见4.8节表】
4.3.3举例
【暂无】
第4.4节出错和恢复
【数据读取失败:
当用户进行查看或浏览操作时,若出现提示数据丢失或数据读取失败或文件不存在时,用户可检查软件同目录下是否有相应文件存在,若不存在必须通过相关录入操作建立文件夹方可继续使用。
密码登录错误:
若以管理员身份运行软件,登录密码错误将要求重新输入或退出,若用户忘记密码可将文件code.dat删除,即可重新设定密码进行操作。
普通员工登录信息错误可由管理员登录进行修改。
功能菜单报错信息:
用户在功能菜单输入非法字符或无效指令,系统将提示用户“输入有误,请重新输入”的信息,用户仅按回车后重新输入正确指令即可恢复继续操作。
工号或商品编号已存在:
当用户进行员工和商品录入或进行相关修改时,系统会自动检查已存在的工号或编号,若工号或商品编号已存在,系统会提示用户录入或要修改的信息已存在,用户输入一个新的工号或商品编号即可继续操作,或取消修改系统也可恢复。
销售报错商品编号不存在或库存商品不足请重新输入:
用户在进行销售操作时,若输入的商品编号不存在,系统会向用户提示无该商品的信息,用户可取消操作或输入正确的商品编号继续使用;若输入商品数量大于库存商品数,系统会提示用户库存商品不足,要求用户重新输入商品数量。
】
第4.5节求助查询
【用户在使用本款软件出现错误时,请将出现问题的菜单及形式记录下来,强制关闭后重新操作观察问题是否重复出现,若出现无法解决故障可拨打电话进行查询。
本电话24小时为您服务并解决系统出现的问题。
】
第4.6节运行说明
4.6.1运行步骤
【管理员运行步骤:
1.运行软件通过欢迎界面进入主菜单,选择管理员选项;
2.初次运行软件要求用户输入初始密码,之后登录则要求通过密码验证方可进行操作;
3.进入管理员模块后,用户可进行员工信息管理、商品信息管理、销售额查看、修改密码和返回首页操作,用户根据需要进行相应选择;
4.若选择员工信息管理或商品信息管理,用户可进行相应信息的录入、查看、浏览、修改、删除和返回操作,用户选择后即可使用相关功能,按系统提示进行操作与输入;
5.若用户选择销售额查看,系统提示文件读取失败,说明还未进行销售操作,若读取成功,用户将看见包括员工和商品信息的销售记录;
6.返回操作将会回到首页,用户再进行操作要求输入密码进行验证,验证无误后方可进行相关功能使用。
普通员工运行步骤:
1.确认个人信息已经被系统录入,输入工号和初始密码开始进行操作使用;
2.通过员工模块进入后,可进行个人信息查看、商品销售管理、修改密码和返回首页操作;
3.用户选择个人信息查看可看见个人信息,包括工号、姓名、性别、联系方式,浏览完毕按任意键返回;
4.选择商品销售管理,要求用户输入已存在的商品编号,系统会自动输出商品的相关信息,包括商品编号、名称、类别、单价,要求用户输入销售的商品数量,若输入商品数量大于库存商品数量将要求用户重新输入,输入正确将计算消费金额。
用户选择继续输入商品编号或结账操作;
5.结账操作后,用户输入收取金额,计算找零后,将返回上一菜单;
6.修改密码要求用户输入原有密码,输入原有密码正确后才可进行密码修改操作;
7..返回操作将会回到首页,用户再进行操作要求输入密码进行验证,验证无误后方可进行相关功能使用。
】
4.6.2操作信息
管理员模块:
1.员工信息管理:
对员工信息进行录入、查看、整体浏览、修改、删除。
选择此选项的进行除录入以外操作时,要求yglr.dat文件中以包含相关人员信息;对员工进行录入,要求工号的唯一性,其他信息可相同,另除密码外输入信息不可超过20个字节,密码不超过6个字节,否则会出现错误;对员工信息进行工号修改时也应保证修改后的员工号唯一性;
2.商品信息管理:
对商品信息进行录入、查看、整体浏览、修改、删除。
选择此选项的进行除录入以外操作时,要求splr.dat文件中以包含相关商品信息;对商品进行录入,要求商品编号的唯一性,其他信息可相同,另除单价和数量外输入信息不可超过20个字节,单价和数量必须输入十进制可读正确的数字;对商品信息进行商品编号修改时也应保证修改后的商品编号唯一性;
3.销售额查看:
实现对进行商品销售动作的员工进行记录。
记录信息包括员工工号、姓名、商品编号、商品名称、销售数量和消费金额,操作无特别要求;
普通员工模块:
1.个人信息查看:
正确登录后即可进行操作,无特别要求;
2.商品销售管理:
实现商品销售功能,计算相应销售所需数据,要求用户正确输入商品编号和商品数量,商品数量不大于该商品的库存总量;
3.修改登录密码:
实现密码私有化,要求用户首先正确输入原有密码,验证原有密码正确后要求用户输入修改后密码,成功操作修改后密码为用户的新密码;
a.运行目的;
b.操作要求;
c.启动方法;
d.预计运行时间;
e.操作命令格式及说明;
f.其他事项。
4.6.3输入/输出文件
【记录员工信息文件:
yglr.dat记录包括员工工号、员工姓名、员工性别、员工年龄、员工联系方式和员工个人密码;
记录商品信息文件:
splr.dat记录包括商品编号、商品名称、商品种类、商品单价和库存商品数;
记录销售信息文件:
sale.dat记录包括员工工号、员工姓名、商品编号、商品名称、销售数量和消费金额。
】
第4.7节非常规过程
【系统自动停止运行:
1可先强制关闭软件重新启动,试运行软件是否能正确运行;
2若无法强制关闭,可使用认为管理器直接结束进程,再重新启动软件;
3强制关闭电脑重新启动,运行软件观察是否能正确运行。
】
【提供应急或非常规操作的必要信息及操作步骤,如出错处理操作、向后备系统切换操作以及维护人员须知的操作和注意事项。
】
第4.8节程序文件(或命令文件)和数据文件一览表
销售信息表用于存储销售信息。
表中各字段功能定义如表
中文字段名
英文字段名
字段类型
长度
员工编号
staffID
char
20
员工姓名
name
char
20
商品编号
merchID
char
20
商品名称
fullname
char
20
商品数量
spsl
float
4
消费金额
xfje
float
4
商品信息表用于存储商品的信息。
表中各字段功能定义如表
中文字段名
英文字段名
字段类型
长度
商品编号
merchID
char
20
名称
fullname
char
20
类别
kind
char
20
单价
unitcost
float
4
数量
spsl
float
4
消费金额
xfje
float
4
职工信息表用于存储职工信息,职工编号为主键是唯一标识。
表中各字段功能定义如表
中文字段名
英文字段名
字段类型
长度
职工编号
staffID
char
20
姓名
name
char
20
员工年龄
age
char
20
性别
sex
char
20
联系方式
phone
char
20
密码
key
char
20
【按文件名字母顺序或按功能与模块分类顺序逐个列出文件名称、标识符及说明。
】
第4.9节用户操作举例
【暂无】
第5章软件的组装及测试
第5.1节各软件模块之间的调用
第5.2节软件的测试用例
【
软件测试用例一:
在所有功能菜单中,随意输入非法指令和正确指令,测试菜单选择功能。
测试方法与结果:
输入非法字符时,系统会自动报错,提示用户输入有误,并要求重新输入;重新输入正确字符后,系统正确进入所选择菜单。
软件测试用例二:
在员工录入和商品信息录入中录入相同的工号或编号,在修改过程中修改为已存在的工号和商品编号。
测试方法与结果:
正确进入录入界面后,输入已存在的工号或商品编号,要求重新输入编号,再次输入已有编号,系统仍会提示已存在,输入不存在的工号后,系统方可继续输入其他信息;正确进入修改界面后,选择修改工号或商品编号,输入不存在的工号或商品编号,系统提示不存在并强制返回,重新进行操作后,输入须修改的工号或编号,修改为已存在的工号或编号,系统提示修改后的信息有重复,要求重新修改或取消操作,取消操作后通过浏览发现信息并未改动,重新进行正确的修改,发现修改正确。
软件测试用例三:
商品销售的一系列操作
测试方法与结果:
正确进入商品销售模块,输入非法或不存在的商品编号,系统提示无该商品信息,要求重新输入或取消操作,取消操作后返回上一级菜单;重新进入仍输入不合法字符,选择继续操作后,再输入非法字符,系统仍会报错;选择继续输入正确的商品编号,系统输出相关商品信息,并要求输入商品数量;输入较大商品数量,系统提示库存商品不足,要求重新输入,重新输入正确数量,销售操作成功;通过查看库存商品信息,发现相关商品的减少数量与销售数量相同。
软件测试用例四:
修改密码测试
测试方法与结果:
修改密码模块,首先要去输入原有密码,输入错误原密码,系统提示密码错误,返回操作;重新进行操作,输入正确密码后,提示输入修改后的密码,输入修改后的密码退出重新登录,使用原密码登录,系统提示密码错误;输入修改后密码,正确登录相应菜单。
】
第5.3节评价
5.3.1软件能力
【经过相关测试,软件进行测试所要达到的结果,与软件所能完成的功能一致,测试结果良好;进行的错误操作,系统能够正确提示用户,要求重新输入或取消操作,无论正确还是错误的输入都能返回上一层菜单。
】
5.3.2缺陷和限制
【软件测试在进行有关密码操作的功能中,没有正确提示用户输入几位密码,可能造成用户输入出错;商品销售中,结构体写入文件的方式没有用到链表,可能会影响大数据量的输入;相关提示描述不够准确或过于专业,不能给用户较为直接的解决办法。
】
5.3.3建议
【建议:
操作密码的相关模块中向用户提示密码的限制,并能够判断用户输入超过限制,让用户重新输入;商品销售中,建议使用链表,进行动态输入,方便销售记录的使用;相关错误提示信息描述应简单明了,表意明确,并给用户相应的操作提示。
】
5.3.4测试结论
【软件功能基本实现,容错性较好,测试性能良好,相关解决办法有效,软件测试通过。
】
结论
小型超市管理系统这一套软件从设计、开发到实现共经过了两个星期,在大家的努力下现以成功实现所有既定功能,系统运行良好,初步达到我们对于该软件的期望值。
我们在设计初期搜集了超市管理的相关资料,结合自身对于题目的理解,并且参考了相对成熟的编写思路,初步制定了该软件所能实现的功能。
随着编写的深入,我们对于功能的实现也有了更多的理解和想法,在完成管理员模块的大部分功能后,我们添加了销售函数,并且实现员工销售记录查看,使我们组的作品能区别于其他组,由于时间有限,实现销售的环节还存在一些缺陷,敬请谅解。
所有函数和功能基本实现的情况下,我们更多的考虑了用户的操作使用情况,重新在用户输入的容错性上进行修改,添加更多的人机互动,出现更多错误操作的提示语,为软件能够稳定运行作出重要保障;在其他模块的编写中,我们也花了很多的心力,尽量让系统实现的功能更加丰富,使用更加方便
小型超市管理系统是我们在软件编写道路上的第一个完整作品,首先我们要承认,由于自身编写的水平有限,系统仍然存在着很多目前可见和未见的缺陷,比如在销售环节中,销售记录的数量会受到限制,由于时间紧迫,我们没有对此进行修改;另外在实现销售记录成为电子表格的道路上,我们也遇到很多困难,最终没有实现该功能,这些一直都是我们心中深深的遗憾,当然系统中也有很多我们现在无法解决的问题或是我们没有发现的问题,使得系统的运行受到一定限制,我们对此感到深深的抱歉。
在今后的道路中,我们会更加精进自身的技术,完善系统功能,更多的为客户需求考虑,造就功能更加健全人性化的软件,十分感谢。
致谢
世间哪得春常在,花开花落总相宜。
小学期两个星期的努力,我们最终完成了这件不是十分完美的作品----我们小组的小型超市管理系统。
虽然很遗憾最终的结果,我们没有冲进最后的争优组,失去了再次展示的机会,但是在实现软件的过程中,我们没有遗憾,因为在这个过程中,我们拼搏过、奋斗过,一切一切都被我们记忆着。
我们曾经如此渴求胜利,为此我们不