嵌入式软件设计与开发——在线考试系统

记录一下嵌入式期末考核,部分功能没有完善
程序流程图:
嵌入式软件设计与开发——在线考试系统_第1张图片

  1. 网络版,分为服务器端和客户端(学生端);
    嵌入式软件设计与开发——在线考试系统_第2张图片
  2. 服务器端开启后客户端暂时不能连接,只有服务器端开始开始考试后客户端才能连接;
    嵌入式软件设计与开发——在线考试系统_第3张图片
  3. 服务器端先读取题库,题库可以是一个普通文本,也可以是csv文件或数据库等其他方式,需要提前创建好,题目类型包括选择题和填空题。服务器端输入相应的命令可以查看试卷(命令可以自行设计)。
    嵌入式软件设计与开发——在线考试系统_第4张图片
  4. 客户端通过IP连接服务器,连接时提示输入姓名和学号;
    嵌入式软件设计与开发——在线考试系统_第5张图片
  5. 服务器端接收用户信息,并保存到文件中;
    嵌入式软件设计与开发——在线考试系统_第6张图片
  6. 服务器给所有人发送信息,显示当前连接的用户人数、已开始考试人数和未开始考试人数;
    嵌入式软件设计与开发——在线考试系统_第7张图片
  7. 客户端连接后,服务器给用户发送考试开始指令(指令形式自行定义),用户端接收指令后,服务器端和客户端同时开始10秒倒计时,倒计时结束后,考试开始;
    嵌入式软件设计与开发——在线考试系统_第8张图片
  8. 考试过程中,客户端处理SIGINT、SIGQUIT和SIGSTOP信号,如果客户端接收到这三个信号,需要给服务器端发送提醒信息,提醒服务器客户端有异常操作;服务器端接收到提醒信息后,给客户端发送警告,如果服务器端接到3次提醒信息,将直接终止客户端的连接;
  9. 考试过程采用一问一答的方式,服务器按照顺序自动给客户发送题目,先发送第一题,客户回复答案后,服务器再发送下一道题,客户回复下一道题的答案,一直到所有题目都回答完毕;
    嵌入式软件设计与开发——在线考试系统_第9张图片
    嵌入式软件设计与开发——在线考试系统_第10张图片
    嵌入式软件设计与开发——在线考试系统_第11张图片
  10. 题目回答完毕后,服务器统计客户的答题情况,并将成绩发送给客户,包括每道题的对错,以及总分。
    嵌入式软件设计与开发——在线考试系统_第12张图片
    嵌入式软件设计与开发——在线考试系统_第13张图片
    嵌入式软件设计与开发——在线考试系统_第14张图片
  11. 客户端可以输入命令“/save”保存成绩记录,成绩记录保存在“./msgsave_学号”文件中(“学号”为客户端连接时输入的学号);也可以输入命令“/load”读取成绩记录,仅可查看自己保存的成绩记录,保存和读取成绩记录时需要使用文件锁;
    嵌入式软件设计与开发——在线考试系统_第15张图片
  12. 服务器的出错信息打印输出到屏幕上,同时发送给系统日志(/var/log/messages)。
    在这里插入图片描述
    嵌入式软件设计与开发——在线考试系统_第16张图片
  13. 服务器端和客户端都使用“/exit”命令退出;客户端退出时,服务器给所有人发送信息,并更新当前连接的用户人数、已开始考试人数和未开始考试人数;服务器端退出时,给所有客户端发送提示信息候再退出程序,客户端接收到提示后也随即退出。
    嵌入式软件设计与开发——在线考试系统_第17张图片
    嵌入式软件设计与开发——在线考试系统_第18张图片
    源码下载地址

你可能感兴趣的:(嵌入式,socket,linux)