ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:295.91KB ,
资源ID:6748186      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6748186.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(超市POS系统架构.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

超市POS系统架构.docx

1、超市POS系统架构超市POS系统架构 一、需求概述开发一套淮信进销存系统,包括商品信息管理,采购入库,库存盘点,商品销售,综合信息查询等不同的功能模块,需要在不同的功能模块中都显示淮信POS进销存系统的版本信息和对应的功能标题。二、需求分析对于软件系统,需要从以下几方面加以认识:1、软件系统的使用流程软件系统的使用流程一般包括以下几步:1)双击系统图标,打开应用软件;2)在系统登录界面下,输入用户名和密码,登录系统;3)进入系统主界面,一般由系统菜单和功能区域组成;4)单击菜单项或者输入快捷按钮切换到具体的子功能界面。2、功能界面的组成功能界面本身是一个类,一般由按钮、文本框等控件组成。每个控

2、件也是一个类。图1展示了WinForms程序下的进货管理功能模块界面,本例采用控制台程序来模拟类似界面,。图1 采购入库功能界面软件开发的整体思路是由简单到复杂,层层递进。目前的任务是在整体上对进销存系统有一个了解,稳扎稳打,为项目的开发打下语言基础。在具体编码之前,一定要先明确自己要做什么,对于本任务,可按如下步骤来操作:1、建立登录界面类,要求用户输入用户名和密码(假设均为admin);2、建立主界面类,接收用户输入,根据输入菜单名称的不同,显示相应的功能菜单;3、建立各个功能界面类,接收用户输入,返回主界面。各个类之间的关系如图2所示:输入0图2 各界面间关系三、实现过程1、创建名为Hc

3、itPosSys的C#控制台应用程序;2、新建名为SoftwareInfo的类,用来显示软件版本、版权信息等,代码如下:using System;using System.Collections.Generic;using System.Text;namespace HcitPosSys /此处用静态类声明软件版本信息,注意:静态类不可以实例化,并且类成员都需要声明static public static class SoftWareInfo public static string userName;/软件当前用户 public static void ShowHeader() Consol

4、e.WriteLine(=); Console.WriteLine( 淮信HcitPos进销存管理系统 版本号:V1.0.2009.4 ); Console.WriteLine(=); public static void ShowFooter() Console.WriteLine();Console.WriteLine( 您好,0,当前系统时间为1, userName, DateTime.Now); Console.WriteLine( 版权所有:2009-2010 联系方式:12345678 ); Console.WriteLine(); 3、新建名为FrmLogin的类,(Form即界

5、面的英文表述,此处用Frm前缀表示这是一个界面类),逻辑代码如下所示,具体功能实现参见注释:using System;using System.Collections.Generic;using System.Text;namespace HcitPosSys public class FrmLogin private string userName; private string password; /默认构造函数 public FrmLogin() /1.用户名和密码显示区,空了行才要求用户输入用户名和密码,主要是为了界面美观 / 本功能比较独立,所以单独放在一个方法里,这就是模块化编程的

6、思想 private void ShowLoginInfo() for(int i = 0; i5; i+) Console.WriteLine(); Console.Write( 用户名:); userName = Console.ReadLine(); Console.Write( 密 码:); password = Console.ReadLine(); /2.验证用户名和密码功能,供主程序循环调用 public bool ValidateUserInfo() /1.访问数据库来获取用户名、密码信息,模拟为admin,admin /2.校验是否合法 if (userName = admi

7、n & password = admin) /将用户名信息保存在静态字段中 SoftWareInfo.userName = userName; return true; return false; /3.显示登录界面 public void Show() SoftWareInfo.ShowHeader(); ShowLoginInfo(); 注意SoftWareInfo.userName = userName;这句代码,这样在其他界面中也能访问到登录的用户信息。4、双击“Program.cs”文件,修改该文件为:using System;using System.Collections.Gen

8、eric;using System.Text;namespace HcitPosSys class Program static void Main(string args) FrmLogin frm = new FrmLogin(); frm.Show(); 按键运行程序,界面如图4.11所示:图4.11 登录界面注意,本步骤体现了软件开发流程,在完成一个功能类后,应该首先测试该功能是否可用,当代码出错的时候,方便发现错误和解决错误,这也是一个层次递进的开发过程。5、添加“FrmMain”类(主界面类),代码如下:using System;using System.Collections.G

9、eneric;using System.Text;namespace HcitPosSys public class FrmMain /1.显示主界面 public void Show() SoftWareInfo.ShowHeader(); for (int i = 0; i 5; i+) Console.WriteLine(); Console.WriteLine(请选择子功能模块:n1.商品信息维护n2.采购入库n3.库存盘点n4.商品销售n5.综合查询);/ n的作用为换行 for (int i = 0; i 5; i+) Console.WriteLine(); SoftWareIn

