C#课程设计备忘录软件设计.docx

上传人:b****1 文档编号:15063371 上传时间:2023-06-30 格式:DOCX 页数:27 大小:1.85MB
下载 相关 举报
C#课程设计备忘录软件设计.docx_第1页
第1页 / 共27页
C#课程设计备忘录软件设计.docx_第2页
第2页 / 共27页
C#课程设计备忘录软件设计.docx_第3页
第3页 / 共27页
C#课程设计备忘录软件设计.docx_第4页
第4页 / 共27页
C#课程设计备忘录软件设计.docx_第5页
第5页 / 共27页
C#课程设计备忘录软件设计.docx_第6页
第6页 / 共27页
C#课程设计备忘录软件设计.docx_第7页
第7页 / 共27页
C#课程设计备忘录软件设计.docx_第8页
第8页 / 共27页
C#课程设计备忘录软件设计.docx_第9页
第9页 / 共27页
C#课程设计备忘录软件设计.docx_第10页
第10页 / 共27页
C#课程设计备忘录软件设计.docx_第11页
第11页 / 共27页
C#课程设计备忘录软件设计.docx_第12页
第12页 / 共27页
C#课程设计备忘录软件设计.docx_第13页
第13页 / 共27页
C#课程设计备忘录软件设计.docx_第14页
第14页 / 共27页
C#课程设计备忘录软件设计.docx_第15页
第15页 / 共27页
C#课程设计备忘录软件设计.docx_第16页
第16页 / 共27页
C#课程设计备忘录软件设计.docx_第17页
第17页 / 共27页
C#课程设计备忘录软件设计.docx_第18页
第18页 / 共27页
C#课程设计备忘录软件设计.docx_第19页
第19页 / 共27页
C#课程设计备忘录软件设计.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C#课程设计备忘录软件设计.docx

《C#课程设计备忘录软件设计.docx》由会员分享,可在线阅读,更多相关《C#课程设计备忘录软件设计.docx(27页珍藏版)》请在冰点文库上搜索。

C#课程设计备忘录软件设计.docx

C#课程设计备忘录软件设计

**学院

课程设计说明书

(2012/2013学年第一学期)

 

课程名称:

软件程序设计

题目:

备忘录软件设计

专业班级:

学生XX:

放羊娃

学号:

指导教师:

设计周数:

2周

设计成绩:

2013年1月18日

1目的

本课程设计是电子工程专业的一门软件实践专业基础课,旨在提高学生的软件编程能力。

本设计将进一步加强学生对面向对象程序设计思想的理解,增强对C#程序语言的灵活运用。

要求学生能结合数据库知识,实现基本的应用软件,为以后从事相关行业打下软件编程基础。

2设计部分

备忘录系统所需要实现的功能是:

1、支持多用户登录,根据用户名和密码进入备忘录;

2、登录用户可完成备忘信息的添加、修改和删除功能;

3、支持登录提醒或其他提醒方式,同时使用Windows窗体和C#语言来进行实际设计;既然设计到了多用户等相关操作,就用到了SQLSERVER数据库;

4、在完成以上功能以后,添加了可以注册新用户的功能。

系统备忘录系统的功能模块

用户信息模块:

用来管理用户的登录、注册;

主界面:

用来修改用户的个人登录密码,修改、删除用户的备忘内容;

备忘信息模块:

添加用户需备忘的信息、添加到时提醒铃声;

到时提醒模块:

用来提醒用户备忘的内容,及铃声提醒。

系统流程图

上图1为用户登录流程图

数据库系统设计

用户信息表(UserInfo)

列名

数据类型

长度

是否为主键

是可否为空

注释

UserName

nvarchar

20

用户登录用户名

UserPwd

nvarchar

20

用户登录密码

备忘录信息表(MemoReminder)

列名

数据类型

长度

是否为主键

是可否为空

注释

Number

int

自动编号

UserName

nvarchar

20

用户名

Memo

nvarchar

MAX

备忘内容

ReminderTime

datetime

提醒时间

ReminderMusic

nvarchar

MAX

提醒铃声

3系统功能图

 

图2备忘录系统的总体结构

4设计步骤

建立数据库

1.1建立表添加用户信息表(UserInfo)、备忘录信息表(MemoReminder)。

