# 学生考试系统
## 一、创建数据库(examination),建数据表
- 选择题数据表:choose
| 字段名称 |数据类型 |
|----|----|
| ID |自动编号 |
| title |文本 |
| xuanA |文本 |
| xuanB |文本 |
| xuanC |文本 |
| xuanD |文本 |
| answer |文本 |
- 判断题数据表:pdt
| 字段名称 |数据类型 |
|----|----|
| ID |自动编号 |
| title |文本 |
| answer |文本 |
- 简答题数据表:jdt
| 字段名称 |数据类型 |
|----|----|
| ID |自动编号 |
| title |文本 |
| answer |文本 |
- 填空题数据表:tkt
| 字段名称 |数据类型 |
|----|----|
| ID |自动编号 |
| title |文本 |
| answer |文本 |
- 编程题数据表:bct
| 字段名称 |数据类型 |
|----|----|
| ID |自动编号 |
| title |文本 |
| answer |文本 |
## 二、创建网站:文件——新建网站。
新建登录窗体,各种考试题型的“web窗体”(增删改查)以及学生做题的窗体等。具体窗体名如下:

## 三、为各窗体添加功能代码:
- 筛选:select……from
- 删除:delete ……from
- 插入:insert into……values
- 更新:update………set
登录窗体

登录代码:
- 连接数据库:
```c++
string strconn = "Provider=Microsoft.Ace.oledb.12.0;data source=" + Server.MapPath("~/app_data/examinatiion.accdb"); OleDbConnection conn = new OleDbConnection(strconn);
conn.Open();
```
- 登录时需要判断该学生是否存在,如果存在,要把该学生的基本信息传递到考试的页面。这时需要用到:myread.hasRows 和Session

- 跳转到考试页面:

各题型的添加窗体





- 学生考试的主窗体:

学生考试的所有窗体都用datalist控件来绑定数据,绑定数据可以用只显示的Eval("ID”)或者可以显示和修改的Bing(’’ID”)
- 实例化:RadioButtonList和TextBox


- 筛选数据表的前几条记录并放到datalist控件中让学生答题:关键字top

- 正常情况下每一次刷新页面记录都不会被保存在页面上,如可让已存在的记录显示在页面上?方法如下:
刷新页面是需要判断数据表里是否存在相关的内容,如果存在则在刷新的同时显示出来。
单选按钮的情况:

文本框的情况:

改卷的页面:改卷按钮的功能是用试题的正确答案与考生做题的答案来作比较,如果相等则加一分,否则不扣分

部分效果图


- 1
- 2
- 3
- 4
- 5
前往页