1、上海应用技术学院课程设计任务书课程名称 程序设计实践与分析 课程代码 B704280 设计题目 超市收银系统 题目序号 14设计时间 2013 年 6 月 24 日 2013 年 6 月 28 日系(院) 计算机科学与信息 工程 专业 计算机科学与技 术 班级一、课程设计任务课程设计是课程教学中一项重要的内容,是完成教学计划,达到教学目标的重要实践环节,通过课程设计,使学生把课程上所学的理论知识与具体实际问题有机的结合起来,达到理论与实践相结合。 程序设计实践与分析课程设计是程序设计实践与分析课程的一个重要的实践性环节,其目的旨在帮助学生进一步加深和理解程序设计实践与分析课程的基本知识,掌握
2、C#编程方法与技巧,初步掌握 Windows 应用程序开发的方法及软件项目开发的一般过程,培养学生正确的程序设计思想和分析问题、解决问题的能力,使学生对于系统的分析,开发,管理等方面受到较为全面、系统和规范的训练。具体有:选题学生可以按课程设计指导书上的课题进行选择,原则上一个题目不能超过三人以上选。另外学生也可以自己确定课题,但所选择的课题要符合教学要求,也就是要通过指导教师的批准方可进行。需求分析分析系统的用户需求,理解系统的业务流程,明确系统的功能和任务,形成需求分析说明书。1 系统设计根据需求分析说明书,进行系统设计。系统设计分成概要设计和详细设计两个阶段概要设计包括:划分系统模块、确
3、定各模块功能,确定模块间的联系,确定数据结构、文件结构、数据库模式等。详细设计包括:对系统进行界面设计、数据库设计,确定系统各模块内部细节的实施方案,如:为每个模块确定采用的算法,选择适当的工具表达算法的过程(流程图) ,描述模块的详细过程等。最后形成系统设计说明书。2 程序开发根据系统设计说明书,使用 Visual C#编程语言进行程序开发,并进行调试和运行。3 撰写课程设计报告课程设计报告包括需求分析、概要设计、详细设计、编码(详细写出编程步骤)、调试的步骤和内容、课程设计总结、参考资料等。二、对课程设计成果的要求21 世纪是已经是一个信息化时代,超市经营管理机制正在发生着根本性的变化,商
4、场要想在激烈的市场竞争环境下求得生存,就必须有效地利用人才、时间、信息结合的优势,进行有效的超市内部改革和加强收银管理。借助现代信息技术和管理理论,超市收银管理信息系统已经普及到了大多数超市中。本系统针对商品销售管理的业务范围及工作特点,设计了基于智能客户端架构的超市收银系统,可以全面实现对商品销售、付款、收款和库存等业务的计算机管理,大大减轻了超市收银工作人员的工作量,全面提高了超市收银管理的管理效率以及服务质量,使管理水平和业务水平跃上了一个新的台阶。本文论述了基于智能客户端的超市收银系统的设计和实现过程,并对其数据安全进行了深入研究。2.1、需求分析2.1.1 课题设计背景超市是一个很繁
5、忙的地方,每天有很多的顾客要买东西,收银员要和很多的顾客结算,并且要给这些结算存档,以便日后查看。如果只用人工的方法去处理这些结算和计算的数据将是一件很繁琐的事情,将投入大量的人力物力,为了解决这个问题,实现科学化、现代化的超市收银管理,我们就必须设计开发超市收银系统,并用于实践。而超市收银管理系统是对超市的收款信息进行管理的计算机网络软件系统,它可完成超市中各种货品的收银工作,并对可以对特定时间段的出售信息进行查询。2.1.2 系统数据流程图数据关系图:2.1.3、数据字典名字:删除销售商品别名:销售商品删除信息描述:超市商品管理员在删除销售商品时需要操作的信息定义:销售商品删除信息商品号商
6、品名称商品销售数量销售价格销售时间位置:在删除销售商品对话框的相应文本框里名字:查询销售商品别名:销售商品查询信息描述:超市商品管理员在查询销售商品时得到的商品信息定义:库存商品查询信息商品号商品名称商品销售数量销售价格销售时间位置:在查询库存商品对话框的相应文本框里2.1.4 系统功能模块在此次设计中,依据系统结构化设计方法,把本系统划分为若干个功能模块,某些模块又可以划分为多个子模块,某些子模块又可划分为多个二级子模块,经层层分解后,最小的子模块的功能便十分明确和简单了。这样做,不仅展现了一个应用软件系统的整体性和层次性,而且通过屏幕对每个应用模块有明显的提示,在这些提示下,用户可以方便地
7、进入系统的每一层进行操作,可以非常方便地使用这一数据库应用系统。名字:删除库存商品别名:库存商品删除信息描述:超市商品管理员在删除库存商品时需要操作的信息定义:库存商品删除信息商品名称商品类型商品库存量入库价格销售价格入库时间生产厂家产地位置:在删除库存商品对话框的相应文本框里名字:查询库存商品别名:库存商品查询信息描述:超市商品管理员在查询库存商品时得到的商品信息定义:库存商品查询信息商品名称商品类型商品库存量入库价格销售价格入库时间生产厂家产地位置:在查询库存商品对话框的相应文本框里名字:删除入库商品别名:入库商品删除信息描述:超市商品管理员在删除入库商品时需要操作的信息定义:入库商品删除
8、信息商品名称商品类型商品入库数量商品价格入库时间生产厂家产地采购员验收员位置:在删除入库商品对话框的相应文本框里名字:查询入库商品别名:入库商品查询信息描述:超市商品管理员在查询入库商品时查询结果的信息定义:入库商品查询信息商品名称商品类型商品入库数量商品价格入库时间生产厂家产地采购员验收员位置:在查询入库商品对话框的相应文本框里2 1.5 功能结构图超市收银管理系统用户信息管理商品入库管理商品库存管理商品销售管理用户信息管理修改用户名修改密码商品入库管理添加入库商品删除入库商品修改入库商品查询入库商品3、概念结构设计3.1 主要功能说明本系统主要分成四个功能模块,每个模块都独立的完成了自己的
9、功能,以下是对各功能模块的说明:(1) 用户信息管理功能。该功能模块可以实现系统用户对自己基本信息的修改,不过只限于对登录密码的修改,因为用户帐号都是超市为了方便管理而事先分配好了的,是不能改变的。出于对用户信息的安全性考虑,只能修改当前登录的用户的密码。(2) 商品入库信息管理功能。该功能模块是实现对即将入库的商品的统计,由于商品信息的庞大、复杂,在入库前需要对其进行详细地商品库存管理添加库存商品删除库存 商品修改库存商品查询库存商品商品销售管理添加销售商品删除销售商品修改销售商品查询销售商品打印商品信息记录管理,为商品的库存管理打下良好的基础。需要记录的内容有:入库商品的商品号、名称、类型
10、、价格、同类商品的数量、采购员、验收员、生产厂商、产地、入库时间等。同时能够实现对商品入库信息的添加、修改、删除和查询功能。(3) 商品库存信息管理功能。该功能模块是当入库的商品放入超市后,对库存商品进行统计管理,主要入库信息来源于(2)中的商品入库信息记录。需要记录的内容有:库存商品的名称、类型、入库价格、销售价格、库存量、入库时间、有效期等,同时能够实现对商品库存信息的添加、修改、删除和查询功能。在商品批量销售后,在表中能够同时删除相应的商品的数量。(4) 商品销售信息管理功能。该功能模块是把要销售的商品从超市中取出来,并对库存商品进行相应的记录管理,并且把顾客的购买信息打印下来给顾客做凭
11、证。需要记录的内容有:出售商品的名称、类型、销售价格、数量、销售时间等,同时能够实现对商品销售信息的添加、修改、删除和查询功能。3.2 系统 E-R 图设计1N1商品商品管理员存放管理购物N 11NN入库数量销售数量库存数量商品库房收银员1查询出售顾客商品管理员管理员帐号管理员密码商品管理员管理员帐号管理员密码商品库房商品名称 商品类型销售价格入库价格入库时间生产厂家产地库存量备注商品号4、数据库逻辑图设计4.1 系统数据结构设计字段名称 标识名称 数据类型 空否 字段说明GOODS_ID 出售商品的商品号VARCHAR(50) N 主码GOODS_NAME 销售商品名称VARCHAR(50)
12、 NPRICE 价格 VARCHAR(50) NSALES_TIME 出售时间 DATETIME Y 自动获得,可以为空AGIO 是否打折 VARCHAR(50) NISIN 是否入库 int N 1:是 0:否字段名称 标识名称 数据类型 空否 字段说明GOODS_IN_ID 库存商品商品号VARCHAR(20) N 主码GOODS_IN_NAME 入库商品名称VARCHAR(20) NGOODS_IN_TIME 入库时间 DATETIME NGOODS_IN_NUM 库存商品数量VARCHAR(20) NIN_INPORT_PRICE 入库价格 MONEY NIN_EXPORT_PRICE
13、销售价格 MONEY NIN_PROCOM 生产厂商 VARCHAR(20) NIN_MEMO 库存商品备注VARCHAR(50) N字段名称 标识名称 数据类型 空否 字段说明IMPORT_ID 入库商品商品号VARCHAR(20) N 主码IMPORT_NAME 入库商品名称VARCHAR(20) NIMPORT_TIME 入库时间 DATETIME NIMPORT_NUM 入库商品数量VARCHAR(20) NIMPORT_PRICE 入库商品价格MONEY NPRODCOM 生产厂商 VARCHAR(20) NPRODPLACE 产地 VARCHAR(20) NBUYER 采购员 VA
14、RCHAR(20) NCHECKER 验收员 VARCHAR(20) NIMPORT_MEMO入库商品备注VARCHAR(50) NNFDEABC共享一个超市收银管理系统数据库字段名称 标识名称 数据类型 空否 字段说明USER_ID 帐号 CHAR(20) N 主码USER_PASSWORD密码 CHAR(20) NUSER_TYPE 用户类型 INT(4) N 1:收银员2:管理员5. 数据库的物理设计和实施超市收银管理系统收银员 商品管理员商品情况 对系统进行操作商品信息5.1 网络逻辑结构该超市收银管理系统系统是为了方便超市收银员和管理员的操作而设计的,为每个商品管理人员和收银员配备了
15、一台电脑,并把所有的电脑联入超市局域网内,以方便管理。为了对数据的安全性、准确性地保护,这些电脑都共享一个后台数据库。查询是否存在该商品6.系统详细设计(1) 首先,根据所作的需求分析,完成基本的功能界面设计,并且把界面设计成方便、易用和人性化的用户界面。(2) 根据 (1)中界面设计,把每个功能通过代码来实现,以完成功能的定义。(3) 根据 3.1 关系数据库模式中的数据库表的设计,并通过 SQL Server 2005 建立数据库。(4) 把设计好的界面和数据库连接起来,使整个系统能够运行。using System;using System.Collections.Generic;usin
16、g System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;using System.Data.Sql;using System.Data.SqlServerCe;namespace SuperDesignpublic partial class loginForm : Formpublic loginForm()InitializeComponen
17、t();public void getData()int userid = int.Parse(this.uid.Text);string username =this.uname.Text;int password = int.Parse(this.pwd.Text);string selectUser = “SELECT username, password FROM user WHERE (userid = “+userid+“)“;string connectionString = “Data Source=|DataDirectory|SuperMarket.sdf;Password
18、=123456“;using (System.Data.SqlServerCe.SqlCeConnection conn = new System.Data.SqlServerCe.SqlCeConnection(connectionString)SqlCeCommand command = new SqlCeCommand(selectUser,conn);conn.Open();SqlCeDataReader reader = command.ExecuteReader();trywhile (reader.Read()Console.WriteLine(String.Format(“0,
19、 1“,reader0, reader1);if (username.Equals(reader0) adminM.Show();elseMainFrame mainFrame = new MainFrame();mainFrame.Show();else if (!username.Equals(reader0)flaglable.Text = “please input right name“; else if (pwd.TextLength != 6this.uid.Text = “;this.uname.Text = “;this.pwd.Text = “;else if (pwd.T
20、extLength != 6)flaglable.Text = “Please input 6 number into the password textbox“;this.uid.Text = “;this.uname.Text = “;this.pwd.Text = “;else flaglable.Text = “Sorry ,please input the correct info“;this.uid.Text = “;this.uname.Text = “;this.pwd.Text = “;finallyreader.Close();private void button1_Cl
21、ick(object sender, EventArgs e)getData();private void button2_Click(object sender, EventArgs e)Alter alterform = new Alter();alterform.Show();private void label1_Click(object sender, EventArgs e)using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.
22、Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;using System.Data.Sql;using System.Data.SqlServerCe;namespace SuperDesignpublic partial class User : Formpublic User()InitializeComponent();private void button1_Click(object sender, EventArgs e)int use
23、rid = int.Parse(this.userid.Text);string username = this.username.Text;int password = int.Parse(this.password.Text);int tel = int.Parse(this.Tel.Text);string address = this.address.Text;string comment = ment.Text;string insertSql = “INSERT INTO user (userid, username, password, address, Tel, comment
24、) VALUES (“+userid+“, “+username+“,“+ password+“, “+address+“,“+ tel+“, “+comment+“) “;string connectionString = “Data Source=|DataDirectory|SuperMarket.sdf;Password=123456“;using (System.Data.SqlServerCe.SqlCeConnection conn = new System.Data.SqlServerCe.SqlCeConnection(connectionString)SqlCeComman
25、d command = new SqlCeCommand(insertSql, conn);conn.Open();int rowReturn = command.ExecuteNonQuery();flaglable.Text = “insert ok“ + rowReturn;private void button2_Click(object sender, EventArgs e)int userid = int.Parse(this.userid.Text);string insertSql = “DELETE user WHERE userid = (“ + userid + “)
26、“;string connectionString = “Data Source=|DataDirectory|SuperMarket.sdf;Password=123456“;using (System.Data.SqlServerCe.SqlCeConnection conn = new System.Data.SqlServerCe.SqlCeConnection(connectionString)SqlCeCommand command = new SqlCeCommand(insertSql, conn);conn.Open();int rowReturn = command.Exe
27、cuteNonQuery();flaglable.Text = “delete ok“ + rowReturn;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 System.Data.Sql;using System.Data.SqlServerCe;namespace SuperDesign