C#课程设计个人单词薄软件设计剖析.docx
- 文档编号:24396785
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:18
- 大小:354.53KB
C#课程设计个人单词薄软件设计剖析.docx
《C#课程设计个人单词薄软件设计剖析.docx》由会员分享,可在线阅读,更多相关《C#课程设计个人单词薄软件设计剖析.docx(18页珍藏版)》请在冰豆网上搜索。
C#课程设计个人单词薄软件设计剖析
**学院
课程设计说明书
(2012/2013学年第一学期)
课程名称:
软件程序设计
题目:
个人单词簿软件设计
专业班级:
学生姓名:
放羊娃
学号:
指导教师:
设计周数:
2周
设计成绩:
2013年1月18日
目录
1、课程设计目的…….……........................................................................2
2、系统的分析与设计.............................................................................2
2.1需求分析…….....................................................................................2
2.1.1课设任务............…….................................................................2
2.1.2课设要求………………………………………………………..2
2.2系统的设计..........................................................................................3
2.2.1数据库的分析与设计....................................................…...3
2.2.2逻辑层次的设计…….............................................................3
2.2.3层序流层图的设计....................................................................4
2.3程序设计..............................................................................................4
2.3.1系统实施.......................................................................................4
3、课程设计总结或结论.............................................................................13
4、参考文献.................................................................................................13
5.教师签字及评语……..............................................................................14
1、课程设计目的
(1)初步掌握使用C#工具设计一个具体实例的方法,包括软件的设计,调试的全过程。
(2)通过本次设计掌握使用c#语言中窗体的建立,各个控件的使用,以及界面的设计。
(3)进一步巩固所学的C#及数据库的相关理论知识,提高分析和解决实际问题的能力。
2、系统的分析与设计
本次课程设计我们小组做的是一个基于Visualstudio2005(C#)+SQLserver2000的个人单词簿系统,它包括个人单词簿主界面和随机考查、编辑界面。
基本可以实现单词的录入、测试、导出功能。
并且可以自己管理词库,具有对词库表中词汇做出适当的添加、删除和修改的功能。
2.1需求分析
当今时代是信息化时代,而信息的数字化也越来越被人们所重视,所以,数字化技术的重要性也逐渐体现了出来,词典作为一种为大众服务的工具书,已经渐渐退居二线了,进而出现了另一种查找方式更加简便,更加精确,词汇量更加丰富而且随身携带更加方便的工具,那就是电子词典,应该说这是一个新旧交替的过程,电子词典取代传统词典只是时间的问题。
所以说电子词典的发展前景是明朗的,所以我们小组决定做一个符合用户需求的小型个人电子词典系统。
2.1.1课设任务
1、根据技术要求和现有开发环境,分析课设题目;
2、设计软件方案。
包括:
软件功能结构、各功能模块的详细描述、关键程序流程图、数据库中表的结构设计等;
3、画出系统总体结构图、关键程序流程图;
4、设计系统界面,编制代码,实现软件的基本功能;
5、调试、修改并完善程序;
6、生成安装程序,编写软件使用说明书(图文结合进行描述);
2.1.2课设要求
1、生词录入、查询功能;
2、随机考查用户是否掌握了生词,并根据掌握程度来计算是否以后还需继续考查;
3、导出词汇功能。
2.2系统的设计
2.2.1数据库的分析与设计
表2-1用户基本信息表(T_Users)
列名
数据类型
长度
允许为空
是否为主键
说明
word
nvarchar
20
否
是
单词
jieshi
nvarchar
20
是
否
解释
2.2.2逻辑层次的设计
本次课设的个人单词簿软件系统可以使用户进行单词的录入、查询、修改、删除、随机考查和导出等基本业务。
个人单词簿系统基本结构框图如图2-1所示:
图2-1个人单词簿系统的基本框图
2.2.3层序流层图的设计
误
正
是
图2-2程序流程图
2.3程序设计
用户进入后,可以看到主界面,可以根据自己的需要对单词簿进行录入、修改、删除等,还可以考查自己对单词的掌握情况以及将已掌握的单词导出到文本文档中。
2.3.1系统实施
本系统主要通过运用C#的Windows窗体的设计进行开发和实施,主要通过如下几个功能模块来完成系统的具体的实施过程:
用户查询界面窗体:
通过查询界面用户可以对单词簿进行查询操作。
其界面如图2-3所示:
图2-3 查询界面
相关代码如下:
privatevoidbutton1_Click(objectsender,EventArgse)
{
stringsql="selectwordas单词,jieshias解a释fromTable1wherewordlike'%"+
textBox1.Text.Trim()+"%'";
ds=OperateDB.ExcuteDataSet(sql);
dataGridView1.DataSource=ds.Tables[0].DefaultView;
}
(2)生词录入窗体:
通过该界面用户可以把生词和解释录入到单词簿内,其界面如图2-4、图2-5、图2-6所示:
图2-4 录入成功界面图2-5 录入重复界面
图2-6 录入为空界面
其相关代码如下:
privatevoidbutton3_Click(objectsender,EventArgse)
{
if(textBox2.Text.Trim().Length!
=0)
{
stringsql="insertintoTable1(word,jieshi)Values('"
+textBox2.Text+"','"+textBox5.Text.Trim()+"')";
try
{
if(OperateDB.ExecuteNonQuery(sql)==1)
{
MessageBox.Show("添加成功!
");
}
else
{
MessageBox.Show("添加失败!
");
}
}
catch
{
MessageBox.Show("录入失败,此单词已被录入!
");
}
}
else
{
MessageBox.Show("单词不能为空!
");
}
}
(3)编辑与导出窗体:
在编辑窗体中用户可以对单词簿进行删除、修改和导出的操作,其界面如图2-7、图2-8、图2-9、图2-10所示:
图2-7 编辑主界面图2-8 修改成功界面
图2-9 删除界面图2-10 导出界面
其相关代码如下:
privatevoidbutton5_Click(objectsender,EventArgse)
{
Form2frm=newForm2();
frm.Show();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
SqlCommandBuildercb=newSqlCommandBuilder(da);
da.Update(ds);
MessageBox.Show("修改成功!
");
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
DialogResultdlResult=MessageBox.Show(this,"要删除这些信息吗?
","请确认",MessageBoxButtons.YesNo,MessageBoxIcon.Question);
if(dlResult==DialogResult.Yes)
{
intj=Fordve.SelectedRows.Count;
int[]l=newint[j];
inti;
for(i=0;i { l[i]=Fordve.SelectedRows[i].Index; } intk=0; while(k { ds.Tables[0].Rows[l[k]].Delete(); k++; } SqlCommandBuildercb=newSqlCommandBuilder(da); da.Update(ds); } } privatevoidForm2_Load(objectsender,EventArgse) { BindData(); } SqlDataAdapterda=newSqlDataAdapter(); DataSetds=newDataSet(); /// ///数据绑定 /// voidBindData() { stringsql="selectwordas单词,jieshias解释fromTable1"; SqlConnectionconn=newSqlConnection(OperateDB.ConnString); conn.Open(); SqlCommandcmd=newSqlCommand(sql,conn); da.SelectCommand=cmd; da.Fill(ds); Fordve.DataSource=ds.Tables[0]; conn.Close(); } SqlConnectionconn=newSqlConnection(OperateDB.ConnString); Savesave=newSave(); privatevoidbutton1_Click_1(objectsender,EventArgse) { //radioChecked(); //Class1.CheckOut(Fordve); try { //SqlConnectionconn=newSqlConnection(ConnString);//建立连接 conn.Open(); //异常处理 StreamWriterwrite=newStreamWriter(@"F: \danci.txt",false,Encoding.Default); //streamwrite实例化 SqlCommandcomm=newSqlCommand(); //command对? 象实例化 stringsplice;//将读出的数据进行连接 comm.Connection=conn; comm.CommandType=CommandType.Text; //comm.CommandText="selectcount(DanCi)fromInfodanci"; //inti=Convert.ToInt32(comm.ExecuteScalar()); comm.CommandText="select*fromTable1";//执行Dsql语句? if(comm.ExecuteScalar()==null) { MessageBox.Show("数据库无数据无法写入到文本中"); } SqlDataReaderRead=comm.ExecuteReader();//建立dqldatareader while(Read.Read()) { //intj; //将数据从数据库读出 //for(j=0;j //{ splice=Read[0].ToString().Trim()+""+'\t'+Read[1].ToString().Trim();//+'\t'+Read[5].ToString()+'\t'+Read[6].ToString(); write.WriteLine(splice);//将数据写入txt文档中 //} write.Flush();//清空缓存区 } MessageBox.Show("词汇已生成! "); Read.Close(); conn.Close(); } catch(Exceptionerr) { //捕获异常 MessageBox.Show(err.Message); } } (4)随机考查窗体: 用户可以对自己录入的单词进行考察,单击开始系统会自动从数据库里提取单词,如果回答正确就会自动进行下一测试,如果错误会给出提醒,其界面如图2-11和图2-12所示: 图2-11 考查正确界面图2-12 考查错误界面 其相关代码如下: delegatevoidMyDele(); stringhanyi; privatevoidbutton2_Click(objectsender,EventArgse) { MyDeledele=newMyDele(kaocha); dele.Invoke(); } publicvoidkaocha() { stringsql="selectTop1word,jieshifromTable1orderbynewid()"; SqlConnectioncon=newSqlConnection(OperateDB.ConnString); SqlCommandcmd=newSqlCommand(sql,con); con.Open(); SqlDataReaderdr=cmd.ExecuteReader(); while(dr.Read()) { label1.Text="单词"+(string)dr["word"].ToString().Trim(); hanyi=(string)dr["jieshi"].ToString().Trim(); } con.Close(); } privatevoidbutton3_Click(objectsender,EventArgse) { //hanyi.capacity(50); if(hanyi==textBox1.Text) { MessageBox.Show("答案正确! ","提示"); MyDeledelee=newMyDele(kaocha); delee.Invoke(); } else { if(MessageBox.Show("答案错误! 是否继续? ","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Error)==DialogResult.Yes) { MyDeledelee=newMyDele(kaocha); delee.Invoke(); } } textBox1.Text=""; } (4)软件说明窗体: 对本软件的简单介绍,其界面如图2-13所示: 图2-13 软件说明界面 3、课程设计总结或结论 经过了近两周的时间,利用C#.NET开发的个人单词簿程序终于完成了。 经过这次的课题的设计与实现,尽管遇到了很多很多难题,但是我也在这次课程设计中得到了许多经验、心得和锻炼。 这让我发现编译程序的过程其实就是不断解决问题的过程,从中也感受到了编写软件的乐趣,在实际开发过程中仍然会遇到不少问题,这时就要做到以下这两点: 一个是“查”,另一个则是“问”。 同时也让我体会到了无论何时都要以一个积极的心态去面对,心态决定一切,无论何时无论何地,我们都要保持一颗积极的心态去面对身边每一件事。 相信自己能行,不断努力,我们就能做到,有希望就能成功。 4、参考文献 [1]王振江等C#课程设计案例精编中国水利水电出版社2006.1 [2]马骏C#网络应用编程开发案例人民邮电出版社2008.3 课程设计 评语 课程设计 成绩 指导教师 (签字) 年月日 注: 此表必须在同一页面。 软件使用说明书 1、打开软件进入查询界面,输入要查询的单词点击查询即可。 2、点击生词录入,进入生词录入页面,在相应的框内输入单词和解释。 点击录入。 3、点击编辑与考查,进入编辑界面,点击编辑与导出,对单词簿进行编辑。 4、点击编辑与考查,点击考查进入考察界面。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 课程设计 个人 单词 软件设计 剖析
![提示](https://static.bdocx.com/images/bang_tan.gif)