1、沈 阳 理 工 大 学 课 程 设 计 专 用 纸0摘 要随着现代生活的发展,我国经济迅速发展,人民生活水平越来越好,家家户户都买了各种家电和生活用品,家庭物品也就越来越丰富了。但是,我们的家庭总是有限的,对于这些家庭物品我们需要有一个系统的整理。通过对数据库的学习,学习了一些对数据的整理,对此,为家庭物品做了一个管理系统。用 Visual Basic 6.0 作为前端开发工具,利用其提供的集成开发环境及支持面向对象的各种标准化的控件,尤其是对 ADO 的支持完成对数据库的各种操作。使这个系统能够添加、修改、删除家庭各成员与物品的信息相关信息,当进入到系统时,可以直接通过查询用户名或购买日期来
2、浏览物品的信息,登陆到系统之后,就可以对房间和物品信息进行添加、修改删除了,从而完成对家庭物品的整理,使各家庭成员更加方便地了解自己家里的物品信息关键字: 家庭物品 整理 方便沈 阳 理 工 大 学 课 程 设 计 专 用 纸0目 录1 系统功能概述 .32 数据库设计 .31.1 需求分析 .31.2 关系模型 .31.3 E-R 模型 .41.4 表结构设计 .53 系统各功能模块的详细设计 .73.1 主窗体 .73.2 登录 .93.3 查询 .113.4 用户信息 .133.5 物品信息 .183.6 房间信息 .254 参考文献 .28沈 阳 理 工 大 学 课 程 设 计 专 用
3、 纸11 系统功能概述为该家庭物品管理系统设计一个 MDI 窗体作为主界面,在菜单栏创建了四个菜单:文件、查询、添加、用户名。(1)文件中有两个子菜单:登录和退出。这两个子菜单分别控制登录用户和退出整个程序。(2)查询中有两个子菜单:按用户名查询和按日期查询。按用户名查询可以在用户输入某个用户名之后,显示该用户的物品情况;按日期查找可以在输入一个日期之后,显示该日期之后购买的所有物品。(3)添加中有三个子菜单:添加用户、添加房间、添加物品。点击添加用户,可以对用户信息进行增删改查;点击添加房间,可以对房间信息进行增删改查操作;点击添加物品,则可以对物品信息进行增删改查操作。(4)用户名按钮有一
4、个子菜单:注销。用来注销已经成功登录的用户,如没有登录用户,该子菜单显示无用户,成功登录之后即显示已登录用户的名称。2 数据库设计1.1 需求分析(1)根据家庭成员的身份,为每个成员分配有一个专门的账号。(2)此家庭物品系统管理能够添加、删除、修改、查询家庭成员的信息以及与房间、物品之间的联系。(3)在进入到家庭物品管理系统之后,不需要登陆就可以直接查询属于某个人的物品信息,也可以查询某个日期之后所购买的物品。(4)当用户成功登录时,菜单栏上能够显示该用户的名称,此时,用户才能对物品信息和家庭成员信息进行添加、修改、删除1.2 关系模型(1)家庭成员信息表Uuser:userName、pass
5、word、sex、age、birthday、status、profession、hobby、wage(2)物品信息表Item:itemDate、purchaseDate、price、usedTime、quantity、publicItem、roomNumber、category(3)房间表沈 阳 理 工 大 学 课 程 设 计 专 用 纸2Room: roomNumber、roomName(4)归属表Belong:itemName、userName、itemNumber1.3 E-R 模型整体 E-R 图m nn1图 2-1用户信息:图 2-2物品信息:ItemitemDatapurchase
6、DateusedTime quantitypublicItemroomNumberUusersexuserNameagepassword professionbirthdayhobbystatus wageUuserItemRoomBelongsave沈 阳 理 工 大 学 课 程 设 计 专 用 纸3图 2-3房间信息:图 2-4归属信息:图 2-51.4 表结构设计Uuser 表:create table Uuser (userName varchar(6) primary key,password char(6) not null ,sex char(2) check (sex in(男
7、,女),age smallint check (age0 and age150),birthday datetime,status varchar(10),RoompricecategoryroomNumber roomNameBelongitemName userName itemNumber沈 阳 理 工 大 学 课 程 设 计 专 用 纸4profession varchar(20),hobby varchar(30),wage int)图 2-6Item 表:create table Item(itemName varchar(20) primary key,purchaseDate
8、datetime,price int ,usedTime datetime ,quantity smallint,publicItem char(2) check(publicItem in (是,否),roomNumber varchar(3),category varchar(10)图 2-7Room 表:create table Room(roomNumber varchar(3) primary key ,沈 阳 理 工 大 学 课 程 设 计 专 用 纸5roomName varchar(10),)图 2-8Belong 表:create table Belong(itemName
9、varchar(20),userName varchar(6),itemNumber smallint,primary key (itemName,userName),foreign key (itemName) references Item(itemName)on delete cascadeon update cascade,foreign key (userName) references Uuser(userName)on delete cascadeon update cascade,)图 2-93 系统各功能模块的详细设计3.1 主窗体主窗口设计进入主窗体之后,用户只能有查询的权
10、限,用户只有登录成功之后才能拥有添加的权限。在添加菜单栏可以对物品、用户、房间进行增删改查功能。沈 阳 理 工 大 学 课 程 设 计 专 用 纸6图 3-1代码如下:Private Sub MDIForm_load()设置加载主窗口是在电脑中间显示,且添加按钮不可用Move (Screen.Width - Width) / 2, (Screen.Height - Height) / 2添加.Enabled = FalseEnd SubPrivate Sub 按日期_Click(Index As Integer)按日期查找.ShowEnd SubPrivate Sub 按用户_Click(In
11、dex As Integer)按用户查找.ShowEnd SubPrivate Sub 登陆_Click(Index As Integer)检查是否有用户已经登录If Not 用户.Caption = “无用户“ ThenMsgBox “以检测到登录用户!请先注销再登录!“, vbDefaultButton1, “警告“Exit SubEnd If登录.Show登录.ScaleTop = (MDIForm1.ScaleHeight - 登录.ScaleHeight) / 2End SubPrivate Sub 添加房间_Click(Index As Integer)沈 阳 理 工 大 学 课
12、程 设 计 专 用 纸7房间.Show 显示房间信息窗口End SubPrivate Sub 添加物品_Click(Index As Integer)物品.Show 显示物品信息窗口End SubPrivate Sub 添加用户信息_Click(Index As Integer)账户.Show 显示用户信息窗口End SubPrivate Sub 退出_Click(Index As Integer)Unload Me 退出系统End SubPrivate Sub 用户_Click()If 用户.Caption = “无用户“ ThenMsgBox “请先登录,谢谢!“, vbDefaultBu
13、tton1, “提示“登录.ShowEnd IfEnd SubPrivate Sub 注销_Click()将主界面还原成无用户登录状态用户.Caption = “无用户“添加.Enabled = FalseEnd Sub3.2 登录登录窗口设计用户只有在成功登录之后才能点击添加按钮,当输入的用户名与数据库中的用户名和密码一样时即登录成功,在主窗体菜单栏上显示在线用户的名称,而且主窗体只能登录一个用户,若要切换用户,可以在主窗体点击注销即可。沈 阳 理 工 大 学 课 程 设 计 专 用 纸8图 3-2代码如下:Private Sub Command1_Click()Dim a As Strin
14、g 定义一个常量以记录用户名a = Text1.TextIf Text1.Text = “ ThenMsgBox “请输入用户名! “, vbOKOnly, “提示“Text1.SetFocusExit SubElseIf Text2.Text = “ ThenMsgBox “请输入密码! “, vbOKOnly, “提示“Text2.SetFocusExit SubEnd IfEnd IfDim sqlstr As String 定义 sql 语句的常量sqlstr = “Select password From Uuser Where userName= “ & Text1.Text & “ “Adodc1.RecordSource = sqlstrAdodc1.RefreshIf Adodc1.Recordset.BOF ThenMsgBox “用户名错误,重新输入“, vbExclamation, “警告 “Text1.Text = “Text1.SetFocusExit SubElse 判断密码是否正确If Not Adodc1.Recordset.Fields(“password“) = Text2.Text Then