版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 湖南财政经济学院课 程 设 计课 程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 项目背景 随着计算机技术的飞速发展,计算机应用的迅速推
2、广,计算机及技术给人们的日常生活、工作、学习带来了十分巨大的影响,计算机改变了人们的生活,工作的方式。而在使用计算机时有一些好的、实用的软件,将会给使用者提供非常便利的环境。因此我们采用c#和sql sever 技术开发一个实用的个人日程管理系统。1.2 项目目标1. 通过关于本系统管理系统的实现,是个人的日程管理更加完善。2. 可以查看日历、月历、农历。3. 可以编辑日程事务,了解行程。4. 可以提醒备忘事项,大大提高了办事效率。 2 系统分析2. 1 用户需求(1)功能需求:本系统完成对自己昨天的日程进行记录,今天、明天的日程安排以及查看修改工作。(2)权限需求:用户管
3、理员拥有最高的权限,可以对系统中所有的数据进行查看、添加、修改和删除等操作;普通用户只可以对自己的行程进行查看、修改、删除和删除等操作。(3)系统安全性需求:一是用户进入系统时必须进行口令校验;二是连接数据库是使用windows身份验证。2. 2功能需求(1)用户登录、用户注册:用户通过登录的方式进行口令校验安全进入在线日程管理系统:用户注册是用户为进入该系统时将个人信息提交到数据库中。(2)人员管理:系统管理员可以对用户进行修改,其中对用户密码进行修改,对一些长期没有用的人员进行删除操作,以减少系统压力。(3)个人日程管理:其中使用tabcontrol 控件,对某一天或某段时间的日程进行查看
4、,和对某个日程的地点、开始时间、重要性及联系电话进行修改,更新等操作。2. 3 开发环境 1硬件环境 目前,我们所开发的系统主要是应用在中小规模的学校内部,因此,一般配置的计算机硬件就可以满足系统需求。考虑到学校规模的扩大和硬件价格的降低,为本系统配置在较优秀的服务器硬件,可以充分发挥本系统性能。处理器: intel pentium 4 3.06 gx 或更高内存: 256m(推荐)硬盘空间:40gb显卡: svga显示适配器 2软件环境操作系统:windows 2000/xp开发软件:microsoft visual studio .net 2005数据库:microsoft sql ser
5、ver 2005 3 系统设计3.1设计目标个人日程管理系统是对已完成的工作进行记录,对未完成的工作进行有效、合理的安排,提高工作效率。3.2 系统角色本系统的角色主要包括有:系统管理员(拥有整个系统 的访问权限,可以对本系统的所有数据进行查看、添加、修改、删除的操作),普通用户(拥有次级管理权限,可以进行本人日程管理)。3. 3 系统流程图用户信息系统简介登 录用户注册找回密码日程管理所有日程已完成日程未完成日程 4 数据库设计4. 1 er图和表结构设计(1) er图 用户记录事件用户名标题内容权限联系人电话开始时间密码性别用户名邮箱重要性问题地点答案创建时间结束时间备注(2) 表结构设计
6、根据系统功能设计的要求以及功能模块的划分,对于系统用户信息数据库,可以列出以下数据项和数据结构:表4-1用户信息表(tbl_username)字段名字段类型长度主/外键字段值约束对应中文名usernamevarchar20主键not null用户姓名userpasswordvarchar20not null用户密码userpurviewvarchar10not null用户权限usere_mailvarchar50邮 箱usersexchar4性 别questionvarchar50问 题answervarchar50答 案表4-2所有日程表(tbl_message)字段名字段类型长度主/外键
7、字段值约束对应中文名usernamevarchar20外键not null用户姓名messagenamevarchar20not null事件标题contentvarchar50主键not null内 容locationvarchar50not null地 点relatedphonebigint8not null联系电话begintimedatetime8not null开始时间createtimedatetime8创建时间priorityvarchar20not null重 要 性endtimedatetime8结束时间remarksvarchar100备 注表4-3所有日程表(tbl_un
8、message)字段名字段类型长度主/外键字段值约束对应中文名usernamevarchar20外键not null用户姓名messagenamevarchar20not null事件标题contentverchar50主键not null内 容locationvarchar50not null地 点begintimedatetime8not null开始时间relatedphonebigint8not null联系电话createtimedatetime8创建时间priorityvarchar20not null重 要 性表4-4所有日程表(tbl_finishimessage)字段名字段类
9、型长度主/外键字段值约束对应中文名usernamevarchar20外键not null用户姓名messagenamevarchar20not null事件标题contentvarchar50主键not null内 容begintimedatetime8not null开始时间endtimedatetime8结束时间remarksvarchar100备 注4.2存储过程设计用来删除某个用户:create procedure deleteusernameusername varchar (20) asdeletefrom tbl_userwhere username = userna51 登录模
10、块的设计和实现5.1.1用户登录模块的窗体设计1用户身份验证输入:用户名和密码,选择权限处理:(1) 用户登录窗体启动。(2) 输入用户名和密码。(3) 从用户信息表中检查是否有相应的用户名和密码。(4) 如果用户名或密码为空或者错误,进行提示。如果忘记密码可以单击“忘记密码?”字样,进入找回密码窗体。(5) 如果输入的用户名和密码正确,则允许该用户进入系统。(6) 进入主控制平台。输出:主控制平台。2用户登录模块的窗体设计,如下图所示:主要代码如下:(1)登录按钮代码: private void bt_ok_click(object sender, eventargs e) try data
11、set 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() &
12、& 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("用户名或密码或权限错误,请重新输入!", &
13、quot;提示"); 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)注册按钮代码: privat
14、e 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
15、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找回密码设计界面如
16、下: (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.us
17、er0 = ds.tables0.rows0.itemarray0.tostring(); database.user1 = ds.tables0.rows0.itemarray1.tostring(); if (database.user1.trim () = tanswer.text.trim() messagebox.show("您的密码是: n" + database.user0 + "", "提示"); flogin oomain = new flogin (); oomain.show(); this.close(); e
18、lse 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
19、(); 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) 检测用户名是
20、否可用按钮代码: 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 = com
21、mandtype.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 =&quo
22、t;" ) messagebox .show ("请输入用户名!","提示"); else if (isture =false ) messagebox.show("用户名可用!请继续填写!", "注册信息"); text_password.focus(); else messagebox.show("该用户名已存在,请重新填写用户名!"); text_name.text = "" text_name.focus(); (2)检测用户名、密码是否为空和两次输入的密码
23、是否一致的代码: 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.t
24、ext.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 = ""
25、; 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&q
26、uot; sqlconnection dconnection = new sqlconnection(connstr); dconnection.open(); if (text_question.text = "" | text_answer.text = "") if (messagebox.show("你确定不设置密码找回问题和答案吗? 那么你忘记密码后将无法进入系统!", "提示", messageboxbuttons.yesno, messageboxicon.question, messageboxde
27、faultbutton.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_passwor
28、d.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_
29、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.tr
30、im(), 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(); f
31、login f_login = new flogin(); f_login.show(); this.hide(); text_question.focus(); 54首页(主窗体)设计如下:5.4.1 管理员主界面:5.4.2 普通用户界面如下: 主要代码: private void fmain_load(object sender, eventargs e) if (database.userinfo1.trim() = "普通用户") bt_userinfor.visible = false; toolstripstatuslabel1.text = "当前
32、用户是:" + database.userinfo0.trim() + " 其级别是:" + database.userinfo1.trim(); (1)退出本系统按钮代码: private void bt_close_click(object sender, eventargs e) if (messagebox.show("准备退出系统!确定要退出系统吗?nn退出之后就只能重新登录!", "退出系统", messageboxbuttons.yesno, messageboxicon.question, messagebo
33、xdefaultbutton.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 为不可见 ,还有就是在查询中管理员多了一项按用户
34、姓名查询。导航条、网格和文本框之间进行了绑定;相关的代码如下: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;
35、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; te
36、xt_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_na
37、me4.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 重要性,beginti
38、me 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; b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论