备忘录课程设计.docx
- 文档编号:14555012
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:16
- 大小:257.07KB
备忘录课程设计.docx
《备忘录课程设计.docx》由会员分享,可在线阅读,更多相关《备忘录课程设计.docx(16页珍藏版)》请在冰点文库上搜索。
备忘录课程设计
信息与电气工程学院
课程设计说明书
(2008/2009学年第二学期)
课程名称:
软件程序设计
题目:
备忘录
专业班级:
学生姓名:
学号:
指导教师:
设计周数:
2周
设计成绩:
2009年6月19日
1.目的:
通过本次课程设计的学习和实际上机操作,进一步加强和了解掌握C#和数据库的学习和操作。
完成备忘录的课程设计。
2.软件方面设计部分;硬件方面设计部分
2.1系统分析:
备忘录系统所需要实现的功能是1、支持多用户,根据用户名和密码进入备忘录;2、登录用户可完成备忘信息的录入、修改和删除功能;3、支持登录提醒功能或其它提醒方式。
同时使用采用web窗体和C#语言来进行实际设计。
既然涉及到了多用户等相关操作,就用到了SQLSERVER2005数据库。
2.2系统设计:
2.2.1系统备忘录系统的功能模块:
用户信息模块:
用来管理用户的注册,修改个人信息,以及安全验证(需使用session及清除)。
备忘录信息模块:
用来管理用户个人的备忘信息,以及用户备忘信息的编辑,修改,删除。
2..2.2系统流程图
否
是
2.2.3数据库系统设计
用户信息表(UserInfo)
列名
数据类型
长度
是否为主键
是否为空
注释
UserName
nvchar
20
是
否
用户登录帐号
UserPwd
nvchar
20
否
否
用户登录密码
UserSex
int
4
否
否
用户性别
UserAge
nvchar
50
否
是
用户年龄
UserNativePlace
nvchar
50
否
是
用户籍贯
备忘录信息表(MessageInfo)
列名
数据类型
长度
是否为主键
是否为空
注释
ID
int
是
否
备忘录信息标识
UserName
nvchar
20
否
否
用户登录帐号
Title
nvchar
50
否
否
用户登录密码
SetTime
datetime
否
否
现在时间
RemindTime
datetime
否
否
提醒时间
Message
nvchar
MAX
否
是
备忘录信息
2.2.4系统功能图
2.3主要系统界面的设计实施如下:
1.登录界面
2注册界面
3.主界面
4.新建备忘界面
5.查看备忘界面
6.编辑修改
7.编辑删除
8.个人管理
3.实验程序有关代码
3.1登录
protectedvoidbtnLogin_Click(objectsender,EventArgse)
{if(txtUsername.Text==""||txtPwd.Text=="")
{Response.Write("");
}
else
{SqlConnectionconn=newSqlConnection(ConfigurationManager.ConnectionStrings["connectionstring"].ConnectionString);
conn.Open();//打开数据库连接
//创建一个命令对象
SqlCommandcmd=newSqlCommand("SELECT*FROMUserInfoWHEREUserName='"+
txtUsername.Text.Trim()+"'ANDUserPwd='"+txtPwd.Text.Trim()+"'",conn);
//执行命令对象操作的查询操作,并将结果返回给DataReader对象。
SqlDataReaderdr=cmd.ExecuteReader();
//执行DataReader的Read方法,判断是否查询到记录
if(dr.Read())
{//查询到,将用户名保持至Session对象,进入上次请求的页面。
Session["yhm"]=dr["UserName"].ToString();
FormsAuthentication.RedirectFromLoginPage(txtUsername.Text,true);
}
else
{//弹出对话窗,告知错误。
Response.Write("");
txtUsername.Text="";
txtPwd.Text="";
}
//释放DataReader对象,关闭数据库连接
dr.Close();
conn.Close();
}
}
3.2注册
protectedvoidbtnSure_Click(objectsender,EventArgse)
{//创建连接数据库的对象
SqlConnectionconn=newSqlConnection(ConfigurationManager.ConnectionStrings["connectionstring"].ConnectionString);
conn.Open();//打开数据库连接
if(txtPwdzc.Text.Trim()==txtPwdag.Text.Trim())
{stringsex="";
if(optMale.Checked)
{sex="男";}
if(optFemale.Checked)
{sex="女";}
//创建一个命令对象
SqlCommandcmd=newSqlCommand("INSERTINTOUserInfoValues('"+txtUsernamezc.Text.Trim()+"','"+txtPwdzc.Text.Trim()+"','"+sex+"','"+txtAge.Text.Trim()+"','"+DropDownList1.SelectedItem+"')",conn);
inti=cmd.ExecuteNonQuery();
if(i==1)
{Response.Write("");}
else
{Response.Write("");}
conn.Close();
}
else
{Response.Write("");}
}
protectedvoidbtnBack_Click(objectsender,EventArgse)
{Response.Redirect("First.aspx");}
3.3写备忘录信息
protectedvoidButton1_Click(objectsender,EventArgse)
{
stringu=Session["yhm"].ToString();
//创建连接数据库的对象
SqlConnectionconn=newSqlConnection(ConfigurationManager.ConnectionStrings["connectionstring"].ConnectionString);
conn.Open();//打开数据库连接
//创建一个命令对象
DateTimet=System.DateTime.Now;
stringstr=string.Format("{0}{1}:
{2}:
00",Calendar1.SelectedDate.ToShortDateString(),DropDownList1.SelectedValue.ToString(),DropDownList2.SelectedValue.ToString());
DateTimert=DateTime.Parse(str);
if(TextBox1.Text.Trim()=="")
{Response.Write("");
}
if(DateTime.Compare(rt,t)>=0)
{
SqlCommandcmd=newSqlCommand("INSERTINTOMessageInfo(UserName,Title,Message,SetTime,RemindTime)Values('"+u+"','"+TextBox1.Text.Trim()+"','"+TextBox2.Text.Trim()+"','"+t+"','"+rt+"')",conn);
inti=cmd.ExecuteNonQuery();
if(i==1)
{Response.Write("");}
else
{Response.Write("");}
conn.Close();
}
else
{Response.Write("");}
}
3.4.母版页
protectedvoidPage_Load(objectsender,EventArgse)
{
if(Session["yhm"]!
=null)
{lblUsername.Text=Session["yhm"].ToString();}
}
protectedvoidQuit_Click(objectsender,EventArgse)
{Session.Abandon();
Response.Write("");}
3.5.web.config页
xmlversion="1.0"?
>
--注意:
-->
providerName="System.Data.SqlClient"/> providerName="System.Data.SqlClient"/> providerName="System.Data.SqlClient"/> providerName="System.Data.SqlClient"/> providerName="System.Data.SqlClient"/> providerName="System.Data.SqlClient"/> providerName="System.Data.SqlClient"/> //建立了多余的连接,故只保留最后一个 providerName="System.Data.SqlClient"/> ----> 身份认证的重要部分: -- 通过 安全身份验证模式,以标识传入的用户。 --> "/> -- --如果……………--> 4.系统调试及相关问题: 1.对session的认识存在不够。 解决: Session对象 以存session对象用于存储特定的用户会话所需的信息。 Session对象的引入是为了弥补HTTP协议的不足,HTTP协议是一种无状态的协议。 Session是“会话”的意思,在ASP中代表了服务器与客户端之间的“会话”。 Session的作用时间从用户到达某个特定的Web页开始,到该用户离开Web站点,或在程序中利用代码终止某个Session结束。 引用Session则可以让一个用户访问多个页面之间的切换也会保留该用户的信息。 系统为每个访问者都设立一个独立的Session对象,用储Session变量,并且各个访问者的Session对象互不干扰。 Session与Cookie是紧密相关的。 Session的使用要求用户浏览器必须支持Cookie,如果浏览器不支持使用Cookie,或者设置为禁用Cookie,那么将不能使用Session。 Session信息对客户来说,不同的用户用不同的Session信息来记录。 当用户启用Session时,ASP自动产生一个SessionID.在新会话开始时,服务器将SessionID当做cookie存储在用户的浏览器中。 2.注销与退出的问题。 解决: 注销,询问别人,在webconfig中(见程序)中已经设置了身份验证。 而在注销时系统可以自动执行取消session,因此可以注销。 退出,自己所设定的退出Response.End还是存在不足,不能完全终止程序。 因此通过查找,找到了这样的方法(见程序): protectedvoidQuit_Click(objectsender,EventArgse) {Session.Abandon(); Response.Write(""); } 我在试验的时候,页面出现不能连接警告。 也就是同样取消了session,退出系统页面。 3.在数据库使用时出现问题,即点击个人信息时不显示数据。 解决: 开始以为是没有连接到Message.aspx,故在该页面中添加了一些字符(见程序),但是连接只显示这些字符而依然没有数据。 经过检查信息的录入情况,发现以前的连接录入时显示,而新连接的数据库却没有显示,原因在根本没有注册信息录入进数据库中,检查web.config页,原来是路径错误,需使用|DataDirectory|\bwl.mdf来解决。 5.课程设计总结或结论 通过本次课程设计的亲身经历与实践,初步认识到C语言和数据库学习的重要性和严谨性,需要投入极大的认真和专注。 我们所做的备忘录系统较大程度用到了数据库,因此也是一次更加深度的了解学习。 同时需要培养一种初步的工程理念和好的团队合作精神,在这些方面我不得不说有很大的差距,虽然我参与了绝大部分的实践活动,但由于平时的不扎实,对一些基本的东西可以掌握。 但是这期间又遇到不少的问题,旧的解决,新的又来,刚理解一些,又遇到很多见都没见过的问题,期间得到老师和同学的很大帮助,但是有些真的感觉不好掌握,最后,大体是完成了,却也有一些缺漏和似懂非懂的东西,再加上时间也很仓促,一个问题费半天时间,不能不说有很大遗憾。 这些都是所欠缺的,需要我不断的去学习和实践! 总之,学什么都要不断的去尝试和积累,需要耐心和恒心去做,这次课程设计就是一个很好的锻炼实践的机会! 6.参考文献 [1]朱如龙SQLServer2005数据库应用系统开发技术实验指导,机械工业出版社2006-7-1 [2](美)马丁敏捷软件开发原则模式与实践C#版人民邮电出版社2008-1-1 [3](美)瓦格纳EffectiveC#中文版: 改善C#程序的50种方法人民邮电出版社2007年 [4]赵燕燕.ASP技术在Web数据库开发中的使用[J].河南职工医学院学报,2009,01 课程设计 评语 课程设计 成绩 指导教师 (签字) 年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 备忘录 课程设计