系统性能需求:
系统安全可靠,凭用户或管理员帐号密码登入。
用户菜单等功能界面友好,彰显界面功能要点,同时也便捷用户操作。
便于更改查询信息,登录界面简单且不繁杂。
程序运行快速高效,界面切换自然。
2.2非功能性需求
安全性剖析:本系统管理的数据对中学生的考试形成影响,数据量较大且是基础性数据。本程序简练明了,无赘余句子,降低了程序运行的安全性。
稳定性剖析:只要是用户的合理操作,系统就会给出合理正确的回应,而不是出现令用户倍感意外的系统错误或系统崩溃;若系统出现不合理操作linux开源软件,系统也会有一些应对举措,避免系统错误或崩溃。
可靠性剖析:容错率较高,易恢复性较好,若用户出现输入错误的情况,体统具有一系列的应对举措,让用户可以返回重新操作。
易用性剖析:本系统具有易操作性,便捷用户操作,哪怕没有哪些网路买票经验也可以正常便捷买票。用户登入界面也进行了美观,可以保持用户对系统的良好感官。
3.系统概要设计3.1功能概要设计
登录模块功能如图3-1所示
管理员功能如图3-2所示
用户功能如图3-3所示
3.2数据库概要设计
考试系统主要针对中学生和班主任的使用查看系统版本linux,所以数据库的设计应当包括试题设计表、学生答案表、学生信息表、教师信息表、学生详尽成绩表5个数据表,每位表与表之间有一定的联系。
管理员帐号表如图3-4所示。
用户帐号表如图3-5所示。
题库表如图3-6所示。
考试情况表如图3-7所示。
用户留言表如图3-8所示。
3.3数据库详尽设计
数据库的详尽设计,即借助数据模型进行概念数据库的模式设计。依据考试系统的需求,设计出数据库设计图如图3-9所示。
数据库表结构
4.详尽设计4.1功能设计
系统功能流程图如图4-1所示。
4.1运行与调试
程序登录界面如图4-2所示开源 在线培训系统,可以下拉选项框选择用户登录、管理员登入或旅客登陆。
管理员菜单如图4-3所示。
用户菜单如图4-4所示
试卷管理界面如图4-4所示,可以查看题库、修改计时时间、修改题目。
用户管理界面如图4-5,4-6所示,可以查看用户考试情况、查看更改用户信息。
查看留言界面如图4-7所示,可以查看用户的反馈。
用户考试界面如图4-8,4-9所示,进行考试。
背题模式界面如图4-10所示
查看错题如图4-11所示
查看成绩界面如图4-12所示
用户查看资料如图4-13所示,可以更改用户名。
用户反馈如图4-14所示,将反馈信息存入数据库中。
软件信息界面如图4-15所示,显示软件信息。
旅客试用界面如图4-16所示。
注册帐号界面如图4-17所示,身分证号使用正则表达式开源 在线培训系统,需输入正确的身分证号。
重置密码界面如图4-18所示
5.总结
通过此次的课程设计,我们对C#语言有更多的了解,全面总结本学期C#课程学习的知识,把握使用方式。锻练中学生的实践能力以及运用本课程的知识、方法解决更为复杂的实际问题有较好的启发和指导作用,进而为后续课程的学习、毕业设计环节以及将来的实际工作打好坚实的基础。本次课程设计使我们对自己所学的知识有了进一步的了解,同时通过实践发现自己的不足,对知识的把握和运用仍有许多不健全。其实本系统也存在着好多不足,如系统非常简单,实现功能也不够健全,安全性问题也没有挺好的解决,而且我们会继续建立自己,争取让自己进步,提升自己的编程能力和解决实际问题的能力。
6.参考文献
[1]王珊,萨师煊.数据库系统导论[M].高等教育出版社,2012
[2]VisualBasic程序设计应用教程[M].复旦学院出版社
[3]江红,余青松.C#程序设计教程[M].2版
7.附表
本人完成答题功能模块设计,这儿仅呈现部份代码,总代码上传资源里。
Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 单机考试系统
{
public static class UserId//用户行为记录
{
public static string userid="";
public static int usert=0;//用户正在做的题号
public static int tnum = 100;//单次考试总题数
public static int score = 5;//单个单选题分数
public static int rnum = 0;//单次考试正确题数
public static int totalSecond = 7200;//总秒数
public static int[] rtitle = new int[tnum+2];//存考试随机题目序号
public static string[] click = new string[tnum+2];//存用户答案
public static string[] right = new string[1000];//存正确答案
public static int[] check_false = new int[tnum+2];//保存错题号
public static string select = "进行考试";//选择考试还是查看错题
}
class Randoms
{
/* num 要产生的随机数个数 randoms(1,a[200],1,200);
* all 存储生产的随机数的数组
* begin 随机数最小值
* end 随机数最大值
* using System.Threading;
*/
public int[] randoms(int num, int[] all, int begin, int end)//随机数
{
int[] nums = new int[1000];
for (int i = 0; i < num; i++)
{
Random rd = new Random();
int rds = rd.Next(begin, end);
while (nums[rds] != 0)
{
rds = rd.Next(begin, end);
Thread.Sleep(2);//防止时间种子重复
}
nums[rds]++;
all[i] = rds;
}
Array.Sort(all);
return all;
}
}
static class Program
{
///
/// 应用程序的主入口点。
///
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Land());
}
}
}
Land.cs
using System;
using System.Data.SqlClient;
using System.Drawing;
using System.Net.NetworkInformation;
using System.Windows.Forms;
namespace 单机考试系统
{
//登陆窗口
public partial class Land : Form
{
KillMessageBox kill = new KillMessageBox();
public Land()
{
InitializeComponent();
try
{
//声明一个用于存储连接数据库的字符串
string ConStr = "server=.;database=单机考试;Trusted_Connection=SSPI";
//创建一个SqlConnection对象
SqlConnection conn = new SqlConnection(ConStr);
//连接指定的数据库
conn.Open();
if (conn.State == System.Data.ConnectionState.Open) //判断连接数据库是否成功
{
kill.StartKiller();
MessageBox.Show("连接数据库成功", "你很幸运");
}
else
{
MessageBox.Show("连接数据库失败", "你很遗憾");
System.Environment.Exit(0);
}
}
catch (Exception ex)
{
MessageBox.Show("Error:" + ex.Message);
}
string url = "www.baidu.com";
Ping ping = new Ping();
try
{
PingReply reply = ping.Send(url);
if (reply.Status == IPStatus.Success)
{
kill.StartKiller();