C#课程方案设计书.docx

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

C#课程方案设计书.docx

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

C#课程方案设计书.docx

C#课程方案设计书

封面

作者:

PanHongliang

仅供个人学习

**学院

课程设计说明书

(2012/2013学年第一学期)

课程名称:

软件程序设计

题目:

个人单词簿

专业班级:

学生姓名:

放羊娃

学号:

指导教师:

设计周数:

2周

设计成绩:

2013年1月18日

目录

1目的2

2设计部分2

2.1系统分析2

2.2系统设计2

2.2.1个人单词簿系统的功能模块2

2.2.2单词簿软件总体结构2

2.2.3数据库系统设计4

3系统流程图4

4设计步骤4

4.1建立数据库5

1.1建立表5

4.2登录界面设计(frmLogin)5

4.3主界面设计(frmMain)5

4.3.1主菜单栏5

4.3.2子菜单栏5

4.3.3在主界面添加背景图片5

4.4数据库连接7

4.5设计浏览窗口7

4.6添加内容窗口7

4.7查询生词窗口8

4.8生词导出功能窗口10

4.9生词考查测试栏12

4.9.1进入测试模式12

5程序调用的类14

6课程设计总结16

7参考文献17

1目的

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

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

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

2设计部分

2.1系统分析

个人单词薄系统所需要实现的功能是:

1、根据用户名和密码进入单词薄;

2、登录用户可完成对陌生单词的添加、导出、查询和考查功能;

3、使用Windows窗体和C#语言来进行软件设计;由于涉及到了用户登录,生词的添加、查询、考查等相关操作,所以需要用到SQLSERVER数据库;

4、在完成以上功能以后,添加了可以联网查词的功能。

2.2系统设计

2.2.1个人单词簿系统的功能模块

用户信息模块:

用来管理用户的登录;

主界面:

用来添加生词、查询生词、导出生词和对生词的考查测试。

添加生词模块:

添加用户需要的生词信息;

查询生词模块:

用户根据需要查询生词信息;

生词导出模块:

导出生词;

生词考查模块:

通过考查测试用户记忆生词情况。

2.2.2单词簿软件总体结构

上图为:

个人单词簿系统的总体结构

2.2.3数据库系统设计

用户信息表(InfoUser)

列名

数据类型

长度

是否为主键

是否可为空

注释

English

nvarchar

20

英语单词

Leixing

nvarchar

20

单词类型

Chinese

nvarchar

20

汉语解释

列名

数据类型

长度

是否为主键

是否可为空

注释

UserName

nvarchar

20

用户名

UserPwd

nvarchar

20

密码

生词信息表(cihui)

3系统流程图

上图为:

用户使用流程图

4程序设计步骤

4.1建立数据库

建立两个表:

添加用户信息表(InfoUser)、生词信息表(danci)。

4.2登录界面设计(frmLogin)

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

用户名或密码错误;用户名和密码默认为:

admin与1。

代码为:

privatevoidbtnLogin_Click(objectsender,EventArgse)

