软件工程第三次作业
源代码链接: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,在他的帮助下,我们两同心协力我们才能够较为圆满地完成了本次任务,我能感受到伙伴的重要性,他能够在你最困难的时候给予你一些思路,还能帮助你完成一些你不会的地方,在编写的时候也可以相互的鼓励对方,还有就是一点比较重要,前期我编写程序的时候发现首先要把自己的一个思路理清楚,这点比较重要,不然一开始就急忙的编写程序,到最后你自己都不知道需要做些什么,可能开始的时候你会比较快,但是却不是长久的。
浙公网安备 33010602011771号