4.2登录界面设计(frmLogin)

当用户输入用户名和密码,点击登录按钮后,从数据库检索此想登录的用户的信息,如果登录名和密码与数据库里的一致,那么登录进去,进入主界面,若其中一个错误或用户名不存在,那么提示:

用户名或密码错误;可以点击一旁的“注册用户”按钮;注册一个新用户,登录进去;还有一个重置按钮,就是当用户名或密码输入错误后,可以点击“重置”按钮,清空两个框里面的值。

4.3主界面设计(frmMain)

主菜单栏

子菜单栏

在备忘录下拉的编辑备忘中,包括修改和删除备忘。

在主界面添加背景图片

在用户操作下拉菜单中的“修改密码”,可以修改当前用户的密码。

设置添加备忘窗口

按钮:

添加、取消。

数据库连接

当按“添加”按钮,备忘内容录入数据库;

包括修改和删除功能;

到设置的时间后,会弹出此窗口

按钮:

“延时”按钮、“知道了”按钮

有一个控件(bobox),当只有选择需延时的时间后,点击延时才生效,否那么会提示:

请选择需要延时的时间;当点击“知道了”按钮后,会弹出:

是否要保留此条备忘内容,若单击:

Yes,那么在数据库中保留此条备忘内容,然后关闭此提醒窗口;若单击No,那么数据库中会删除此条记录,然后关闭此提醒窗口。

有三项内容:

按钮:

“提交”按钮、“取消”按钮

点击登录界面的“注册”按钮,会进入此注册界面。

5程序设计

5.1创建一个类,OperateDB。

publicsealedclassOperateDB

{

///

///获取连接数据库的字符串

///

publicstaticstringConnString

{

get

{

using(StreamReadersr=File.OpenText("Conn2DB.txt"))

{

returnsr.ReadLine();

}

}

}

publicstaticvoidPreparemand(Sqlmandcmd,SqlConnectionconn,stringcmdText)

{

if(conn.State!

=ConnectionState.Open)

{

conn.Open();

}

cmd.Connection=conn;

cmdmandType=mandType.Text;

cmdmandText=cmdText;

}

///

///执行数据读取操作

///

///SQL语句?

///如果获取到值,返回true,否组是false

publicstaticboolExecuteReader(stringcmdText)

{

using(SqlConnectionconn=newSqlConnection(ConnString))

{

Sqlmandcmd=newSqlmand();

Preparemand(cmd,conn,cmdText);

SqlDataReaderdr=cmd.ExecuteReader();

returndr.Read();

}

}

///

///执行数据增加删除或修改操作

///

///SQL语句

///返回操作影响的行数

publicstaticintExecuteQuery(stringcmdText)

{

using(SqlConnectionconn=newSqlConnection(ConnString))

{

Sqlmandcmd=newSqlmand();

Preparemand(cmd,conn,cmdText);

returncmd.ExecuteNonQuery();

}

}

}

privatevoidbtnLogin_Click(objectsender,EventArgse)

{

用类封装来操作数据库

stringsql="select*fromUserInfowhereUserName='"+txtUsername.Text.Trim().ToLower()+"'andUserPwd='"+txtPassword.Text.Trim()+"'";

if(OperateDB.ExecuteReader(sql))

{

username=txtUsername.Text.Trim().ToLower();

frmMainfrm=newfrmMain();

frm.Show();

//frm.WindowState=FormWindowState.Minimized;

this.Hide();

}

else

{

MessageBox.Show("用户名或密码错误!

","出错了",

MessageBoxButtons.OK,MessageBoxIcon.Error);

}

}

if(txtNewPwd.Text.Trim()==txtNewPwdAgain.Text.Trim())

