(完整版)小型超市收银系统的设计与实现毕业设计论文 下载本文

内容发布更新时间 : 2024/12/23 5:18:24星期一 下面是文章的全部内容请认真阅读。

表3-7 供应商信息表(Company)

序号 1 属性名 编号 CompanyID int 字段名 类型 长度 4 × NULL 默认 主键自增,标识种子1000 2 3 名称 联系人 4 5 6 7 电话 传真 地址 合作时间 CompanyPhone CompanyFax CompanyAdd HzDataTime nvarchar nvarchar nvarchar datetime 20 20 50 × √ × × CompanyName nvarchar 50 10 × × 备注 CompanyDirector nvarchar (2) 视图设计

根据逻辑模型所设计出的各种数据表构成了完整的物理数据库。由于业务范围的限制,每一个用户不可能访问数据库系统中的所有数据表,所访问的只是数据表的一个子集。我们把一个用户能访问到的数据表集合称为一个视图(View)[8]。视图是以一致和直观的方式提供给用户的数据形式。视图以这种形式给用户提供数据,一方面为了满足用户对数据访问的方便性、简洁性需要,使数据在视图中以更符合用户要求和喜好的形式展现出来,另一方面,为了保证数据的一致性,最好不要把数据表直接提供给最终用户。

该数据库中涉及到的视图有两个:

视图QuerySell,对应的Transact-SQL语句:

SELECT dbo.SellInfo.SellID, dbo.SellInfo.GoodsID,

dbo.GoodsInfo.GoodsName, dbo.GoodsType.TypeName, dbo.Users.UserName, dbo.SellInfo.SellPrice,

dbo.SellInfo.GoodsNum, dbo.SellInfo.Remark FROM dbo.GoodsInfo INNER JOIN

dbo.SellInfo ON dbo.GoodsInfo.GoodsID = dbo.SellInfo.GoodsID INNER JOIN

dbo.Users ON dbo.SellInfo.Operator = dbo.Users.UserID INNER JOIN

dbo.GoodsType ON dbo.GoodsInfo.TypeID = dbo.GoodsType.TypeID

视图QueryStock,对应的Transact-SQL语句:

SELECT dbo.StockInfo.StockID, dbo.StockInfo.GoodsID, dbo.GoodsInfo.GoodsName, dbo.GoodsType.TypeName, dbopanypanyName,

dbo.Users.UserName, dbo.StockInfo.GoodsPrice, dbo.StockInfo.GoodsNum, dbo.StockInfo.Remark FROM dbo.StockInfo INNER JOIN

dbo.GoodsInfo ON dbo.StockInfo.GoodsID = dbo.GoodsInfo.GoodsID INNER JOIN

dbo.Users ON dbo.StockInfo.Operator = dbo.Users.UserID INNER JOIN

dbopany ON dbo.StockInfopanyID = dbopanypanyID INNER JOIN

dbo.GoodsType ON dbo.GoodsInfo.TypeID =

dbo.GoodsType.TypeID

4 系统实现

系统用SQL Server2005做后台数据库,进行基于.net发平台的WinForm应用程序开发,基本实现其功能。以下将描述系统几个主要功能模块的运行和测试的结果。

4.1 登陆系统模块

当我们建立了一个完整的系统时,尤其对于管理系统,对于进入每个系统的人员我们都要对他进行身份验证,我们当然不希望有任何人进入该系统进行恶意的破坏,对系统中的数据进行修改,维护该系统的系统管理员也不希望有任何麻烦,所以对系统进行安全保护显的很重要,无论对于谁,系统的安全问题是首要的[9]。

为了解决这个问题,有一个简单、实用,但是老套的方法,就是口令加密。在该小型超市收银系统中对口令的加密采取的是常用的MD5加密算法。在新增或修改用户信息时,存入数据库的是用户密码的MD5哈希值,在登录验证时根据用户输入的密码计算相应的MD5哈希值进行比较。

加密方法:

public static string EncryptMD5(string oldData) {

将字符串转化为字节序列

Byte[] clearBytes = new UnicodeEncoding().GetBytes(oldData); 计算字节序列对应的Hash值

Byte[] BitConverter.ToString( myString = new

AutoCompleteStringCollection();

string strID = txtID.Text.ToString();