C# SQL server 项目设计课程设计-个人日程管理系统

上传人:r****d 文档编号:154857715 上传时间:2022-09-21 格式:DOC 页数:38 大小:730KB
返回 下载 相关 举报
C# SQL server 项目设计课程设计-个人日程管理系统_第1页
第1页 / 共38页
C# SQL server 项目设计课程设计-个人日程管理系统_第2页
第2页 / 共38页
C# SQL server 项目设计课程设计-个人日程管理系统_第3页
第3页 / 共38页
点击查看更多>>
资源描述
湖南财政经济学院课 程 设 计课 程C# &SQL server 项目设计题 目 个人日程管理系统专 业 经济信息管理班 级 10级经济信息管理班姓 名指导教师2011年12月20日 目录 1 项目. 1.1 项目背景1.2 项目目标. 2 系统需求分析.2.1 用户需求.2.2 功能分析. 2.3 开发环境. 3 系统设计.3.1 设计目标.3.2 系统角色.3.3 系统流程图. 4 数据库设计.4.1 ER图和表结构设计.4.2 存储过程计.5 系统实现. 5.1 模块设计和实现.6 总结.参考文献. 致谢.1 绪论1. 1 项目背景 随着计算机技术的飞速发展,计算机应用的迅速推广,计算机及技术给人们的日常生活、工作、学习带来了十分巨大的影响,计算机改变了人们的生活,工作的方式。而在使用计算机时有一些好的、实用的软件,将会给使用者提供非常便利的环境。因此我们采用C#和SQL Sever 技术开发一个实用的个人日程管理系统。1.2 项目目标1. 通过关于本系统管理系统的实现,是个人的日程管理更加完善。2.可以查看日历、月历、农历。3.可以编辑日程事务,了解行程。4. 可以提醒备忘事项,大大提高了办事效率。 2 系统分析2. 1 用户需求(1)功能需求:本系统完成对自己昨天的日程进行记录,今天、明天的日程安排以及查看修改工作。(2)权限需求:用户管理员拥有最高的权限,可以对系统中所有的数据进行查看、添加、修改和删除等操作;普通用户只可以对自己的行程进行查看、修改、删除和删除等操作。(3)系统安全性需求:一是用户进入系统时必须进行口令校验;二是连接数据库是使用windows身份验证。2. 2功能需求(1)用户登录、用户注册:用户通过登录的方式进行口令校验安全进入在线日程管理系统:用户注册是用户为进入该系统时将个人信息提交到数据库中。(2)人员管理:系统管理员可以对用户进行修改,其中对用户密码进行修改,对一些长期没有用的人员进行删除操作,以减少系统压力。(3)个人日程管理:其中使用TabControl 控件,对某一天或某段时间的日程进行查看,和对某个日程的地点、开始时间、重要性及联系 进行修改,更新等操作。2. 3 开发环境 1硬件环境 目前,我们所开发的系统主要是应用在中小规模的学校内部,因此,一般配置的计算机硬件就可以满足系统需求。考虑到学校规模的扩大和硬件价格的降低,为本系统配置在较优秀的服务器硬件,可以充分发挥本系统性能。处理器: Intel Pentium 4 3.06 GX 或更高内存: 256M(推荐)硬盘空间:40GB显卡: SVGA显示适配器 2软件环境操作系统:Windows 2000/XP开发软件:Microsoft Visual Studio .NET 2005数据库:Microsoft SQL Server 2005 3 系统设计个人日程管理系统是对已完成的工作进行记录,对未完成的工作进行有效、合理的安排,提高工作效率。3.2 系统角色本系统的角色主要包括有:系统管理员(拥有整个系统 的访问权限,可以对本系统的所有数据进行查看、添加、修改、删除的操作),普通用户(拥有次级管理权限,可以进行本人日程管理)。3. 3 系统流程图用户信息系统简介登 录用户注册找回密码日程管理所有日程已完成日程未完成日程 4 数据库设计4. 1 ER图和表结构设计(1) ER图 用户记录事件用户名标题内容权限联系人 开始时间密码性别用户名邮箱重要性问题地点答案创建时间结束时间备注(2) 表结构设计根据系统功能设计的要求以及功能模块的划分,对于系统用户信息数据库,可以列出以下数据项和数据结构:表4-1用户信息表(tbl_username)字段名字段类型长度主/外键字段值约束对应中文名usernamevarchar20主键Not null用户姓名userpasswordvarchar20Not null用户密码userpurviewvarchar10Not null用户权限usere_mailvarchar50邮 箱usersexchar4性 别questionvarchar50问 题answervarchar50答 案表4-2所有日程表(tbl_message)字段名字段类型长度主/外键字段值约束对应中文名usernamevarchar20外键Not null用户姓名messagenamevarchar20Not null事件标题contentvarchar50主键Not null内 容locationvarchar50Not null地 点relatedphonebigint8Not null联系 begintimedatetime8Not null开始时间createtimedatetime8创建时间priorityvarchar20Not null重 要 性endtimedatetime8结束时间remarksvarchar100备 注表4-3所有日程表(tbl_unmessage)字段名字段类型长度主/外键字段值约束对应中文名usernamevarchar20外键Not null用户姓名messagenamevarchar20Not null事件标题contentverchar50主键Not null内 容locationvarchar50Not null地 点begintimedatetime8Not null开始时间relatedphonebigint8Not null联系 createtimedatetime8创建时间priorityvarchar20Not null重 要 性表4-4所有日程表(tbl_finishimessage)字段名字段类型长度主/外键字段值约束对应中文名usernamevarchar20外键Not null用户姓名messagenamevarchar20Not null事件标题contentvarchar50主键Not null内 容begintimedatetime8Not null开始时间endtimedatetime8结束时间remarksvarchar100备 注用来删除某个用户:CREATE PROCEDURE DeleteusernameUsername varchar (20) ASdeletefrom tbl_userwhere username = Userna51 登录模块的设计和实现5.1.1用户登录模块的窗体设计1用户身份验证输入:用户名和密码,选择权限处理:(1) 用户登录窗体启动。(2) 输入用户名和密码。(3) 从用户信息表中检查是否有相应的用户名和密码。(4) 如果用户名或密码为空或者错误,进行提示。如果忘记密码可以单击“忘记密码?”字样,进入找回密码窗体。(5) 如果输入的用户名和密码正确,则允许该用户进入系统。(6) 进入主控制平台。输出:主控制平台。2用户登录模块的窗体设计,如下图所示:主要代码如下:(1)登录按钮代码: private void bt_OK_Click(object sender, EventArgs e) try DataSet ds = new DataSet(); database db = new database(); string sqlStr = select userPassword,userPurview from tbl_user where username= + text_name.Text.Trim() + ; ds = db.GetDataFromDB(sqlStr); if (ds.Tables0.Rows0.ItemArray0.ToString() = text_password.Text.Trim() & ds.Tables0.Rows0.ItemArray1.ToString() = combo_register.Text .Trim () fmain ob_FrmMain = new fmain (); database.userInfo0 = text_name.Text.Trim(); database.userInfo1 = ds.Tables0.Rows0.ItemArray1.ToString(); ob_FrmMain.Show(); this.Hide(); else MessageBox.Show(用户名或密码或权限错误,请重新输入!, 提示); text_name.Text = ; text_password.Text = ; text_name.Focus(); catch (Exception ex) MessageBox.Show(用户名或密码错误,请重新输入! + ex.Message, 提示); (2) 取消按钮代码: private void bt_close_Click(object sender, EventArgs e) Application.Exit(); (3)注册按钮代码: private void bt_register_Click(object sender, EventArgs e) fregister obj_fregister = new fregister(); obj_fregister.iform = this; obj_fregister.Show(); this.Hide(); (4)按回车直接跳入下一个编辑框代码: private void text_name_KeyDown(object sender, KeyEventArgs e) if (e.KeyCode = Keys.Enter) text_password.Focus(); private void text_password_KeyDown(object sender, KeyEventArgs e) if (e.KeyCode = Keys.Enter) combo_register.Focus(); private void combo_register_KeyDown(object sender, KeyEventArgs e) if (e.KeyCode = Keys.Enter) bt_OK_Click(sender, e); public void Getusername(string name) text_name.Text = name; 52找回密码设计界面如下: (1)确定按钮代码如下:private void bOK_Click(object sender, EventArgs e) try DataSet ds = new DataSet(); database db = new database(); string sqlStr = select userPassword,answer from tbl_user where username= + tuser.Text.Trim() + ; ds = db.GetDataFromDB(sqlStr); database.user0 = ds.Tables0.Rows0.ItemArray0.ToString(); database.user1 = ds.Tables0.Rows0.ItemArray1.ToString(); if (databasext.Trim() MessageBox.Show(您的密码是: n + database.user0 + , 提示); flogin oomain = new flogin (); oomain.Show(); this.Close(); else MessageBox.Show(你输入的问题或答案有错,请重新输入!, 提示); tanswer.Text = ; tquestion.Focus(); catch (Exception ex) MessageBox.Show(问题或答案错误,请重新输入! + ex.Message, 提示); (2)显示问题按钮代码:private void bshow_Click(object sender, EventArgs e) DataSet ds = new DataSet(); database db = new database(); string sqlStr = select question from tbl_user where username= + tuser.Text.Trim() + ; ds = db.GetDataFromDB(sqlStr); database.user10 = ds.Tables0.Rows0.ItemArray0.ToString(); tquestion.Text = database.user10; 53用户注册界面设置如下图:(1) 检测用户名是否可用按钮代码: private void bt_check_Click(object sender, EventArgs e) string connStr = Data Source=(local);Initial Catalog=schedule;Integrated Security=True; SqlConnection dConnection = new SqlConnection(connStr); dConnection.Open(); SqlCommand mycom = new SqlCommand(); mycom.CommandType = CommandType.Text; string comstr=select username from tbl_user where username= + text_name.Text.Trim() + ; mycom.CommandText = comstr; mycom.Connection = dConnection; SqlDataReader myreader = mycom.ExecuteReader(); bool isture = myreader.Read(); if (text_name .Text = ) MessageBox .Show (请输入用户名!,提示); else if (isture =false ) MessageBox.Show(用户名可用!请继续填写!, 注册信息); text_password.Focus(); else MessageBox.Show(该用户名已存在,请重新填写用户名!); text_name.Text = ; text_name.Focus(); (2)检测用户名、密码是否为空和两次输入的密码是否一致的代码: private bool CheckEmpty() bool result = true; if (text_name.Text.Trim() = string.Empty) label1.Visible = true; result = false; else label1.Visible = false; if (text_password.Text.Trim() = string.Empty) label8.Visible = true; result = false; else label8.Visible = false; if (text_repassword.Text.Trim() = string.Empty) label9.Visible = true; result = false; else if (text_password.Text.Trim() != text_repassword.Text.Trim() label9.Text = 两次输入的密码不一致; label8.Visible = true; label9.Visible = true; result = false; text_password.Text = ; text_repassword.Text = ; text_password.Focus(); else label9.Visible = false; return result; (3)注册按钮的代码: public flogin iform; private void button1_Click(object sender, EventArgs e) bool isempty = CheckEmpty(); if (isempty = true) string connStr = Data Source=(local);Initial Catalog=schedule;Integrated Security=True; SqlConnection dConnection = new SqlConnection(connStr); dConnection.Open(); if (text_question.Text = | text_answer.Text = ) if (MessageBox.Show(你确定不设置密码找回问题和答案吗? 那么你忘记密码后将无法进入系统!, 提示, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = DialogResult.Yes) string sql = string.Format(insert into tbl_user(username,userpassword,userpurview,usere_mail,usersex,question,answer) values(0,1,2,3 ,4,5,6), text_name.Text.Trim(), text_password.Text.Trim(), text_priority.Text.Trim(), text_e_mail.Text.Trim(), combo_sex.Text.Trim(), text_question.Text.Trim(), text_answer.Text.Trim(); SqlCommand cmd = new SqlCommand(sql, dConnection); Object obj = cmd.ExecuteScalar(); MessageBox.Show(成功注册了一个用户); flogin f_login = new flogin(); f_login.Show(); this.Hide(); else string sql = string.Format(insert into tbl_user(username,userpassword,userpurview,usere_mail,usersex,question,answer) values(0,1,2,3 ,4,5,6), text_name.Text.Trim(), text_password.Text.Trim(), text_priority.Text.Trim(), text_e_mail.Text.Trim(), combo_sex.Text.Trim(), text_question.Text.Trim(), text_answer.Text.Trim(); SqlCommand cmd = new SqlCommand(sql, dConnection); Object obj = cmd.ExecuteScalar(); MessageBox.Show(成功注册了一个用户); iform.Getusername(text_name.Text.Trim(); flogin f_login = new flogin(); f_login.Show(); this.Hide(); ocus(); 54首页(主窗体)设计如下: 管理员主界面:5.4.2 普通用户界面如下: 主要代码: private void fmain_Load(object sender, EventArgs e) if (database.userInfo1.Trim() = 普通用户) sible = false; toolStripStatusLabel1.Text = 当前用户是: + database.userInfo0.Trim() + 其级别是: + database.userInfo1.Trim(); (1)退出本系统按钮代码: private void bt_close_Click(object sender, EventArgs e) if (MessageBox.Show(准备退出系统!确定要退出系统吗?nn退出之后就只能重新登录!, 退出系统, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = DialogResult.Yes) Application.Exit(); (2)关于本系统按钮代码:(其他按钮的代码相似) private void bt_about_Click(object sender, EventArgs e) fabout obj_FrmAbout = new fabout(); obj_FrmAbout.Show(); this.Hide(); 55 日程管理界面 此界面有管理员界面和普通界面之分,当是管理员时,窗体的用户姓名label 及其对应的 textbox 为不可见 ,还有就是在查询中管理员多了一项按用户姓名查询。导航条、网格和文本框之间进行了绑定;相关的代码如下:BindingSource bs = new BindingSource(); SqlDataAdapter sda; DataSet ds = new DataSet(); database db = new database();public Frmschudule() InitializeComponent(); t_name.Enabled = false; t_content.Enabled = false; tbbegintm.Enabled = false; text_content.Enabled = false; text_location.Enabled = false; text_priority.Enabled = false; text_begintime.Enabled = false; text_phone.Enabled = false; tsb_xg.Enabled = false; tsb_shch.Enabled = false; name.Enabled = false; content.Enabled = false; if (database.userInfo1.Trim() = 用户管理员) text_name1.Enabled = false; text_name2.Enabled = false; text_name3.Enabled = false; else label32.Visible = false; label36.Visible = false; label37.Visible = false; label38.Visible = false; label39.Visible = false; label21.Visible = false; text_name1.Visible = false; text_name2.Visible = false; text_name3.Visible = false; text_name4.Visible = false; textBox1.Visible = false; textBox2.Visible = false; button1.Visible = false; button2.Visible = false; if (database.userInfo1.Trim() = 用户管理员) sda = new SqlDataAdapter(select username as 用户姓名,messagename as 标题,content as 内容,location as 地点, priority as 重要性,begintime as 开始时间,relatedphone as 联系 , createtime as 创建时间 from tbl_message order by begintime DESC , database.connStr); sda.Fill(ds, tblmessage); bs.DataMember = tblmessage; else sda = new SqlDataAdapter(select messagename as 标题,content as 内容,location as 地点, priority as 重要性,begintime as 开始时间,relatedphone as 联系 ,createtime as 创建时间 from tbl_message where username= + database.userInfo0.Trim() + order by begintime DESC, database.connStr); sda.Fill(ds, tblmessage); bs.DataMember = tblmessage; bs.DataSource = ds; bs.ResetBindings(true); bdngt_message.BindingSource = bs; dgv_message.DataSource = bs; 所有事件设计窗体如下:(管理员窗体)(1)姓名查询主要代码:此处调用了视图(VIEW_message)private void button2_Click(object sender, EventArgs e) try /调用视图 string sqlStr = select 用户名, 标题,内容,地点,重要性, 开始时间,联系 ,创建时间 FROM VIEW_message where 用户名= + textBox2.Text.Trim() + ; database db = new database(); DataSet ds = new DataSet(); ds = db.GetDataFromDB(sqlStr); bs.DataSource = ds;er = ds.Tables0.ToString(); bs.ResetBindings(true); if (bs = null) MessageBox.Show(没有符合条件的日程记录!); else dgv_message.DataSource = bs; dgv_message_RowHeaderMouseClick(null, null); bdngt_message.BindingSource = bs; catch MessageBox.Show(没有符合条件的日程记录!); (2)按时间段查询代码: private void bt_check_Click(object sender, EventArgs e) try string sqlStr = select messagename as 标题,content as 内容,location as 地点, priority as 重要性,begintime as 开始时间,relatedphone as 联系 ,createtime as 创建时间 FROM tbl_message where username= + database.userInfo0.Trim() + and begintime between + dtp_begin.Value.Date.ToString() + and + dtp_end.Value.AddDays(1).Date.ToString() + order by begintime DESC; database db = new database(); DataSet ds = new DataSet(); ds = db.GetDataFromDB(sqlStr); bs.DataSource = ds; bs.DataMember = ds.Tables0.ToString();
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 商业计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!