10、fo.ShowFooter(); /2.获取用户输入 public int GetUserInput() return int.Parse(Console.ReadLine(); 6、修改Program.cs文件,代码如下:using System;using System.Collections.Generic;using System.Text;namespace HcitPosSys class Program static void Main(string args) /1.显示登录界面 FrmLogin frm = new FrmLogin(); frm.Show(); /2.验证用

11、户名和密码 if (frm.ValidateUserInfo() /3.密码正确,显示主界面 FrmMain frmMain = new FrmMain(); frmMain.Show(); else /4.密码错误,退出系统 Console.WriteLine(错误的用户名和密码!); Console.WriteLine(系统关闭!); 7、运行程序,输入用户名admin和密码admin后,界面如图4.12所示:图4.12 主界面8、添加“FrmGoodsInfo”(商品信息类)、“FrmPurchase”(采购类)、“FrmStoreCheck”(盘点类)、“FrmSale”(商品销售类)

12、、“FrmQuery”(商品查询类),代码类似,分别如下:FrmGoodsInfo(商品信息类):using System;using System.Collections.Generic;using System.Text;namespace HcitPosSys public class FrmGoodsInfo public void Show() /按退出,返回到主界面 do /清屏 Console.Clear(); /一直循环显示 SoftWareInfo.ShowHeader(); for (int i = 0; i 5; i+) Console.WriteLine(); Cons

13、ole.WriteLine(商品信息维护功能n按键返回上一级); for (int i = 0; i 5; i+) Console.WriteLine(); SoftWareInfo.ShowFooter(); while(Console.ReadLine() != 0); FrmPurchase(采购类):using System;using System.Collections.Generic;using System.Text;namespace HcitPosSys public class FrmPurchase public void Show() /按退出,返回到主界面 do C

14、onsole.Clear(); SoftWareInfo.ShowHeader(); for (int i = 0; i 5; i+) Console.WriteLine(); Console.WriteLine(采购入库功能n按键返回上一级); for (int i = 0; i 5; i+) Console.WriteLine(); SoftWareInfo.ShowFooter(); while (Console.ReadLine() != 0); 其他3个类代码也类似,只需Console.WriteLine(采购入库功能n按键返回上一级);改成当前类功能,具体操作时,可以用(拷贝),(

15、粘贴)形式。注意,这样实现的程序,代码冗余量大,一处出错,5个类都要修改。例如,在开始实现时,并没有加入循环,只是直接显示信息,而后为了提高拟真度,加入了dowhile循环,一次就要修改5个,操作非常繁琐。如何避免这种情况呢?在下一章将介绍解决方案。另外一种减少代码冗余量的方法是把代码:for (int i = 0; i 5; i+)Console.WriteLine();移动到SoftwaverInfo类中的ShowHeader()和ShowFooter()方法中。9、修改”FrmMain.cs”文件,实现根据用户输入,显示子功能界面,修改后代码如下:using System;using S

16、ystem.Collections.Generic;using System.Text;namespace HcitPosSys public class FrmMain /1.显示主界面 public void Show() SoftWareInfo.ShowHeader(); for (int i = 0; i 5; i+) Console.WriteLine(); Console.WriteLine(请选择子功能模块:n1.商品信息维护n2.采购入库n3.库存盘点n4.商品销售n5.综合查询); for (int i = 0; i 5; i+) Console.WriteLine();

17、SoftWareInfo.ShowFooter(); /2.获取用户输入 public int GetUserInput() return int.Parse(Console.ReadLine(); /3.程序处理过程,显示主界面,根据用户输入,显示其他界面 public void Process() while (true) /清除屏幕,重绘 Console.Clear(); Show(); switch (GetUserInput() case 1: FrmGoodsInfo frmGoodsInfo = new FrmGoodsInfo(); frmGoodsInfo.Show(); b

18、reak; case 2: FrmPurchase frmPurchase = new FrmPurchase(); frmPurchase.Show(); break; case 3: FrmStoreCheck frmStoreCheck = new FrmStoreCheck(); frmStoreCheck.Show(); break; case 4: FrmSale frmSale = new FrmSale(); frmSale.Show(); break; case 5: FrmQuery frmQuery = new FrmQuery(); frmQuery.Show(); b

19、reak; default: Console.WriteLine(输入错误,请重新输入!); break; 这里采用了while(true)的死循环模式,实际上,windows操作系统正是一个类似的循环程序,在循环中实现等待用户输入、刷新windows窗口等功能,这也是大多数windows软件的核心原理。当然,实际软件复杂度要软高于本模拟任务。10、修改“Program.cs”文件,完整代码如下:using System;using System.Collections.Generic;using System.Text;namespace HcitPosSys class Program s

20、tatic void Main(string args) /1.显示登录界面 FrmLogin frm = new FrmLogin(); frm.Show(); /2.验证用户名和密码 if (frm.ValidateUserInfo() /3.密码正确,显示主界面 FrmMain frmMain = new FrmMain(); frmMain.Show(); frmMain.Process(); else /4.密码错误,退出系统 Console.WriteLine(错误的用户名和密码!); Console.WriteLine(系统关闭!); 在实际的windows窗体程序开发中,其逻辑

21、要比目前模式复杂,一般会增加一个Application类来负责应用程序的运行。11、程序子功能模块运行效果如图4.13所示,按键可以返回主界面。图4.13 子功能界面至此,HcitPost进销存系统架构已经模拟完成,用户操作步骤如下:1)在输入用户名和密码后,进入程序主界面;2)在主界面通过输入对应选项,即可进入相应子界面;3)在子界面输入“0”,则返回主界面,重复步骤2);4)用户通过点击控制台窗口右上角的“X”图标退出系统。通过本案例,可以发现,在实际项目开发时,很难一次将程序功能写好,程序编写是一个不断设计、编码、调试到再设计、再编码、再调试的过程,整个过程螺旋上升,逐渐逼近用户需求。项

