目 录
1引言 1
1.1课题研究内容 1
2系统需求分析 1
2.1系统模块构建 1
2.1.1系统整体结构功能模块 1
2.1.2前、后台功能模块 2
3 数据库设计 3
3.1 E-R图和关系图 3
3.2数据库表设计 4
4系统实现 7
4.1 前台模块 7
4.2 后台模块 14
5 结果测试 24
5.1前台模块的测试 24
5.2后台模块测试 25
总 结 25
参考文献 25
1 引 言
1.1课题研究内容
综合运用以前所学的专业知识,设计开发一个超市收费系统软件,本设计要求实现功能——采购入库,出入库明细,条形码数据的输入,会员卡号的输入,进行货品销售。
具体包括以下内容:
(1)在设计与开发中,主要放在简单地进行货品销售,会员卡打折(统一九折)。
(2)在设计与开发中,既探讨前台的销售,又能实现后台的采购入库,会员卡设置,员工管理,出入明细等功能。(其中前台只负责输入条码,输入会员卡号,实现收费。其他的所有功能和设置均放在后台进行)
实现超市货品的入库,会员卡用户资料的录入,以及进行货品销售的收费,而前台的收费分为会员卡用户和非会员卡用户两种收费,对于有卡用户,在输入卡号后,可实现商品价格按九折折价格进行收费,若要取消销售某商品,则直接点删除,总价格也会相应的扣除.
2 系统需求分析
数据库应用系统是以数据库为基础的信息管理系统,它一般包含两个方面内容,一个数据库设计,二是程序设计。在建立数据库应用系统之前,一般应先进行系统的需求分析,了解用户对系统的要求,然后进行系统的总体设计,最后编写程序代码和调试程序。数据库应用系统的开发过程,需求分析包括了对数据本身的需求分析和对功能的需求分析。两个分析的结果将分别作为数据库设计和程序设计的依据。实际上在设计数据库应用系统时,这两个需求分析是紧密相关的,不论是数据库设计,还是程序设计都需要考虑这两个方面的因素。
2.1系统模块构建
2.1.1系统整体结构功能模块
系统整体结构功能模块图如图2-1:
根据系统整体结构功能模块分析,系统分为前台和后台两部分;前台主要提供给收银员使用,进行销售收费;后台提供给管理员使用,主要执行商品信息管理、出入库明细管理、销售数据管理、员工管理以及会员卡用户管理等工作。
2.1.2前、后台功能模块
本系统是多用户系统,用户可分为管理员和收银员两类,登录或者未登录情况下判断当前使用人员的权限,避免安全性问题。
收银员登录系统,系统自动清空销售临时数据,进入系统,对于非会员用户收银员首先录入商品编号,然后输入数量,而对于会员卡用户,收银员选择会员类型,输入会员卡号,系统自动将折扣转为90%,然后系统自动汇总金额,同时列表显示销售商品的流水数据,收银员可以删除需要退掉的商品,然后点击结账,完成交易过程。前台功能模块图如图
图2-2 前台功能模块图
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace SuperMarket
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
string str = "server=NO1;database=SuperMarket;integrated security=true";
SqlConnection con = new SqlConnection(str);
con.Open();
string use = user1.Text.ToString();
string mima = password.Text.ToString();
SqlDataAdapter ad = new SqlDataAdapter("select * from Table_user where userid='" + use + "' and password='" + mima + "'", con);
SqlDataAdapter ad1 = new SqlDataAdapter("select * from Table_manager where manid='" + use + "' and password='" + mima + "'", con);
DataSet set = new DataSet();
ad1.Fill(set, "s1");
ad.Fill(set, "s2");
int flag = 1;
if (set.Tables["s1"].Rows.Count != 0)
{
flag = 0;
c.man = use;
Form3 f = new Form3();
this.Hide();
f.Show();
}
else if (set.Tables["s2"].Rows.Count != 0)
{
flag = 0;
c.str = use;
Form2 f = new Form2();
this.Hide();
f.Show();
}
if (flag == 1)
{
user1.Text = "";
password.Text = "";
MessageBox.Show("密码错误或用户名不存在!");
}
con.Close();
}
catch (Exception ex)
{
MessageBox.Show("error:"+ex);
}
}
private void password_TextChanged(object sender, EventArgs e)
{
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
public class c
{
public static string str = "";
public static string man = "";
}
}