个人信息管理系统-数据库课程设计-课程设计 课程设计
Ⅰ、题目的目的和要求
通过数据库系统原理课程设计的操作与实践,使学生了解关系数据库的相关理论知识和有关工具软件的使用技巧,在一定程度上提高应用程序的综合开发能力和创新意识、创新能力,具体掌握的基本能力有以下几方面:
1、学习和巩固《数据库系统原理》的基本知识。
2、关系数据库管理系统的基本使用方法。
3、熟悉SQL语言的主要功能及SQL语句的使用操作。
4、熟悉数据库管理系统的设计过程,培养解决实际问题的能力。
5、小型数据库应用系统的设计方法。
要求独立完成该课题设计。
Ⅱ、设计进度及完成情况
日期 内容
1月1号 选择课程设计题目,画出大体框架
1月2号 学习C#数据库编程相关知识
1月3号 按照框架开始设计窗体,编写代码
1月4号 系统基本完成题目要求
1月5号 完善系统
1月6号 完成课程设计报告
Ⅲ、主要参考文献及资料
王珊,萨师煊主编.数据库系统概论(第四版).北京:高等教育出版社,2006.5
鲍威尔主编.数据库设计入门经典.北京:清华大学出版社,2007.3
范盛荣.Visual C# 2008控件使用范例详解.北京:清华大学出版社,2009.4
目录
第一章 概述 1
第二章 系统分析 2
2.1 E-R图 2
2.2创建关系表 3
第三章 功能分析 5
3.1各模块的相互关系 5
3.2各模块的作用 5
第四章 系统实现 6
4.1数据库实现 6
4.2各模块的实现 7
第五章 调试过程中的问题及系统测试情况 9
5.1 调试过程中的问题 9
5.2系统测试 9
第六章 结束语 689
个人信息管理系统-数据库课程设计
第一章 概述
我设计的是一个个人信息管理系统,它包括4个功能:
1.通讯录信息:包括通讯人姓名、联系方式、工作地点、城市、备注等。
2.备忘录信息:包括什么时间、事件、地点等。
3.日记信息:包括什么时间、天气、事件等。
4.个人财物管理:包括总收入,消费项目、消费金额、消费时间、剩余资金。
每个用户可以自己注册一个用户名,对自己的个人信息进行独立的管理。
第二章 系统分析2.1 E-R图
2.2创建关系表
根据需求,共建立contact ,diary,memo,moneymng,usertable5个表
表2.1 contact
contact
属性 数据类型 是否为空 中文描述
NO Int 否 序号(主键)
UID nvarchar(50) 否 所属用户名
Cname nvarchar(50) 否 联系人姓名
Ccon nvarchar(50) 否 联系方式
Ccity nvarchar(50) 是 联系人地址
Cmemo nvarchar(max) 是 备注
关系模式:contact(NO,UID,Cname,Ccon,Ccity,Ccmemo)表2.2 diary
diary
属性 数据类型 是否为空 中文描述
NO Int 否 序号(主键)
UID nvarchar(50) 否 所属用户名
Dtime datetime 否 日记时间
Dobject nvarchar(max) 否 日记正文
Dweather nvarchar(50) 否 天气
关系模式:diary(NO,UID,Dtime,Dobject,Dweather)
表2.3 memo
memo
属性 数据类型 是否为空 中文描述
NO Int 否 序号(主键)
UID nvarchar(50) 否 所属用户名
Mtime datetime 否 事件时间
Mplace nvarchar(50) 是 事件地点
Mobject nvarchar(max) 否 事件
关系模式:memo(NO,UID,Mtime,Mplace,Mobject)表2.4 moneymng
moneymng
属性 数据类型 是否为空 中文描述
NO Int 否 序号(主键)
UID nvarchar(50) 否 所属用户名
Mitem nvarchar(50) 否 收支项目
Mmoney numeric(18, 2) 否 金额
Mtime datetime 否 收支时间
Mtype nvarchar(10) 否 收支总类
关系模式:moneymng(NO,UID,Mitem,Mmoney,Mtime,Mtype)表2.5 usertableusertable 属性 数据类型 是否为空 中文描述
UID nvarchar(50) 否 所属用户名
PWD nvarchar(50) 否 密码
关系模式:usertable (UID,PWD)
第三章 功能分析
本章将对系统所要实现的功能作出简要的分析,为程序的设计做好框架
3.1各模块的相互关系
图3-1 模块关3.2各模块的作用
1.登录模块
根据相应的用户名密码,显示相应的所有记录。如果没有对应的UID或PWD和UID不对应则报错。
2.通讯录模块
显示用户的通讯录具体内容,可以查询联系人的资料和添加新的联系人。
3.日记模块
显示用户的日记本,供用户查阅和编写。若日记较长,窗口能显示部分信息。双击窗口能显示日记详细内容
4.财务管理模块
显示用户的财务信息,记录新的收支信息。计算出用户的总收入,总支出,和剩余金额。
5.备忘录模块
显示用户的备忘录内容,提醒用户重要事件的时间地点。
6.用户注册模块
用于注册新用户。若新用户的用户名已经存在,则报错。
个人信息管理系统-数据库课程设计
第四章 系统实现
第三章中介绍了系统的主体框架,在本章中,将对各个模块实现进行详细的阐述,同时给出相应的SQL。
4.1数据库实现
创建数据库KCSJ
Create database kcsj
创建关系表:
contact
CREATE TABLE [dbo].[contact](
[NO] [int] IDENTITY(1,1) NOT NULL,
[UID] [nvarchar](50) NOT NULL,
[Cname] [nvarchar](50) NOT NULL,
[Ccon] [nvarchar](50) NOT NULL,
[Ccity] [nvarchar](50) NULL,
[Cmemo] [nvarchar](max) NULL,)
usertable
CREATE TABLE [dbo].[usertable](
[UID] [nvarchar](50) NOT NULL,
[PWD] [nvarchar](50) NOT NULL)
moneymng
CREATE TABLE [dbo].[moneymng](
[NO] [int] IDENTITY(1,1) NOT NULL,
[UID] [nvarchar](50) NOT NULL,
[Mitem] [nvarchar](50) NOT NULL,
[Mmoney] [numeric](18, 2) NOT NULL,
[Mtime] [datetime] NOT NULL,
[Mtype] [nvarchar](10) NOT NULL)
memo
CREATE TABLE [dbo].[memo](
[NO] [int] IDENTITY(1,1) NOT NULL,
[UID] [nvarchar](50) NOT NULL,
[Mtime] [datetime] NOT NULL,
[Mplace] [nvarchar](50) NULL,
[Mobject] [nvarchar](max) NOT NULL)
diary
CREATE TABLE [dbo].[diary](
[NO] [int] IDENTITY(1,1) NOT NULL,
[UID] [nvarchar](50) NOT NULL,
[Dtime] [datetime] NOT NULL,
[Dobject] [nvarchar](max) NOT NULL,
[Dweather] [nvarchar](50) NOT NULL)
4.2各模块的实现
登录模块
SELECT Count(*)
FROM usertable
WHERE UID = @varUID AND PWD = @varPWD
根据用户提供的用户名@varUID和密码@varPWD,从Usertable表中查询是否存在该用户,如果存在则读取对应的信息。为了防止SQL注入问题,在程序Usertable表中的密码不存储明文,而是由应用程序将密码使用MD5加密后提交至数据库进行比对。
用户注册模块
首先检测输入的用户名是否已经被注册
SELECT COUNT(*) FROM usertable WHERE UID=@varRID
若未被注册,则将注册信息提交至数据库。
INSERT INTO usertable (UID, PWD)
VALUES(@varUID, @varPWD)
通讯录模块
用户登录后将自动显示自己所有的记录
SELECTNO, Cname, Ccon, Ccity, Cmemo
FROMcontact
WHEREUID = @varUID
添加新的联系人
INSERT INTO contact(UID, cname, ccon, ccity, cmemo)
VALUES(@varUID, @varCname, @varCcon, @varCcity, @varCmemo)
日记模块
用户登录后将自动显示自己所有的记录
SELECT NO,Dtime, Dobject, Dweather FROM dbo.diary
WHERE UID=@varUID
添加新的日记
INSERT INTO diary(UID, Dobject, Dtime, Dweather)
VALUES(@varUID,@varDobject,@varDtime,@varDweather)
财务管理模块
用户登录后将自动显示自己所有的记录
SELECT NO, Mitem, Mmoney, Mtime, Mtype FROM dbo.moneymng
WHERE UID=@varUID
添加新的财务记录
INSERT INTO moneymng(UID, mitem, mtime, mtype, mmoney)
VALUES(@varUID, @varmitem, @varmtime, @varmtype, @varmmoney)
财务计算
1)计算总支出
SELECT SUM(MMoney) FROM moneymng
WHERE Mtype=\'\'支出\'\' AND UID=@varUID
2)计算总收入
SELECT SUM(MMoney) FROM moneymng
WHERE Mtype=\'\'收入\'\' AND UID=@varUID
备忘录模块
用户登录后将自动显示自己所有的记录
SELECT NO,Mtime, Mplace, Mobject FROM dbo.memo
WHERE UID=@varUID.
添加新的备忘记录
INSERT INTO memo(UID, Mobject, Mtime, Mplace)
VALUES(@varUID, @varMobject, @varMtime, @varMplace)
个人信息管理系统-数据库课程设计
第五章 调试过程中的问题及系统测试情况
5.1 调试过程中的问题
SQL注入问题:
用户可以通过在用户名或密码框中写入SQL语句达到非法登入的目的。为解决次问题,在密码存储策略上,不采用明文存储,而采用存储密码的MD5校验码,用户名输入采用控件接收字符控制,所有的不合法字符均无法输入,以此解决该问题。
5.2系统测试
1.登录窗口
图5-1 登陆窗口
2.注册新用户。若新用户的用户名已经存在,则报错。
图5-2注册窗口
3.进入信息管理界面
图5-3浏览14:54 2010-12-14日记内容
4.双击查阅日记详细信息
图5-4查阅日记详细信息
5.添加信息
图5-5添加消费项目
6.根据收支情况计算总收入和总消费,剩余金额
图5-6 浏览个人财务管理
第六章 结束语
经过一个多星期的紧张设计,我的数据库课程设计终于完成。因为平常练习的少,老师讲的也有许多没有掌握的地方,所以在设计的过程中基本是一边查阅资料,一边做。
学习了一门全新的语言C#,和VS开发环境。因为时间有限并没有机会深入去学习。经过这次课程设计,让我知道了我们在课堂上学习的知识还很少,我们还要在课余时间通过网络和书籍自主学习一些更多更新的内容。
这次课程设计正好给了我们这样的一次机会。在这短短的几天里,我确实学到了很多数据库和C#编程的知识为我以后的深入学习和研究打下了基础。
参考文献:
王珊,萨师煊主编.数据库系统概论(第四版).北京:高等教育出版社,2006.5
鲍威尔主编.数据库设计入门经典.北京:清华大学出版社,2007.3
范盛荣.Visual C# 2008控件使用范例详解.北京:清华大学出版社,2009.4