22、目完善与提高:1、在以上项目的基础上,新建一个名为Form的类,作为各个子模块的基类,具体代码如下:using System;using System.Collections.Generic;using System.Text;namespace HcitPosSys public class Form public void Show(string title) /按退出,返回到主界面 do /清屏 Console.Clear(); /一直循环显示 SoftWareInfo.ShowHeader(); for (int i = 0; i 5; i+) Console.WriteLine();

23、 Console.WriteLine(0n按键返回上一级, title); for (int i = 0; i 5; i+) Console.WriteLine(); SoftWareInfo.ShowFooter(); while (Console.ReadLine() != 0); 2、删除商品信息维护类的Show方法,修改代码如下:using System;using System.Collections.Generic;using System.Text;namespace HcitPosSys public class FrmGoodsInfo:Form 同理,删除采购入库、库存盘点

24、、商品销售、综合查询等类的Show方法,并在类名后添加“:Form”,实现对Form类的继承。3、为了更清楚表示继承的关系,在VS2005的解决方案资源管理器中,右击HcitPosSys项目,在弹出菜单中执行“添加”“新建项”,如图5.1所示。图5.1 添加新项 4、在弹出的添加新项对话框中,选择“类关系图”,点击添加按钮,如图5.2所示。图5.2 选择类关系图5、从VS2005解决方案资源管理器对话框中选择Form类,将之拖动到类设计器上。同理将FormGoodsInfo、FormPurchase、FrmStoreCheck、FrmSale、FrmQuery等类也拖动到类设计器上,如图5.3

25、所示,这种结构称为类图。图5.3 继承类6、修改FrmMain主界面类的代码如下:using System;using System.Collections.Generic;using System.Text;namespace HcitPosSys public class FrmMain /1.显示主界面 public void Show() SoftWareInfo.ShowHeader(); for (int i = 0; i 5; i+) Console.WriteLine(); Console.WriteLine(请选择子功能模块:n1.商品信息维护n2.采购入库n3.库存盘点n4

26、.商品销售n5.综合查询); for (int i = 0; i 5; i+) Console.WriteLine(); SoftWareInfo.ShowFooter(); /2.获取用户输入 public int GetUserInput() return int.Parse(Console.ReadLine(); /3.程序处理过程,显示主界面,根据用户输入,显示其他界面 public void Process() while (true) /清除屏幕,重绘 Console.Clear(); Show(); switch (GetUserInput() case 1: FrmGoodsI

27、nfo frmGoodsInfo = new FrmGoodsInfo(); frmGoodsInfo.Show(商品信息维护功能); break; case 2: FrmPurchase frmPurchase = new FrmPurchase(); frmPurchase.Show(采购入库功能); break; case 3: FrmStoreCheck frmStoreCheck = new FrmStoreCheck(); frmStoreCheck.Show(库存盘点功能); break; case 4: FrmSale frmSale = new FrmSale(); frmSale.Show(商品销售功能); break; case 5: FrmQuery frmQuery = new FrmQuery(); frmQuery.Show(综合查询功能); break; default: Console.WriteLine(输入错误,请重新输入!); break; 通过继承,可以实现代码重用,提高了软件模块的可复用性和可扩充性。注意,只有声明为public和protected的类成员,才能被派生类访问,另外,不能同时继承两个以上的类。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1