天津做网站外包公司,互联网推广平台有哪些,wordpress返回旧编辑器,南宁企业建站系统软件课题#xff1a;Python实现打印100内数学试题软件及开发过程
一、需求管理#xff1a;
1.实现语言#xff1a;Python
2.打印纸张#xff1a;A4
3.铺满整张纸
4.打包成exe
先看效果#xff1a;
1.
2.电脑打印预览 3.打印到A4纸效果#xff08;晚上拍的#x…软件课题Python实现打印100内数学试题软件及开发过程
一、需求管理
1.实现语言Python
2.打印纸张A4
3.铺满整张纸
4.打包成exe
先看效果
1.
2.电脑打印预览 3.打印到A4纸效果晚上拍的和手机像素有关实际效果是清晰的 二、实现过程
第一版
效果 代码
from reportlab.lib.pagesizes import letter, A4
from reportlab.pdfgen import canvas
import random# 设置A4纸尺寸
width, height A4# 定义页面边距单位毫米
margin 20# 题目数量
num_questions 50 # 示例中设置为50道题可根据需要调整def generate_question():生成一道100以内的随机加减法题目op random.choice([, -])if op :a random.randint(0, 100)b random.randint(0, 100 - a) # 确保结果不超过100else:a random.randint(0, 100)b random.randint(0, a) # 确保减法结果非负return f{a} {op} {b} def draw_questions(c):在canvas上绘制题目question_width (width - 2 * margin) / 2 # 每列宽度question_height 20 # 每题高度可调整y_position height - margin - question_height * num_questions # 起始y坐标for i in range(num_questions):c.setFont(Helvetica, 12) # 设置字体和大小question generate_question()c.drawString(margin, y_position, question)y_position question_heightdef main():c canvas.Canvas(math_test.pdf, pagesizeA4)draw_questions(c)c.save()print(PDF文件已生成。)if __name__ __main__:main()
第二版最终版
from reportlab.lib.pagesizes import A4
from reportlab.pdfgen import canvas
import random# 设置A4纸尺寸
width, height A4# 定义页面边距单位毫米
margin 20# 题目数量总题目数
num_questions 200 # 示例中设置为200道题可根据需要调整# 每列题目数估算这里简化处理实际情况可能需要更精确的计算以适应不同长度的题目
questions_per_column num_questions // 4
if num_questions % 4 ! 0:questions_per_column 1# 计算每列宽度
column_width (width - 3 * margin) / 4 # 减去3个间隔的边距def generate_question():生成一道100以内的随机加减法题目op random.choice([, -])if op :a random.randint(0, 100)b random.randint(0, 100 - a)else:a random.randint(0, 100)b random.randint(0, a)return f{a} {op} {b} def draw_questions(c):在canvas上绘制题目到四列question_height 20 # 每题高度可调整column_positions [margin i * (column_width margin) for i in range(4)] # 四列的位置y_position height - margin - question_height * questions_per_column # 起始y坐标for col_pos in column_positions:y_position height - margin - question_height * questions_per_column # 重置y坐标for q in range(questions_per_column):question generate_question()c.setFont(Helvetica, 12) # 设置字体和大小c.drawString(col_pos, y_position, question)y_position question_height # 移动到下一行def main():c canvas.Canvas(math_test_4_columns.pdf, pagesizeA4)draw_questions(c)c.save()print(PDF文件已生成包含四列题目。)if __name__ __main__:main()
Python 版本3.8
需要安装的Python插件及安装顺序
chardet-5.2.0-py3-none-any.whl
reportlab-4.2.0-py3-none-any.whl setuptools-69.5.1-py3-none-any.whl
altgraph-0.17.4-py2.py3-none-any.whl
pyinstaller_hooks_contrib-2024.6-py2.py3-none-any.whl
pefile-2023.2.7-py3-none-any.whl
pywin32_ctypes-0.2.2-py3-none-any.whl
pyinstaller-6.6.0-py3-none-win_amd64.whl 总结
建议大家可以运行一下上面开发全部过程的代码然后对比我上面的代码。找到出bug的地方对比已经修复的地方。
揭开题目我敲的字母 灰色就是编辑器提示的代码可以按tab键直接生成使用vscode安装fittencode插件。
完