Windows窗体程序课程总结

  • 格式:doc
  • 大小:1012.50 KB
  • 文档页数:12

《Windows窗体课程总结》报告课设题目C#上机考试&邮件管理系统学院班级学生姓名学号序号指导教师时间2020.01.091.需求分析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();//instancePFrm.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 whereusername='"+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#上机考试系统,设计主界面与初级测试题时未遇到问题,在编写进度条与计时器时根据书上代码进行稍加修改,也能够完善功能。

第二个程序:邮件信息管理系统的设计需完成数据库中数据显示于窗体中,并能进行增删改查等功能操作,首先创建好数据库,然后进行窗体界面的设计,最后再进行事件的编写,首先编写数据库连接代码,考虑到数据库连接的几种方式,在此因程序较小并未考虑到数据库连接安全性问题,希望在日后的学习中加以完善,其次是增删改查的逐步实现,并加以测试,经过不断地调试与删改,程序最终得以完善。