{

//使用类封装

stringsqlCheckPwd="select*fromUserInfowhereUserName='"+frmLogin.username+"'andUserPwd='"+txtOldPwd.Text.Trim()+"'";

if(OperateDB.ExecuteReader(sqlCheckPwd))

{

stringsql="updateUserInfosetUserPwd='"+txtNewPwd.Text.Trim()+"'whereUserName='"+frmLogin.username+"'";

if(OperateDB.ExecuteQuery(sql)==1)

{

MessageBox.Show("密码修改成功|!

");

this.Close();

}

else

{

MessageBox.Show("密码修改失败!

");

}

}

else

{

MessageBox.Show("旧密码输入不正确!

");

}

}

else

{

MessageBox.Show("两次输入的新密码不一致!

");

}

}

privatevoidfrmEdit_Load(objectsender,EventArgse)

{

BindData();

}

SqlDataAdapterda=newSqlDataAdapter();

DataSetds=newDataSet();

///

///数据绑定

///

voidBindData()

{

stringsql="selectNumberas自动编号,Memoas备忘内容,ReminderTimeas提醒时间,ReminderMusicas提醒铃声fromMemoReminderwhereUserName='"+frmLogin.username+"'";

SqlConnectionconn=newSqlConnection(OperateDB.ConnString);

conn.Open();

Sqlmandcmd=newSqlmand(sql,conn);

da.Selectmand=cmd;

da.Fill(ds);

dataGridView1.DataSource=ds.Tables[0];

conn.Close();

}

privatevoidbtnEdit_Click(objectsender,EventArgse)

{

SqlmandBuildercb=newSqlmandBuilder(da);

da.Update(ds);

MessageBox.Show("修改成功|!

");

}

privatevoidbtnDelete_Click(objectsender,EventArgse)

{

DialogResultdlResult=MessageBox.Show(this,"要删¦除这些内容吗?

","请确认",MessageBoxButtons.YesNo,MessageBoxIcon.Question);

if(dlResult==DialogResult.Yes)

{

intj=dataGridView1.SelectedRows.Count;

int[]l=newint[j];

inti;

for(i=0;i

{

l[i]=dataGridView1.SelectedRows[i].Index;

}

intk=0;

while(k

{

ds.Tables[0].Rows[l[k]].Delete();

k++;

}

SqlmandBuildercb=newSqlmandBuilder(da);

da.Update(ds);

}

}

5.5用户添加备忘内容,及设定铃声

privatevoidbtnAdd_Click(objectsender,EventArgse)

{

stringsql="insertintoMemoReminder(UserName,Memo,ReminderTime,ReminderMusic)Values('"+frmLogin.username+"','"+txtMemo1.Text+"','"+dateTimePicker1.Value+"','"+txtMusic.Text+"')";

if(OperateDB.ExecuteQuery(sql)==1)

{

MessageBox.Show("备忘添加成功|!

");

DialogResultdlResult=MessageBox.Show(this,"还要继续添加备忘吗?

","请确认",MessageBoxButtons.YesNo,MessageBoxIcon.Question);

if(dlResult==DialogResult.Yes)

{

txtMemo1.Text="";

txtMemo1.Focus();

}

else

{

this.Close();

}

}

else

{

MessageBox.Show("备忘添加失败!

?

");

}

}

privatevoidbtnSelectMusic_Click(objectsender,EventArgse)

{

OpenFileDialogofd=newOpenFileDialog();

ofd.Filter="MP3文件(*.mp3)|*.mp3|所有文件t(*.*)|*.*";

if(ofd.ShowDialog()==DialogResult.OK)

{

txtMusic.Text=ofd.FileName;

}

}

privatevoidtimer1_Tick(objectsender,EventArgse)

{

this.label5.Text=DateTime.Now.ToString("yyyy/MM/ddHH:

mm:

ss");

}

privatevoidbtnExit_Click(objectsender,EventArgse)

{

this.Close();

}

privatevoidtxtMusic_DoubleClick(objectsender,EventArgse)

{

OpenFileDialogofd=newOpenFileDialog();

ofd.Filter="MP3文件(*.mp3)|*.mp3|所有文件(*.*)|*.*";

if(ofd.ShowDialog()==DialogResult.OK)

{

txtMusic.Text=ofd.FileName;

}

}

voidBindData()

{

stringsql="select*fromMemoReminderwhereNumber='"+this.label4Number.Text+"'";

SqlConnectionconn=newSqlConnection(OperateDB.ConnString);

conn.Open();

Sqlmandcmd=newSqlmand(sql,conn);

da.Selectmand=cmd;

da.Fill(ds);

label4Number.Text=ds.Tables[0].Rows[0].ToString();

conn.Close();

}

privatevoidtimer1_Tick(objectsender,EventArgse)

{

this.labelShowNowTime.Text=DateTime.Now.ToString("yyyy/MM/ddHH:

mm:

ss");//在label控件上显示当前时间

//this.txtNowTime.Text=DateTime.Now.ToString("yyyy/MM/ddHH:

mm:

ss");//在txtNowTime上显示当前时间

}

privatevoidfrmRemind_Load(objectsender,EventArgse)

{

txtRemind.Text=frmMain.remind;//显示提醒内容

this.axWindowsMediaPlayer1.URL=frmMain.song;

this.label4Number.Text=frmMain.number;

}

privatevoidbtnClose_Click(objectsender,EventArgse)

{

DialogResultdlResult=MessageBox.Show(this,"还要保留此条备忘内容吗?

","请确认",MessageBoxButtons.YesNo,MessageBoxIcon.Question);

if(dlResult==DialogResult.Yes)

{

this.Close();

this.Close();

}

elseif(dlResult==DialogResult.No)

{

using(SqlConnectionconn=newSqlConnection(OperateDB.ConnString))

{

stringsql="deletefromMemoReminderwhereNumber='"+this.label4Number.Text+"'";conn.Open();

Sqlmandcmd=newSqlmand(sql,conn);

inti=cmd.ExecuteNonQuery();

if(i>0)

{

MessageBox.Show("取消成功!

","消息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

}

conn.Close();

this.Close();

}

}

}

privatevoidbtnDelay_Click(objectsender,EventArgse)

{

if(boBox1.Text=="")

{

MessageBox.Show("请选择需要延时的时间!

");

}

else

{

TimeSpant=newTimeSpan(0,0,Convert.ToInt32(boBox1.SelectedItem.ToString()));

DateTimenow=DateTime.Now.Add(t);//获取延时后的时间

stringconnString=@"DataSource=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\sjk.mdf;IntegratedSecurity=True;ConnectTimeout=30;UserInstance=True";

SqlConnectionconn=newSqlConnection(connString);

conn.Open();

stringsql="updateMemoRemindersetReminderTime='"+now+"'whereNumber='"+label4Number.Text+"'";

Sqlmandcmd=newSqlmand(sql,conn);

cmdmandText=sql;

if(cmd.ExecuteNonQuery()==1)

{

MessageBox.Show("OK!

");

this.Close();

}

conn.Close();

}

}

privatevoidbutton1_Click(objectsender,EventArgse)

{

if(textBox1.Text.Trim()==""||textBox2.Text.Trim()==""||textBox3.Text.Trim()=="")

MessageBox.Show("请填写完整信息","提示");

else

{

if(textBox2.Text.Trim()!

=textBox3.Text.Trim())

MessageBox.Show("两次输入密码不一致!

请重新输入!

");

else

{

stringconnString=@"DataSource=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\sjk.mdf;IntegratedSecurity=True;ConnectTimeout=30;UserInstance=True";

SqlConnectionconn=newSqlConnection(connString);

conn.Open();

Sqlmandcmd=newSqlmand("",conn);

cmdmandText="select*fromUserInfowhereUserName='"+textBox1.Text.Trim()+"'";

if(null==cmd.ExecuteScalar())

{

stringsql="insertintoUserInfo(UserName,UserPwd)values('"+textBox1.Text.Trim()+"','"+

textBox2.Text.Trim()+"')";

cmdmandText=sql;

cmd.ExecuteNonQuery();

MessageBox.Show("恭喜您注册成功!

","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

this.Close();

}

else

{

MessageBox.Show("已有"+textBox1.Text.Trim()+"用户存在,请选择其他名称","提示",MessageBoxButtons.OK,MessageBoxIcon.Hand);

}

}

}

}

6设计总结与结论

通过本次课程设计的亲身经历与实践,使我认识到C#和数据库学习的重要性和严谨性,需要投入极大的认真和专注。

我们所做的备忘录系统较大程度用到了数据库,因此也是一次更加深度的了解学习。

同时需要培养一种初步的工程理念和好的团队合作精神,在这些方面我不得不说有很大的差距,虽然我参与了绝大部分的实践活动,但由于平

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 建筑土木

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2