范文一:超市账单管理系统项目需求
项目需求书
第一部分 项目概述
1、 业务需求概述
超市账单管理系统主要用于对超市的交易账单进行管理,如账单录入、账单修改、 账单删除,以及和超市商品相关的供应商、用户的管理等。所谓账单,就是超市与供应 商进行交易的凭据。超市采购部的职员、超市的部门经理是该系统的目标用户。 要求:
1. 使用jsp、servlet 、jstl、html 、jdk 特性(如抽象类或者接口)功能实现该系统。 2. 使用oracle 数据库。
3. 按照b/s 结构完成系统。
2、 项目功能说明
3、 项目业务流程描述
登录页面:
需要先通过登录才能访问系统,输入时用户名、密码不能为空,用户名密码匹配错误,则需要返回提示信息。
登陆出错窗口:
主窗口:
系统内部整体使用IFRAME 布局。主窗口显示当前的欢迎信息和登录用户名称,左侧是操作区域,包括账单管理、供应商管理、用户管理、退出操作,右侧为公共数据区域。 注意根据用户权限不同,左侧菜单树展示的内容也不相同,普通用户只有账单权限,经理及管理员账户才能进行供应商管理和用户管理,普通用户只能修改自己账户的信息而不能修改其他用户信息。
账单列表:
账单管理数据列表页面支持组合查询功能,根据条件可以进行组合搜索;单击‘添加数据’按钮,进入添加账单页面,单击‘提交’将数据加入到账单列表中,在添加的过程中需要验证信息(红色的*)。
单击‘商品名称’进入到账单详细页面,单击‘修改’进行数据更新,单击‘删除’删除此条信息,单击返回,返回到上一层s
在修改和删除过程中要有必要的信息提示,如确认删除吗,、确认修改吗,、删除成功、修改成功等。
供应商列表:
供应商管理数据列表页面支持组合查询功能,根据条件可以进行组合搜索;单击‘添加数据’按钮,进入添加供应商页面,单击‘提交’将数据加入到供应商列表中,在添加的过程中需要验证信息(红色的*)。
单击‘供应商名称’进入到供应商详细页面,单击‘修改’进行数据更新,单击‘删除’删除此条信息,单击返回,返回到上一层
在修改和删除过程中要有必要的信息提示,如确认删除吗,、确认修改吗,、删除成功、修改成功等。
用户列表:
用户管理数据列表页面支持按用户名称查询功能,根据条件可以进行用户查询;单击‘添加数据’按钮,进入添加用户页面,单击‘提交’将数据加入到用户列表中,在添加的过程中需要验证信息(红色的)。
单击‘用户名称’进入到用户详细信息页面,单击‘修改’进行数据更新,单击‘删除’删除此条信息,单击返回,返回到上一层
单击修改密码,进入到修改密码页面,这里要对密码进行相关的验证
在修改和删除过程中要有必要的信息提示,如确认删除吗,、确认修改吗,、删除成功、修
改成功等。
下面是余秋雨经典励志语录,欢迎阅读。
不需要的朋友可以编辑删除~~
关于年龄
1.一个横贯终生的品德基本上都是在青年时代形成的,可惜在那个至关重要的时代,青年人受到的正面的鼓动永远是为成功而搏斗,而一般所谓的成功总是带有排他性、自私性的印记。结果,脸颊上还没有皱纹的他们,却在品德上挖下了一个个看不见的黑洞。
2.我不赞成太多地歌颂青年,而坚持认为那是一个充满陷阱的年代。陷阱一生都会遇到,但青年时代的陷阱最多、最大、最险。
3.历史上也有一些深刻的哲人,以歌颂青年来弘扬社会的生命力。但这里显然横亘着一种二律背反:越是坚固的对象越需要鼓动青年去对付,但他们恰恰因为年轻,无法与真正的坚持相斡旋。
4.青年时代的正常状态是什么,我想一切还是从真诚的谦虚开始。青年人应该懂得,在我们出生之前,这个世界已经精精彩彩、复复杂杂地存在过无数年,我们什么也不懂,能够站正脚下的一角建设一点什么,已是万幸。
5.中年是对青年的延伸,又是对青年的告别。这种告别不仅仅是一系列观念的变异,而是一个终于自立的成熟者对于能够随心所欲处置各种问题的自信。
6.中年人的当家体验是最后一次精神断奶。你突然感觉到终于摆脱了父母、兄长、老师的某种依赖,而这种依赖在青年时代总是依稀犹在的;对于领导和组织,似乎更贴近了,却又显示出自己的独立存在,你成了社会结构网络中不可缺少的一个点;因此你在热闹中品尝了有生以来真正的孤立无援,空前的脆弱和空前的强大集于一身。
7.中年人一旦有了当家体验,就会明白教科书式的人生教条十分可笑。当家管着这么一个大摊子,每个角落每时每刻都在涌现着新问题,除了敏锐而又细致地体察实际情况,实事求是地解开每一个症结,简直没有高谈阔论、把玩概念的余地。这时人生变得很空灵,除了隐隐然几条人生大原则,再也记不得更多的条令。
8.中年人的坚守,已从观点上升到人格,而人格难以言表,他们变得似乎已经没有顶在脑门上的观点。他们知道,只要坚守着自身的人格原则,很多看似对立的观点都可相容相依,
一一点化成合理的存在。于是,在中年人眼前,大批的对峙消解了,早年的对手找不到了,昨天的敌人也没有太多仇恨了,更多的是把老老少少各色人等照顾在自己身边。请不要小看这“照顾”二字,中年人的魅力至少有一半与此相关。
9.中年人最可怕的是失去方寸。这比青年人和老年人的失态有更大的危害。中年人失去方寸的主要特征是忘记自己的年龄。一会儿要别人像对待青年那样关爱自己,一会儿又要别人像对待老人那样尊敬自己,他永远活在中年之外的两端,偏偏不肯在自己的年龄里落脚。
10、某个时期,某个社会,即使所有的青年人和老年人都中魔一般荒唐了,只要中年人不荒唐,事情就坏不到哪里去。最怕的是中年人的荒唐,而中年人最大的荒唐,就是忘记了自己是中年。
11、中年太实际、太繁忙,在整体上算不得诗,想来难理解;青年时代常常被诗化,但青年时代的诗太多激情而缺少意境,按我的标准,缺少意境就算不得好诗。
12、一般情况下,老年岁月总是比较悠闲,总是能够没有功利而重新面对自然,总是漫步在回忆的原野,而这一切,都是诗和文学的特质所在。老年人可能不会写诗或已经不再写诗,但他们却以诗的方式生存着。看街市忙碌,看后辈来去,看庭花凋零,看春草又绿,而思绪则时断时续,时喜时悲,时真时幻。 13、老人的年龄也有积极的缓释功能,为中青年的社会减轻负担。不负责任的中青年用不正当的宠溺败坏了老人的年龄,但老人中毕竟还有冷静的智者,默默固守着年岁给予的淡然的尊严。
14、只有到了老年,沉重的人生使命已经卸除,生活的甘苦也已了然,万丈红尘已移到远处,宁静下来了的周际环境和逐渐放慢了的生命节奏构成了一种总结性、归纳性的轻微和声,诗的意境出现了。
15、中青年的世界再强悍,也经常需要一些苍老的手来救助。平时不容易见到,一旦有事则及时伸出,救助过后又立即消失,神龙见首不见尾。这是一种早已退出社会主体的隐性文化和柔性文化,隐柔中沉积着岁月的硬度,能使后人一时启悟,如与天人对晤。老年的魅力,理应在这样的高位上偶尔显露。不要驱使,不要强求,不要哄抬,只让它们成为人生的写意笔墨,似淡似浓,似有似无。
关于人生
1.我们对这个世界,知道得还实在太少。无数的未知包围着我们,才使人生保留迸发的乐趣。当哪一天,世界上的一切都能明确解释了,这个世界也就变得十分无聊。人生,就会成为一种简单的轨迹,一种沉闷的重复。
2.人有多种活法,活着的文明等级也不相同,住在五层楼上的人完全不必去批评三层楼的低下,何况你是否在五层楼还缺少科学论证。
3.人生的道路也就是从出生地出发,越走越远。一出生便是自己,由此开始的人生就是要让自己与种种异己的一切打交道。打交道的结果可能丧失自己,也可能在一个更高的层面上把自己找回。
4.不管你今后如何重要,总会有一天从热闹中逃亡,孤舟单骑,只想与高山流水对晤。走得远了,也许会遇到一个人,像樵夫,像路人,出现在你与高山流水之间,短短几句话,使你大惊失色,引为终生莫逆。但是,天道容不下如此至善至美,你注定会失去他,同时也就失去了你的大半生命。
5.人生的过程虽然会受到社会和时代的很大影响,但贯穿首尾的基本线索总离不开自己的个体生命。个体生命的完整性、连贯性会构成一种巨大的力量,使人生的任何一个小点都指点着整体价值。
6.如果有一天,我们突然发现,投身再大的事业也不如把自己的人生当做一个事业,聆听再好的故事也不如把自己的人生当做一个故事,我们一定会动手动笔,做一点有意思的事情。
7.杰出之所以杰出,是因为罕见,我们把自己连接于罕见,岂不冒险?既然大家都很普通,那么就不要鄙视世俗岁月、庸常岁序。不孤注一掷,不赌咒发誓,不祈求奇迹,不想入非非,只是平缓而负责地一天天走下去,走在记忆和向往的双向路途上,这样,平常中也就出现了滋味,出现了境界。
8.就人生而言,应平衡于山、水之间。水边给人喜悦,山地给人安慰。水边让我们感知世界无常,山地让我们领悟天地恒昌。水边让我们享受脱离长辈怀抱的远行刺激,山地让我们体验回归祖先居所的悠悠厚味。
9.第一根白发人人都会遇到,谁也无法讳避,因此这个悲剧似小实大,简直是天网恢恢,疏而不漏,而决斗、毒药和暗杀只是偶发性事件,这种偶发性事件能快速置人于死地,但第一根白发却把生命的起点和终点连成了一条绵长的逻辑线,人生的任何一段都与它相连。
10、谁也不要躲避和掩盖一些最质朴、最自然的人生课题如年龄问题。再高的职位,再多的财富,再大灾难,比之于韶华流逝、岁月沧桑、长幼对视、生死交错,都成了皮相。北雁长鸣,年迈的帝王和年迈的乞丐一起都听到了;寒山扫墓,长辈的泪滴和晚辈的泪滴却有不同的重量。
11、人格尊严的表现不仅仅是强硬。强硬只是人格的外层警卫。到了内层,人格的天地是清风明月,柔枝涟漪,细步款款,浅笑连连。
12、黄山谷说过:“人胸中久不用古今浇灌,则尘俗生其间,照镜觉面目可憎,对人亦语言无味。”这就是平庸的写照。如此好事,如果等到成年后再来匆匆弥补就有点可惜了,最好在青年时就进入。早一天,就多一份人生的精彩;迟一天,就多一天平庸的困扰。
13、再高的职位,再多的财富,再大灾难,比之于韶华流逝、岁月沧桑、长幼对视、生死交错,都成了皮相。北雁长鸣,年迈的帝王和年迈的乞丐一起都听到了;寒山扫墓,长辈的泪滴和晚辈的泪滴却有不同的重量。
14、人生不要光做加法。在人际交往上,经常减肥、排毒,才会轻轻松松地走以后的路。
15、几乎每一个改革探索者都遇到过嫉妒的侵扰,更不要说其中的成功者了。人们很容易对高出自己视线的一切存在投去不信任,在别人快速成功的背后寻找投机取巧的秘密。
关于文化
1.真正的文化精英是存在的,而且对国家社会非常重要。但是这些年来,由于伪精英的架势实在是太让人恶心了,结果连真的精英的名声也败坏了。真精英总是着眼于责任,伪精英总是忙着装扮;真精英总是努力地与民众沟通,伪精英总是努力地与民众划分,这就是最根本的区别。
2.凡是文化程度不高的群落,总是会对自己不懂的文化话语心存敬畏,正是这种敬畏心理被一些投机文人利用了。
3.在文化上,无效必然导致无聊,无聊又必然引来无耻。但是,即使到了这种“三无”的低谷,也不必过于沮丧。因为只有低谷,才能构成对新高峰的向往。
4.当今天下百业,文化最大。当今天下百行,文化届最小。那么,岂能再让一个日渐干涸的小池塘,担任江河湖海的形象代表?
5.古代绘画中无论是萧瑟的荒江、丛山中的苦旅,还是春光中的飞鸟、危崖上的雏鹰,只要是传世佳品,都会包藏着深厚的人生意识。贝多芬的交响曲,都是人生交响曲。
6.善良,这是一个最单纯的词汇,又是一个最复杂的词汇。它浅显到人人都能领会,又深奥到无人能够定义。它与人终生相伴,但人们却很少琢磨它、追问它。
7.社会理性使命已悄悄抽绎,秀丽山水间散落着才子、隐士,埋藏着身前的孤傲和身后的空名。天大的才华和郁愤,最后都化作供后人游玩的景点。
8.阅读的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。
9.为什么那么多中国民众突然对韩国的电视剧,对超女表现出那么单纯的投入,很重要的原因是,韩国艺术家不知道中国评论家,而超女根本不在乎评论家的存在。
10、一切美丽都是和谐的,因此总是浑然天成,典雅含蓄。反之,一切丑陋都是狞厉的,因此总是耀武扬威,嚣张霸道。如果没有审美公德的佑护,美永远战胜不了丑。
11、什么季节观什么景,什么时令赏什么花,这才完整和自然。如果故意地大颠大倒,就会把两头的况味都损害了。“暖冬”和“寒春”都不是正常的天象。
12、文明的人类总是热衷于考古,就是想把压缩在泥土里的历史扒剔出来,舒展开来,窥探自己先辈的种种真相。那么,考古也就是回乡,也就是探家。探视地面上的家乡往往会有岁月的唏嘘、难言的失落,使无数游子欲往而退;探视地底下的家乡就没有那么多心理障碍了,整个儿洋溢着历史的诗情、想像的愉悦。
13、我们的历史太长、权谋太深、兵法太多、黑箱太大、内幕太厚、口舌太贪、眼光太杂、预计太险,因此,对一切都“构思过度”。
14、中华文化的三大优点:一、不喜远征。中国人不会举一国之力去攻打远方之国。二、不喜极端。儒家讲究“中庸之道”,会努力寻找一个中间点,规避极端三、不喜无序。中国一直处于集权统治的状态中,习惯所有的事务都在管理之中,中国失控的时候是很少见的。
关于爱情
很多女孩子觉得责任感不太重要,男人没有责任感反而给了女方一种权利。其实对男人来说,还有什么比没有责任感可怕地呢?与没有责任感的男人谈恋爱,就像与朝雾和晚霞厮磨,再美好也没有着落。
爱情非常珍贵,不仅值得用斗争来保卫,而且即使付出生命的代价也值得。
其实,未经艰苦寻找的草率结合,对她也是不尊重。她和你一样,都有寻求深刻爱情的权利。
每一男女都处在自转之中,当一个男人最散发魅力的一面转向了一位女人,而这女人最美好的一面也刚好朝向了这个男人,那么爱情就挡也挡不住了。当然不是每个人都如此幸运,自转的方向和速度,相对于那个有可能出现或已经错过的异性,总要有偏差,所以老有人找不到自己的爱情。
2、能够慢慢培养的不是爱情,而是习惯。能够随着时间得到的,不是感情而是感动。所以爱是一瞬间的礼物,有就有,没有就没有。但反过来说,爱和婚姻实际并不是一回事情,并不是所有的爱情都要结婚的,也不是所有婚姻都有爱情的。
6、爱情里,总有一个主角和一个配角,累的永远是主角,伤的永远是配角;有时,爱也是种伤害:残忍的人,选择伤害别人,善良的人,选择伤害自己;人生就是一种承受,需要学会支撑。支撑事业,支撑家庭,甚至支撑起整个社会,有支撑就一定会有承受,支撑起多少重量,就要承受多大压力。
7、假如你想要一件东西,就放它走。它若能回来找你,就永远属于你;它若不回来,那根本就不是你的。爱情也是如此。
8、为什么把择定终身的职责,交付给半懂不懂的年岁;为什么把成熟的眼光,延误地出现在早已收获过的荒原?
9、说了那么多旳——“如若你不在,我等待你归来。”也比不过你一句——“我不会等,我去找你!”
关于友情
1.常听人说,人世间最纯净的友情只存在于孩童时代。这是一句极其悲凉的话,居然有那么多人赞成,人生之孤独和艰难,可想而知。我并不赞成这句话。孩童时代的友情只是愉快的嘻戏,成年人靠着回忆追加给它的东西很不真实。友情的真正意义产生于成年之后,它不可能在尚未获得意义之时便抵达最佳状态。
2.很多人都是在某次友情感受的突变中,猛然发现自己长大的。仿佛是哪一天的中午或傍晚,一位要好同学遇到的困难使你感到了一种不可推卸的责任,你放慢脚步忧思起来,开始懂得人生的重量。就在这一刻,你突然长大。
3.在人生的诸多荒诞中,首当其冲的便是友情的错位。友情的错位,来源于我们自身的混乱。
4.置身于同一个职业难道是友情的基础?当然不是。如果偶尔有之,也不能本末倒置。情感岂能依附于事功,友谊岂能从属于谋生,朋友岂能局限于同僚。
5.在家靠父母,出外靠朋友。这种说法既表明了朋友的重要,又表明了朋友的价值在于被依靠。但是,没有可靠的实用价值能不能成为朋友?一切帮助过你的人是不是都能算作朋友?
6.患难见知己,烈火炼真金。这又对友情提出了一种要求,盼望它在危难之际及时出现。能够出现当然很好,但友情不是应急的储备,朋友更不应该被故意地考验。
7.真正的友情不依靠什么。不依靠事业、祸福和身份,不依靠经历、方位和处境,它在本性上拒绝功利,拒绝归属,拒绝契约,它是独立人格之间的互相呼应和确认。它使人们独而不孤,互相解读自己存在的意义。因此所谓朋友也只不过是互相使对方活得更加自在的那些人。
8.真正的友情都应该具有“无所求” 的性质,一旦有所求,“求”也就成了目的,友情却转化为一种外在的装点。我认为,世间的友情至少有一半是被有所求败坏的,即便所求的内容乍一看并不是坏东西;让友情分担忧愁,让友情推进工作??,友情成了忙忙碌碌的工具,那它自身又是什么呢?应该为友情卸除重担,也让朋友们轻松起来。朋友就是朋友,除此之外,无所求。
9.无所求的朋友最难得,不妨闭眼一试,把有所求的朋友一一删去,最后还剩几个?
10.真正的友情因为不企求什么不依靠什么,总是既纯净又脆弱。世间的一切孤独者也都遭遇过友情,只是不知鉴别和维护,一一破碎了。
11.“君子之交谈如水”,这种高明的说法包藏着一种机智的无奈,可惜后来一直被并无机智、只剩无奈的人群所套用。怕一切许诺无法兑现,于是不作许诺;怕一切欢晤无法延续,于是不作欢晤,只把微笑点头维系于影影绰绰之间。有人还曾经借用神秘的东方美学来支持这种态度:只可意会,不可言传;不着一字,尽得风流;羚羊挂角,无迹可寻??这样一来,友情也就成了一种水墨写意,若有若无。但是,事情到了这个地步,友情和相识还有什么区别?
12.强者捆扎友情,雅者淡化友情,俗者粘贴友情,都是为了防范友情的破碎,但看来看去,没有一个是好办法。原因可能在于,这些办法都过分依赖技术性手段,而技术性手段一旦进入感情领域,总没有好结果。
13.万不能把防范友情的破碎当成一个目的。该破碎的让它破碎,毫不足惜;虽然没有破碎却发现与自己生命的高贵内质有严重羝牾,也要做破碎化处理。罗丹说,什么是雕塑?那就是在石料上去掉那些不要的东西。我们自身的雕塑,也要用力凿掉那些异己的、却以朋友名义贴附着的杂质。不凿掉,就没有一个像模像样的自己。
14.该破碎的友情常被我们捆扎、粘合着,而不该破碎的友情却又常常被我们捏碎了。两种情况都是悲剧,但不该破碎的友情是那么珍贵,它居然被我们亲手捏碎,这对人类良知的打击几乎是致命的。
15.其实,世上哪有两片完全相同的树叶,即便这两片树叶贴得很紧?本有差异却没有差异准备,都把差异当作了背叛,夸张其词地要求对方纠正。这是一种双方的委屈,友情的回忆又使这种委屈增加了重量。负荷着这样的重量不可能再来纠正自己,双方都怒气冲天地走上了不归路。凡是重友情、讲正气的人都会产生这种怒气,而只有小人才是不会愤怒的一群,因此正人君子们一旦落入这种心理陷阱往往很难跳得出来。高贵的灵魂吞咽着说不出口的细小原因在陷阱里挣扎。
16.友情好像是一台魔力无边的红外线探测仪,能把一切隐藏的角落照个明明白白。不明不白也不要紧,理解就是一切,朋友总能理解,不理解还算朋友?但是,当误会无可避免地终于产生时,原先的不明不白全都成了疑点,这对被疑的一方而言无异是冤案加身;申诉无门,他的表现一定异常,异常的表现只能引起更大的怀疑,互相的友情立即变得难于收拾。
17.友情本是超越障碍的翅膀,但它自身也会背负障碍的沉重,因此,它在轻松人类的时候也在轻松自己,净化人类的时候也在净化自己。其结果应该是两相完满:当人类在最深刻地享受友情时,友情本身也获得最充分的实现。
18.现在,即便我们拥有不少友情,它也还是残缺的,原因在于我们自身还残缺。世界理应给我们更多的爱,我们理应给世界更多的爱,这在青年时代是一种小心翼翼的企盼,到了生命的秋季,仍然是一种小心翼翼的企盼。但是,秋季毕竟是秋季,生命已承受霜降,企盼已洒上寒露,友情的渴望灿如枫叶,却也已开始飘落。
范文二:超市管理系统项目 需求说明书
项目名称:
超市管理系统
组长: 信计081-高坤
小组成员人:
信计081-08-刘瑜
信计081-10-曹仁中
信计081-15-赵天骄
超市管理系统项目需求规格说明书
1简介
1.1目的
随着超市的出现,超市管理系统也随着出现,并且随着超市的发展,超市管理系统的功能和性能也随着发展。在早期的超市管理系统中,主要是对正在销售的商品进行管理,在当前的超市管理系统中已不仅仅有该功能,还要加人超市相关的物流、库存等相关操作功能。使用最少的人力,完成最大的销售总额,一直是超市管理系统的目标。
1.2业务范围
系使用超市管理系统的目的就是使用最少的人力,来完成超市中的日常工作。一个典型的超市管理系统,除了应该完成超市中必要的销售工作外,还应该具有后台管理的功能。
和超市相关的就是货物仓库,因为随着超市规模的越来越大,销售商品是非常多的,它们并不能全部放在超市中,需要将它们暂时放在仓库中,所以对仓库的管理是非常有必要的。
为了使超市更加吸引客户,推出了会员优惠活动,通过使用会员卡能够享受商品的优惠价。所以在超市管理系统中还要能够对超市会员进行管理。
根据超市的需要,我们来分析一下超市管理系统中还应该具有哪些功能。按照操作方向,可以将超市管理系统分为商品管理模块、仓库管理模块、销售管理模块和会员管理模块。
商品管理模块:通过该模块可以完成超市中商品的日常管理,其中包括新增一种新销售商品、向超市中进货、接收客户的退货和查询某一商品的功能。
仓库管理模块:通过该模块可以完成和超市匹配场所仓库的管理,其中包括对商品的出库和入库操作、查询仓库中所有商品和查询指定商品等功能。
销售管理模块:通过该模块完成超市日常销售的管理,包括查看用户购买商品,并计算出销售总额,在后台中,还具有计算某一时间段,或者某一商品的销售情况。
会员管理模块:通过该某块可以对超市中会员客户进行管理,包括办理新客户、查询客户、在会员消费时使用会员卡等功能。
1.3术语表
列出本文件中用到的专门术语的定义和外文首字母组词的原词组 如图:
缩写、术语 解 释
SMS(Supermarket management system) 超市管理系统的简称
1.4参考资料
a( 《UML及建模》 作者:郭宁 清华大学出版社
b( 《实时UML与Rational Rose realtime 建模案例剖析》作者:余金
山 电子工业出版社
c( 《软件工程案例教程》 作者:毕硕本 卢桂香 北京大学出版社
2系统概述
2.1功能概述
supermarket管理系统例图整体功能概述:
前台销售管理用例图:
后台销售管理用例图:
库存管理用例图:
商品管理用例图:
信息查询用例图:
用户管理用例图:
2.2系统角色
SMS(超市管理系统)是不对外开放的,它的所有操作用户都是超市内部人员。这些操作用户又分为三类,分别是销售人员、管理员和超级管理员。
1(销售人员: 对于销售人员来说,它的操作仅仅为前台销售实
行打印清单收款等工作。
2(管理员: 管理员只能够完成商品、仓库和后台销售统计等相
关功能。
3(超级管理员: 超级管理员能够对会员、商品、仓库、销售统计等
相关功能进行管理。极其系统的维护,系统的扩充等相关操作。
4(技术人员: 对系统进行维护,需要超级管理员的允许。
2.3系统约束
主建模工具:Rational rose
开发环境: Microsoft Visual C++ 6.0环境
数据库: SQL Servers 2005
操作系统: Windows professional Xp
服务器: Windows Server 2008
3系统功能描述
本系统提供初始界面前后台管理,前台管理售货员和管理员管理,后台只有验证了管理员身份方能管理。我们解释出前台和后台内部重要部件的功能描述。
前台销售管理:
需求编号:SMS-SELL-1
需求描述:提供给前台售货人员,负责销售,知道价钱。进行,查询,刷码,收款等工作。
SMS-SELL-1-1 输出货物的信息,价钱。提示是否可以出售。 SYS-SELL-1-2 提示操作完毕。打出售货条形码,完毕。 SYS-SELL-1-3 连接打印机,执行条码的打印,清单显示各种货物清单号,数量,单价等信息。
SYS-SELL-1-4 查询当前销售信息,当天信息查询等查询。 SYS-SELL-1-5 查询货物位置,和在销售种类。
后台销售管理:
需求编号:SMS-SELL-2
需求描述:提供给后台销售人员,提供销售管理数据。
SMS-SELL-2-1 登录,验证管理员密码。返回数据,无异常。 SMS-SELL-2-2 异常情况,提示错误。
SMS-SELL-2-3 进入后台连接其他查询界面,进入后管理系统。
库存查询:
需求编号:SMS-SELL-3
需求描述:查询仓库储存货物,可以浏览,也可以按照编号查询货物的存储量。也可以查询某项商品是否达到预警缺货,和预警货物提示。
SMS-SELL-3-1 按照库存信息浏览,提示所有库存。
SMS-SELL-3-2 按照商品编号查询所要查询的货物。
SMS-SELL-3-3 按照商品名称查询所要查询的货物。
SMS-SELL-3-4 按照商品条形码查询所要查询货物。
SMS-SELL-3-5 按照进货查询,得到最近进货商品。
SMS-SELL-3-5 货物缺货达到预警时候,窗口弹出提示。
用户管理:
需求编号:SMS-SELL-4
需求描述:对大型以长期的客户进行的内部管理,其中超级管理员能执行添加用户,查询用户,更新用户,删除用户和其间返回数据的各种操作。 SMS-SELL-4-1 登录界面,需要验证超级管理员的身份。 SMS-SELL-4-2 添加用户,实行多用户的增加和信息填入。 SMS-SELL-4-3 提示用户所有信息添加完毕,并且正常入住VIP用户。 SMS-SELL-4-4 提示用户添加失败,提示缺少什么条件,需要办理。 SMS-SELL-4-5 更新用户信息。
SMS-SELL-4-6 删除用户信息,对无用用户进行删除。
SMS-SELL-4-7 提示无法删除用户,有账务未结算或货物积压等原因。 SMS-SELL-4-8 提示是否强行删除,对信息进行保存。
信息查询:
需求编号:SMS-SELL-5
需求描述:管理员对超市的各种货物进行查询,有多种方式,多种模块。
SMS-SELL-5-1 按商品名称查询
SMS-SELL-5-1 按商品编号查询
SMS-SELL-5-1 按商品条形码查询
SMS-SELL-5-1 电器类查询
SMS-SELL-5-1 礼品类查询
SMS-SELL-5-1 日用类查询
SMS-SELL-5-1 蔬果类查询
SMS-SELL-5-1 食品类查询
SMS-SELL-5-1 生鲜类查询
商品管理:
需求编号:SMS-SELL-6
需求描述:对商品的各种进出货物的管理。
SMS-SELL-6-1 商品的种类,对一定时间所要的销售商品种类进行确定,
管理。
SMS-SELL-6-2 商品入库,提示入库时间。
SMS-SELL-6-3 商品出库,提示出库时间,去往何方是退货或者供应前台
销售。
SMS-SELL-6-4 商品进货,记录种类,数量和时间。 SMS-SELL-6-5 商品退货,记录退货物品及其价钱。 SMS-SELL-6-6 上次新增加商品的记录,和下次即将要增加的商品进行记
录和评估。
系统维护:
需求编号:SMS-SELL-7
需求描述:对系统建立立下接口,以便以后进行维护和扩充。 SMS-SELL-7-1 验证超级用户密码。提示成功与否。 SMS-SELL-7-2 进入接口进行内核编辑。
SMS-SELL-7-3 更新系统,再次运行。
4非功能性需求
4.1性能
精度精确到分(价钱),时间精确到秒。响应时间在0.5秒内,每天超市关门是开始更新数据,传送世间基于服务器的性能。
4.2可扩展性
用C++ 进行实现,用MFC进行可视化编辑,模块容易添加删除。进而有良好的可扩展性,程序使用大量重载和多态,留有接口接口。对以后扩展留下丰富空间。
4.3安全性
用户要想登录本系统,必须输入正确的用户名及密码,普通用户进入系统后可以浏览部分信息,但无法做任何改动。同样,数据库信息也需输入正确用户名及密码后才能进入系统进行一系列操作。
4.4易用性
针对销售员,执行傻瓜,一切都是自动,提示。针对普通查询用户使用智能、便捷的方法操作系统;针对系统管理员,只要对其进行简单的培训操作,再配以一段时间的上机操作,就能解决在操作超市管理系统实际中所遇到的问题。对于技术人员来说,有良好的扩展性和维护性。总体来
说本系统是一个面向各个领域用户的简单的软件。输入信息错误或不满足条件时会给出详细提示信息,如应输入什么样的信息,或给出范例。使各个管理员操作得心应手。
4.5可维护性
系统易于维护,超级管理员可随时对系统进行各种合法操作使超市管理系统在一个安全的环境中正常运行。技术人员在得到超级管理员口令认可时候可以用C++MFC打开,进行错误更正,编辑。
5数据管理能力要求
可用E,R图或类图表达。或列出数据字典,如下表所示。 数据项 数据项关键字 数据项含义 数据类型 数据要求
Account number 用户帐号 整形 1.2.3.4管理员帐号
… 号
Username 管理员用户名 字符型 8-100个管理员用户
字符 名
Password 管理员密码 字符型 1-50个字管理员密码 符
Commodity 1.2.3.4… 商品种类编商品种类编号 整型
Class ID 号
商品种类名Commodity 每一种商品种类的字符型 2-50个字称 Class Name 名称 符
1.2.3.4… 商品编号 Commodity ID 每一件商品的编号 整型
2-50 商品名称 Commodity Name 每一件商品的名称 字符型
Commodity 每一件商品是属于整型 1-50个字商品种类 Class 哪类商品 符
Bar code 负责打印或扫描查小数型 小数点后条形码 询 取二位
(26,2)
100 Manufacturer 每一件商品的生产字符型 生产厂家 厂家
250 Commodity 每一件商品的描述 字符型 商品描述 Depict
Commodity 每一件商品的进货小数型 小数点后商品进货价Price in 价格 取二位格 (26,2)
Commodity 每一件商品出售价小数型 小数点后商品出售价Price out 格 取二位格 (26,2)
Custom Pay 售货时客户需要付小数型 小数点后客户付款 的钱 取二位
(26,2)
Pay return 应找回客户的钱 小数型 小数点后找钱 取二位
(26,2)
1.2.3.4… Commodity 每一件商品的总数整型 商品总数量 Amount 量
1.2.3.4… Commodity 商品在仓库里的数整形 库存数量 stock Amount 量
1.2.3.4… 商品前台数Commodity 在超市摆放出售的整形 量 foreg Amount 数量
商品上架时Reg Time 每一件商品上架的日期 间 时间
商品图片 Image 每件商品的图片 BMP
1.2.3.4… Order Form ID 每一个订单的唯一整型 订单编号 编号
1.2.3.4… Order Form NUM 每一个订单的序号 整形 订单序号
1.2.3.4… 售出商品商Commodity out 出售每种商品的数整形 数量 num 目
1.2.3.4… 库存上限 Stock up 库存的上限 整形
1.2.3.4… 库存下限 Stock down 库存的下限 整形
进货类图
E-R图:
商品数据:
名称 条形码 编码
分类编号 库存下限
商品档案
库存上限 销售价
单位 规格 供应商进货价
uanjia
进货数据,和实体联系:
编号 进货价 进货日期
进货单 进货商品数量
商品
编号 数量 销售价
销售单 销售商品销售日期
商品
管理员 商品分类
供应商基本信息
超市
销售单 商品档案 进货单
18
范文三:超市管理系统需求分析
超市管理系统需求分析
1 引言
编写目的
超市管理系统主要目标是提高超市的管理和运营效率以节省管理和运营的成本、减轻人员工作强度,并支持简单的决策辅助高层管理,从而使超市能够从较少的投入中获得更好的社会效益和经济效益。该超市管理系统主要服务于中小型规模的超市的管理和运营工作。实现商品进货、库存、销售以及日常管理等模块的一体化,使用半自动化的流程提高管理效率和服务质量。
参考资料软件工程(第二版) ——邓良松、刘海岩编
2 目标分析
概述
超市管理系统的功能主要分为:前台管理和后台管理两个大块。其使用对象有两类:超市管理人员和超市销售人员。
系统功能
总目标
实现商品进出管理数据的自动化,提高商品统计信息的实时性,减轻人工劳动强度从而节省人力成本。
实现商品日常销售数据统计自动化、查询的实时化,规避信息孤岛。 畅通企业的信息流。
支持简单决策。
提高人员管理效率。
具体目标
1) 前台管理系统,本系统必须具有以下功能:
商品录入:根据超巿业务特点制定相关功能,可以通过输入唯一编号、扫描条形码、商品名称等来实现精确或模糊的商品扫描录入。该扫描录入方法可以充分保证各种电脑操作水平层次的人员均能准确快速地进行商品扫描录入。
收银业务:通过扫描条形码或者直接输入商品名称(对于同类多件商品采用一次录入加数量的方式)自动计算本次交易的总金额。在顾客付款后,自动计算找零,同时打印交易清单(包括交易的流水账号、每类商品的商品名、数量、该类商品的总金额、交易的时间、负责本次收银的员工号)。如果顾客是本店会员并持有本人会员卡,则在交易前先扫描会员卡,并对所购物品全部实行95折优惠,并将所购物品的总金额累计到该会员的总消费金额中。会员卡的有效期限为一年,满一年未续卡者,该会员卡将被注销。 安全性:OS 登陆、退出、换班与操作锁定等权限验证保护;断电自动保护最大限度防止意外及恶意非法操作。
独立作业:有的断网收银即在网络服务器断开或网络不通的情况下,收银机仍能正常作业
2) 后台管理系统,本系统必须具备以下功能
进货管理:根据销售情况及库存情况,自动制定进货计划(亦可手工制定修改),可以避免盲目进货造成商品积压。按计划单有选择性地进行自动入库登记。综合查询打印计划进货与入库记录及金额。
销售管理:商品正常销售、促销与限量、限期及禁止销售控制。综合查询各种销售明细记录、各地收银员收银记录以及交结账情况等。按多种方式统计生成销售排行榜,灵活
察看和打印商品销售日、月、年报表。
库存管理:综合查询库存明细记录。库存状态自动告警提示。如库存过剩、少货、缺货等。软件为您预警,避免库存商品积压损失和缺货。库存自动盘点计算。
人员管理:员工、会员、供货商等基本信息登记管理。员工操作权限管理。 客户销售权限管理。
2.2.3 性能目标
系统的操作人员,需经过一定的培训。
系统的安全级别较高,只有具有一定使用权限的人员才能使用。
系统的运行的可靠性要求较高,信息可靠不易丢失。
系统可进行实时处理,其效率需比人工处理效率高出70%以上。
范文四:超市管理系统需求分析
目录
1 项目计划.................................................................................................................... 1
1.1系统概述.......................................................................................................... 1
1.1.1业务介绍 . ............................................................................................................... 1
1.1.2方案策划 . ............................................................................................................... 1
1.2开发背景.......................................................................................................... 1
1.2.1背景介绍 . ............................................................................................................... 1
1.2.2应用前景 . ............................................................................................................... 2
1.3功能特点.......................................................................................................... 2
2 系统设计.................................................................................................................... 3
2.1可行性分析...................................................................................................... 3
2.1.1调查分析 . ............................................................................................................... 3
2.1.2必要性分析 . ........................................................................................................... 3
2.1.3可行性分析 . ........................................................................................................... 4
2.1.4开发目标 . ............................................................................................................... 4
2.2需求分析.......................................................................................................... 4
2.2.1编写目的 . ............................................................................................................... 4
2.2.2功能分析 . ............................................................................................................... 4
2.2.3数据分析 . ............................................................................................................... 5
2.2.4数据流图 . ............................................................................................................... 5
2.2.5数据流图 . ............................................................................................................... 5
2.3模块设计.......................................................................................................... 9
2.3.1模块介绍 . ............................................................................................................... 9
2.3.2模块框图 . ............................................................................................................... 9
2.4概要设计........................................................................................................ 10
2.4.1 数据库-ER 图 . ..................................................................................................... 10
2.4.2 数据库-表 . .......................................................................................................... 10
2.4.3 模块功能分析 . .................................................................................................... 12
2.5项目实施周期................................................................................................ 15
2.5.1开发环境 . ............................................................................................................. 15
2.5.2工作任务的计划安排 . ......................................................................................... 15
2.5.3工作任务的分派与人员分工 . ............................................................................. 16
2.5.4关键问题 . ............................................................................................................. 17
2.5.5运行环境 . ............................................................................................................. 17
2.6详细设计........................................................................................................ 17
2.6.1数据库设计 . ......................................................................................................... 17
2.6.2界面的设计: . ..................................................................................................... 17
2.6.3菜单的设计: . ..................................................................................................... 17
2.6.4数据库管理的设计: . ......................................................................................... 17
2.7测试与运行.................................................................................................... 17
2.7.1登陆界面: . ......................................................................................................... 19
2.7.2主界面: . ............................................................................................................. 19
2.7.3用户管理: . ......................................................................................................... 19
2.7.4计算器: . ............................................................................................................. 19
2.7.5报表界面: . ......................................................................................................... 19
2.7.6打印界面: . ......................................................................................................... 20
2.7.7测试汇总: . ......................................................................................................... 20
2.8操作说明书.................................................................................................... 20
2.8.1基础资料 . ............................................................................................................. 20
2.8.2 入库管理 . ............................................................................................................ 21
2.8.3销售管理 . ............................................................................................................. 21
2.8.4库存管理 . ............................................................................................................. 21
2.8.5人事管理 . ............................................................................................................. 22
2.8.6 常用工具 . ............................................................................................................ 22
2.8.7数据库管理 . ......................................................................................................... 22
2.8.8系统管理 . ............................................................................................................. 22
2.9本章小结........................................................................................................ 22
结 论............................................................................................................................ 23
参考文献...................................................................................................................... 24 附 录............................................................................................ 错误!未定义书签。
1 项目计划
1.1 系统概述
1.1.1业务介绍
最初的超市资料管理,都是靠人力来完成的。但近几年我国超市经营规模日趋扩大,销售额和门店数量大幅度增加,而且许多超市正在突破以食品为主的传统格局,向品种多样化发展。小型超市在业务上需要处理大量的库存信息,还要时刻更新产品的销售信息,不断添加商品信息,并对商品各种信息进行统计分析。因此,在超市管理中引进现代化的办公软件,实现超市庞大商品的控制和传输,从而方便销售行业的管理和决策,为超市和超市管理人员解除后顾。
1.1.2方案策划
进销存解决方案是实现企业的物流、资金流、信息流一体化管理的系统,主要针对企业存货的收发存业务进行核算,以便及时、准确的掌握商品的库存情况,并可动态反映存货资金的增减变动,为企业的决策提供基础数据。本系统主要包括六个功能模块:基础资料设置、入库管理、出库管理、库存管理、财务管理、数据库管理六大模块。
1.2开发背景
1.2.1背景介绍
21世纪,超市的竞争也进入到了一个全新的领域,竞争已不再是规模
的竞争,而是技术的竞争、管理的竞争、人才的竞争。技术的提升和管理的升级是超市业的竞争核心。零售领域目前呈多元发展趋势,多种业态:超市、仓储店、便利店、特许加盟店、专卖店、货仓等相互并存。如何在激烈的竞争中扩大销售额、降低经营成本、扩大经营规模,成为超市营业者努力追求的目标。
为了提高物资管理的水平和工作效率,尽可能杜绝商品流通中各环节中可能出现的资金流失不明现象,商品进销存领域迫切需要引入信息系统来加以管理。而商品进销管理系统是当前应用于超市或者公司管理系统的典型代表。
1.2.2应用前景
为了提高超市的运作效率,通过全面的信息采集和处理,辅助提高超市的决策水平,针对超市的特点,为了帮助超市解决现在面临的问题,提高超市的竞争力,我们将开发 “超市管理系统”。因此使用本系统,可以迅速提升超市的管理水平,为降低经营成本,提高效益,增强超市扩张力,提供了有效的技术保障,以便在竞争中立于不败之地。
1.3功能特点
[1]功能齐全
系统提供多种商品外购入库、销售出库、盘盈盘亏、商品调拨、借进借出、数据备份、数据恢复、期初建账等多项业务,对企业商品进行全面的控制和管理。
[2]查询方便
可按商品类别查询,清楚地反映商品的库存量及商品分布情况;可按单据类型或编号查询,随意查阅企业所发生的业务历程;也可按往来单位查询,了解企业与各往来单位的业务情况;还可按库位、经办人、附加说明、单据摘要等进行查询。
[3]简单易用
本系统采用人性化设计理念,直观的图形界面模拟手工格式、完善的流程向导、即见即得的单据录入格式、无需记忆的代码组合,任何人员无需进行专业培训也能灵活操作。
[4]通用性强
适用于各种销售单位和商场。
[5]安全可靠
严密的流程控制有效保证制单的正确性,严格的分权体系有效防止逾权使用。数据备份/恢复及断点保护功能及时排除故障并恢复现场数据。
2 系统设计
2.1可行性分析
2.1.1调查分析
系统的初步调查是系统设计规划阶段的第一项活动,也是整个系统开发的第一项活动,主要目标就是了解组织机构、工作现状。
正式开发管理信息系统之前进行调研是非常必要的,其必要性主要表现在以下几个方面。
[1]明确用户的要求,以根据调查结果进行可行性分析,确认系统的开发是否可行。
[2]提出新系统的人员并不都是系统研究人员,有些人对功能和处理数据的方法没明确的认识。它们只是根据自已业务工作的需要提出了要求,系统开人员要对此进行详细的调查和分析,确认用户的要求可以通过现有的计算技术实现,保证开发的管理信息系统的功能与用户提出的要求相吻合。
[3]商品进销存管理系统的现行系统可能是手工系统,也可能是使用和计算机的系统,无论是何情况,都要详细地调查现行系统中信息处理的具体情况,系统内部功能结构,以便设计也一个合理的、好的新系统逻辑模型,为新系统的设计工作打好基础,保证整个系统开发的质量。
通过对整个进销存信息管理系统目前主要管理业务的了解,主要工作是由管理员负责完成的。首先管理员手工录入目前所有产品或配件信息,并负责对其进行管理和维护;建立详尽的客户信息,并对进出货进行登记,便于随时查询销售状况,以及利润状况。
总之,必需对现行系统进行详细调查,明确用户需求,保证开发的新系统的功能与用户的要求相吻合,避免耗费大量的人力、物力、财力,新系统的开发却失败的悲剧发生。
2.1.2必要性分析
随着销售数据规模的日益庞大,商品数目也在呈指数级的增长,这样就造成了:
[1]产品库存量大,工作人员为产品进出库登记时的工作负荷重、效率低。
[2]进出货过程中,时常会出现错误,增加了业务成本。
[3]对进出货数据进行查询时,需要手工翻阅大量的票据,大大降低了查询效率,而查询的结果有尽人意。
以上缺点直接或间接地降低了工作效率,最终影响了商品进出库的管理。
2.1.3可行性分析
本系统的设计是在Windows XP 中文版操作系统环境下,使用Visual C++ 6.0中文版开发成功的。在开发过程中,如何选择数据库管理是一个重要的问题,目前,数据库产品较多,每种产品都具有各自的特点和适用范围,因此,在选择数据库时,应考虑数据库应用的特点及适用范围。
2.1.4开发目标
开发建立一套数据库应用系统——进销存信息管理系统,用于管理商品的录入、运转、查询以及进库、出库等信息。另外,一个界面友好、操作方便的进销存信息管理系统能够更好地解决产品繁琐的统计工作。
2.2需求分析
2.2.1编写目的
本软件对超市的采购、销售、仓库、资金、帐务等实际运作流程均实现了动态的计算管理,使得超市经营者能够迅速的掌控公司的实际运作状况、合理做出公司的战略决策。软件提供的商品入库流水帐、商品销售流水帐、商品台帐、会计帐及各种报表在提高公司工作效率、减少人为的差错、最大限度堵塞漏洞的基础上很好的减轻了采购、销售、仓库、财务等环节工作人员的劳动强度,全面体现了现代企业管理理论所倡导的工作高效、环境轻松的氛围。
2.2.2功能分析
[1] 支持条形码功能。您可以自定义条形码,设计、打印各种规格的条码标签,省去了购买条码打印机的开支。
[2] 操作权限设置功能强大。既可以设置各种菜单级别的操作权限,也可以设置“成本管理权”、“会员管理权” 、“单据删除权” 、“销售退货权” 、“售价调整权” 及“销售反确认权”等权限。
[3] 订货功能功大。软件可根据商品资料中设置的最高库存、最低库存及当前库存自动升级定货清单,也可以通过提取补货数据生成定货清单,让您的订货工作轻松、方便。
[4] 独创的单据确认与反确认功能,方便用户对单据输入、修改。
[5] 批发价、零售价可自动生成,减轻了定价的工作量。
[6] 功能强大的各类统计报表,为您提供详尽的营业报告,让您对商品进、销、存及利润等财务状况了如指掌。
[7] 所有单据、报表均可以在打印前预览,并且可以导出为Excel 文件,然后根据您的实际需要进行特别编排处理。所有单据的打印格式均可以重新设计。
[11]“傻瓜化、人性化”设计的财务管理,简单易用,不懂会计、计算机也能轻松应对编制记帐凭证、登记记帐凭证、记帐凭证查询、会计帐册查询、损益表查询、资产负债表查询等操作。
[12]常用工具软件丰富。迷你计算器、帐套数据的导入导出、帐套初始化及帐套压缩或修复等为维护系统的正常运行提供了强有力的保障。
2.2.3数据分析
[1] 管理员:编号、姓名、性别、工资、身份证号、密码、权限、联系电话、联系地址、备注。
[2] 商品清单:编号、名称、条形码、类别、计量单位、库存上限、库存下限、进货价、销售价、产地、供应商编号、备注。
[3] 商品分类:编号、名称、备注。
[4] 供应商清单:编号、名称、联系人、联系方式、联系地址、备注。
[5] 销售清单:销售单号、商品编号、销售数量、销售单价、经办人、销售日期、备注。
[6] 进货清单:进货单号、商品编号、进货数量、进货单价、经办人、进货日期、备注。
[7] 库存清单:商品编号、库存数量、备注。
2.2.4数据流图
图1 超市管理系统顶层图
图2 超市管理系统第0层图
图3 库存管理部分
第1层图
图4 销售管理部分
第1层图
图5 进货管理部分
第1层图
图6 人事管理部分
第1层图
2.2.5数据字典
2.3模块设计 2.3.1模块介绍
[1] 基本资料:用于建立系统正常运行所必需的基础资料,如:员工(管理员)、
计量单位、往来单位(供货商、客户)、商品类别等资料。正式使用本软件前,必须先进行基础信息设置,然后才能顺利的开展工作。
[2] 人事管理:用于管理企业管理人员,能够对员工进行分类,新员工的加入
以及员工的删除,修改基本信息。
[3] 进货管理:用于登记入库商品的名称、单价、数量及入库日期、供货商等
资料。初期库存也在此输入。
[4] 销售管理:用于登记销售商品的名称、单价、数量及销售日期、客户、经
办人、销售分店等资料。
[5] 库存管理:用于查询商品适时的库存情况。库存过多、过少商品报警的查
询。
[6] 数据库管理:数据库备份、恢复、期初建账等。
2.3.2模块框图
2.4概要设计 2.4.1 数据库-ER 图
E-R 是实体-联系方法是来描述现实世界的概念模型,它可以方便、准确地表述出信息世界中的常用概念,是抽象和描述现实世界的有力工具。下面是该系统的E-R 图:
2.4.2数据库-表
说明:此表存放管理员信息。 (2)说明:此表存放系统超级管理员信息。
说明:此表存放商品信息。 (4)
说明:此表存放供货商信息。 (5)
说明:此表存放进货信息。 (6)
说明:此表存放销售信息。 (7)
2.4.3 模块功能分析 [1] 基本信息:
" 商品分类" :商品分类信息的输入、修改、删除。 " 商品信息" :商品信息的输入、修改、删除和库存的增减。 " 供应商档案" :供应商信息的输入、修改、删除。 " 商品分类统计" :分类信息的统计报表。
" 商品信息统计" :商品信息的统计报表。 " 供应商档案统计" :供应商信息的统计报表。 [2] 进货管理:
" 进货开单" :进货开单、商品的添加、进货价的调整等。 " 进货退货" :进货退回。
" 进货单汇总" :进货单统计报表。 " 退货单汇总" :退货单统计报表。
" 所有进货商品汇总" :所有进货商品的统计报表。 " 所有退货商品汇总" :所有退回商品的统计报表。 " 所有无退货进货商品汇总" :所有无退货进货的统计报表。 " 月度结算" :本月内的所有进货汇总。 [3] 销售管理:
" 销售开单" :销售开单、商品的添加、零售价的调整等。 " 销售退货" :销售退回。
" 销售单汇总" :销售单统计报表。 " 退货单汇总" :退货单统计报表。
" 所有销售商品汇总" :所有销售商品的统计报表。 " 所有退货商品汇总" :所有退回商品的统计报表。 " 所有无退货销售商品汇总" :所有无退货销售的统计报表。 " 月度结算" :本月内的所有销售汇总。 [4] 库存管理:
" 非进货入库" :其他入库。 " 非进货出库" :其他出库。 " 库存查询" :库存统计报表。
" 非进货入库单统计" :其他入库单统计报表。 " 非进货出库单统计" :其他出库单统计报表。 " 非进货入库商品统计" :其他入库商品统计报表。 " 非进货出库商品统计" :其他出库商品统计报表。 " 所有过少报警商品统计" :所有库存过少的报警统计。 " 所有过多报警商品统计" :所有库存过多的报警统计。 " 月度结算(非进货出库)" :本月内的所有出库汇总。
" 月度结算(非进货入库)" :本月内的所有入库汇总。 [5] 数据库管理:
" 数据备份" :数据库备份。 " 数据恢复" :数据库恢复。 " 数据清理" :数据清理。 " 期初建账" :建账。 " 月初结算建账" :建账。 [6] 人事管理:
" 用户管理" :管理员信息的管理。 " 管理员统计报表" :管理员的统计报表。 " 重新登陆" :重新登陆。 " 修改密码" :密码的修改。 " 退出" :系统的退出。 2.5项目实施周期
由于刚刚接触到软件实例的开发,且考虑到有过多的制约因素,可能最终导致项目周期的不可预知性。考虑到这些情况,项目小组全体人员尽自己最大的努力,力争项目产品的高质量、早期完工。项目实施期为2009年10月20日至2009年11月14日。
2.5.1开发环境
前台开发环境:Microsoft Visual C++ 6.0 后台数据库环境:SQL server 2000 2.5.2工作任务的计划安排
第一阶段:需求分析、项目前期培训阶段(采用小组会议讨论交流的方
式,1~2周)
项目小组所有参与人员必须明确系统的计划任务书要求、系统的整体框架结构、系统配置需求、软件界面风格和控制流程,对所设计的系统轮廓和开发方案必须有一个清醒的认识。
第二阶段:总体概要设计阶段(1~2周)
总体概要设计阶段,主要制定项目的总体概要设计方案、完成项目软件系统总体框架的设计(工作流程控制)和软件系统主要数据结构的制定(数据流程控制)、并明确系统各功能模块之间的关系、确立软硬件模块结构间的接口。
总体概要设计方案的制定、软件主要数据结构的制定、各功能模块之间关系的确立和软硬件模块接口的定义。
软件系统总体框架的设计工作主要由范涛、周琳等完成。 第三阶段:项目开发部署阶段(1~2周)
项目开发部署阶段主要是详细划分系统软件部分的各个功能模块,将各功能模块按计划分配给相应的开发人员,并制定开发周期控制进度表;同时落实开发过程中所需要的各项资源。模块任务划分、人员分配工作由范涛负责;资源落实工作由袁源负责。
第四阶段:项目详细设计开发、测试阶段(1~2周)
项目详细设计阶段主要是项目小组各个成员根据任务的划分制定项目开发各模块的具体实现方案,完成项目详细设计说明书的编制。在实现阶段内,要完成源程序的编码、编译和排错调试得到无语法错的程序清单,并开始编写模块开发卷宗,这部分工作主要由范涛、周琳完成。
在测试阶段,首先进行软件部分功能模块的联合调试,然后进行软硬件部分的联合调试,针对调试过程中出现的问题及时的做出处理,并完成模块开发卷宗和测试分析报告。参与人员:项目小组全体成员。
第五阶段:样机整体测试、文档完善、产品培训、实验阶段(1~2周) 这个阶段已经进入了项目开发的收尾阶段,主要任务是根据功能指标,对样机整体性能进行测试,并补充完善开发过程中生成的各种文档,完成产品相应的工艺文件。测试通过后,进行产品培训,完成用户手册、操作手册等面向用户的文件的编写工作
文档完善整理工作主要由袁源负责。 工艺文件的完善工作主要由周琳负责。
第六阶段:项目移交生产、评审阶段(1周)
项目经过测试、实验之后,经由项目部组织进行评审,并给出项目评审结果报告。
2.5.3工作任务的分派与人员分工
范涛:数据库的建立和分析、报表模块、EXCEL 的导出。 范涛:基本信息模块的设计。
:销售模块的设计。 :库存模块的设计。 :人事模块的设计。
2.5.4关键问题
本开发项目中可能影响到项目进度的关键问题主要是: 数据库的建立, 报表的生成 , 入库,销售中记账凭证的登记 2.5.5运行环境
开发完成后,该产品在Windows 2000/Windows XP/ Windows Vista等平台, 同时加上SQLserver2000后台数据库的环境下运行。实现简单的超市进销存管理。 2.6详细设计 2.6.1数据库设计 2.6.2界面的设计: 2.6.3菜单的设计:
2.6.4数据库管理的设计:
[1] 数据库备份的设计:采用拷贝的方法,将数据库文件拷贝到BACKUP 文件夹
下:
[2] 数据库恢复的设计:采用拷贝的方法,将数据库文件拷贝到现在程序所在
目录下:
[3] 数据库的清理:库中所有数据的清理,将原始的数据库文件拷贝到现在程
序所在目录下:
[4] 数据的期初建账:进行数据的进货、销售记录的清理。 2.7测试与运行
信息技术的飞速发展,使软件产品应用到社会的各个领域,软件产品的质量自然成为人们共同关注的焦点。不论软件的生产者还是软件的使用者,均生存在竞争的环境中,软件开发商为了占有市场,必须把产品质量作为企业的重要目标之一,以免在激烈的竞争中被淘汰出局。用户为了保证自己业务的顺利完成,当然希望选用优质的软件。质量不佳的软件产品不仅会使开发商的维护费用和用户的使用成本大幅增加,还可能产生其他的责任风险,造成公司信誉下降。在一些关键应用中,如民航订票系统、银行结算系统、证券交易系统、自动飞行控制软件、军事防御和核电站安全控制系统等,使用质量有问题的软件,还可能造成灾难性的后果。
软件测试的工作量很大,据统计,测试时间会占到总开发时间的40%,一些
可靠性要求非常高的软件,测试时间甚至占到总开发时间的60%。但测试却是在整个软件过程中极有可能应用计算机进行自动化的工作,原因是测试的许多操作是重复性的、非智力创造性的、需要细致注意力的工作,而计算机就最适合于代替人类去完成这些任务。
测试自动化是通过开发和使用一些工具自动测试软件系统,特别适合于测试中重复而繁琐的活动,其好处是显而易见的:
(1) 可以使某些测试任务比手工测试执行的效率高,并可以运行更多更频繁的测试。
(2) 对程序的新版本可以自动运行已有的测试,特别是在频繁的修改许多程序的环境中,一系列回归测试的开销应是最小的。
(3) 可以执行一些手工测试困难或不可能做的测试,例如对于200个用户的联机系统,用手工进行并发操作的测试几乎是不可能的,但自动测试工具可以模拟来自200个用户的输入。客户端用户通过定义可以自动回放的测试,随时都可以运行用户脚本,即使是不了解整个商业应用复杂内容的技术人员也可以胜任。
(4) 更好地利用资源。将繁琐的任务自动化,如重复输入相同的测试输入,可以提高准确性和测试人员的积极性,将测试技术人员解脱出来投入更多精力设计更好的测试用例。另外,可以利用整夜或周末空闲的机器执行自动测试。 (5) 测试具有一致性和可重复性。对于自动重复的测试可以重复多次相同的测试,如不同的硬件配置、使用不同的操作系统或数据库等,从而获得测试的一致性,这在手工测试中是很难保证的。
(6) 测试可以重用,而且软件经过自动测试后,人们对其信任度会增加。 (7) 一旦一系列测试已经被自动化,则可以更快地重复执行,从而缩短了测试时间,使软件更快地推向市场。
总而言之,测试自动化通过较少的开销可以获得更彻底的测试,并提高产品的质量。但是,在实际使用自动测试的过程中,还存在一些普遍的问题: (1) 人们乐观地期望测试工具可以解决目前遇到的所有问题,但无论工具从技术角度实现得多么好,都满足不了这种不现实的期望。
(2) 如果缺乏测试实践经验,测试组织差,文档较少或不一致,测试发现缺陷的能力较差,在这种情况下采用自动测试并不是好办法。
(3) 人们容易期望自动测试发现大量的新缺陷。测试执行工具是回归测试工具,用于重复已经运行过的测试,这是一件很有意义的工作,但并不是用来发现大量新的缺陷。
(4) 因为测试软件没有发现任何缺陷并不意味着软件没有缺陷,测试不可能全面或测试本身就有缺陷,但人们在使用自动化测试过程中会缺乏这种意识。
(5) 当软件修改后,经常需要修改部分或全部测试,以便可以重新正确地运行,对于自动测试更是如此。测试维护的开销打击了测试自动化的积极性。
(6) 商用测试执行工具是软件产品,由销售商销售,它们往往不具备解决问题的能力和有力的技术支持,因此给用户带来失望,认为测试工具不能很好地测试。
(7) 自动测试实施起来并不简单,必须有管理支持及组织艺术,必须进行选型、培训和实践,并在组织内普遍使用工具。
测试自动化具有局限性,不可能取代手工测试。手工测试可以比自动测试发现更多的缺陷,而测试自动化对期望结果的正确性有极大的依赖性。测试自动化并不能改进测试有效性,并对软件开发有一定的制约作用,测试工具没有创造性灵活性较差。然而,测试自动化可以大大促进软件测试的质量和产品化。
2.7.1登陆界面:
2.7.2主界面:
图2.7.2-2 主界面
2.7.3用户管理:
图2.7.2-3 管理员界面
2.7.4计算器:
图2.7.2-4 计算器界面
2.7.5报表界面:
图2.7.2-5 报表界面
2.7.6打印界面:
图 2.7.2-6 打印界面
2.7.7测试汇总:
软件测试是为了发现错误而执行程序的过程,其目的在于以最少的时间和人力系统地找出软件中潜在的各种错误和缺陷。测试主要是由人而不是由机器执行,因而存在心理学的问题。
软件测试技术大体上可以分成白盒测试和黑盒测试。白盒测试技术依据的是程序的逻辑结构,主要包括逻辑覆盖和路径测试技术等;黑盒测试技术依据的是软件行为的描述,主要包括等价类划分、边界值分析和状态测试等。
程序的静态测试是在不执行程序的条件下,有条理地仔细审查软件设计、体系结构和代码,从而找出软件错误的过程,其主要方法包括同行审查、代码会审、代码走查等。
由于软件错误的复杂性,软件测试需要综合应用测试技术,并且实施合理的测试步骤,即单元测试、集成测试、确认测试和系统测试。单元测试集中于每一个独立的模块;集成测试集中于模块的各组装;确认测试集中检验是否符合需求规格说明书中确定的各种需求;系统测试集中检验系统所有元素之间协作是否合适,整个系统的性能和功能是否满足。
软件调试则是在软件测试成功后开始的工作,其任务是进一步诊断和改正程序中的错误。软件调试是程序员自己进行的技巧性很强的工作,调试工作的困难与人的心理因素和技术因素都有关系,需要繁重的脑力劳动和丰富的经验。 软件测试中存在许多机械的和重复性的工作,对此可以应用计算机进行自动化测试,从而可以大大促进软件测试的质量和产品化。但测试自动化具有局限性,不可能取代手工测试。
2.8操作说明书
2.8.1基础资料
【功能】用于建立系统正常运行所必需的基础资料,如:本超市、员工(操作员)、计量单位、往来单位(供货商、客户)、分店、商品大类、商品类别等资料。正式使用本软件前,必须先进行基础信息设置,然后才能顺利的开展工作。
【操作】在软件主窗口中点击“基本资料”,在选中本超市、员工、商品类别等相应项目后在数据窗口中直接编辑。在编辑完后,必须点击“保存”,数据
才能真正保存到计算机(硬盘)中。
2.8.2 入库管理
2.8.2.1 登记入库单
【功能】用于登记入库商品的名称、单价、数量及入库日期、供货商、经办人、存放分机等资料。期初库存也在此输入。
【操作】在软件主窗口中点击“入库管理->进货开单”,在弹出的窗口中点击“新增”开始登记一张新的入库单。
点击“打印”可直接打印出入库单,也可点击“导出”生成Excel 文件,供用户编辑。
2.8.2.2 登记退货单
【功能】用于登记已采购,却因某种原因需要退回的商品名称、单价、数量及退货日期、供货商、经办人、退货分店等资料。
【操作】在软件主窗口中点击“入库管理->退货开单”,在弹出的窗口中点击“新增”开始登记一张新的采购退货单。
点击“打印”可直接打印出采购退货单,也可点击“导出”生成Excel 文件,供用户编辑。
2.8.3销售管理
2.8.3.1 登记销售单
【功能】用于登记销售商品的名称、单价、数量及销售日期、客户、业务员、销售分店等资料。
【操作】在软件主窗口中点击“销售管理->销售开单”,在弹出的窗口中点击“新增”开始登记一张新的销售单。
2.8.3.2登记销售退货单
【功能】用于登记销售退货商品的名称、单价、数量及退货日期、退回分店、客户、经办人等资料。
【操作】在软件主窗口中点击“销售管理->销售退单”,在弹出的窗口中点击“新增”开始登记一张新的退货单。
2.8.4库存管理
2.8.4.1库存明细
【功能】用于查询商品适(当)时的库存情况。
2.8.4.2库存报警
选择“库存上限报警”,可以查询库存数量超过最高库存的商品,以提醒用户及早采取措施销售;选择“库存下限报警”,可以查询库存数量低于最低库存的商品,以提醒用户进货。
2.8.5财务管理
【功能】用于对销售利润的统计查看。
2.8.6 常用工具
常用工具是本软件提供给用户的几个非常实用的工具软件, 正确使用这些软件,将会为您的工作得心应手。
2.8.6.1 迷你计算器
【功能】既能执行一般的加减乘除运算.
2.8.7数据库管理
【功能】进行数据库的备份、恢复、清理、期初建账。
2.8.8系统管理
【功能】进行系统的登陆、退出、管理员信息的管理。
2.9本章小结
此系统是在吸取超市行业众多成功人士、成功企业、经营管理专家成功秘诀的基础上开发的产品。本软件融科学性、专业性、独创性于一体,为业界提供全面、系统、优秀的解决方案,为超市管理系统的杰出代表。本软件以VC++为开发工具,界面优美,功能强大.
结 论
在本系统的开发过程中,由于本人是初次开发软件,在知识、经验方面都存在着不足。另外,在整个开发的过程中,时间也比较仓促。因此,该系统必然会存在一些缺陷和不足。因为对学生管理的整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求。
尽管本管理系统存在着很多不足,但其功能全面、易于日后程序更新、数据库管理容易、界面友好、操作方便、效率高、安全性好等优点是本管理系统所必需的。相信本管理系统是一套超市在日常管理中必不可少的管理软件。通过开发这个系统,巩固了我们对Visual C++ 6.0的学习,但在这次课程设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮助的精神。
参考文献
[1] Visual C++实用教程、郑阿奇等主编、电子工业出版社、2003年8月出版
[2] Visual C++ 6.0 用户界面制作技术与应用实例 、齐舒创作室、中国水利水电出版社、1999年3月出版
[3] Visual C++ 6.0开发技巧与实例、同志工作室、人民邮电出版社、2000年5月出版
[4] Visual C++ MFC编程实例、斯文克(美)、机械工业出版社、2000年1月
[5] 深入浅出 MFC 、(台) 候俊杰译著、华中科技大学出版社、2001年1月
[6] Visual C++程序设计教程、杨庆祥等主编、航空工业出版社、2005年3月
[7] Visual C++基础教程、阮宇编著、清华大学出版社、2005年7月
[8] Visual C++程序员实用大全、怀特(美)等著、中国水利水电出版社、2005年5月
[9] 奇思异想编程(VC 篇)、汪令江等编著、国防科技出版社、2004年6月
[10]
Visual C++技术内幕、Kruglinski 、清华大学出版社、1996年5月
范文五:超市管理系统需求分析
桌面应用生产性实训 课程设计
【题目】
超市进销存销售管理系统
【开发背景】
随着超市行业竞争日益激烈,提高进销存管理的工作效率,改善超市内部以及整个供应链各个环节的管理、调度及资源配置成为了超市当前必须考虑的问题。而解决这些问题的途径之一,就是将计算机引入到管理机制中来。随着技术的发展,超市会有很多连锁店,使用此超市管理系统,可以进行连网管理。
【需求分析】
用户对进销存系统的需求具有普遍性。此超市管理系统适用于超市的采购、销售和仓库部门,对超市采购、销售及仓库的业务全过程进行有效控制和跟踪。使用此超市管理系统可有效减少盲目采购、降低采购成本、合理控制库存、减少资金占用并提高市场灵敏度,提升超市的市场竞争力。此系统采用人机交互的方式,界面美观友好。信息查询灵活、操作方便,数据存储安全可靠。能够对进货信息进行有效的管理。对用户输入的数据,进行严格的数据校验,尽可能避免人为错误。能够对商品销售信息进行有效的管理。允许顾客退货。能够准确、详细地管理商品库存信息。当库存的商品数量达到一定程序,给出提示。可以对数据库进行备份和还原。系统应最大限度地实现易维护性和易操作性。
【系统运行环境】
系统开发平台: Microsoft Visual Studio C#3.5 系统开发语言: Visual C#.NET
数据库管理软件:Microsoft SQL Server 2005 运行平台: Windows 窗体应用程序
运行环境:Microsoft Visual Studio 2008
【界面设计】
1. 登录界面
2. 主窗体
3. 员工信息
4. 供应商信息
5. 商品进货信息
6. 进货信息查询
7. 商品销售信息
8. 商品退货信息
9. 库存警报
10. 库存查询
11. 数据备份
12. 数据还原
13. 超市管理系统功能结构图
14. 系统业务流程图
【逻辑结构设计】
1. 员工信息表
2. 供应商信息表
3. 进货信息表
4. 商品销售信息表
5. 商品退货信息表
6. 库存信息表
7. 员工信息实体E —R 图
8. 供应商信息实体E —R 图
9. 进货信息实体E —R 图
10. 库存信息实体E —R 图
【概要设计与实现过程】
1. 项目的概要设计:
此系统的登录界面有验证用户的信息,只要登录成功,才可进入超市管理系统的主窗体。主窗体可以连接到系统的所有功能菜单,包括基本档案,进货管理,销售管理,库存管理,系统维护。
基本档案包括员工信息和供应商信息。员工信息表是因为开发过程中要考虑系统的安全性,不是任何人都可以操作系统的,才设置存储管理系统的员工信息表; 供应商信息表是因为超市的经营离不开与供应商的合作,而每件商品对应不同的供应商,此时必须在数据库中建立一个供应商信息表, 用于存储所有供应商信息。进货管理包括商品进货信息和进货信息查询,建立一个进货信息表是因为超市的运营离不开货物往来,日常货物的购买是非常重要的,此用于存储进货的详细信息。销售管理分为商品销售信息和商品退货信息,商品销售信息表为了时刻了解超市销售利润,需要对商品的销售情况有所了解;商品退货信息表是因为当顾客对某件商品不满意时,可以要求进货,同时超市经营者也要详细地了解退货信息。库存管理分为库存警报和库存查询。因为超市定期要对货物进行补充,在进货之前要了解剩余货物的数量,此时需要在数据库中建立一个库存信息表用于存储剩余货物的情况。系统维护包括数据备份和数据还原,以防数据丢失,所以需要备份数据和还原数据。
2. 项目的详细设计
以员工信息表为例:
1>.使用的控件:ToolStrip,Label,TextBox , DateTimePicke ,ComboBox,DataGridView. 2>.保存,取消,添加,修改,删除按钮的互斥更改。
3>.用于初始化组件,将控件恢复到原始状态。
4>.点击保存,取消,添加,修改,删除按钮时,可以实现数据的添加,修改和删除操作。 5>.根据查询条件,并输入关键字,便可查询你想要查询的内容。
6>. 点击退出按钮,即可退出此窗体。
7>. Label 为控件提供运行时信息或说明性文字。
8>. TextBox允许用户输入文本,并提供多行编辑和密码字符掩码功能。
9>.DateTimePicker 控件,允许用户选择日期和时间,并以指定的格式显示。 10>.ToolStrip 控件为此表提供工具栏。
11>.ComboBox 显示一个可编辑的文本框,其中包括一个允许值下拉列表,需要指出的是当性别只有男女时,我们需要设它的DropDownStyle 属性为DropDown ,这样,才不允许用户更改性别信息。
12>. DataGridView是为了显示表的数据。
13>.在员工信息表的方法里,做三个查询,一是用于登陆验证的查询,二是用于窗体载入的查询,三是用于DataGridView 单元格触发时索引的数据中记录返回。
14>.有添加,修改和删除的方法,来实现数据库的更新。
15>.有一个自动生成客户编号的方法,而无需自己添加编号
以商品进货信息表为例:
1>.同员工信息表一样,可以实现增删改查的功能,但其中多了一个控件TreeView 。 2>.TreeView 控件,填充商品类别信息。
3>.在添加商品进货单价和数量时,会自动算出商品应付的金额。
以数据备份为例:
1>.添加一个folderBrowserDialog 控件,显示一个对话框,提示用户选择文件夹。 以数据还原为例:
1>.添加一个OpenFileDialog 控件,显示一个对话框,提示用户打开文件。
【总结】
注:以下所说的“完整”指实现窗体的所有功能(增,删,改,查)。 数据库:孙旭南(完整)
登录界面:孙旭南(完整并有创新)
超市管理主界面:孙旭南(完整并有创新)
员工信息表:田艳(完整并有创新)
供应商信息:田艳(完整并有创新)
商品进货:孙旭南(完整)
商品查询:孙旭南(完整)
商品销售:田艳(窗体载入成功,可以删除数据,但添加和修改功能未实现) 商品退货:田艳(窗体载入成功,但添加和修改和删除功能未实现)
库存警报:孙旭南(窗体载入成功,但无法在数据库中更新)
库存查询:田艳(完整)
数据备份:孙旭南(完整,向同学请教的)
数据还原:孙旭南(完整,上网查的)
单元测试:孙旭南(完整)
安装与部署:孙旭南(做得很完全,但在安装程序时出现意外错误,因为是基于“画板”做的,最后出现的快捷方式是一个类似“画板”的窗体) 。
此桌面应用生产性实训的文档设计与编写:孙旭南
自评:此超市管理系统做的还是挺成功的,有一种成就感。大体实现各个窗体的增删改查功能,只有个别的窗体不太完整。希望再接再厉,争取做得更好。
【创新及其他】
孙旭南的创新:
1.登录界面有普通员工和管理员,普通员工需要输入用户名和密码,管理员只需输入用户名即可进入。(从刘铁英老师给发的“客户角色”的文档学到的)
2.超市管理系统主界面有一个“欢迎光临”的滚动条。(从刘铁英老师给发的“状态栏的文字滚动”的文档改编的)
3.员工信息表和供应商信息表的查找按钮,鼠标只要一接触,便可自动查询,而不需要点击鼠标。(利用查找按钮事件的MouseEnter 实现的)
4.关闭超市管理系统主界面时,需要弹出一个对话框,是否需要关闭此系统。(通过登录界面验证用户的提示下,考虑到关闭此系统时是否确定需要关闭)
【产品使用说明书】
1. 产品的特点:使用此超市管理系统可有效减少盲目采购、降低采购成本、合理控制库存、
减少资金占用并提高市场灵敏度,提升超市的市场竞争力。
2. 此系统发布成功。用户可以通过安装来实现环境的搭建和系统运行。
3. 指导用户使用产品。在“超市管理系统的安装”文件夹下,打开Debug 文件夹, 有个
setup 的安装盘,即可安装。产品是以URL 部署的,打开此系统,可以实现各个窗体的增,删,改,查功能。
【附录】
实现员工信息表功能的主要代码:
(1)、员工信息表窗体frmEmpInfo 的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using Shop.GoodMenthod;
using Shop.ClassInfo;
namespace Shop
{
public partial class frmEmpInfo : Form
{
public frmEmpInfo()
{
InitializeComponent();
}
tb_EmpInfo EmpClass = new tb_EmpInfo();
tb_EmpInfoMenthod tbMenthod = new tb_EmpInfoMenthod();
//窗体载入时,将全部记录载入到控件中
private void frmEmpInfo_Load(object sender, EventArgs e)
{
tbMenthod.tb_EmpInfoFind("" , 5, dataGridView1);
this .cbxCondition.Text = " 员工姓名" ; //窗体载入时默认的查询条件索引
}
/// /// 点击查询按钮 ///
private void txtOK_Click(object sender, EventArgs e)
{
string P_Str_selectcondition = this .cbxCondition.Text; //查询类别索引
if (P_Str_selectcondition == null )
{
MessageBox .Show(" 请选择查询条件!" );
return ;
}
if (this .txtKeyWord.Text == "" )
{
MessageBox .Show(" 输入查询关键字!" );
return ;
}
switch (P_Str_selectcondition)
{
case " 员工姓名" : //员工姓名字段在dataGridView1索引值为1
tbMenthod.tb_EmpInfoFind(txtKeyWord.Text, 1, dataGridView1); break ;
case " 员工性别" ://员工性别字段在dataGridView1引值为2
tbMenthod.tb_EmpInfoFind(txtKeyWord.Text, 2, dataGridView1); break ;
case " 所属部门" :// 所属部门字段在dataGridView1引值为3
tbMenthod.tb_EmpInfoFind(txtKeyWord.Text, 3, dataGridView1); break ;
case " 员工职位" :// 员工职位字段在dataGridView1引值为4
tbMenthod.tb_EmpInfoFind(txtKeyWord.Text, 4, dataGridView1); break ;
default :
break ;
}
}
public static int intFlag = 0;//控件方法状态
/// /// 用于按钮的互斥更改 ///
private void ControlStatus()
{
this .toolSave.Enabled = !this .toolSave.Enabled;
this .toolAdd.Enabled = !this .toolAdd.Enabled;
this .toolCancel.Enabled = !this .toolCancel.Enabled;
this .toolAmend.Enabled = !this .toolAmend.Enabled;
this .toolDelete.Enabled = !this .toolDelete.Enabled;
}
/// /// 用于初始化组件, 将控件恢复到原始状态 ///
private void ClearControls()
{
txtEmpAddress.Text = null ;
txtEmpPhone.Text = null ;
txtEmpName.Text = null ;
txtEmpLoginPwd.Text = null ;
txtEmpPhoneM.Text = null ;
txtEmpLoginName.Text = null ;
cmbEmpPost.SelectedIndex = 0;
cmbEmpDept.SelectedIndex = 0;
comSex.SelectedIndex = 0;
this .daEmpBirthday.Value = DateTime .Now;
}
/// /// 点击添加按钮 ///
private void toolAdd_Click(object sender, EventArgs e)
{
ControlStatus();//点击添加按钮后控件状态相反
ClearControls();//清空控件内容
intFlag = 1;//添加标记为1
}
/// /// 点击保存按钮 ///
private void toolSave_Click(object sender, EventArgs e)
{
if (getPan() == 1)
{
if (intFlag == 1)
{
if (tbMenthod.tb_EmpInfoFind(txtEmpLoginName.Text,"" , 1)==1 ) {
MessageBox .Show(" 登录名称已被占用! !" );
txtEmpLoginName.Text = "" ;
txtEmpLoginName.Focus();
return ;
}
if (tbMenthod.tb_EmpInfoFind(txtEmpName.Text, "" , 1) == 1) {
MessageBox .Show(" 员工姓名已被占用! !" );
txtEmpName.Text = "" ;
txtEmpName.Focus();
return ;
}
if (tbMenthod.tb_EmpInfoAdd(EmpClass) == 1)
{
MessageBox .Show(" 添加成功" );
intFlag = 0;
tbMenthod.tb_EmpInfoFind("" , 5, dataGridView1); ClearControls();
ControlStatus();
}
else
{
MessageBox .Show(" 添加失败" );
intFlag = 0;
//tbMenthod.tb_EmpInfoFind("2",dataGridView1); ClearControls();
ControlStatus();
}
}
if (intFlag == 2)
{
if (tbMenthod.tb_EmpInfoUpdate(EmpClass) == 1)
{
MessageBox .Show(" 修改成功" );
intFlag = 0;
tbMenthod.tb_EmpInfoFind("" , 5, dataGridView1); ClearControls();
ControlStatus();
}
else
{
MessageBox .Show(" 修改失败" );
intFlag = 0;
//tbMenthod.tb_EmpInfoFind("2",dataGridView1); ClearControls();
ControlStatus();
}
}
if (intFlag == 3)
{
if (tbMenthod.tb_EmpInfoDelete(EmpClass) == 1) {
MessageBox .Show(" 删除成功" );
intFlag = 0;
tbMenthod.tb_EmpInfoFind("" , 5, dataGridView1); ClearControls();
ControlStatus();
}
else
{
MessageBox .Show(" 删除失败" );
intFlag = 0;
ClearControls();
ControlStatus();
}
}
}//end
}
/// /// 用于判断 ///
///
public int getPan()
{
int intFlag1 = 0;
if (intFlag != 3)//添加,修改状态
{
if (txtEmpName.Text == "" )
{
MessageBox .Show(" 员工姓名不能为空!" , " 提示" ); txtEmpName.Focus();
return intFlag1;
}
if (txtEmpLoginName.Text == "" )
{
MessageBox .Show(" 登录名称不能为空!" , " 提示" ); return intFlag1;
}
if (intFlag != 2)//添加状态
{
if (txtEmpLoginPwd.Text == "" )
{
MessageBox .Show(" 登录密码不能为空!" , " 提示" ); return intFlag1;
}
}
if (intFlag == 2)//修改状态
{
EmpClass.EmpId1 = this .dataGridView1[0,
this .dataGridView1.CurrentCell.RowIndex].Value.ToString();
//当时单元格的行索引
//this.dataGridView1[列索引=0,行索引]
}
else
{
EmpClass.EmpId1= tbMenthod.tb_EmpInfoID();
}
}
else
{
if (txtEmpName.Text == "" )
{
MessageBox .Show(" 请在下面选择要删除的记录" , " 提示" ); return intFlag1;
}
else
{
EmpClass.EmpId1 = this .dataGridView1[0,
this .dataGridView1.CurrentCell.RowIndex].Value.ToString();
}
}
EmpClass.EmpName1 = txtEmpName.Text;
EmpClass.EmpLoginName1 = txtEmpLoginName.Text;
EmpClass.EmpLoginPwd1 = txtEmpLoginPwd.Text;
EmpClass.EmpSex1 = comSex.Text;
EmpClass.EmpBirthday1 = daEmpBirthday.Value;
EmpClass.EmpDept1 = cmbEmpDept.Text;
EmpClass.EmpPost1 = cmbEmpPost.Text;
EmpClass.EmpPhoneM1 = txtEmpPhoneM.Text;
EmpClass.EmpPhone1 = txtEmpPhone.Text;
EmpClass.EmpAddress1 = txtEmpAddress.Text;
if (intFlag != 3)
{
EmpClass.EmpFlag1 = 0;
}
else
{
EmpClass.EmpFlag1 = 1;
}
intFlag1 = 1;
return intFlag1;
}
/// /// 点击取消按钮 ///
private void toolCancel_Click(object sender, EventArgs e)
{
ControlStatus();
ClearControls();
}
/// /// 点击退出按钮 ///
private void toolExit_Click(object sender, EventArgs e)
{
this .Close();
}
private void FillControls()
{
try
{
SqlDataReader sqldr = tbMenthod.tb_EmpInfoFind(this .dataGridView1[0, this .dataGridView1.CurrentCell.RowIndex].Value.ToString(), 1);
sqldr.Read();
if (sqldr.HasRows)
{
txtEmpLoginName.Text = sqldr[2].ToString();
txtEmpName.Text = sqldr[1].ToString();
comSex.Text = sqldr[4].ToString();
daEmpBirthday.Value = Convert .ToDateTime(sqldr[5].ToString());
cmbEmpDept.Text = sqldr[6].ToString();
cmbEmpPost.Text = sqldr[7].ToString();
txtEmpPhoneM.Text = sqldr[9].ToString();
txtEmpPhone.Text = sqldr[8].ToString();
txtEmpAddress.Text = sqldr[10].ToString();
}
}
catch (Exception ee)
{
MessageBox .Show(ee.ToString());
}
}
/// /// 点击修改按钮 ///
///
///
private void toolAmend_Click_1(object sender, EventArgs e)
{
ControlStatus();
intFlag = 2;
}
/// /// 点击删除按钮 ///
private void toolDelete_Click_1(object sender, EventArgs e)
{
ControlStatus();
intFlag = 3;
}
/// /// 触发dataGridView ///
///
///
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) {
if (intFlag == 2 || intFlag == 3)
{
FillControls();
}
}
}
}
(2)、员工信息表方法tb_EmpInfoMenthod的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using Shop.ClassInfo;
namespace Shop.GoodMenthod
{
class tb_EmpInfoMenthod
{
SqlConnection conn = null ;
SqlCommand cmd = null ;
SqlDataReader qlddr = null ;
#region 查询tb_EmpInfo 用于DataGridView 单元格触发时索引的数据中记录返回
public SqlDataReader tb_EmpInfoFind(string strObject, int intFlag)
{
//int intCount = 0;
string strSecar = null ;
try
{
switch (intFlag)
{
case 1:
strSecar = "select * from tb_EmpInfo where EmpId= '" + strObject + "' and EmpFlag=0";
break ;
case 2:
strSecar = "select * from tb_EmpInfo where EmpFlag=0";
break ;
}
//strSecar = "select * from tb_EmpInfo where EmpId= '" + strObject + "' and EmpFlag=0";
getSqlConnection getConnection = new getSqlConnection ();
conn = getConnection.GetCon();
cmd = new SqlCommand (strSecar, conn);
qlddr = cmd.ExecuteReader();
return qlddr;
}
catch
{
return qlddr;
}
}
#endregion
#region 查询(用于登陆验证)//添加功能验证登录名
public int tb_EmpInfoFind(string strObject, string pwd, int intFlag)//用户名strObject 传参 intFlag权限1查到用户名即可;权限2用户名密码必须都对
{
int intCount = 0;
string strSecar = null ;
try
{
switch (intFlag)
{
case 1:
strSecar = "select * from tb_EmpInfo where EmpLoginName='" + strObject + "' and EmpFlag=0";
break ;
case 2:
strSecar = "select * from tb_EmpInfo where EmpLoginName='" + strObject + "' and EmpFlag=0 and EmpLoginPwd='" + pwd + "'" ;
break ;
}
getSqlConnection getConnection = new getSqlConnection ();
conn = getConnection.GetCon();
cmd = new SqlCommand (strSecar, conn);
qlddr = cmd.ExecuteReader();
qlddr.Read();
if (qlddr.HasRows)
{
intCount = 1;
}
return intCount;
}
catch (Exception ex)
{
MessageBox .Show(ex.Message.ToString());
return intCount = 2;
}
}
#endregion
#region 查询(窗体载入时)
public void tb_EmpInfoFind(string st, int flag, Object DataObject)
{
string strSecar = null ;
try
{
switch (flag)
{
case 1:
strSecar = "select * from tb_EmpInfo where EmpName like '%" + st + "%' and EmpFlag=0";
break ;
case 2:
strSecar = "select * from tb_EmpInfo where EmpSex = '" + st + "' and EmpFlag=0";
break ;
case 3:
strSecar = "select * from tb_EmpInfo where EmpDept like '%" + st + "%' and EmpFlag=0";
break ;
case 4:
strSecar = "select * from tb_EmpInfo where EmpPost like '%" + st + "%' and EmpFlag=0";
break ;
case 5:
strSecar = "select * from tb_EmpInfo where EmpFlag=0";
break ;
}
//strSecar = "select * from tb_EmpInfo where EmpFlag=0";//窗体载入时将相关记录全部载入到控件中
getSqlConnection getConnection = new getSqlConnection ();
conn = getConnection.GetCon();
cmd = new SqlCommand (strSecar, conn);
int ii = 0;//统计读取的记录数量
qlddr = cmd.ExecuteReader();//读取符合条件的数据二维表
while (qlddr.Read())//记录前进
{
ii++;
}
qlddr.Close();//关闭qlddr 的Reader 对象,以便再执行从第一条开始读, 由于未释放所以不用再连接
System.Windows.Forms.DataGridView dv = (DataGridView )DataObject; //向自定义的表格中显示数据,
//动态的数据表格, 数据表格的引用方式dv 【列索引,行索引】
if (ii != 0)
{
int i = 0;//当读取到一条以上的记录时
dv.RowCount = ii;//自定义表格的记录长度
qlddr = cmd.ExecuteReader();//执行读取操作
while (qlddr.Read())//读取表格的每一条记录前进
{
//第一次循环将读取到的二维表中索引行为0的列记录写入到活动数据表格中的第0行
dv[0, i].Value = qlddr[0].ToString();
dv[1, i].Value = qlddr[1].ToString();
dv[2, i].Value = qlddr[4].ToString();
dv[3, i].Value = qlddr[6].ToString();
dv[4, i].Value = qlddr[7].ToString();
dv[5, i].Value = qlddr[9].ToString();
i++;//i为行索引
}
qlddr.Close();//再次关闭qlddr 的 Reader对象
}
else
{
for (int i = 0; i < dv.rowcount;="">
{
dv[0, i].Value = "" ;
dv[1, i].Value = "" ;
dv[2, i].Value = "" ;
dv[3, i].Value = "" ;
dv[4, i].Value = "" ;
dv[5, i].Value = "" ;
}
}
}
catch (Exception ee)
{
MessageBox .Show(ee.ToString());
}
}
#endregion
#region 添加
public int tb_EmpInfoAdd(tb_EmpInfo Empinfo)
{
int intFlag = 0;
try
{
string str_Add = "insert into tb_EmpInfo values( ";
str_Add += " '" + Empinfo.EmpId1 + "','" + Empinfo.EmpName1 + "','" + Empinfo.EmpLoginName1+ "'," ;
str_Add += " '" + Empinfo.EmpLoginPwd1 + "','" + Empinfo.EmpSex1 + "','" + Empinfo.EmpBirthday1+ "'," ;
str_Add += " '" + Empinfo.EmpDept1+ "','" + Empinfo.EmpPost1 + "','" + Empinfo.EmpPhone1 + "'," ;
str_Add += " '" + Empinfo.EmpPhoneM1 + "','" + Empinfo.EmpAddress1 + "'," ; str_Add += "'" + Empinfo.EmpFlag1 + "')" ;
getSqlConnection getConnection = new getSqlConnection ();
conn = getConnection.GetCon();
cmd = new SqlCommand (str_Add, conn);
intFlag = cmd.ExecuteNonQuery();//返回受影响的行数
conn.Dispose();
return intFlag;
}
catch (Exception ee)
{
MessageBox .Show(ee.ToString());
return intFlag;
}
}
#endregion
#region 修改
public int tb_EmpInfoUpdate(tb_EmpInfo Empinfo)
{
int intFlag = 0;
try
{
string str_Update = "update tb_EmpInfo set ";
str_Update += "EmpName='" + Empinfo.EmpName1 + "',EmpLoginName='" + Empinfo.EmpLoginName1+ "'," ;
str_Update += "EmpLoginPwd='" + Empinfo.EmpLoginPwd1+ "',EmpSex='" + Empinfo.EmpSex1+ "',EmpBirthday='" + Empinfo.EmpBirthday1+ "'," ;
str_Update += "EmpDept= '" + Empinfo.EmpDept1+ "',EmpPost='" + Empinfo.EmpPost1 + "',EmpPhone='" + Empinfo.EmpPhone1 + "'," ;
str_Update += " EmpPhoneM='" + Empinfo.EmpPhoneM1 + "',EmpAddress='" + Empinfo.EmpAddress1 + "'," ;
str_Update += "EmpFlag='" + Empinfo.EmpFlag1 + "' where EmpId='" + Empinfo.EmpId1 + "'" ;
getSqlConnection getConnection = new getSqlConnection ();
conn = getConnection.GetCon();
cmd = new SqlCommand (str_Update, conn);
intFlag = cmd.ExecuteNonQuery();
conn.Dispose();
return intFlag;
}
catch (Exception ee)
{
MessageBox .Show(ee.ToString());
return intFlag;
}
}
#endregion
#region 删除
public int tb_EmpInfoDelete(tb_EmpInfo Empinfo)
{
int intFlag = 0;
try
{
string str_Update = "update tb_EmpInfo set ";
str_Update += "EmpFlag='" + Empinfo.EmpFlag1+ "' where EmpId='" + Empinfo.EmpId1+ "'" ;
getSqlConnection getConnection = new getSqlConnection ();
conn = getConnection.GetCon();
cmd = new SqlCommand (str_Update, conn);
intFlag = cmd.ExecuteNonQuery();
conn.Dispose();
return intFlag;
}
catch // (Exception ee)
{
return intFlag;
}
}
#endregion
#region 生成客户编号 例如:CVIV-20071118114255(CVIT—年月日时分秒) public string tb_EmpInfoID()
{
int intYear = DateTime .Now.Day;
int intMonth = DateTime .Now.Month;
int intDate = DateTime .Now.Year;
int intHour = DateTime .Now.Hour;
int intSecond = DateTime .Now.Second;
int intMinute = DateTime .Now.Minute;
string strTime = null ;
strTime = intYear.ToString();
if (intMonth <>
{
strTime += "0" + intMonth.ToString();
}
else
{
strTime += intMonth.ToString();
}
if (intDate <>
{
strTime += "0" + intDate.ToString();
}
else
{
strTime += intDate.ToString();
}
if (intHour <>
{
strTime += "0" + intHour.ToString();
}
else
{
strTime += intHour.ToString();
}
if (intMinute <>
{
strTime += "0" + intMinute.ToString(); }
else
{
strTime += intMinute.ToString(); }
if (intSecond <>
{
strTime += "0" + intSecond.ToString(); }
else
{
strTime += intSecond.ToString(); }
return ("Em-" + strTime);
}// end if
#endregion
}
}
转载请注明出处范文大全网 » 超市账单管理系统项目需求