《C#课程设计—备忘录软件设计.doc》由会员分享,可在线阅读,更多相关《C#课程设计—备忘录软件设计.doc(24页珍藏版)》请在三一办公上搜索。
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(); MessageBox.Show(恭喜您注册成功!, 提示, MessageBoxButtons.OK, MessageBoxIcon.Information); this.Close(); else