




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、*学院课程设计说明书(2012/2013学年第一学期)课程名称 : 软件程序设计 题 目 : 备忘录软件设计 专业班级 : 学生姓名 : 放羊娃 学 号: 指导教师 : 设计周数 : 2周 设计成绩 : 2013年1月18日目 录1目的22设计部分22.1系统分析22.2系统设计22.2.1 系统备忘录系统的功能模块22.2.2系统流程图2.2.3 数据库系统设计33 系统功能图44设计步骤44.1建立数据库41.1建立表 添加用户信息表(userinfo)、备忘录信息表(memoreminder)。44.2登录界面设计(frmlogin)44.3主界面设计(frmmain)54.3.1主菜单
2、栏54.3.2 子菜单栏54.3.3 在主界面添加背景图片54.4修改密码54.4.1 在 用户操作 下拉菜单中的“修改密码”,可以修改当前用户的密码。54.5添加备忘内容54.5.1 设置添加备忘窗口54.5.2 数据库连接54.6编辑备忘内容54.7到时提醒界面设计64.7.1 到设置的时间后,会弹出此窗口64.7.2 按钮:“延时”按钮、“知道了”按钮64.8注册界面设计64.8.1 有三项内容:64.8.2 按钮:“提交”按钮、“取消”按钮65程序设计75.1创建一个类,operatedb。75.2实现不同用户登录85.3用户修改密码95.4用户修改和删除备忘内容105.5用户添加备忘
3、内容,及设定铃声125.6备忘提醒用户135.7新用户注册166设计总结与结论177参考文献171目的本课程设计是电子工程专业的一门软件实践专业基础课,旨在提高学生的软件编程能力。本设计将进一步加强学生对面向对象程序设计思想的理解,增强对c#程序语言的灵活运用。要求学生能结合数据库知识,实现基本的应用软件,为以后从事相关行业打下软件编程基础。2设计部分2.1系统分析备忘录系统所需要实现的功能是:1、 支持多用户登录,根据用户名和密码进入备忘录;2、 登录用户可完成备忘信息的添加、修改和删除功能;3、 支持登录提醒或其他提醒方式,同时使用windows窗体和c#语言来进行实际设计;既然设计到了多
4、用户等相关操作,就用到了sql server数据库;4、 在完成以上功能以后,添加了可以注册新用户的功能。2.2系统设计2.2.1 系统备忘录系统的功能模块用户信息模块:用来管理用户的登录、注册;主界面:用来修改用户的个人登录密码,修改、删除用户的备忘内容;备忘信息模块:添加用户需备忘的信息、添加到时提醒铃声;到时提醒模块:用来提醒用户备忘的内容,及铃声提醒。2.2.2系统流程图进入登录界面判断用户名和密码是否与数据库一致主界面注册/重新登录到时提醒界面退出添加、编辑备忘信息查看版本信息访问作者博客开始ny上图1 为用户登录流程图2.2.3 数据库系统设计用户信息表(userinfo)列名数据
5、类型长度是否为主键是可否为空注释usernamenvarchar20是否用户登录用户名userpwdnvarchar20否否用户登录密码备忘录信息表(memoreminder)列名数据类型长度是否为主键是可否为空注释numberint是否自动编号usernamenvarchar20否否用户名memonvarcharmax否是备忘内容remindertimedatetime否是提醒时间remindermusicnvarcharmax否是提醒铃声3 系统功能图 用户信息模块备忘录模块用户注册模块用户登录模块用户修改个人信息模块添加备忘模块编辑备忘模块修改备忘模块删除备忘模块提醒备忘模块备忘录系统图
6、2 备忘录系统的总体结构4设计步骤4.1建立数据库1.1建立表 添加用户信息表(userinfo)、备忘录信息表(memoreminder)。4.2登录界面设计(frmlogin)当用户输入用户名和密码,点击登录按钮后,从数据库检索此想登录的用户的信息,如果登录名和密码与数据库里的一致,则登录进去,进入主界面,若其中一个错误或用户名不存在,则提示:用户名或密码错误;可以点击一旁的“注册用户”按钮;注册一个新用户,登录进去;还有一个重置按钮,就是当用户名或密码输入错误后,可以点击“重置”按钮,清空两个框里面的值。4.3主界面设计(frmmain)4.3.1主菜单栏用户操作备忘录帮助退出修改密码添
7、加备忘编辑备忘版本说明访问作者博客4.3.2 子菜单栏 在备忘录下拉的编辑备忘中,包括修改和删除备忘。4.3.3 在主界面添加背景图片 4.4修改密码4.4.1 在 用户操作 下拉菜单中的“修改密码”,可以修改当前用户的密码。4.5添加备忘内容4.5.1 设置添加备忘窗口备忘内容提醒时间提醒铃声(从目录可选)按钮:添加、取消。4.5.2 数据库连接当按“添加”按钮,备忘内容录入数据库;4.6编辑备忘内容包括修改和删除功能;4.7到时提醒界面设计4.7.1 到设置的时间后,会弹出此窗口提醒备忘的内容显示当前时间响设置的铃声需延时的时间4.7.2 按钮:“延时”按钮、“知道了”按钮有一个控件(co
8、mbobox),当只有选择需延时的时间后,点击延时才生效,否则会提示:请选择需要延时的时间;当点击“知道了”按钮后,会弹出:是否要保留此条备忘内容,若单击:yes,则在数据库中保留此条备忘内容,然后关闭此提醒窗口;若单击no,则数据库中会删除此条记录,然后关闭此提醒窗口。4.8注册界面设计4.8.1 有三项内容:用户名称密码确认密码4.8.2 按钮:“提交”按钮、“取消”按钮点击登录界面的“注册”按钮,会进入此注册界面。y点击提交判断三个框里面的值是否有空值判断两个框里面的密码是否一致判断数据库中是否已有此用户提示:请填写完整信息提示:两次输入的密码不一致提示:此用户已注册注册成功ynnny5
9、程序设计5.1创建一个类,operatedb。public sealed class operatedb / / 获取连接数据库的字符串 / public static string connstring get using (streamreader sr = file.opentext(conn2db.txt) return sr.readline(); public static void preparecommand(sqlcommand cmd,sqlconnection conn, string cmdtext) if (conn.state!= connectionstate.o
10、pen) conn.open(); cmd.connection=conn; cmd.commandtype=commandtype.text; cmd.commandtext=cmdtext; / / 执行数据读取操作 / / sql语句? / 如果获取到值,返回true,否组是false public static bool executereader(string cmdtext) using (sqlconnection conn=new sqlconnection(connstring) sqlcommand cmd = new sqlcommand(); preparecomman
11、d(cmd,conn,cmdtext); sqldatareader dr=cmd.executereader(); return dr.read(); / / 执行数据增加删除或修改操作 / / sql语句 / 返回操作影响的行数 public static int executequery(string cmdtext) using (sqlconnection conn = new sqlconnection(connstring) sqlcommand cmd = new sqlcommand(); preparecommand(cmd, conn, cmdtext); return
12、cmd.executenonquery(); 5.2实现不同用户登录private void btnlogin_click(object sender, eventargs e) /no.3方法:用类封装来操作数据库 string sql = select * from userinfo where username= + txtusername.text.trim().tolower()+ and userpwd=+txtpassword.text.trim()+; if (operatedb.executereader(sql) username=txtusername.text.trim
13、().tolower(); frmmain frm = new frmmain(); frm.show(); /frm.windowstate = formwindowstate.minimized; this.hide(); else messagebox.show(用户名或密码错误!, 出错了, messageboxbuttons.ok, messageboxicon.error); 5.3用户修改密码if (txtnewpwd.text.trim() = txtnewpwdagain.text.trim() /使用类封装 string sqlcheckpwd = select*from
14、userinfo where username= + frmlogin.username + and userpwd= + txtoldpwd.text.trim() + ; if (operatedb.executereader(sqlcheckpwd) string sql = update userinfo set userpwd= + txtnewpwd.text.trim() + where username= + frmlogin.username + ; if (operatedb.executequery(sql) = 1) messagebox.show(密码修改成功|!);
15、 this.close(); else messagebox.show(密码修改失败!); else messagebox.show(旧密码输入不正确!); else messagebox.show(两次输入的新密码不一致!); 5.4用户修改和删除备忘内容private void frmedit_load(object sender, eventargs e) binddata(); sqldataadapter da = new sqldataadapter(); dataset ds = new dataset(); / / 数据绑定 / void binddata() string s
16、ql = select number as 自动编号,memo as 备忘内容,remindertime as 提醒时间,remindermusic as 提醒铃声 from memoreminder where username= + frmlogin.username + ; sqlconnection conn= new sqlconnection(operatedb.connstring); conn.open(); sqlcommand cmd = new sqlcommand(sql, conn); da.selectcommand=cmd; da.fill(ds); datagr
17、idview1.datasource=ds.tables0; conn.close(); private void btnedit_click(object sender, eventargs e) sqlcommandbuilder cb=new sqlcommandbuilder(da); da.update(ds); messagebox.show(修改成功|!); private void btndelete_click(object sender, eventargs e) dialogresult dlresult=messagebox.show(this,要删除这些内容吗?,请确
18、认,messageboxbuttons.yesno,messageboxicon.question); if (dlresult = dialogresult.yes) int j = datagridview1.selectedrows.count; int l=new intj; int i; for(i=0;ij;i+) li=datagridview1.selectedrowsi.index; int k=0; while (k 0) messagebox.show(取消成功!, 消息提示, messageboxbuttons.ok, messageboxicon.informatio
19、n); conn.close(); this.close(); private void btndelay_click(object sender, eventargs e) if (combobox1.text=) messagebox.show(请选择需要延时的时间!); else timespan t=new timespan (0,0,convert.toint32(combobox1.selecteditem.tostring(); datetime now=datetime .now.add (t); /获取延时后的时间 string connstring = data sourc
20、e=.sqlexpress;attachdbfilename=|datadirectory|sjk.mdf;integrated security=true;connect timeout=30;user instance=true; sqlconnection conn = new sqlconnection(connstring); conn.open(); string sql=update memoreminder set remindertime=+now+where number=+label4number.text+; sqlcommand cmd=new sqlcommand
21、(sql,conn); cmd.commandtext=sql; if (cmd.executenonquery() = 1) messagebox.show(ok!); this.close(); conn.close(); 5.7新用户注册private void button1_click(object sender, eventargs e) if (textbox1.text.trim() = | textbox2.text.trim() = | textbox3.text.trim() = ) messagebox.show(请填写完整信息, 提示); else if (textb
22、ox2.text.trim() != textbox3.text.trim() messagebox.show(两次输入密码不一致!请重新输入!); else string connstring = data source=.sqlexpress;attachdbfilename=|datadirectory|sjk.mdf;integrated security=true;connect timeout=30;user instance=true; sqlconnection conn = new sqlconnection(connstring); conn.open(); sqlcomm
23、and cmd = new sqlcommand(,conn); cmd.commandtext = select*from userinfo where username=+textbox1.text.trim()+ ; if (null = cmd.executescalar() string sql = insert into userinfo(username,userpwd)values( + textbox1.text.trim() + , + textbox2.text.trim() + ); cmd.commandtext = sql; cmd.executenonquery(
24、); messagebox.show(恭喜您注册成功!, 提示, messageboxbuttons.ok, messageboxicon.information); this.close(); else messagebox.show(已有+textbox1.text.trim()+用户存在,请选择其他名称,提示,messageboxbuttons .ok ,messageboxicon.hand ); 6设计总结与结论通过本次课程设计的亲身经历与实践,使我认识到c#和数据库学习的重要性和严谨性,需要投入极大的认真和专注。我们所做的备忘录系统较大程度用到了数据库,因此也是一次更加深度的了解学习。同时需要培养一种初步的工程理念和好的团队合作精神,在这些方面我不得不说有很大的差距,虽然我参与了绝大部分的实践活动,但由于平时的不扎实,对一些基本的东西可以掌握。但是这期间又遇到不少的问题,旧的解决,新的又来,刚理解一些,又遇到很多见都没见过的问题,期间得到老师和同学的很大帮助,但是有些真的感觉不好掌握,最后,大体是完成了,却也有一些缺漏和似懂非懂的东西,再加上时间也很仓促,一个问题费半天时间,不能不说有很大遗憾。这些都是所欠缺的,需要我不断的去学习和实践!总之,学什么都要不断的去尝试和积累,需要耐心和恒心去做,这次课程设计就
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高效开发流程2025年考试试题及答案
- 现代社会中的编程语言选择与应用试题及答案
- 吉林省长春市第二实验学校2025年数学八下期末达标检测模拟试题含解析
- 社会实践活动在幼儿园的开展计划
- 教学资源共享与借用策略计划
- 湖北省黄冈市麻城市思源实验学校2025届八下数学期末综合测试模拟试题含解析
- 2024年宁夏开放大学辅导员考试真题
- 2025届福建省南安市柳城义务教育小片区八年级数学第二学期期末质量跟踪监视试题含解析
- 2024年黑龙江省体育局下属事业单位真题
- 黑龙江省七台河市名校2025届八下数学期末教学质量检测模拟试题含解析
- 江苏省江阴市江阴初级中学2023-2024学年中考三模英语试题含答案
- 新能源汽车技术专业《汽车构造》-课程标准
- 江苏省南京市鼓楼区2023-2024学年八年级下学期期末考试物理试题
- 2024年山东枣庄初中生物会考模拟试卷(解析版)
- (高清版)JTG 3363-2019 公路桥涵地基与基础设计规范
- 安全生产重在提升执行力
- 糜烂性胃炎的护理查房
- 摄影测量与遥感课件
- 注塑模具分类及结构组成课件
- 裂解裂化工艺作业培训课件
- 工程部管理制度及工程部管理制度(工程公司)
评论
0/150
提交评论