{

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

if(OperateDB.ExecuteReader(sql))

{

frmMainfrm=newfrmMain()。

frm.Show()。

this.Hide()。

}

else

{

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

}

调试结果:

4.3主界面设计(frmMain)

4.3.1主菜单栏

词吧

浏览

生词考查

4.3.2子菜单栏

在浏览窗口下有生词添加、查找、导出等操作

4.3.3在主界面添加背景图片

代码为:

publicfrmMain()

{

InitializeComponent()。

}

privatevoid退出ToolStripMenuItem_Click(objectsender,EventArgse)

{

Application.Exit()。

}

privatevoidtoolStripButton1_Click(objectsender,EventArgse)

{

frmAddfrm=newfrmAdd()。

frm.Show()。

}

privatevoidfrmMain_FormClosing(objectsender,FormClosingEventArgse)

{

Application.Exit()。

}

privatevoidtabPage2_Click(objectsender,EventArgse)

{

}

//publicSQLsql=newSQL()。

privatevoidtoolStripButton3_Click(objectsender,EventArgse)

{

Form1frm=newForm1()。

frm.Show()。

}

privatevoidtoolStripButton4_Click(objectsender,EventArgse)

{

frmShuchufrm=newfrmShuchu()。

frm.Show()。

}

privatevoidlinkLabel1_LinkClicked(objectsender,LinkLabelLinkClickedEventArgse)

{

System.Diagnostics.Process.Start("")。

}

privatevoid退出ToolStripMenuItem2_Click(objectsender,EventArgse)

{

Application.Exit()。

}

privatevoidfrmMain_SizeChanged(objectsender,EventArgse)

{

if(this.WindowState==FormWindowState.Minimized)

{

this.ShowInTaskbar=false。

}

}

privatevoidnotifyIcon1_DoubleClick(objectsender,EventArgse)

{

this.Show()。

if(this.WindowState==FormWindowState.Minimized)

{

this.WindowState=FormWindowState.Normal。

this.Activate()。

this.ShowInTaskbar=true。

}

}

调试结果:

4.4数据库连接

测试能否连接到数据库

4.5设计浏览窗口

添加生词

查询生词

导出生词

4.6添加单词内容窗口

英语单词

单词类型

汉语解释

按钮:

添加

代码为:

privatevoidbtnOk_Click(objectsender,EventArgse)

{

stringsql="insertintodanci(English,Leixing,Chinese)Values('"+txtEn.Text+"','"+txtLe.Text+"','"+txtCh.Text+"')"。

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

{

MessageBox.Show("添加成功!

")。

}

else

{

MessageBox.Show("添加失败!

")。

}

}

调试结果:

4.7查询生词窗口

绑定生词信息表到窗口,按查询按钮进行查询。

代码为:

privatevoidbutton1_Click(objectsender,EventArgse)

{

stringsql="selectEnglish,Leixing,ChinesefromdanciwhereEnglishlike'%"+textBox1.Text.Trim()+"%'"。

ds=OperateDB.ExcuteDataSet(sql)。

dataGridView1.DataSource=ds.Tables[0].DefaultView。

}

调试结果:

4.8生词导出功能窗口

添加导出地址,按导出按钮导出。

程序为:

privatevoidbtnShouchu_Click(objectsender,EventArgse)

{

try

{

//SqlConnectionconn=newSqlConnection(ConnString)。

//建立连接

conn.Open()。

StreamWriterwrite=newStreamWriter(txtShuochu.Text,false,Encoding.Default)。

//streamwrite实例化

SqlCommandcomm=newSqlCommand()。

//command对象实例化

stringsplice。

comm.Connection=conn。

comm.CommandType=CommandType.Text。

//comm.CommandText="selectcount(DanCi)fromInfodanci"。

comm.CommandText="select*fromdanci"。

if(comm.ExecuteScalar()==null)

{

MessageBox.Show("数据库无数据无法写入到文本中")。

}

SqlDataReaderRead=comm.ExecuteReader()。

while(Read.Read())

{

splice=Read[0].ToString().Trim()+""+'\t'+Read[1].ToString().Trim()+""+'\t'+Read[2].ToString().Trim()。

write.WriteLine(splice)。

/

write.Flush()。

/

}

MessageBox.Show(@"词汇已在"+txtShuochu.Text+"生成!

")。

Read.Close()。

conn.Close()。

}

catch(Exceptionerr)

{

MessageBox.Show(err.Message)。

}

}

privatevoidbtnLiulan_Click(objectsender,EventArgse)

{

openFileDialog1.ShowDialog()。

txtShuochu.Text=openFileDialog1.FileName。

txtShuochu.Text=openFileDialog1.FileName。

openFileDialog1.Multiselect=true。

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

{

try

{

txtShuochu.Text=openFileDialog1.FileName。

}

catch(Exceptionex)

{

throw(ex)。

}

}

}

调试结果:

4.9生词考查测试栏

显示单词

添写该单词解释

按钮有:

开始测试和提交

4.9.1点击窗口的“开始测试”按钮,进入测试模式

代码为:

delegatevoidMyDele()。

stringhanyi。

privatevoidbutton1_Click_1(objectsender,EventArgse)

{

MyDeledele=newMyDele(kaocha)。

dele.Invoke()。

}

publicvoidkaocha()

{

stringsql="selectTop1English,Chinesefromdanciorderbynewid()"。

SqlConnectioncon=newSqlConnection(OperateDB.ConnString)。

SqlCommandcmd=newSqlCommand(sql,con)。

con.Open()。

SqlDataReaderdr=cmd.ExecuteReader()。

while(dr.Read())

{

label1.Text="单词:

"+(string)dr["English"].ToString().Trim()。

hanyi=(string)dr["Chinese"].ToString().Trim()。

}

con.Close()。

}

privatevoidbutton2_Click(objectsender,EventArgse)

{

if(hanyi==textBox1.Text)

{

MessageBox.Show("答案正确!

","提示")。

MyDeledelee=newMyDele(kaocha)。

delee.Invoke()。

}

else

{

if(MessageBox.Show("答案错误!

是否继续?

","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Error)==DialogResult.No)

{

MyDeledelee=newMyDele(kaocha)。

delee.Invoke()。

}

}

}

调试结果:

5程序调用的类:

publicclassOperateDB

{

///

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

///

publicstaticstringConnString

{

get

{

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

{

returnsr.ReadLine()。

}

}

}

publicstaticvoidPrepareCommand(SqlCommandcmd,SqlConnectionconn,stringcmdText)

{

if(conn.State!

=ConnectionState.Open)

{

conn.Open()。

}

cmd.Connection=conn。

cmd.CommandType=CommandType.Text。

cmd.CommandText=cmdText。

}

///

///执行数据读取操作

///

///SQL语句

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

publicstaticboolExecuteReader(stringcmdText)

{

using(SqlConnectionconn=newSqlConnection(ConnString))

{

SqlCommandcmd=newSqlCommand()。

PrepareCommand(cmd,conn,cmdText)。

SqlDataReaderdr=cmd.ExecuteReader()。

returndr.Read()。

}

}

///

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

///

///SQL语句

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

publicstaticintExecutNonQuery(stringcmdText)

{

using(SqlConnectionconn=newSqlConnection(ConnString))

{

SqlCommandcmd=newSqlCommand()。

PrepareCommand(cmd,conn,cmdText)。

returncmd.ExecuteNonQuery()。

}

}

///

///执行数据操作,将结果保存在数据集中。

///

///SQL语句

///数据集对象

publicstaticDataSetExcuteDataSet(stringcmdText)

{

using(SqlConnectionconn=newSqlConnection(ConnString))

{

SqlCommandcmd=newSqlCommand()。

PrepareCommand(cmd,conn,cmdText)。

SqlDataAdapterda=newSqlDataAdapter(cmd)。

DataSetds=newDataSet()。

da.Fill(ds)。

returnds。

}

}

}

5课程设计总结

在学校的按排下,我们信息专业有两周的软件课程设计。

这次课程设计要求我们运用所学的c#和sql数据库知识来做一个实用的小软件,我做的是个人单词簿软件。

在做软件的过程中我遇到了许多问题,比如在安装、调试软件过程中总是不能连接,在窗口设计过程中结窗口属性的使用不熟练、准确,代码的编写后不能解决错误等,最后在同学和老师的帮助下,我经过努力的调试,终于把它完成。

这次课程设计实践让我更好的加深了对所学理论知识的理解,在实践中解决问题的过程中还学到了课本是没有的知识。

以后我要多实践理论,只有这样才能学有致用,提高自己。

6参考文献

[1]刘甫迎、刘光会、王蓉.C#程序设计教程(第2版).北京:

电子工业出版社,2008 

[2]MicrosoftVisualC#2008help,2008

[3]李兰友杨晓光.VisualC#.NET程序设计.北京:

清华大学北方交通大学出版社,2004

 [4]王昊亮,李刚等.VisualC#程序设计教程.北京:

清华大学出版社,2003

课程设计

评语

课程设计

成绩

指导教师

(签字)

年月日

版权申明

本文部分内容,包括文字、图片、以及设计等在网上搜集整理。

版权为潘宏亮个人所有

Thisarticleincludessomeparts,includingtext,pictures,anddesign.CopyrightisPanHongliang'spersonalownership.

用户可将本文的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。

除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人的书面许可,并支付报酬。

Usersmayusethecontentsorservicesofthisarticleforpersonalstudy,researchorappreciation,andothernon-commercialornon-profitpurposes,butatthesametime,theyshallabidebytheprovisionsofcopyrightlawandotherrelevantlaws,andshallnotinfringeuponthelegitimaterightsofthiswebsiteanditsrelevantobligees.Inaddition,whenanycontentorserviceofthisarticleisusedforotherpurposes,writtenpermissionandremunerationshallbeobtainedfromthepersonconcernedandtherelevantobligee.

转载或引用本文内容必须是以新闻性或资料性公共免费信息为使用目的的合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任。

Reproductionorquotationofthecontentofthisarticlemustbereasonableandgood-faithcitationfortheuseofnewsorinformativepublicfreeinformation.Itshallnotmisinterpretormodifytheoriginalintentionofthecontentofthisarticle,andshallbearlegalliabilitysuchascopyright.

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

当前位置:首页 > 农林牧渔 > 林学

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

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