第二部分 实训指导
【内容提要】:本部分包含基础实训和课程设计。涵盖了具体任务、基础实训学生报告范例,课程设计学生报告范例
《C#程序设计》项目实训/设计指导书
一、项目实训的目的
《C#程序设计》项目实训是在学习《C#程序设计》理论课的基础上进行的一个实践性教学环节。本课程实训是配合《C#程序设计》课程展开的,实训中除应用到本门课程的基本知识外,课程设计中还要求学生自学一些与课程相关的更多知识,并能灵活的运用所学知识,真正将知识转化为实际的技能。
总体要实现以下目标:
1、让学生运用已学过的知识编写程序解决问题,及综合运用已学过的理论知识进行综合性的实验,巩固和加深对《C#程序设计》课程中基本理论知识的理解和掌握;
2、通过对小型系统的设计,使学生掌握系统开发的主要步骤,了解项目开发的过程,为毕业后适应团队合作开发模式打下基础;
3、通过解决实验中出现的错误和问题,培养、训练学生的分析和解决问题的能力;
4、提高学生的创造能力和与团队其他成员交往和协作开发软件的能力,提高今后参与开发稍大规模实际软件项目和探索未知领域的能力和自信心。
二、项目实训的基本内容要求
1、 理解面向对象编程思想;
2、 理解.NET可视化编程思想;
3、 掌握C#.NET中基本控件的常用属性、事件、方法;
4、 掌握面向对象程序开发的步骤及程序调试方法和技巧;
5、 掌握C#.NET数据库开发技术;
6、 本实训为期二周,内容含基础设计及课程设计两项。
三、项目实训的纪律要求
1、 课程设计项目以4人为一组,完成实训指导书要求的实训内容,设计结束时按时上交一份工整清晰的《课程设计报告书》(可打印)。
2、基础实训不分组,个人完成,结束时上交实训报告(需手写)。
3、 端正学习态度,遵守机房制度,认真完成实训任务。
4、 由值日班干部负责学生考勤,授课教师负责监督课堂纪律。
四、考核内容与方式
1、课程设计成绩分为优、良、中、及格和不及格五等;
2、基础设计类成绩分为良、中、及格和不及格四等;
3、成绩评定的依据有设计文档资料、具体实现设计方案的程序、答辩水平和平时表现。具体的评分标准如下:
注:基础设计类不含团队合作项
提交的资料
(1)软件:软件需提供源程序,要求能正常运行;对于程序中未能实现的部分需要加以说明。
(2)文档:任务书、设计报告。基础设计的实训报告要求使用学校统一制定的课程设计纸;课程设计报告可以参照教师提供的报告范例打印。文档中必须包含课程设计的任务介绍、实现方法及小结等。
五、实训教学内容与学时分配
(一)时间分配
(二)课程设计内容
4人一组,从下列选题中选择一题实现。
1、多文档文本编辑器
2、大学生新生报到系统
3、通讯录管理系统
4、上机考试系统
5、房产中介管理系统
6、糖酒公司销售管理系统
7、药店管理系统
8、图书管理信息系统
9、游戏设计
10、其它(自己寻找课题,需经指导教师认可)
(三)基础设计内容
每人一组,具体题目每日分发。
六、其它注意事项
1、请大家注意实训时间安排,准时参加实训设计,遵守学院考勤制度,不得迟到、早退。实训指导老师每天要进行考勤。如有事必须履行请假手续,写书面请假条,班主任签字同意后,交实训指导老师处。
2、上机时间安排实训安排表。
项目实例:计算机上机考试系统报告案例
C#课程设计报告
20##学年第 二 学期
课程名称: C#语言程序设计
设计题目: 计算机上机考试系统
组长:
成员:
专业班级
指导教师
20## 年 6 月 25 日
目录
内容摘要……………………………………………………………………………...3
第一章 需求分析…………………………………………………………………4
1.需求报告……………………………………………………………………………4
2.应用背景……………………………………………………………………………4
3.系统设计……………………………………………………………………………4
4.学生考试系…………………………………………………………………………4
第二章 概要设计………………………….……………………………………5
1.上机考试系统的登录流程图………………………………………………………5
2.系统主要窗体………………………………………………………………………5
第三章 详细设计………………………………………………………….…...10
1.考试系统界面如下………………………………………………………………...10
2.管理员题库管理界面如下………………………………………………………….6
3.单选题、多选题、判断题的界面和图5相似,管理员查看数据库中的单选题、多选题也如下图………………………………………………………………………8
4..数据库设计………………………………………………………………………..23
第四章 程序调试…………………………………………………………….,27
1.测试程序…………………………………………………………………………..,27
2.遇见的问题……………………………………………………………………...…27
第五章 个人总结……………………………………………………………..28
第六章 任务分配……………………………………………………………..28
附:
内容摘要
这次C#课程设计,我们组课程设计的题目是“计算机上机考试系统”。通过本次实训,我们的目的是尽量做到以下几点:
1、 通过系统设计进一步巩固和提高我们基础理论和专业知识;
2、进一步提高我们数据库设计、数据库编程能力;
3、了解管理信息系统的一般设计和实现思路,熟悉和掌握软件设计和实现的一般方法。
4、培养我们掌握解决实际问题的基本技能;
5、促使我们学习和获取新知识,掌握自我学习的能力;
不过,现在让我们先了解一下“上机考试系统”的应用背景及其特点,最后了解它要实现的具体功能。C#上机考试系统的应用背景为:1. C#语言程序设计课程在期末考试时有300名左右同学参加考试,考试分为单选、多选、判断等多种题型,单选题从试题库中随机抽取25题(50分),多选从试题库中抽取10题(30分),判断题20题(20分)。
2. 单选题数据包括:单选题编号、单选题题目、选项A、选项B、选项C、选项D及正确答案等。
3. 多选题数据包括:多选题编号、题目、选项A、选项B、选项C、选项D及正确答案等。
4. 判断题数据包括:判断题编号、题目、正确答案等。
5.考生数据包括:考生号、密码、姓名、班级、考试时间、成绩等。
6. 管理员数据包括:管理员编号、登录名、密码等信息。
本次实训利用C#设计的“上机考试系统”的最大特点是:方便考生和管理员的快速登陆、登陆界面很有创意、有实用价值。最终实现的系统目标为:设计一个能够满足上机考试存储和访问要求的系统,并且能够实现对试题数据、考生数据及系统管理等数据管理的系统。
该系统的总体任务是实现一个《C#语言程序设计》上机考试系统,主要完成以下几个功能。1. 试题库数据管理部分(管理员)
单选题数据管理:能够实现对单选题数据的浏览、添加、修改和删除。
多选题数据管理:能够实现对多选题数据的浏览、添加、修改和删除。
判断题数据管理:能够实现对判断题数据的浏览、添加、修改和删除。
考生数据的管理:能够实现对考试书籍的浏览、添加、修改和删除。
学生成绩管理:能够浏览已考试学生成绩,并统计考试成绩情况。
2. 计算机考试系统(学生)
学生在进入系统后能够自动生成考试试卷,并进行测试,在考试结束后提交所有答案并计算考试成绩。
第一章 需求分析
1.需求报告
本课体题目是:上机考试系统
有登录界面,学生考试系统,管理员登录系统三部分组成。管理员可以通过输入用户名、密码,进入管理员系统,能对资料库进行显示、添加、删除和修改等功能操作。学生能通过输入登录名、密码、姓名和班级等信息,进入考试系统进行考试,最终在二小时之内完成考试,否者系统将自动递交试卷。考生考试的信息会保存到指定的数据库中,因此还需要access数据库来实现上述要实现的功能。
2.应用背景如下:
1. C#语言程序设计课程在期末考试时有300名左右同学参加考试,考试分为单选、多选、判断等多种题型,单选题从试题库中随机抽取25题(50分),多选从试题库中抽取10题(30分),判断题20题(20分)。
2. 单选题数据包括:单选题编号、单选题题目、选项A、选项B、选项C、选项D及正确答案等。
3. 多选题数据包括:多选题编号、题目、选项A、选项B、选项C、选项D及正确答案等。
4. 判断题数据包括:判断题编号、题目、正确答案等。
5.考生数据包括:考生号、密码、姓名、班级、考试时间、成绩等。
6. 管理员数据包括:管理员编号、登录名、密码等信息。
3. 系统设计
1. 管理功能:首先进入登陆界面,用户分为同学和管理员,管理员要通过用户名和口令进行登录,而同学也是一样,要通过口令进行登录。
2. 管理员对信息的查询
管理员用户登陆后,管理员可以通过对题目的调出功能可以查看到题库的信息。可以用ADO.NET来对ACCESS进行数据的添加、删除、修改、插入,还有就是根据用户的要求可以对题目进行第一题、上一题、下一题和最后一题的操作。
4.学生考试系统
学生用户登陆后,学生进入的是考试管理系统,可以用ADO.NET来对ACCESS进行数据的开始考试、上一题、下一题、提交的操作,在提交中可以进行分数的统计。可以当时查看自己这次能够得到多少分数。
第二章 概要设计
1.上机考试系统的登录流程图如下:
图1
图1:登录流程图
2.系统主要窗体
我们这一组做的课程设计是上机考试系统,它大概分三个主要窗体界面:登录界面、考试试题窗体界面、题目库窗体界面。三个窗体分别如下图2所示:
图2:用户和管理员登录界面,
它主要完成的功能是输入不同的用户名和密码,可以登录到考生和管理员不同的界面。这里不详细介绍了。
此窗体代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace 计算机上机考试系统
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (button1.Text == "学生登陆")
{
button1.Text = "确定";
button2.Text = "管理员登陆";
label2.Visible = true;
label3.Visible = true;
label4.Visible = true;
label5.Visible = true;
textBox1.Visible = true;
textBox2.Visible = true;
textBox3.Visible = true;
textBox4.Visible = true;
button3.Visible = true;
}
else
{
button1.Text = "学生登陆";
label2.Visible = false;
label3.Visible = false;
label4.Visible = false;
label5.Visible = false;
textBox1.Visible = false;
textBox2.Visible = false;
textBox3.Visible = false;
textBox4.Visible = false;
button3.Visible = false;
if (textBox1.Text == "" || textBox2.Text == "" || textBox3.Text == "" || textBox4.Text == "")
{
MessageBox.Show("信息不能为空!");
}
else
{
试题 shiti = new 试题(textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text);
shiti.Show();
textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = "";
textBox4.Text = "";
}
}
}
private void button2_Click(object sender, EventArgs e)
{
if (button2.Text == "管理员登陆")
{
button1.Text = "学生登陆";
button2.Text = "确定";
label2.Visible = true;
label3.Visible = true;
label4.Visible = false;
label5.Visible = false;
textBox1.Visible = true;
textBox2.Visible = true;
textBox3.Visible = false;
textBox4.Visible = false;
button3.Visible = true;
}
else
{
button2.Text = "管理员登陆";
label2.Visible = false;
label3.Visible = false;
label4.Visible = false;
label5.Visible = false;
textBox1.Visible = false;
textBox2.Visible = false;
textBox3.Visible = false;
textBox4.Visible = false;
button3.Visible = false;
int count;
string conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=实训.mdb";
OleDbConnection dbConn = new OleDbConnection(conn);
dbConn.Open();
string sql = "select count(*) from 用户表 where LoginName='" + textBox1.Text + "' and Password='" + textBox2.Text + "'";
OleDbCommand rd = new OleDbCommand(sql, dbConn);
count = Convert.ToInt32(rd.ExecuteScalar());
if (count == 0)
{
MessageBox.Show("该用户不存在或密码不正确");
}
else
{
查询 chaxun = new 查询();
chaxun.Show();
}
textBox1.Text = "";
textBox2.Text = "";
dbConn.Close();
}
}
private void button3_Click(object sender, EventArgs e)
{
button1.Text = "学生登陆";
button2.Text = "管理员登陆";
label2.Visible = false;
label3.Visible = false;
label4.Visible = false;
label5.Visible = false;
textBox1.Visible = false;
textBox2.Visible = false;
textBox3.Visible = false;
textBox4.Visible = false;
button3.Visible = false;
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void label1_Click(object sender, EventArgs e)
{
}
}
}
第三章 详细设计
1.考试系统界面如下图3所示:
图3:考生考试的界面
此窗体代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace 计算机上机考试系统
{
public partial class 试题 : Form
{
public static int a = 0;
public static int b = 0;
public static int c = 0;
private int zongfen = 0;
private int xiaoshi = 2;
private int fenzhong = 0;
private int miao = 0;
private int xiaoshi1 = 0;
private int fenzhong1 = 0;
private int miao1 = 0;
private string shijian = "";
private string xuehao = "";
private string mima = "";
private string name = "";
private string banji="";
static string conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=实训.mdb";
static OleDbConnection dbconn = new OleDbConnection(conn);
public 试题()
{
InitializeComponent();
}
public 试题(string xuehao,string mima,string name,string banji)
{
this.xuehao = xuehao;
this.mima = mima;
this.name = name;
this.banji = banji;
InitializeComponent();
}
private void 单选ToolStripMenuItem_Click(object sender, EventArgs e)
{
计算机上机考试系统.单选 m = new 单选(this );
单选 danxuan = new 单选(this );
danxuan.Show();
}
private void 多选ToolStripMenuItem_Click(object sender, EventArgs e)
{
计算机上机考试系统.多选 n = new 多选(this);
多选 duoxuan = new 多选(this );
duoxuan.Show();
}
private void 判断ToolStripMenuItem_Click(object sender, EventArgs e)
{
计算机上机考试系统.判断 m = new 判断(this);
判断 panduan = new 判断(this);
panduan.Show();
}
private void 提交答案ToolStripMenuItem_Click(object sender, EventArgs e)
{
timer1.Enabled = false;
zongfen = 2*a + 3*b + 2*c;
dbconn.Open();
string sq = string.Format("Insert into 考生数据表(考生号,密码,姓名,班级,考试时间,成绩)values(\'" + xuehao.ToString() + "\',\'" + mima.ToString() + "\',\'" + name.ToString() + "\',\'" + banji.ToString() + "\',\'"+shijian+"\',\'" + zongfen.ToString() +"\')");
OleDbCommand con = new OleDbCommand(sq, dbconn);
con.ExecuteNonQuery();
dbconn.Close();
this.Close();
}
private void 试题_Load(object sender, EventArgs e)
{
timer1.Enabled = true;
if (fenzhong == 0&&xiaoshi!=0)
{
xiaoshi = xiaoshi - 1;
fenzhong = 60;
}
if (miao == 0&&fenzhong!=0)
{
fenzhong = fenzhong - 1;
miao = 60;
}
miao--;
miao1++;
if (miao1 == 60)
{
miao1 = 0;
fenzhong1 = fenzhong1 + 1;
}
if (fenzhong1 == 60)
{
fenzhong1 = 0;
xiaoshi1 = xiaoshi1 + 1;
}
shijian = System.DateTime.Now.ToLongDateString() + "\r" + xiaoshi1.ToString() + ":" + fenzhong1.ToString() + ":" + miao1.ToString();
toolStripMenuItem1.Text = xiaoshi.ToString() + ":" + fenzhong.ToString() + ":" + miao.ToString();
if (xiaoshi == 0 && fenzhong == 0 && miao == 0)
{
timer1.Enabled = false;
zongfen = a + b + c;
dbconn.Open();
string sq = string.Format("Insert into 考生数据表(考生号,密码,姓名,班级,考试时间,成绩)values(\'" + xuehao.ToString() + "\',\'" + mima.ToString() + "\',\'" + name.ToString() + "\',\'" + banji.ToString() + "\',\'" + shijian + "\',\'" + zongfen.ToString() + "\')");
OleDbCommand con = new OleDbCommand(sq, dbconn);
con.ExecuteNonQuery();
dbconn.Close();
this.Close();
}
}
}
}
单击相应的选项,可以进入相应的界面进行答题。
图3是考生考试时要登录的界面。它的主要对象、属性、设置如下:
2.管理员题库管理界面如下:
\
图4:管理员登录界面
,查看单选题、多选题、判断题、考生信息、系统管理信息的操作界面。
此窗体代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace 计算机上机考试系统
{
public partial class 查询 : Form
{
public 查询()
{
InitializeComponent();
}
private void 多选ToolStripMenuItem_Click(object sender, EventArgs e)
{
计算机上机考试系统.多选查询 a = new 多选查询(this);
多选查询 duo = new 多选查询(this);
duo.Show();
}
private void 单选ToolStripMenuItem_Click(object sender, EventArgs e)
{
计算机上机考试系统.单选查询 a = new 单选查询 (this);
单选查询 danxuan = new 单选查询(this);
danxuan.Show();
}
private void 判断ToolStripMenuItem_Click(object sender, EventArgs e)
{
计算机上机考试系统.判断查询 a = new 判断查询(this);
判断查询 pan = new 判断查询(this);
pan.Show();
}
private void 考生信息管理ToolStripMenuItem_Click(object sender, EventArgs e)
{
计算机上机考试系统.考生信息管理 a = new 考生信息管理(this);
考生信息管理 kaosheng = new 考生信息管理(this);
kaosheng.Show();
}
private void 系统管理ToolStripMenuItem_Click(object sender, EventArgs e)
{
计算机上机考试系统.系统管理 a = new 系统管理(this);
系统管理 xitongguanli = new 系统管理(this);
xitongguanli.Show();
}
private void 单选ToolStripMenuItem_Click_1(object sender, EventArgs e)
{
计算机上机考试系统.单选查询 a = new 单选查询(this);
单选查询 danxuan = new 单选查询(this);
danxuan.Show();
}
private void 查询_Load(object sender, EventArgs e)
{
}
}
}
通过选择各项,可以显示、添加、删除、修改显示的内容。
图4用到的属性如下:
3.单选题、多选题、判断题的界面和图5相似,管理员查看数据库中的单选题、多选题也如图5所示:
图5:查看数据库中的题目
此窗体代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace 计算机上机考试系统
{
public partial class 试题 : Form
{
public static int a = 0;
public static int b = 0;
public static int c = 0;
private int zongfen = 0;
private int xiaoshi = 2;
private int fenzhong = 0;
private int miao = 0;
private int xiaoshi1 = 0;
private int fenzhong1 = 0;
private int miao1 = 0;
private string shijian = "";
private string xuehao = "";
private string mima = "";
private string name = "";
private string banji="";
static string conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=实训.mdb";
static OleDbConnection dbconn = new OleDbConnection(conn);
public 试题()
{
InitializeComponent();
}
public 试题(string xuehao,string mima,string name,string banji)
{
this.xuehao = xuehao;
this.mima = mima;
this.name = name;
this.banji = banji;
InitializeComponent();
}
private void 单选ToolStripMenuItem_Click(object sender, EventArgs e)
{
计算机上机考试系统.单选 m = new 单选(this );
单选 danxuan = new 单选(this );
danxuan.Show();
}
private void 多选ToolStripMenuItem_Click(object sender, EventArgs e)
{
计算机上机考试系统.多选 n = new 多选(this);
多选 duoxuan = new 多选(this );
duoxuan.Show();
}
private void 判断ToolStripMenuItem_Click(object sender, EventArgs e)
{
计算机上机考试系统.判断 m = new 判断(this);
判断 panduan = new 判断(this);
panduan.Show();
}
private void 提交答案ToolStripMenuItem_Click(object sender, EventArgs e)
{
timer1.Enabled = false;
zongfen = 2*a + 3*b + 2*c;
dbconn.Open();
string sq = string.Format("Insert into 考生数据表(考生号,密码,姓名,班级,考试时间,成绩)values(\'" + xuehao.ToString() + "\',\'" + mima.ToString() + "\',\'" + name.ToString() + "\',\'" + banji.ToString() + "\',\'"+shijian+"\',\'" + zongfen.ToString() +"\')");
OleDbCommand con = new OleDbCommand(sq, dbconn);
con.ExecuteNonQuery();
dbconn.Close();
this.Close();
}
private void 试题_Load(object sender, EventArgs e)
{
timer1.Enabled = true;
if (fenzhong == 0&&xiaoshi!=0)
{
xiaoshi = xiaoshi - 1;
fenzhong = 60;
}
if (miao == 0&&fenzhong!=0)
{ fenzhong = fenzhong - 1;
miao = 60; }
miao--; miao1++;
if (miao1 == 60)
{ miao1 = 0;
fenzhong1 = fenzhong1 + 1; }
if (fenzhong1 == 60)
{ fenzhong1 = 0;
xiaoshi1 = xiaoshi1 + 1; }
shijian = System.DateTime.Now.ToLongDateString() + "\r" + xiaoshi1.ToString() + ":" + fenzhong1.ToString() + ":" + miao1.ToString();
toolStripMenuItem1.Text = xiaoshi.ToString() + ":" + fenzhong.ToString() + ":" + miao.ToString();
if (xiaoshi == 0 && fenzhong == 0 && miao == 0)
{ timer1.Enabled = false;
zongfen = a + b + c;
dbconn.Open();
string sq = string.Format("Insert into 考生数据表(考生号,密码,姓名,班级,考试时间,成绩)values(\'" + xuehao.ToString() + "\',\'" + mima.ToString() + "\',\'" + name.ToString() + "\',\'" + banji.ToString() + "\',\'" + shijian + "\',\'" + zongfen.ToString() + "\')");
OleDbCommand con = new OleDbCommand(sq, dbconn);
con.ExecuteNonQuery();
dbconn.Close();
this.Close();
}
}
}
}
图5是判断题的做题界面,文本框里显示的是题目内容,做题是通过单机分组框里的单选按钮来完成。命令按钮“上一题”、命令按钮“下一题”分别用来实现上一题内容和下一题的内容。命令按钮“返回”用来完成上一层的做题界面。
单选题的做题界面与图5相似,不同的是,单选题的做题是通过复选框来实现的。
同样,多选题的做题界面也一样。与不同的是,分组框里的控件是复选框,可以选择多项。
图6是管理员登录后,查看数据库中的多选题内容的界面。通过此界面可以对多选题表中的内容进行显示、添加、删除和修改等。
图6: 查看数据库中的多选题内容的界面
此窗体代码如下
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace 计算机上机考试系统
{
public partial class 多选查询 : Form
{ public 多选查询(计算机上机考试系统.查询 parent)
{ this.MdiParent = parent;
InitializeComponent(); }
private void 多选题BindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
this.Validate();
this.多选题BindingSource.EndEdit();
this.多选题TableAdapter.Update(this.实训DataSet.多选题);
}
private void 多选查询_Load(object sender, EventArgs e)
{
// TODO: 这行代码将数据加载到表“实训DataSet.多选题”中。您可以根据需要移动或移除它。
this.多选题TableAdapter.Fill(this.实训DataSet.多选题);
}
}
}
图6: 查看数据库中的单选题内容的界面
此窗体代码如下
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace 计算机上机考试系统
{
public partial class 单选查询 : Form
{
public 单选查询(计算机上机考试系统.查询 parent)
{
this.MdiParent = parent;
InitializeComponent();
}
private void 单选题BindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
this.Validate();
this.单选题BindingSource.EndEdit();
this.单选题TableAdapter.Update(this.实训DataSet.单选题);
}
private void 单选查询_Load(object sender, EventArgs e)
{
// TODO: 这行代码将数据加载到表“实训DataSet.单选题”中。您可以根据需要移动或移除它。
this.单选题TableAdapter.Fill(this.实训DataSet.单选题);
}
}
}
图7是管理员登录后,查看数据库中的单选题内容的界面。通过此界面可以对单选题表中的内容进行显示、添加、删除和修改等。
4.数据库设计
1. 单选题表
单选题数据包括:单选题编号、单选题题目、选项A、选项B、选项C、选项D及正确答案等。
2.多选题
多选题数据包括:多选题编号、多选题题目、选项A、选项B、选项C、选项D及正确答案等。
图9
3.判断题
判断题数据包括:判断题编号、题目、正确答案等。
4.考生数据表
考生数据包括:考生号、密码、姓名、班级、考试时间、成绩等。
5.用户表
管理员数据包括:管理员编号、登录名、密码等信息。
程序调试
为了确保本系统能够正常运行,需要在做完之后做一次较全面的测试。现将具体操作及过程举例说明如下:
1.测试程序
(1).测试考生登陆是否成功:
打开登陆界面,首先选择单选按钮是学生还是管理员,再在“用户名”里填入相关的用户名,“密码”框里我们填入对应的用户登录密码,“姓名“框中输入用户姓名,”班级“框里输入所在班级信息。填写完成点击“确定”按钮,将会出现操作程序页面,即该用户已经登陆成功了。
(2).测试管理员用户是否能够登录:
运行上机考试系统后,点击管理员登录按钮。显示输入密码和用户名。点击“确定”按钮。如果输入的用户名和密码错误,将显示“用户名或密码输入错误,请重新输入。“如果密码输入正确,将登录到管理员的管理界面。
(3).测试做单选题功能是否成功:
单选题功能:在考生登录成功之后,即可进入相应的管理页面,点击“单选题”菜单,即显示单选题操作界面,点击“下一题”按钮、“上一题”按钮可以做相应的题目。最后点击“返回”按钮,可以返回到主界面。完成上述功能,表示测试成功。
(4).测试做多选题功能是否成功:
多选题功能:在考生登录成功之后,即可进入相应的管理页面,点击“多选题”菜单,即显示多选题操作界面,点击“下一题”按钮、“上一题”按钮可以做相应的题目。最后点击“返回”按钮,可以返回到主界面。完成上述功能,表示测试成功。
(5).测试做判断题功能是否成功:
判断题功能:在考生登录成功之后,即可进入相应的管理页面,点击“判断题”菜单,即显示判断题操作界面,点击“下一题”按钮、“上一题”按钮可以做相应的题目。最后点击“返回”按钮,可以返回到主界面。完成上述功能,表示测试成功。
(7).考生退出系统的测试:
在考生操作已全部完成,需要退出程序的时候,如上图3所示,点击“退出”菜单,即可退出,表示测试成功。并且在做题的过程中,可以看做题所用的时间,如超过二小时,则自动退出。
(8).管理员登录界面其他菜单项功能是否成功:
如上图4所示,点击单选、多选、判断、系统管理菜单项,即可显示如图7所示的相应的数据库内容界面,在其中可以添加、删除、修改数据库的内容。完成上述功能,则表示测试成功。
(9).管理员信息管理考试成绩统计是否成功:
如上图4所示,点击“考生信息管理”菜单,可显示考生的登录信息和最后所得成绩。如果这个功能实现,表示测试成功。
2.遇见的问题:
“学生登录”按钮的问题:上机考试系统运行后,首先显示的登录主界面,我们想登录界面,最好弄一点创意出来,无意中组长想到了利用显示属性来设计登录界面,最终思考编写代码,很好的完成了登录界面。
“数据库联接”的问题:用C#来联接数据库,开始感觉很难,心想这该怎么做呀!接着我们通过参考资料,慢慢的找到了一些门道。最后,通过询问老师很快这个问题就解决了。
“显示做题时间”的问题:如图3所示,控制做题时间,我们一般的人看着做题时间,可能会有一种神奇感,这是怎么控制的呢?是的,我们刚开始做的时候也是这种感觉,进而我们有的人通过参考书本,最后这个问题也得到了解决。
第五章 个人总结(略)
附:
参考资料
第六章 任务分配