Windows窗体程序课程总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《Windows窗体课程总结》报告
课设题目C#上机考试&邮件管理系统
学院
班级
学生姓名
学号
序号
指导教师
时间2020.01.09
1.需求分析
1.1任务概述
在整个课程学习过程中,总共进行了2个程序的上机测试,分别是C#语言程序设计上机考试系统和邮件用户管理信息系统。
前者不需要连接数据库,而后者需要。
1.2 需求说明
前者需完成主界面与初级试题的设计,共5道题,具备计时功能,具有提交打分功能
后者需连接SQL server数据库,并实现对用户信息进行增删查改的功能,程序共分为窗体设计部分与数据库设计部分。
1. 3 系统开发环境简介
Visual Studio 2017 & SQL server2008.
2.数据库设计
3.功能实现与系统测试
1.C#上机考试系统(不连接数据库)
上图为主界面,以下代码为题型选择-初级自测试题
private void初级自测试题PToolStripMenuItem_Click(object sender, EventArgs e) {
PrimaryExamForm PFrm = new PrimaryExamForm();//instance
PFrm.Show();//调用Show(),显示窗体PFrm
}
如下图所示
初级自测题窗体设计
在上述图片中主要为题目的设置,计时器设置,进度条设置和交卷评分系统设计
(1)计时器设置
private void PrimaryExamForm_Load(object sender, EventArgs e)
{
timer1.Enabled = true;
timer1.Interval = 1000;
}
(2)进度条设置
private void ToolStripProgressBar1_Click(object sender, EventArgs e)
{
btnGrade.Enabled = true;
}
(3)评分设置
private void BtnGrade_Click(object sender, EventArgs e)
{
ExamScore();//调用评分方法
}
private void ExamScore(
{
int Score = 0;
if (Anwser1.Text == "2000") Score = Score + 10;
if (Anwser21A.Checked) Score = Score + 10;
if (Anwser22C.Checked) Score = Score + 10;
if (Anwser23.Text == "PasswordChar") Score = Score + 10;
if (Anwser24.Text == "Text") Score = Score + 10;
if (Anwser3A.Checked&&Anwser3B.Checked&&
Anwser3C.Checked&&Anwser3D.Checked) Score = Score + 10;
timer1.Enabled = false;
btnGrade.Enabled = false;
Total.Text = Score.ToString();
}
2.C#上机考试系统(连接数据库)
上图为邮件用户管理信息系统的主界面,已实现增删改查功能。
具体连接数据库代码如下:
private void DBConnect()
{
//SqlConnection sqlCon = new SqlConnection("Data Source=localhost;Initial Catalog=EmailUserDB;Integrated Security=true");
strCon = "server=.;database=EmailUserDB;user=sa;pwd=123";
sqlCon = new SqlConnection(strCon);
}
private void CommonDataView()
{
try
{
DBConnect();
//SqlDataAdapter da = new SqlDataAdapter("select username as 用户名," + "password as 密码,realname as 真实姓名 from new", sqlCon);
SqlDataAdapter da = new SqlDataAdapter("select * from new1", sqlCon); DataSet ds = new DataSet();
da.Fill(ds, "new1");
ds.Tables["new1"].Rows[0]["username"].ToString();
DataGridView1.DataSource = ds.Tables[0];
CbUsername.DisplayMember = "username";
CbUsername.ValueMember = "username";
CbUsername.DataSource = ds.Tables[0].DefaultView;
}
catch(SystemException ex)
{
MessageBox.Show("错误: " + ex.Message, "错误提示",
MessageBoxButtons.OKCancel, rmation);
}
finally
{
if(sqlCon.State==ConnectionState.Open)
{
sqlCon.Close();
sqlCon.Dispose();
}
}
}
以下为增删改查的实现与代码:
//增加
private void BtnAdd_Click(object sender, EventArgs e)
{
DBConnect();
sqlCon.Open();
SqlCommand cmd = new SqlCommand("insert into new1 values('" + CbUsername.Text + "','" + TbPwd.Text + "','" + TbRealname.Text + "')", sqlCon); cmd.ExecuteNonQuery();
sqlCon.Close();
CommonDataView();
}
//更改
private void BtnUpdate_Click(object sender, EventArgs e)
{
DBConnect();
sqlCon.Open();
SqlCommand cmd = new SqlCommand("UPDATE new1 SET password='"+ TbPwd.Text+ "', Realname = '"+ TbRealname.Text+ "', username= '"+CbUsername.Text + "'where username='" + CbUsername.Text + "'", sqlCon);
cmd.ExecuteNonQuery();
sqlCon.Close();
CommonDataView();
//删除
private void BtnDelete_Click(object sender, EventArgs e)
{
DBConnect();
sqlCon.Open();
///SqlCommand cmd = new SqlCommand("delete from new where" + "username='"+ CbUsername.Text+"'",sqlCon);
SqlCommand cmd = new SqlCommand("delete from new1 where
username='"+CbUsername.Text+"'",sqlCon);
cmd.ExecuteNonQuery();
sqlCon.Close();
CommonDataView();
}
//查询
private void BtnQuery_Click(object sender, EventArgs e)
{
DBConnect();
sqlCon.Open();
SqlDataAdapter da=new SqlDataAdapter("select username ,password , realname from new1 WHERE username like '%"+ CbUsername.Text +"%'", sqlCon);
DataSet ds= new DataSet();
da.Fill(ds, "new1");
DataGridView1.DataSource = ds.Tables[0];
sqlCon.Close();
//SqlCommand cmd = new SqlCommand("delete from new1 where username='" + CbUsername.Text + "'", sqlCon);
}
4.结论与体会
自本学期开设C#课程是我首次接触窗体程序编写,在窗体设计上有很多组件可供自由搭配使用,窗体设计相对较为简单,在初次练习时,按要求设计第一个程序:C#上机考试系统,设计主界面与初级测试题时未遇到问题,在编写进度条与计时器时根据书上代码进行稍加修改,也能够完善功能。
第二个程序:邮件信息管理系统的设计需完成数据库中数据显示于窗体中,并能进行增删改查等功能操作,首先创建好数据库,然后进行窗体界面的设计,最后再进行事件的编写,首先编写数据库连接代码,考虑到数据库连接的几种方式,在此因程序较小并未考虑到数据库连接安全性问题,希望在日后的学习中加以完善,其次是增删改查的逐步实现,并加以测试,经过不断地调试与删改,程序最终得以完善。
在本学期的C#课程学习过程中,我逐步学会了如何设计一个完整的,具有实用性的可连接数据库的窗体应用程序,并在不断犯错与改正中提升自我,只有不断地阅读与编写代码,并进行实战开发,写出真正实用且为大家所需要的程序,才能真正感受到编程的魅力。
在今后的学习中,必须有强大的自律能力和每日通宵写代码的精神,才能够真正融入到编程中去,每日一小项目,10日一大项目,只有经受高强度与漫长的程序编写之路,通过长年累月的艰苦奋斗,才能真正有所成就,无论是在学习上,还是在社会工作中都能够学有所成,如鱼得水,在编程世界打开一扇新的大门,为人类科技文明做出点滴贡献。
长江大学工程技术学院课程设计报告评阅意见。