C#课程设计备忘录软件设计.docx
《C#课程设计备忘录软件设计.docx》由会员分享,可在线阅读,更多相关《C#课程设计备忘录软件设计.docx(28页珍藏版)》请在冰豆网上搜索。
![C#课程设计备忘录软件设计.docx](https://file1.bdocx.com/fileroot1/2023-2/24/ce8f5135-1a73-44fb-8859-f8959f9a5d1e/ce8f5135-1a73-44fb-8859-f8959f9a5d1e1.gif)
C#课程设计备忘录软件设计
**学院
课程设计说明书
(2012/2013学年第一学期)
课程名称:
软件程序设计
题目:
备忘录软件设计
专业班级:
学生姓名:
放羊娃
学号:
指导教师:
吴开兴、马小进、崔冬
设计周数:
2周
设计成绩:
2013年1月18日
1.课程设计目的
本课程设计是通信工程专业的一门软件实践专业基础课,旨在提高学生的软件编程能力。
本设计将进一步加强学生对面向对象程序设计思想的理解,增强对C#程序语言的灵活运用。
要求学生能结合数据库知识,网络通信技术,实现基本的应用软件,为以后从事相关行业打下软件编程基础。
2.课程设计正文
2.1软件分析
2.1.1软件标识
备忘录
2.1.2软件概述
该软件用于人们日常生活中的各种事件的备忘和提醒。
该软件对个人每日事件进行备忘,可记录要备忘的事件的具体内容以及具体时间;对事件设定的具体时间进行闹钟提醒,可更换闹钟铃声。
具体界面还可以根据个人喜好更该主界面时间和日期两状态栏的颜色,以及软件窗口的透明度等功能。
本产品可用于个人电脑里,建议客户端运行于windows95及以上版本。
2.1.3系统功能
功能名称
功能描述
登陆窗口
登录系统,
身份验证
数据库对用户身份进行验证
菜单选项
子菜单:
添加备忘,关于作者,退出。
写备忘
根据用户需要添加备忘
添加备忘
写入文件,保存用户备忘信息。
关于
关于作者窗口
选项设置
更改铃声、界面颜色,透明度,延时提醒。
提醒窗口
分为延时提醒和我知道了两个选项。
用户退出系统
在用户退出系统时做相应的操作
2.2模块设计
2.2.1登陆模块
登录模块主要是为用户做了一个登陆界面,其中可以输入用户的用户名和密码,当用户的账号或密码没有输入,将会弹出对话框进行提示“用户名或密码为空”。
下面是两个button,一个是登陆,另外一个是重置。
当你输入正确的用户名和密码,点击登陆按钮,既可登陆备忘录管理系统,当你发现输入的用户名或密码有误时,可以点击重置按钮,重新输入用户信息。
2.2.2主窗口模块和添加备忘模块
当我们登陆成功之后,进入的就是备忘录主窗口。
主窗口界面由一个日历,方便用户进入系统后明确自己备忘时间。
每个用户登陆后可以在菜单中根据个人需求选择添加备忘,其次,在添加备忘右侧的组合框中,每个用户可以根据个人喜好设置提醒功能的铃声,还可以根据个人需求更改界面的颜色和透明度,还有延时提醒时间。
主菜单中还有关于选项,用户查看作者嘱托和作者信息。
2.3系统总体设计
2.3.1功能和模块的划分
2.3.2登陆模块
登录模块主要是为用户做的一个登陆界面,其中可以输入用户名和密码,当用户的用户名或密码没有输入时,将会弹出对话框进行提示“用户名或密码为空”,当用户的用户名或密码错误时,将会弹出对话框提示“用户名或密码错误。
”下面是两个button,一个是登陆,另外一个是重置。
当你输入正确的用户名和密码后,点击登陆按钮,这时会出现提示“登陆成功”。
2.3.3添加备忘模块
当用户正确登录备忘录系统时,就可以根据个人需求添加备忘;添加备忘是菜单的子菜单,呼出添加备忘窗口后,点击添加按钮添加备忘,删除按钮用以删除备忘,清空用以清空所有较多的备忘。
2.3.4高级选项及提醒模块
这个模块主要是针对软件外观设置以及备忘提醒闹钟的设置,更改外观用以改变软件的界面颜色,界面透明度。
闹钟提醒设置用以更改提醒铃声,延时提醒时间的设置。
提醒窗口有两个按钮,“延时提醒”实现延时功能,“我知道了”关闭提醒窗口。
2.4系统详细设计
2.4.1数据库设计
数据建模
用户信息表
字段名称
数据类型及长度
允许为空
中文说明
Name
Nvarchar(20)
NO
用户名
Pwd
Nvarchar(20)
NO
密码
2.4.2登陆模块
登陆界面
登录界面
用户名密码验证
登用户登陆信息验证
登陆成功界面
功能描述
用户名密码验证:
判断用户名或密码输入框的内容是否为空,为空就弹出上述提示,否则程序继续向下执行。
用户登陆信息验证:
判断用户密码输入框的内容是否正确,错误就弹出上述提示,否则程序继续向下执行。
登陆成功界面:
到数据库中去查询用户信息,该用户存在,程序就向下执行,弹出上述提示。
源代码
privatevoidbutton1_Click(objectsender,EventArgse)
{
if(txtName.Text.Trim()!
=""&&txtPwd.Text.Trim()!
="")
{
//连接数据库
stringconnString=@"DataSource=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\sjk.mdf;IntegratedSecurity=True;ConnectTimeout=30;UserInstance=True";
SqlConnectionconn=newSqlConnection(connString);
conn.Open();
//操作数据库
stringsql="select*fromUserInfowhereName='"+txtName.Text.Trim().ToLower()+"'andPwd='"+txtPwd.Text.Trim()+"'";
SqlCommandcmd=newSqlCommand(sql,conn);
SqlDataReaderdr=cmd.ExecuteReader();
//判断成功
if(dr.Read())
{
MessageBox.Show("登录成功!
");
f1f=newf1();
f.Show();
this.Hide();
}
else
{
MessageBox.Show("用户名或密码错误!
");
button2_Click(sender,e);
}
conn.Close();
}
else
{
MessageBox.Show("用户名或密码为空!
");
}
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
txtName.Clear();
txtPwd.Clear();
txtName.Focus();
}
}
}
2.4.2添加备忘模块
添加备忘界面
任务备忘
添加计划任务
错误任务提示窗口
成功任务提示窗口
功能实现描述
任务备忘:
在该用户登录进客户端后,选择添加被往后,出现以实现用户添计划任务。
添加计划任务:
实现用户的计划任务的添加,可以记录具体事件,以及具体时间日期。
错误提示窗口:
如果计划任务记录时间在目前时间的过去,提示添加失败。
成功提示窗口:
如果计划任务记录时间在目前时间的将来,提示添加成功。
源代码
privatevoidFrmSet_Load(objectsender,EventArgse)
{
label1.Text=DateTime.Now.ToString()+""+DateTime.Now.DayOfWeek.ToString();
dateTimePicker1.Value=DateTime.Now;
dateTimePicker1.MinDate=DateTime.Now;
}
privatevoidtimer1_Tick(objectsender,EventArgse)
{
label1.Text=DateTime.Now.ToString()+""+DateTime.Now.DayOfWeek.ToString();
}
privatevoidbtnEnter_Click(objectsender,EventArgse)
{
Save();
}
privatevoidbtnCancel_Click(objectsender,EventArgse)
{
this.Close();
}
//保存
privatevoidSave()
{
longlongNowTime=long.Parse(DateTime.Now.ToString("yyyyMMddHHmmss"));
stringdt=dateTimePicker1.Value.ToString("yyyy/MM/dd")+""+dateTimePicker2.Value.ToString("HH:
mm:
ss");
longlongSaveTime=long.Parse(dt.Substring(0,4)+dt.Substring(5,2)+dt.Substring(8,2)+
dt.Substring(11,2)+dt.Substring(14,2)+dt.Substring(17,2));
if(longSaveTime>longNowTime)
{
stringcont=textBox1.Text;
StreamWritersw=newStreamWriter(Application.StartupPath+"\\cont.dat",true,Encoding.Default);
sw.WriteLine(dt+""+cont);
sw.Close();
if(MessageBox.Show("成功保存!
\r\n点击“是”退出,点击“否”继续添加...","提醒",
MessageBoxButtons.YesNo,MessageBoxIcon.Asterisk)==DialogResult.Yes)
{
this.Close();
}
list.Items.Clear();
frmOption=newf2();
frmOption.GetProject(list);
}
else
{
MessageBox.Show("输入时间已过时,请重新输入!
","提示",MessageBoxButtons.OK,MessageBoxIcon.Asterisk);
}
}
privatevoiddateTimePicker2_ValueChanged(objectsender,EventArgse)
{
}
}
}
2.4.3高级选项模块
高级选项界面
高级选项窗口
透明度更改效果
更改背景或者字体颜色界面
功能实现描述
左右拖动滑扭:
用于实现透明度的更改,向左拖动透明度增加,向右拖动透明度减少。
背景\字体按钮:
点击按钮,弹出颜色选择窗口,用于实现主界面背景\字体颜色的更改。
试听\停止按钮:
点击试听,播放音乐。
点击停止,音乐停止。
蓝色选中条停在的铃声为当前设置的铃声。
延时提醒用来设置延时提醒功能,我知道了用来关闭通知窗口。
源代码
try
{
string[]strMusic=Directory.GetFiles(strPath+"\\铃声","*.wav");
foreach(stringsinstrMusic)
{
listBoxMusic.Items.Add(Path.GetFileNameWithoutExtension(s));
}
}
catch(Exception){}
//是否获取铃声
stringmusic="1";
stringboot="1";
try
{
GetPrivateProfileString("option","MusicIsChecked","",temp,255,strPath+"\\ini.ini");
music=temp.ToString();
GetPrivateProfileString("option","Boot","",temp,255,strPath+"\\ini.ini");
boot=temp.ToString();
}
catch(Exception){}
if(music.Equals("1"))
cBoxBackgroundMusic.Checked=true;
else
cBoxBackgroundMusic.Checked=false;
//if(boot.Equals("1"))
//cBoxBoot.Checked=true;
//else
//cBoxBoot.Checked=false;
//选中的铃声
stringselectMusic="TheDawn";
try
{
GetPrivateProfileString("option","MusicName","",temp,255,strPath+"\\ini.ini");
selectMusic=temp.ToString();
}
catch(Exception){}
listBoxMusic.SelectedItem=selectMusic;
}
//设置透明度
privatevoidtrackBar1_Scroll(objectsender,EventArgse)
{
frmTime.Opacity=trackBar1.Value*0.01;
labOpacity.Text=trackBar1.Value.ToString()+"%";
WritePrivateProfileString("option","Opacity",trackBar1.Value.ToString(),strPath+"\\ini.ini");
}
//设置背景颜色
privatevoidbtnBackgorundColor_Click(objectsender,EventArgse)
{
if(this.colorDialog1.ShowDialog()==DialogResult.OK)
{
labDate.BackColor=colorDialog1.Color;
labTime.BackColor=colorDialog1.Color;
WritePrivateProfileString("color","b_R",colorDialog1.Color.R.ToString(),strPath+"\\ini.ini");
WritePrivateProfileString("color","b_G",colorDialog1.Color.G.ToString(),strPath+"\\ini.ini");
WritePrivateProfileString("color","b_B",colorDialog1.Color.B.ToString(),strPath+"\\ini.ini");
}
}
//设置字体颜色
privatevoidbtnFontColor_Click(objectsender,EventArgse)
{
if(this.colorDialog1.ShowDialog()==DialogResult.OK)
{
labDate.ForeColor=colorDialog1.Color;
labTime.ForeColor=colorDialog1.Color;
WritePrivateProfileString("color","f_R",colorDialog1.Color.R.ToString(),strPath+"\\ini.ini");
WritePrivateProfileString("color","f_G",colorDialog1.Color.G.ToString(),strPath+"\\ini.ini");
WritePrivateProfileString("color","f_B",colorDialog1.Color.B.ToString(),strPath+"\\ini.ini");
}
}
//试听铃声
privatevoidbtnTry_Click(objectsender,EventArgse)
{
try
{
stringstrName=listBoxMusic.SelectedItem.ToString();
sp=newSoundPlayer(strPath+"\\铃声\\"+strName+".wav");
sp.PlayLooping();
}
catch(Exception){}
}
//停止试听铃声
privatevoidbtnStop_Click(objectsender,EventArgse)
{
try
{
sp.Stop();
}
catch(Exception){}
}
privatevoidFrmOption_FormClosing(objectsender,FormClosingEventArgse)
{
try
{
sp.Stop();
}
catch(Exception){}
}
privatevoidcBoxBackgroundMusic_CheckedChanged(objectsender,EventArgse)
{
if(cBoxBackgroundMusic.Checked==true)
{
WritePrivateProfileString("option","MusicIsChecked","1",strPath+"\\ini.ini");
}
else
{
WritePrivateProfileString("option","MusicIsChecked","0",strPath+"\\ini.ini");
}
}
privatevoidlistBoxMusic_SelectedIndexChanged(objectsender,EventArgse)
{
stringstr=listBoxMusic.SelectedItem.ToString();
WritePrivateProfileString("option","MusicName",str,strPath+"\\ini.ini");
}
privatevoidbtnAdd_Click(objectsender,EventArgse)
{
f3frmSet=newf3(this.listBoxProject);
frmSet.ShowDialog();
}
privatevoidlistBoxProject_SelectedIndexChanged(objectsender,EventArgse)
{
textBoxProject.Text=listBoxProject.SelectedItem.ToString().Insert(19,"\r\n");
}
2.4.4程序主要代码
namespace备忘录
{
publicpartialclassf1:
Form
{
privatef2frmOption;
privatef4frmShow;
privatestringstrPath=Application.StartupPath.ToString();//应用程序路径
privatestringstrCont;
publicstaticboolisShow=false;//是否打开了其他窗体
publicf1()
{
InitializeComponent();
}
[DllImport("kernel32")]
privatestaticexternlongWritePrivateProfileString(stringsection,stringkey,stringval,stringfilePath);
[DllImport("kernel32")]
privatestaticexternlongGetPrivateProfileString(stringsection,stringkey,stringdef,StringBuilderretVal,intsize,stringfilePath);
privatevoidFrmTime_Load(objectsender,EventArgse)
{
GetLocation();
showDateTime();
GetOption();
}
//初始化设置
privatevoidGetOption()
{
//获取透明度↓
StringBuildertemp=newStringBuilder(255);
intop=90;
try
{
GetPrivateProfileString("option","Opacity","",temp,255,strPath+"\\ini.ini");
op=int.Parse(temp.ToString());
}
catch(Exception){}
this.Opacity=op*0.01;
//获取背景颜色
intb_R=255;
intb_G=128;
intb_B=255;
try
{
GetPrivateProfileString("color","b_R","",temp,255,strPath+"\\ini.ini");
b_R=int.Parse(temp.ToString());
GetPrivateProfileString("color","b_G","",temp,255,strPath+"\\ini.ini");
b_G=int.Parse(temp.ToString());
GetPrivateProfileString