learun开发社区 - 力软.net/java快速开发平台官方论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1351|回复: 0

C#+SQL 桌面日历管理系统毕业设计与论文

  [复制链接]

4

主题

4

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2019-4-2 09:27:55 | 显示全部楼层 |阅读模式
自上个世纪以来,随着电脑的逐渐普及,人们的工作和生活越来越方便和快捷,也使越来越多的人依赖于电脑办公。而传统的日程记事本逐渐显现出在当今时代的不足和局限性,比如不便携带、不便查阅、不能自动提醒等等,电脑桌面日历由此孕育而生。很快,桌面日历就以其方便的日期查询、个性化的日程安排、精确的闹钟提醒与配套的日志系统、美观的界面设计,受到广大电脑办公者的喜爱。
  本设计就是针对当前网络上众多的桌面日历,综合其各项基本功能来开发一套属于自己的个性化日历日志系统。本设计主要采用C#+SQL的C/S设计模式,来实现不同用户的登录、日程编辑、日程提醒、日期查询、节假日管理等工作。方便了使用者对每日行程的掌握,也保护了各使用者之间的私人信息。
  本设计按照功能模块分为用户登录模块、用户注册、日历和时间模块、节假日模块、日程行程模块、自动提醒模块、数据库模块。本文详细地介绍了该日历日程系统的功能需求、系统设计和具体实现。并简要介绍了系统开发采用的过程及方法。
  关键词:桌面日历;日程;多用户
  目  录
  1 引言
  2 相关理论基础
  2.1 C/S模式
  2.2 Visual Studio 2005 C#
  2.2.1 C#的介绍
  2.2.2 C#的弱点
  2.3 SQL Server 2000
  2.3.1 SQL介绍
  2.3.2 Microsoft SQL Server 2000简介
  3 系统需求分析
  3.1 用户需求
  3.2 功能需求
  3.2.1 未登录用户
  3.2.2 普通登录用户
  3.2.3 管理员
  3.3 性能需求
  4 详细设计与实现
  4.1 系统功能设计
  4.2 数据库设计
  4.3 各表之间的关系图
  4.4 系统功能实现
  4.4.1 用户登录模块
  4.4.2 用户注册模块
  4.4.3 日历主模块
  4.4.4 日志记录模块
  4.4.5 日志提醒模块
  4.4.6 节假日设置模块
  5 系统测试
  5.1 测试环境
  5.2 测试结果
  5.3 系统的安全性测试
  5.3.1 密码的安全性
  5.3.2 日志信息的安全性
  5.3.3 数据库的安全性
  3 系统需求分析
  3.1 用户需求
  该系统的用户主要分为三种:未登录用户、登录用户、管理员。
  未登录用户只能查看日历主界面和注册模块,登录用户可以使用除删除用户和修改其他用户以外功能,管理员可以使用该桌面日历所有功能。
  登录用户和系统管理员都是通过密码验证登录,当角色操作完成后点击“注销”或“退出”按钮退出登录状态。
  3.2 功能需求
  系统功能模块主要包括以下几个方面:1,用户注册模块;2,登录模块;3,日志提醒模块;4,节假日模块;5,日历主模块;6,用户信息、节假日信息和日志信息都保存在数据库模块中.以下按照不同的用户对具体功能进行描述:
  3.2.1 未登录用户
  未登录用户运行该系统后进入日历主界面,可以查看日历信息,可以查看当前的系统时间,当点击日历上某一天时可以查看该天是否是已设置的节假日。用户当点击“日志记录”或“节日设置”的时候,系统提示对话框显示“该用户为未登录用户”,点击确定按钮后进入登录界面,输入账号和密码后实现用户登录。
  未登录用户在日历主界面或登录界面上点击“用户信息”可以进入用户注册界面,在用户注册界面可以实现用户的注册,可以查看其他已注册用户的基本信息,可以对某用户名进行查找,但是不能删除其他用户或修改其他用户的个人信息,当点击“删除”或“修改”按钮后有错误信息提示。
  3.2.2 普通登录用户
  用户通过登录模块登录系统后进入日历主界面,可以查看日历信息,可以查看当前的系统时间,当点击日历上某一天时可以查看该天是否是已设置的节假日,可以访问节日设置模块并对节日进行添加和删除。
  登录用户可以访问用户日志模块并对日志信息进行添加和删除,当系统时间到达当前登录用户设置的日志提醒时间时,系统自动加载日志提示模块提醒用户,用户可以点击日志提示界面上的“删除日志”按钮从数据库中删除该日志信息。
  登录用户可以在日历主界面上点击“用户信息”进入用户注册和信息界面,在用户注册界面可以实现注册其他用户,可以查看其他已注册用户的基本信息,可以修改当前登录用户的基本信息和密码,可以对某用户名进行查找,但是不能删除其他用户或修改其他用户的个人信息。当点击“删除”或选择其他用户后点击“修改”按钮,有错误信息提示。
  登录用户在日历主界面上点击“用户注销”可以退出当前登录,并连接到用户登录模块。
  3.2.3 管理员
  管理员除了可以实现登录用户的所有功能外,还有更高的权限,可以对其他用户信息进行修改和删除。
  可以对数据库进行直接操作,可以查看其他用户的资料等等。
  但是管理员不能查看其他注册用户的登录密码和日志信息,因为密码在数据库里是采用的MD5加密,而日志信息也采用了Unicode编码技术,在一定程度上保护了其他注册用户的权益。
  3.3 性能需求
  该系统主要是为了方便用户进行日程管理,所以要求界面要简洁,操作要方便。功能要完善,并且不能出现导致该系统崩溃的重大BUG。
  因为该系统为多用户系统,所有用户资料均保存在数据库内,所以要求数据库安全性要高,运行要稳定,执行速度快。为保护用户信息,各用户密码和每日行程不能在数据库中以明文显示。
  该系统基于Windows操作平台,符合当前大多数人的操作系统,更加大众化。
  4 详细设计与实现
  4.1 系统功能设计
  该桌面日历系统是基于C/S结构的应用程序系统,由C#+SQL实现。客户端程序由Visual Studio 2005 C#制作,用于与用户交互;后台数据库使用SQL 2000,由带有逻辑结构关联的表组构成。下图为系统功能结构示意图:
  如图4-1所示,按登录与否可分为登录用户和未登录用户,其中登录用户又可分为管理员和普通用户,各类别的用户拥有对该系统中各功能的访问使用权限。
  4.2 数据库设计
  根据需求分析,该系统后台数据库共分为4个表,以下分别给出各个数据库表的简单描述。
  UserLogin--用户登录表用于存储用户登录信息,以供登录密码验证,并分配用户编号。该表分为3个字段,以UserNumber字段为主键分别与UserInfo和MsgInfo表相关联,各字段的属性和作用如表4-1
  UserInfo--用户基本信息表用于存储用户的基本信息,如年龄、性别等。该表分为6个字段,其中UserNumber作为外键与UserLogin表相关联,各字段的属性和作用如表4-2
  MsgInfo--用户日志信息表用于储存各用户设置的日志信息,以及系统自动提醒用户的时间。该表分为4个字段,其中UserNumber作为外键与UserLogin表相关联,各字段的属性和作用如表4-3
  JInfo--节假日信息表用于储存节假日信息,没有与其他表相关联。该表分为4个字段,其中JID作为该表的主键,各字段的属性和作用如表4-4
  4.4 系统功能实现
  根据系统功能需求分析,系统主要划分为以下六个模块:
  4.4.1 用户登录模块
  功能说明:通过用户输入的用户名、密码与数据库UserLogin表的UserName字段和UserPwd字段相比较判断其有效性,来实现用户的登录。
  每次判断用户密码时将密码采用MD5加密后与数据库UserLogin表的UserPwd字段相比较。如是有效用户则显示“登录成功”消息框,点击“确定后”登录到日历主界面,并设置username为当前登录用户名。如是无效用户则显示“登录失败”消息框,并提示重新输入用户名和密码。
  4.4.2 用户注册模块
  功能说明:用于用户注册,资料修改,用户删除和查询。注册界面将从数据库中读取出的所有用户信息显示出来。
  4.4.3 日历主模块
  功能说明:显示每一年的日历,显示当前系统时间,并根据数据库中的节假日设置显示选中日期的节日信息,是连接其他系统模块的入口。
  该界面使用C#自带的MonthCalendar控件来显示每一年的日历,将当前的系统时间显示在Label静态文本框里,并根据数据库中的节假日设置显示选中日期的节日信息。
  4.4.4 日志记录模块
  功能说明:用于根据当前登录的用户名,从数据库的MsgInfo表中读出当前登录用户的所有日志信息并显示在Datagridview中。并根据用户需要进行添加和删除日志信息。
  4.4.5 日志提醒模块
  功能说明:当系统时间到达当前登录用户设置的日志提醒时间时,从数据库的MsgInfo表中读取出当前登录用户的当前系统时间的日志信息,并显示在弹出的窗体中。当用户点击“删除”按钮时,系统从MsgInfo表中删除该条日志信息。
  4.4.6 节假日设置模块
  功能说明:从数据库的JInfo表中读出当前设置的所有节假日信息并显示在Datagridview中。并根据用户需要进行节假日信息的添加和删除。
  结    论
  本次毕业设计完成了预定任务,包括用户登录、用户注册、日历、日志记录、日志提醒、节假日设置等功能。
  通过此次毕业设计,虽说不能完全掌握C#的编程技巧,但基本的编程思路还是逐渐地巩固起来。以前在课堂上学习的理论知识派上了用场,在程序的实际设计和实现过程中,逐步地将一些理论知识应用到开发中来,比如函数的调用、类与对象、方法的重载和引用等,并简单接触到了数据库的设计与操作。
  个人感觉其中最大的收获就是学习如何在程序开发过程中发现问题,查阅资料并解决问题,养成独立思考的能力。学习如何利用网络寻找解决问题的方法,这种方法在今后的工作和学习生活中能让事情变得事半功倍。
  在整个程序的设计与实现过程中,也发现自身存在的不少问题。特别是在实际动手编写代码方面很欠缺,一些本来很简单的问题却要去花费大量的时间来解决。理论上明白的方法却不知道该如何去实现,今后要多加练习动手能力。
  致    谢
  本文是在张路桥老师的热情关心和指导下完成的,他渊博的知识和严谨的治学作风使我受益匪浅,对顺利完成本课题起到了极大的作用。在此向他表示我最衷心的感谢!
  在论文完成过程中,本人还得到了其他老师和一些同学的热心帮助,本人向他们表示深深的谢意!
  最后向在百忙之中评审本文的各位专家、老师表示衷心的感谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|learun开发社区 - 力软.net/java快速开发平台官方论坛 ( 沪ICP备14034717号 )

GMT+8, 2021-1-24 07:40 , Processed in 0.182043 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表