软件工程第三次作业

源代码链接:https://github.com/haijungongchengdaxuelvzhiyong/lvzhiyong/tree/master

 PSP表格:

基本解题思路:

本次作业共提出了以下模块

 1,练习模式

  2,历史记录

  3测验模式

  4错题本

运行截图:

测验模式:可以计算时间和判断对错,并且计算得分。如下图所示:

 其中一个部分

  练习模式:练习模式随机产生题目,答题并且判断对错,计算使用的时间。如图:

 历史记录模式:可以显示你做过的题目,并且可以提供正确的答案。如图:

 

 错题本:实现错题的收集。如图所示

 

 设计实现说明:

根据这几个模块的特点。具体实现几个模块:产生题目,定义gen(count,ns,max_num)生成多个题目;储存数据,方便调用和保存,定义database数据库使用sqlite3数据库格式来保存数据,界面交互,定义函数http_server来实现和浏览器的界面交互;界面设计,界面使用HTML5开发,Vue框架将内容呈现到浏览器上,使用axios和Python通信。

主程序大致内容为:

一、定义四个函数,用于浏览器调用。

1. new_question 生成几个新题目,返回一个题目数组

2. update_history 用于错题本改错,更新错题记录。

3. write_history 用于向历史记录添加一个题目,不论是答对的还是答错的都用这个记下来。

4. get_history 用于读取历史记录。如果提供了参数 wrong=1 那么只返回错题,否则返回全部历史题目。

 在产生运算表达式的时候使用了Fraction 类型来处理分数。

定义gen(ns,max_num)

生成一个题目表达式,字符串。

数据库模块使用sqlite3数据库格式,模块初始化的时候,会试着创建一个数据库,以及新建一个表格 history 存储历史记录。定义下面函数:

update(table,data,id) 更新表格里某个ID项的数据。

insert(table, data) 向表格里插入数据,返回值是插入后的ID。

fetch(table, where, rows, other_info) 从数据库表格里提取数据。

 

where 是提取条件,使用SQL 语句。
rows 是要提取的列标题,是一个字符串列表。
other_info 可选,是额外的 SQL 条件语句

 

二、使用 http_server.register_method 将这些函数开放给浏览器。

三、使用 http_server.start() 启动浏览器。

 http_server这个模块负责和浏览器界面交互。

界面设计:界面使用HTML5开发,Vue框架将内容呈现到浏览器上,使用axios和Python通信。

本次工作难度大,任务多,工作量大,首先要学习了Python,在Python入门的基础上还要学习网页界面设计的知识,我自己一个人是完全不能够完成的,幸好有我的partner,在他的帮助下,我们两同心协力我们才能够较为圆满地完成了本次任务,我能感受到伙伴的重要性,他能够在你最困难的时候给予你一些思路,还能帮助你完成一些你不会的地方,在编写的时候也可以相互的鼓励对方,还有就是一点比较重要,前期我编写程序的时候发现首先要把自己的一个思路理清楚,这点比较重要,不然一开始就急忙的编写程序,到最后你自己都不知道需要做些什么,可能开始的时候你会比较快,但是却不是长久的。

posted @ 2018-01-14 22:59  吕智勇  阅读(140)  评论(0)    收藏  举报