设为首页收藏本站

 找回密码
 立即注册

只需一步,快速开始

搜索
查看: 89|回复: 14

Python开发的初中数学学习小帮手

[复制链接]
累计签到:16 天
连续签到:3 天
灌水成绩
11
23
3461
主题
帖子
积分

等级头衔

ID : 657

初级技术员

积分成就 测量币 : 3461
在线时间 : 0 小时
注册时间 : 2025-11-13
最后登录 : 2026-5-18

勋章
UID勋章测量学徒测量员
发表于 2026-4-29 05:48:16 来自手机 | 显示全部楼层 |阅读模式 IP:香港
迩来在教舅舅家上初二的儿子Python编程,前几天在吾爱分享了Python开发的英文打字小游戏,很荣幸得到斑竹认可和站友们的支持:
Python开发的英文打字小游戏 - 吾爱破解 - 52pojie.cn

由于编程和数学密不可分,今天用Python开发了一个初中数学学习小帮手,包含最大公约数、最小公倍数、素数、三角函数计算,一元二次方程求解,还有阶乘、排列组合、对数、平均值、方差的计算,界面清爽,还带动听的配景音乐,下载链接如下(带exe格式的游戏,源代码和音乐素材),欢迎大家体验(由于编译之后的程序有88M,所以双击exe之后请期待6-8秒,即可启动):

通过百度网盘分享的文件:202604 初中数学小帮手
链接: https://pan.Baidu.com/s/1CWxXSiyMg-CcV2I9NtcAZQ?pwd=52pj 提取码: 52pj

同时把源代码分享如下,请大家多多指教:
[Python] 纯文本查看 复制代码import tkinter as tkfrom tkinter import ttk, scrolledtext, messageboximport mathimport sympyimport numpy as npfrom PIL import Image, ImageTk, ImageDraw, ImageFontimport matplotlib.pyplot as pltfrom matplotlib.backends.backend_tkagg import FigureCanvasTkAggimport matplotlibmatplotlib.use('Agg')import pygameimport threadingimport osdef play_music():    &quot;&quot;&quot;在新线程中播放音乐&quot;&quot;&quot;    folder_path = os.path.dirname(__file__)    music_path = os.path.join(folder_path, 'aigei.ogg')    try:        if os.path.exists(music_path):            pygame.mixer.init()            pygame.mixer.music.load(music_path)            pygame.mixer.music.play(-1)  # -1表现循环播放        else:            print(f&quot;音乐文件不存在: {music_path}&quot;)    except Exception as e:        print(f&quot;播放音乐失败: {e}&quot;)class MathHelper:    def __init__(self, root):        self.root = root        self.root.title(&quot;初中数学小帮手&quot;)        self.root.geometry(&quot;1100x750&quot;)        self.root.configure(bg='#F0F7FF')        # 启动音乐播放线程        music_thread = threading.Thread(target=play_music, daemon=True)        music_thread.start()                # 设置颜色主题        self.colors = {            'primary': '#2196F3',            'secondary': '#4CAF50',            'accent': '#FF9800',            'warning': '#F44336',            'background': '#F0F7FF',            'card': '#FFFFFF',            'text': '#333333'        }                # 初始化界面        self.setup_ui()                # 初始化汗青记录        self.history = []            def setup_ui(self):        &quot;&quot;&quot;设置用户界面&quot;&quot;&quot;        # 创建主框架        main_frame = tk.Frame(self.root, bg=self.colors['background'])        main_frame.pack(fill=tk.BOTH, expand=True, padx=10, pady=10)                # 标题区域        self.create_title_area(main_frame)                # 创建Notebook(选项卡)        self.create_notebook(main_frame)                # 结果和汗青记录区域        self.create_result_area(main_frame)                # 底部状态栏        self.create_status_bar(main_frame)        def create_title_area(self, parent):        &quot;&quot;&quot;创建标题区域&quot;&quot;&quot;        title_frame = tk.Frame(parent, bg=self.colors['primary'], height=80)        title_frame.pack(fill=tk.X, pady=(0, 10))        title_frame.pack_propagate(False)                # 主标题        title_label = tk.Label(title_frame,                              text=&quot;&#129518; 初中数学小帮手 by xhlbudd@52pojie&quot;,                              font=('Microsoft YaHei', 24, 'bold'),                              bg=self.colors['primary'],                              fg='white')        title_label.pack(pady=(10, 0))               def create_notebook(self, parent):        &quot;&quot;&quot;创建选项卡&quot;&quot;&quot;        notebook_frame = tk.Frame(parent, bg=self.colors['background'])        notebook_frame.pack(fill=tk.BOTH, expand=True)                # 创建Notebook        self.notebook = ttk.Notebook(notebook_frame)        self.notebook.pack(fill=tk.BOTH, expand=True)                # 创建各个选项卡        self.create_gcd_lcm_tab()        self.create_prime_tab()        self.create_power_tab()        self.create_trigonometry_tab()        self.create_quadratic_tab()        self.create_other_tab()        def create_gcd_lcm_tab(self):        &quot;&quot;&quot;创建公约数/公倍数选项卡&quot;&quot;&quot;        tab = tk.Frame(self.notebook, bg=self.colors['card'])        self.notebook.add(tab, text=&quot;公约数/公倍数&quot;)                # 选项卡标题        tab_title = tk.Label(tab,                           text=&quot;最大公约数和最小公倍数计算&quot;,                           font=('Microsoft YaHei', 16, 'bold'),                           bg=self.colors['card'],                           fg=self.colors['primary'])        tab_title.pack(pady=20)                # 输入框框架        input_frame = tk.Frame(tab, bg=self.colors['card'])        input_frame.pack(pady=10)                tk.Label(input_frame,                text=&quot;输入数字(用空格分隔,如:12 18 24):&quot;,                font=('Microsoft YaHei', 12),                bg=self.colors['card']).pack(side=tk.LEFT, padx=(0, 10))                self.numbers_var = tk.StringVar()        self.numbers_entry = tk.Entry(input_frame,                                     textvariable=self.numbers_var,                                     font=('Microsoft YaHei', 12),                                     width=30,                                     relief=tk.SUNKEN,                                     borderwidth=2)        self.numbers_entry.pack(side=tk.LEFT, padx=(0, 20))                # 示例按钮        example_btn = tk.Button(input_frame,                               text=&quot;示例&quot;,                               command=lambda: self.numbers_var.set(&quot;12 18 24&quot;),                               font=('Microsoft YaHei', 10),                               bg=self.colors['accent'],                               fg='white',                               padx=10)        example_btn.pack(side=tk.LEFT)                # 按钮框架        btn_frame = tk.Frame(tab, bg=self.colors['card'])        btn_frame.pack(pady=20)                btn_style = {'font': ('Microsoft YaHei', 12, 'bold'),                    'padx': 20,                    'pady': 10,                    'relief': tk.RAISED,                    'borderwidth': 2}                gcd_btn = tk.Button(btn_frame,                          text=&quot;计算最大公约数&quot;,                          command=self.calculate_gcd,                          bg='#4CAF50',                          fg='white',                          **btn_style)        gcd_btn.pack(side=tk.LEFT, padx=10)                lcm_btn = tk.Button(btn_frame,                          text=&quot;计算最小公倍数&quot;,                          command=self.calculate_lcm,                          bg='#2196F3',                          fg='white',                          **btn_style)        lcm_btn.pack(side=tk.LEFT, padx=10)                clear_btn = tk.Button(btn_frame,                            text=&quot;清空&quot;,                            command=lambda: self.numbers_var.set(&quot;&quot;),                            bg='#9E9E9E',                            fg='white',                            **btn_style)        clear_btn.pack(side=tk.LEFT, padx=10)                # 结果框架        result_frame = tk.Frame(tab, bg=self.colors['card'])        result_frame.pack(fill=tk.BOTH, expand=True, padx=20, pady=10)                # 结果表现        self.gcd_lcm_result = scrolledtext.ScrolledText(result_frame,                                                       height=6,                                                       font=('Microsoft YaHei', 12),                                                       bg='#FAFAFA',                                                       wrap=tk.WORD)        self.gcd_lcm_result.pack(fill=tk.BOTH, expand=True)                # 解释说明        explanation = &quot;&quot;&quot;        知识要点:        &#8226; 最大公约数(GCD):几个数公有的约数中最大的一个        &#8226; 最小公倍数(LCM):几个数公有的倍数中最小的一个                计算方法:        1. 列举法:列出所有约数/倍数,找出公共的        2. 质因数分解法:分解质因数后计算        3. 短除法:用公有质因数连续去除                示例:12 和 18        12的约数:1,2,3,4,6,12        18的约数:1,2,3,6,9,18        最大公约数:6        最小公倍数:36        &quot;&quot;&quot;                explanation_label = tk.Label(tab,                                   text=explanation,                                   font=('Microsoft YaHei', 10),                                   bg='#FFF3E0',                                   fg='#5D4037',                                   justify=tk.LEFT,                                   wraplength=800)        explanation_label.pack(fill=tk.X, padx=20, pady=10)                def create_prime_tab(self):        &quot;&quot;&quot;创建素数选项卡&quot;&quot;&quot;        tab = tk.Frame(self.notebook, bg=self.colors['card'])        self.notebook.add(tab, text=&quot;素数计算&quot;)                # 选项卡标题        tab_title = tk.Label(tab,                           text=&quot;素数(质数)计算器&quot;,                           font=('Microsoft YaHei', 16, 'bold'),                           bg=self.colors['card'],                           fg=self.colors['primary'])        tab_title.pack(pady=20)                # 输入框架        input_frame = tk.Frame(tab, bg=self.colors['card'])        input_frame.pack(pady=10)                tk.Label(input_frame,                text=&quot;输入N的值(查找N以内的所有素数):&quot;,                font=('Microsoft YaHei', 12),                bg=self.colors['card']).pack(side=tk.LEFT, padx=(0, 10))                self.n_prime_var = tk.StringVar()        self.n_prime_entry = tk.Entry(input_frame,                                     textvariable=self.n_prime_var,                                     font=('Microsoft YaHei', 12),                                     width=15,                                     relief=tk.SUNKEN,                                     borderwidth=2)        self.n_prime_entry.pack(side=tk.LEFT, padx=(0, 20))                # 示例按钮        example_btn = tk.Button(input_frame,                               text=&quot;示例&quot;,                               command=lambda: self.n_prime_var.set(&quot;100&quot;),                               font=('Microsoft YaHei', 10),                               bg=self.colors['accent'],                               fg='white',                               padx=10)        example_btn.pack(side=tk.LEFT)                # 功能选择        func_frame = tk.Frame(tab, bg=self.colors['card'])        func_frame.pack(pady=20)                tk.Label(func_frame,                text=&quot;请选择功能:&quot;,                font=('Microsoft YaHei', 12),                bg=self.colors['card']).pack(side=tk.LEFT, padx=(0, 20))                # 单选按钮        self.prime_func_var = tk.StringVar(value=&quot;list&quot;)                tk.Radiobutton(func_frame,                      text=&quot;列出所有素数&quot;,                      variable=self.prime_func_var,                      value=&quot;list&quot;,                      font=('Microsoft YaHei', 11),                      bg=self.colors['card']).pack(side=tk.LEFT, padx=10)                tk.Radiobutton(func_frame,                      text=&quot;判断是否为素数&quot;,                      variable=self.prime_func_var,                      value=&quot;check&quot;,                      font=('Microsoft YaHei', 11),                      bg=self.colors['card']).pack(side=tk.LEFT, padx=10)                tk.Radiobutton(func_frame,                      text=&quot;素数个数统计&quot;,                      variable=self.prime_func_var,                      value=&quot;count&quot;,                      font=('Microsoft YaHei', 11),                      bg=self.colors['card']).pack(side=tk.LEFT, padx=10)                # 按钮框架        btn_frame = tk.Frame(tab, bg=self.colors['card'])        btn_frame.pack(pady=10)                calculate_btn = tk.Button(btn_frame,                                text=&quot;开始计算&quot;,                                command=self.calculate_prime,                                font=('Microsoft YaHei', 12, 'bold'),                                bg='#4CAF50',                                fg='white',                                padx=30,                                pady=10)        calculate_btn.pack(side=tk.LEFT, padx=5)                clear_btn = tk.Button(btn_frame,                            text=&quot;清空结果&quot;,                            command=self.clear_prime_result,                            font=('Microsoft YaHei', 12),                            bg='#9E9E9E',                            fg='white',                            padx=20,                            pady=10)        clear_btn.pack(side=tk.LEFT, padx=5)                # 结果表现框架        result_frame = tk.Frame(tab, bg=self.colors['card'])        result_frame.pack(fill=tk.BOTH, expand=True, padx=20, pady=10)                # 结果表现        self.prime_result = scrolledtext.ScrolledText(result_frame,                                                     height=8,                                                     font=('Microsoft YaHei', 12),                                                     bg='#FAFAFA',                                                     wrap=tk.WORD)        self.prime_result.pack(fill=tk.BOTH, expand=True)                # 解释说明        explanation = &quot;&quot;&quot;        素数是指在大于1的自然数中,除了1和它自己以外不再有其他因数的自然数。        前20个素数:2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71                重要性质:        1. 2是唯一的偶素数        2. 每个合数都可以唯一分解为素数的乘积        3. 素数有无穷多个(欧几里得证实)        &quot;&quot;&quot;                explanation_label = tk.Label(tab,                                   text=explanation,                                   font=('Microsoft YaHei', 10),                                   bg='#E8F5E9',                                   fg='#1B5E20',                                   justify=tk.LEFT,                                   wraplength=800)        explanation_label.pack(fill=tk.X, padx=20, pady=10)        def create_power_tab(self):        &quot;&quot;&quot;创建幂运算选项卡&quot;&quot;&quot;        tab = tk.Frame(self.notebook, bg=self.colors['card'])        self.notebook.add(tab, text=&quot;幂运算&quot;)                # 选项卡标题        tab_title = tk.Label(tab,                           text=&quot;幂运算和根式运算&quot;,                           font=('Microsoft YaHei', 16, 'bold'),                           bg=self.colors['card'],                           fg=self.colors['primary'])        tab_title.pack(pady=20)                # 输入框架        input_frame = tk.Frame(tab, bg=self.colors['card'])        input_frame.pack(pady=20)                tk.Label(input_frame,                text=&quot;输入数字:&quot;,                font=('Microsoft YaHei', 12),                bg=self.colors['card']).grid(row=0, column=0, padx=5, pady=5, sticky=tk.W)                self.power_num_var = tk.StringVar()        self.power_num_entry = tk.Entry(input_frame,                                       textvariable=self.power_num_var,                                       font=('Microsoft YaHei', 12),                                       width=15,                                       relief=tk.SUNKEN,                                       borderwidth=2)        self.power_num_entry.grid(row=0, column=1, padx=5, pady=5)                # 功能按钮框架        func_frame = tk.Frame(tab, bg=self.colors['card'])        func_frame.pack(pady=20)                btn_style = {'font': ('Microsoft YaHei', 11, 'bold'),                    'padx': 15,                    'pady': 8,                    'relief': tk.RAISED,                    'borderwidth': 2,                    'width': 10}                # 第一行按钮        row1_frame = tk.Frame(func_frame, bg=self.colors['card'])        row1_frame.pack(pady=5)                tk.Button(row1_frame,                 text=&quot;平方&quot;,                 command=lambda: self.calculate_power(2),                 bg='#2196F3',                 fg='white',                 **btn_style).pack(side=tk.LEFT, padx=5)                tk.Button(row1_frame,                 text=&quot;立方&quot;,                 command=lambda: self.calculate_power(3),                 bg='#2196F3',                 fg='white',                 **btn_style).pack(side=tk.LEFT, padx=5)                tk.Button(row1_frame,                 text=&quot;平方根&quot;,                 command=lambda: self.calculate_root(2),                 bg='#4CAF50',                 fg='white',                 **btn_style).pack(side=tk.LEFT, padx=5)                tk.Button(row1_frame,                 text=&quot;立方根&quot;,                 command=lambda: self.calculate_root(3),                 bg='#4CAF50',                 fg='white',                 **btn_style).pack(side=tk.LEFT, padx=5)                # 第二行按钮        row2_frame = tk.Frame(func_frame, bg=self.colors['card'])        row2_frame.pack(pady=5)                tk.Button(row2_frame,                 text=&quot;倒数&quot;,                 command=self.calculate_reciprocal,                 bg='#FF9800',                 fg='white',                 **btn_style).pack(side=tk.LEFT, padx=5)                tk.Button(row2_frame,                 text=&quot;绝对值&quot;,                 command=self.calculate_abs,                 bg='#FF9800',                 fg='white',                 **btn_style).pack(side=tk.LEFT, padx=5)                tk.Button(row2_frame,                 text=&quot;相反数&quot;,                 command=self.calculate_opposite,                 bg='#FF9800',                 fg='white',                 **btn_style).pack(side=tk.LEFT, padx=5)                tk.Button(row2_frame,                 text=&quot;四舍五入&quot;,                 command=self.calculate_round,                 bg='#9C27B0',                 fg='white',                 **btn_style).pack(side=tk.LEFT, padx=5)                # 自定义指数框架        custom_frame = tk.Frame(tab, bg=self.colors['card'])        custom_frame.pack(pady=20)                tk.Label(custom_frame,                text=&quot;自定义指数:&quot;,                font=('Microsoft YaHei', 12),                bg=self.colors['card']).pack(side=tk.LEFT, padx=(0, 10))                self.custom_power_var = tk.StringVar()        self.custom_power_entry = tk.Entry(custom_frame,                                         textvariable=self.custom_power_var,                                         font=('Microsoft YaHei', 12),                                         width=8,                                         relief=tk.SUNKEN,                                         borderwidth=2)        self.custom_power_entry.pack(side=tk.LEFT, padx=(0, 10))                tk.Button(custom_frame,                 text=&quot;计算幂&quot;,                 command=self.calculate_custom_power,                 font=('Microsoft YaHei', 11),                 bg='#F44336',                 fg='white',                 padx=15,                 pady=5).pack(side=tk.LEFT, padx=(0, 10))                tk.Button(custom_frame,                 text=&quot;计算根&quot;,                 command=self.calculate_custom_root,                 font=('Microsoft YaHei', 11),                 bg='#F44336',                 fg='white',                 padx=15,                 pady=5).pack(side=tk.LEFT)                # 结果表现        result_frame = tk.Frame(tab, bg=self.colors['card'])        result_frame.pack(fill=tk.BOTH, expand=True, padx=20, pady=10)                self.power_result = tk.Text(result_frame,                                   height=6,                                   font=('Microsoft YaHei', 12),                                   bg='#FAFAFA',                                   wrap=tk.WORD)        self.power_result.pack(fill=tk.BOTH, expand=True)                # 公式说明        formula_label = tk.Label(tab,                               text=&quot;常见公式:\n&quot;                                    &quot;&#8226; 平方:a&#178; = a × a\n&quot;                                    &quot;&#8226; 立方:a&#179; = a × a × a\n&quot;                                    &quot;&#8226; 平方根:√a = b 使得 b&#178; = a\n&quot;                                    &quot;&#8226; 立方根:&#179;√a = b 使得 b&#179; = a&quot;,                               font=('Microsoft YaHei', 10),                               bg='#F3E5F5',                               fg='#4A148C',                               justify=tk.LEFT)        formula_label.pack(fill=tk.X, padx=20, pady=10)        def create_trigonometry_tab(self):        &quot;&quot;&quot;创建三角函数选项卡&quot;&quot;&quot;        tab = tk.Frame(self.notebook, bg=self.colors['card'])        self.notebook.add(tab, text=&quot;三角函数&quot;)                # 选项卡标题        tab_title = tk.Label(tab,                           text=&quot;三角函数计算器&quot;,                           font=('Microsoft YaHei', 16, 'bold'),                           bg=self.colors['card'],                           fg=self.colors['primary'])        tab_title.pack(pady=20)                # 输入框架        input_frame = tk.Frame(tab, bg=self.colors['card'])        input_frame.pack(pady=20)                tk.Label(input_frame,                text=&quot;输入角度(单位:度):&quot;,                font=('Microsoft YaHei', 12),                bg=self.colors['card']).pack(side=tk.LEFT, padx=(0, 10))                self.angle_var = tk.StringVar()        self.angle_entry = tk.Entry(input_frame,                                   textvariable=self.angle_var,                                   font=('Microsoft YaHei', 12),                                   width=15,                                   relief=tk.SUNKEN,                                   borderwidth=2)        self.angle_entry.pack(side=tk.LEFT, padx=(0, 20))                # 特殊角度按钮        special_frame = tk.Frame(tab, bg=self.colors['card'])        special_frame.pack(pady=10)                tk.Label(special_frame,                text=&quot;特殊角度:&quot;,                font=('Microsoft YaHei', 11),                bg=self.colors['card']).pack(side=tk.LEFT, padx=(0, 10))                special_angles = [(&quot;0°&quot;, 0), (&quot;30°&quot;, 30), (&quot;45°&quot;, 45), (&quot;60°&quot;, 60), (&quot;90°&quot;, 90)]                for text, angle in special_angles:            tk.Button(special_frame,                     text=text,                     command=lambda a=angle: self.angle_var.set(str(a)),                     font=('Microsoft YaHei', 10),                     bg='#E3F2FD',                     padx=8,                     pady=3).pack(side=tk.LEFT, padx=5)                # 三角函数按钮        trig_frame = tk.Frame(tab, bg=self.colors['card'])        trig_frame.pack(pady=20)                btn_style = {'font': ('Microsoft YaHei', 12, 'bold'),                    'padx': 20,                    'pady': 10,                    'relief': tk.RAISED,                    'borderwidth': 2,                    'width': 8}                # 第一行        row1_frame = tk.Frame(trig_frame, bg=self.colors['card'])        row1_frame.pack(pady=5)                tk.Button(row1_frame,                 text=&quot;sin&quot;,                 command=lambda: self.calculate_trig('sin'),                 bg='#2196F3',                 fg='white',                 **btn_style).pack(side=tk.LEFT, padx=5)                tk.Button(row1_frame,                 text=&quot;cos&quot;,                 command=lambda: self.calculate_trig('cos'),                 bg='#4CAF50',                 fg='white',                 **btn_style).pack(side=tk.LEFT, padx=5)                tk.Button(row1_frame,                 text=&quot;tan&quot;,                 command=lambda: self.calculate_trig('tan'),                 bg='#FF9800',                 fg='white',                 **btn_style).pack(side=tk.LEFT, padx=5)                # 第二行        row2_frame = tk.Frame(trig_frame, bg=self.colors['card'])        row2_frame.pack(pady=5)                tk.Button(row2_frame,                 text=&quot;asin&quot;,                 command=lambda: self.calculate_trig('asin'),                 bg='#9C27B0',                 fg='white',                 **btn_style).pack(side=tk.LEFT, padx=5)                tk.Button(row2_frame,                 text=&quot;acos&quot;,                 command=lambda: self.calculate_trig('acos'),                 bg='#F44336',                 fg='white',                 **btn_style).pack(side=tk.LEFT, padx=5)                tk.Button(row2_frame,                 text=&quot;atan&quot;,                 command=lambda: self.calculate_trig('atan'),                 bg='#795548',                 fg='white',                 **btn_style).pack(side=tk.LEFT, padx=5)                # 结果表现        result_frame = tk.Frame(tab, bg=self.colors['card'])        result_frame.pack(fill=tk.BOTH, expand=True, padx=20, pady=10)                self.trig_result = tk.Text(result_frame,                                  height=8,                                  font=('Microsoft YaHei', 12),                                  bg='#FAFAFA',                                  wrap=tk.WORD)        self.trig_result.pack(fill=tk.BOTH, expand=True)                # 三角函数表        table_frame = tk.Frame(tab, bg=self.colors['card'])        table_frame.pack(fill=tk.X, padx=20, pady=10)                table_text = &quot;&quot;&quot;        三角函数是数学中研究直角三角形边角关系的基础工具,核心包罗正弦(sin)、余弦(cos)和正切(tan)。        它们将角度与边长比值对应,广泛应用于测量、物理振动分析和工程计算中。        &quot;&quot;&quot;                table_label = tk.Label(table_frame,                              text=table_text,                              font=('Microsoft YaHei', 10),                              bg='#FFF3E0',                              fg='#5D4037',                              justify=tk.LEFT)        table_label.pack(fill=tk.X)        def create_quadratic_tab(self):        &quot;&quot;&quot;创建一元二次方程选项卡&quot;&quot;&quot;        tab = tk.Frame(self.notebook, bg=self.colors['card'])        self.notebook.add(tab, text=&quot;一元二次方程&quot;)                # 选项卡标题        tab_title = tk.Label(tab,                           text=&quot;一元二次方程求解器&quot;,                           font=('Microsoft YaHei', 16, 'bold'),                           bg=self.colors['card'],                           fg=self.colors['primary'])        tab_title.pack(pady=20)                # 输入框架        input_frame = tk.Frame(tab, bg=self.colors['card'])        input_frame.pack(pady=20)                tk.Label(input_frame,                text=&quot;标准情势:ax&#178; + bx + c = 0&quot;,                font=('Microsoft YaHei', 12, 'bold'),                bg=self.colors['card']).grid(row=0, column=0, columnspan=3, pady=10)                # 系数输入        tk.Label(input_frame,                text=&quot;系数 a:&quot;,                font=('Microsoft YaHei', 12),                bg=self.colors['card']).grid(row=1, column=0, padx=5, pady=5, sticky=tk.E)                self.coeff_a_var = tk.StringVar(value=&quot;1&quot;)        tk.Entry(input_frame,                textvariable=self.coeff_a_var,                font=('Microsoft YaHei', 12),                width=10,                relief=tk.SUNKEN,                borderwidth=2).grid(row=1, column=1, padx=5, pady=5)                # 示例按钮        tk.Button(input_frame,                 text=&quot;示例1&quot;,                 command=lambda: self.set_quadratic_example(1, -5, 6),                 font=('Microsoft YaHei', 10),                 bg='#BBDEFB',                 padx=8).grid(row=1, column=2, padx=5, pady=5)                tk.Label(input_frame,                text=&quot;系数 b:&quot;,                font=('Microsoft YaHei', 12),                bg=self.colors['card']).grid(row=2, column=0, padx=5, pady=5, sticky=tk.E)                self.coeff_b_var = tk.StringVar(value=&quot;0&quot;)        tk.Entry(input_frame,                textvariable=self.coeff_b_var,                font=('Microsoft YaHei', 12),                width=10,                relief=tk.SUNKEN,                borderwidth=2).grid(row=2, column=1, padx=5, pady=5)                tk.Button(input_frame,                 text=&quot;示例2&quot;,                 command=lambda: self.set_quadratic_example(1, 2, 1),                 font=('Microsoft YaHei', 10),                 bg='#BBDEFB',                 padx=8).grid(row=2, column=2, padx=5, pady=5)                tk.Label(input_frame,                text=&quot;系数 c:&quot;,                font=('Microsoft YaHei', 12),                bg=self.colors['card']).grid(row=3, column=0, padx=5, pady=5, sticky=tk.E)                self.coeff_c_var = tk.StringVar(value=&quot;0&quot;)        tk.Entry(input_frame,                textvariable=self.coeff_c_var,                font=('Microsoft YaHei', 12),                width=10,                relief=tk.SUNKEN,                borderwidth=2).grid(row=3, column=1, padx=5, pady=5)                tk.Button(input_frame,                 text=&quot;示例3&quot;,                 command=lambda: self.set_quadratic_example(1, 1, 1),                 font=('Microsoft YaHei', 10),                 bg='#BBDEFB',                 padx=8).grid(row=3, column=2, padx=5, pady=5)                # 求解按钮        solve_frame = tk.Frame(tab, bg=self.colors['card'])        solve_frame.pack(pady=20)                tk.Button(solve_frame,                 text=&quot;求解方程&quot;,                 command=self.solve_quadratic,                 font=('Microsoft YaHei', 12, 'bold'),                 bg='#4CAF50',                 fg='white',                 padx=30,                 pady=10).pack(side=tk.LEFT, padx=5)                tk.Button(solve_frame,                 text=&quot;清空&quot;,                 command=self.clear_quadratic,                 font=('Microsoft YaHei', 12),                 bg='#9E9E9E',                 fg='white',                 padx=20,                 pady=10).pack(side=tk.LEFT, padx=5)                # 结果表现        result_frame = tk.Frame(tab, bg=self.colors['card'])        result_frame.pack(fill=tk.BOTH, expand=True, padx=20, pady=10)                self.quadratic_result = tk.Text(result_frame,                                       height=8,                                       font=('Microsoft YaHei', 12),                                       bg='#FAFAFA',                                       wrap=tk.WORD)        self.quadratic_result.pack(fill=tk.BOTH, expand=True)                # 公式说明        formula_frame = tk.Frame(tab, bg=self.colors['card'])        formula_frame.pack(fill=tk.X, padx=20, pady=10)                formula_text = &quot;&quot;&quot;        一元二次方程求根公式:        x = [-b ± √(b&#178; - 4ac)] / (2a)        &quot;&quot;&quot;                formula_label = tk.Label(formula_frame,                                text=formula_text,                                font=('Microsoft YaHei', 10),                                bg='#E8F5E9',                                fg='#1B5E20',                                justify=tk.LEFT)        formula_label.pack(fill=tk.X)        def create_other_tab(self):        &quot;&quot;&quot;创建其他计算选项卡&quot;&quot;&quot;        tab = tk.Frame(self.notebook, bg=self.colors['card'])        self.notebook.add(tab, text=&quot;其他计算&quot;)                # 选项卡标题        tab_title = tk.Label(tab,                           text=&quot;其他数学计算&quot;,                           font=('Microsoft YaHei', 16, 'bold'),                           bg=self.colors['card'],                           fg=self.colors['primary'])        tab_title.pack(pady=20)                # 功能按钮网格        func_frame = tk.Frame(tab, bg=self.colors['card'])        func_frame.pack(pady=20)                other_funcs = [            (&quot;阶乘&quot;, self.calculate_factorial, &quot;#2196F3&quot;),            (&quot;排列A(n,m)&quot;, self.calculate_permutation, &quot;#4CAF50&quot;),            (&quot;组合C(n,m)&quot;, self.calculate_combination, &quot;#FF9800&quot;),            (&quot;对数&quot;, self.calculate_log, &quot;#9C27B0&quot;),            (&quot;圆周率&quot;, self.show_pi, &quot;#F44336&quot;),            (&quot;自然对数e&quot;, self.show_e, &quot;#795548&quot;),            (&quot;平均值&quot;, self.calculate_mean, &quot;#607D8B&quot;),            (&quot;方差&quot;, self.calculate_variance, &quot;#009688&quot;),        ]                for i, (text, command, color) in enumerate(other_funcs):            row = i // 4            col = i % 4                        btn = tk.Button(func_frame,                          text=text,                          command=command,                          font=('Microsoft YaHei', 11, 'bold'),                          bg=color,                          fg='white',                          padx=10,                          pady=8,                          relief=tk.RAISED,                          borderwidth=2)            btn.grid(row=row, column=col, padx=5, pady=5, sticky=&quot;nsew&quot;)            func_frame.grid_columnconfigure(col, weight=1)                # 结果表现        result_frame = tk.Frame(tab, bg=self.colors['card'])        result_frame.pack(fill=tk.BOTH, expand=True, padx=20, pady=10)                self.other_result = scrolledtext.ScrolledText(result_frame,                                                     height=10,                                                     font=('Microsoft YaHei', 12),                                                     bg='#FAFAFA',                                                     wrap=tk.WORD)        self.other_result.pack(fill=tk.BOTH, expand=True)                # 数学常数        constant_frame = tk.Frame(tab, bg=self.colors['card'])        constant_frame.pack(fill=tk.X, padx=20, pady=10)                constant_text = &quot;&quot;&quot;        π ≈ 3.14159265358979323846        e ≈ 2.71828182845904523536        φ ≈ 1.61803398874989484820(黄金比例)                圆的面积:S = πr&#178;        圆的周长:C = 2πr        球体积:V = (4/3)πr&#179;        球表面积:S = 4πr&#178;        &quot;&quot;&quot;                constant_label = tk.Label(constant_frame,                                 text=constant_text,                                 font=('Microsoft YaHei', 10),                                 bg='#F3E5F5',                                 fg='#4A148C',                                 justify=tk.LEFT)        constant_label.pack(fill=tk.X)        def create_result_area(self, parent):        &quot;&quot;&quot;创建结果和汗青记录区域&quot;&quot;&quot;        result_frame = tk.Frame(parent, bg=self.colors['card'], relief=tk.RAISED, borderwidth=2)        result_frame.pack(fill=tk.X, pady=(10, 5))                # 结果标签        result_label = tk.Label(result_frame,                               text=&quot;计算结果:&quot;,                               font=('Microsoft YaHei', 14, 'bold'),                               bg=self.colors['card'],                               fg=self.colors['primary'])        result_label.pack(anchor=tk.W, padx=20, pady=10)                # 结果表现框        self.main_result = scrolledtext.ScrolledText(result_frame,                                                    height=6,                                                    font=('Microsoft YaHei', 12),                                                    bg='#FAFAFA',                                                    wrap=tk.WORD)        self.main_result.pack(fill=tk.BOTH, expand=True, padx=20, pady=(0, 10))                # 汗青记录按钮        history_btn = tk.Button(result_frame,                               text=&quot;&#128203; 复制结果&quot;,                               command=self.copy_result,                               font=('Microsoft YaHei', 10),                               bg='#2196F3',                               fg='white',                               padx=10)        history_btn.pack(side=tk.RIGHT, padx=20, pady=(0, 10))                clear_btn = tk.Button(result_frame,                             text=&quot;&#128465;&#65039; 清空记录&quot;,                             command=self.clear_history,                             font=('Microsoft YaHei', 10),                             bg='#F44336',                             fg='white',                             padx=10)        clear_btn.pack(side=tk.RIGHT, padx=5, pady=(0, 10))        def create_status_bar(self, parent):        &quot;&quot;&quot;创建状态栏&quot;&quot;&quot;        status_frame = tk.Frame(parent, bg='#333333', height=30)        status_frame.pack(side=tk.BOTTOM, fill=tk.X)        status_frame.pack_propagate(False)                self.status_label = tk.Label(status_frame,                                   text=&quot;停当 | 欢迎使用初中数学计算小助手!&quot;,                                   font=('Microsoft YaHei', 10),                                   bg='#333333',                                   fg='white')        self.status_label.pack(side=tk.LEFT, padx=20)                version_label = tk.Label(status_frame,                                text=&quot;版本 1.0 | 适合初中数学学习使用&quot;,                                font=('Microsoft YaHei', 9),                                bg='#333333',                                fg='#BBBBBB')        version_label.pack(side=tk.RIGHT, padx=20)        def update_status(self, message):        &quot;&quot;&quot;更新状态栏&quot;&quot;&quot;        self.status_label.config(text=message)        self.root.update()        def update_result(self, result_text, add_to_history=True):        &quot;&quot;&quot;更新结果表现&quot;&quot;&quot;        self.main_result.delete(1.0, tk.END)        self.main_result.insert(tk.END, result_text)                if add_to_history and result_text.strip():            self.history.append(result_text)            if len(self.history) > 10:  # 只保留迩来10条记录                self.history.pop(0)        def copy_result(self):        &quot;&quot;&quot;复制结果到剪贴板&quot;&quot;&quot;        result = self.main_result.get(1.0, tk.END).strip()        if result:            self.root.clipboard_clear()            self.root.clipboard_append(result)            self.update_status(&quot;结果已复制到剪贴板!&quot;)        else:            self.update_status(&quot;没有可复制的结果&quot;)        def clear_history(self):        &quot;&quot;&quot;清空汗青记录&quot;&quot;&quot;        self.history = []        self.update_result(&quot;汗青记录已清空!&quot;, add_to_history=False)        self.update_status(&quot;汗青记录已清空&quot;)        # ========== 公约数/公倍数计算 ==========    def calculate_gcd(self):        &quot;&quot;&quot;计算最大公约数&quot;&quot;&quot;        try:            numbers_str = self.numbers_var.get().strip()            if not numbers_str:                messagebox.showwarning(&quot;输入错误&quot;, &quot;请输入数字!&quot;)                return                        numbers = list(map(int, numbers_str.split()))                        if len(numbers) < 2:                messagebox.showwarning(&quot;输入错误&quot;, &quot;请输入至少两个数字!&quot;)                return                        # 计算最大公约数            result = numbers[0]            for num in numbers[1:]:                result = math.gcd(result, num)                        # 更新结果            result_text = f&quot;数字:{numbers}\n&quot;            result_text += f&quot;最大公约数(GCD) = {result}\n\n&quot;                        # 表现计算过程            result_text += &quot;计算过程:\n&quot;            for i, num in enumerate(numbers):                divisors = [str(d) for d in range(1, num+1) if num % d == 0]                result_text += f&quot;{num}的约数:{', '.join(divisors)}\n&quot;                        self.update_result(result_text)            self.update_status(f&quot;计算完成:{numbers} 的最大公约数是 {result}&quot;)                        # 更新选项卡内结果            self.gcd_lcm_result.delete(1.0, tk.END)            self.gcd_lcm_result.insert(tk.END, result_text)                    except ValueError:            messagebox.showerror(&quot;输入错误&quot;, &quot;请输入有效的数字!&quot;)        def calculate_lcm(self):        &quot;&quot;&quot;计算最小公倍数&quot;&quot;&quot;        try:            numbers_str = self.numbers_var.get().strip()            if not numbers_str:                messagebox.showwarning(&quot;输入错误&quot;, &quot;请输入数字!&quot;)                return                        numbers = list(map(int, numbers_str.split()))                        if len(numbers) < 2:                messagebox.showwarning(&quot;输入错误&quot;, &quot;请输入至少两个数字!&quot;)                return                        # 计算最小公倍数            def lcm(a, b):                return abs(a * b) // math.gcd(a, b)                        result = numbers[0]            for num in numbers[1:]:                result = lcm(result, num)                        # 更新结果            result_text = f&quot;数字:{numbers}\n&quot;            result_text += f&quot;最小公倍数(LCM) = {result}\n\n&quot;                        # 表现计算过程            result_text += &quot;计算过程:\n&quot;            for i, num in enumerate(numbers):                multiples = [str(num * m) for m in range(1, 6)]  # 表现前5个倍数                result_text += f&quot;{num}的倍数:{', '.join(multiples)}...\n&quot;                        self.update_result(result_text)            self.update_status(f&quot;计算完成:{numbers} 的最小公倍数是 {result}&quot;)                        # 更新选项卡内结果            self.gcd_lcm_result.delete(1.0, tk.END)            self.gcd_lcm_result.insert(tk.END, result_text)                    except ValueError:            messagebox.showerror(&quot;输入错误&quot;, &quot;请输入有效的数字!&quot;)        # ========== 素数计算 ==========    def calculate_prime(self):        &quot;&quot;&quot;计算素数&quot;&quot;&quot;        try:            func_type = self.prime_func_var.get()            n_str = self.n_prime_var.get().strip()                        if not n_str:                messagebox.showwarning(&quot;输入错误&quot;, &quot;请输入N的值!&quot;)                return                        n = int(n_str)                        if n < 2:                messagebox.showwarning(&quot;输入错误&quot;, &quot;请输入大于1的整数!&quot;)                return                        if func_type == &quot;list&quot;:                # 列出所有素数                primes = []                for num in range(2, n + 1):                    if all(num % i != 0 for i in range(2, int(math.sqrt(num)) + 1)):                        primes.append(num)                                result_text = f&quot;{n}以内的所有素数:\n&quot;                result_text += &quot;, &quot;.join(map(str, primes)) + &quot;\n\n&quot;                result_text += f&quot;共有 {len(primes)} 个素数\n&quot;                            elif func_type == &quot;check&quot;:                # 判断是否为素数                is_prime = True                if n < 2:                    is_prime = False                else:                    for i in range(2, int(math.sqrt(n)) + 1):                        if n % i == 0:                            is_prime = False                            break                                if is_prime:                    result_text = f&quot;{n} 是素数!\n\n&quot;                    result_text += f&quot;{n}只能被1和它自身整除。\n&quot;                else:                    result_text = f&quot;{n} 不是素数!\n\n&quot;                    result_text += f&quot;{n}是合数,可以被以下数整除:\n&quot;                    divisors = [str(i) for i in range(1, n+1) if n % i == 0]                    result_text += &quot;, &quot;.join(divisors)                        else:  # count                # 统计素数个数                count = 0                for num in range(2, n + 1):                    if all(num % i != 0 for i in range(2, int(math.sqrt(num)) + 1)):                        count += 1                                result_text = f&quot;{n}以内的素数个数:{count}\n\n&quot;                if n  1:                    messagebox.showerror(&quot;输入错误&quot;, &quot;反正弦函数的输入必须在[-1, 1]之间!&quot;)                    return                result = math.degrees(math.asin(angle))                symbol = 'arcsin'            elif func == 'acos':                if angle < -1 or angle > 1:                    messagebox.showerror(&quot;输入错误&quot;, &quot;反余弦函数的输入必须在[-1, 1]之间!&quot;)                    return                result = math.degrees(math.acos(angle))                symbol = 'arccos'            elif func == 'atan':                result = math.degrees(math.atan(angle))                symbol = 'arctan'                        if func in ['sin', 'cos', 'tan']:                result_text = f&quot;{symbol}({angle}°) = {result}\n\n&quot;                                # 表现常见角度的精确值                common_angles = {0: 0, 30: 0.5, 45: 0.7071, 60: 0.8660, 90: 1}                if angle in common_angles:                    if symbol == 'sin':                        if angle == 0: exact = &quot;0&quot;                        elif angle == 30: exact = &quot;1/2&quot;                        elif angle == 45: exact = &quot;√2/2&quot;                        elif angle == 60: exact = &quot;√3/2&quot;                        elif angle == 90: exact = &quot;1&quot;                    elif symbol == 'cos':                        if angle == 0: exact = &quot;1&quot;                        elif angle == 30: exact = &quot;√3/2&quot;                        elif angle == 45: exact = &quot;√2/2&quot;                        elif angle == 60: exact = &quot;1/2&quot;                        elif angle == 90: exact = &quot;0&quot;                    elif symbol == 'tan':                        if angle == 0: exact = &quot;0&quot;                        elif angle == 30: exact = &quot;√3/3&quot;                        elif angle == 45: exact = &quot;1&quot;                        elif angle == 60: exact = &quot;√3&quot;                        elif angle == 90: exact = &quot;∞&quot;                                        if angle != 90 or symbol != 'tan':                        result_text += f&quot;精确值:{exact} ≈ {common_angles[angle]}\n&quot;                            else:  # 反三角函数                result_text = f&quot;{symbol}({angle}) = {result}°\n\n&quot;                result_text += f&quot;弧度:{math.radians(result):.4f} rad&quot;                        self.update_result(result_text)            self.update_status(f&quot;计算完成:{symbol}({angle}) = {result}&quot;)                        # 更新选项卡内结果            self.trig_result.delete(1.0, tk.END)            self.trig_result.insert(tk.END, result_text)                    except ValueError:            messagebox.showerror(&quot;输入错误&quot;, &quot;请输入有效的角度!&quot;)        # ========== 一元二次方程 ==========    def set_quadratic_example(self, a, b, c):        &quot;&quot;&quot;设置二次方程示例&quot;&quot;&quot;        self.coeff_a_var.set(str(a))        self.coeff_b_var.set(str(b))        self.coeff_c_var.set(str(c))        self.update_status(f&quot;已设置示例:{a}x&#178; + {b}x + {c} = 0&quot;)        def solve_quadratic(self):        &quot;&quot;&quot;解一元二次方程&quot;&quot;&quot;        try:            a = float(self.coeff_a_var.get())            b = float(self.coeff_b_var.get())            c = float(self.coeff_c_var.get())                        if a == 0:                messagebox.showerror(&quot;输入错误&quot;, &quot;二次项系数a不能为0!&quot;)                return                        result_text = f&quot;求解方程:{a}x&#178; + {b}x + {c} = 0\n\n&quot;                        # 计算判别式            delta = b**2 - 4*a*c            result_text += f&quot;判别式 Δ = b&#178; - 4ac = {b}&#178; - 4×{a}×{c} = {delta}\n\n&quot;                        if delta > 0:                # 两个不相等的实根                x1 = (-b + math.sqrt(delta)) / (2*a)                x2 = (-b - math.sqrt(delta)) / (2*a)                result_text += f&quot;Δ > 0,方程有两个不相等的实根:\n&quot;                result_text += f&quot;x&#8321; = (-b + √Δ)/(2a) = ({-b} + √{delta})/({2*a}) = {x1:.4f}\n&quot;                result_text += f&quot;x&#8322; = (-b - √Δ)/(2a) = ({-b} - √{delta})/({2*a}) = {x2:.4f}\n\n&quot;                result_text += f&quot;方程可分解为:{a}(x - {x1:.4f})(x - {x2:.4f}) = 0&quot;                            elif delta == 0:                # 两个相等的实根                x = -b / (2*a)                result_text += f&quot;Δ = 0,方程有两个相等的实根:\n&quot;                result_text += f&quot;x&#8321; = x&#8322; = -b/(2a) = {-b}/({2*a}) = {x:.4f}\n\n&quot;                result_text += f&quot;方程可分解为:{a}(x - {x:.4f})&#178; = 0&quot;                            else:                # 两个共轭虚根                real_part = -b / (2*a)                imag_part = math.sqrt(-delta) / (2*a)                result_text += f&quot;Δ < 0,方程有两个共轭虚根:\n&quot;                result_text += f&quot;x&#8321; = {real_part:.4f} + {imag_part:.4f}i\n&quot;                result_text += f&quot;x&#8322; = {real_part:.4f} - {imag_part:.4f}i&quot;                        self.update_result(result_text)            self.update_status(f&quot;方程求解完成:Δ = {delta}&quot;)                        # 更新选项卡内结果            self.quadratic_result.delete(1.0, tk.END)            self.quadratic_result.insert(tk.END, result_text)                    except ValueError:            messagebox.showerror(&quot;输入错误&quot;, &quot;请输入有效的系数!&quot;)        def clear_quadratic(self):        &quot;&quot;&quot;清空二次方程结果&quot;&quot;&quot;        self.quadratic_result.delete(1.0, tk.END)        self.update_status(&quot;二次方程结果已清空&quot;)        # ========== 其他计算 ==========    def calculate_factorial(self):        &quot;&quot;&quot;计算阶乘&quot;&quot;&quot;        result_text = &quot;计算阶乘 n! = 1×2×3×...×n\n\n&quot;        result_text += &quot;请输入n的值(建议n ≤ 20):\n\n&quot;                for n in range(1, 11):            if n
精密测量技术论坛免责声明
✈️重要声明:以上内容仅代表该作者观点,不代表本站精密测量技术论坛立场。
✅如有涉及侵权请尽快告知,我们将会在第一时间处理。作者原创内容未经允许不得转载!
📱 站长联系邮箱:1339305021@qq.com
📱 站长联系微信:dddnnbbb
累计签到:13 天
连续签到:1 天
灌水成绩
1
146
2003
主题
帖子
积分

等级头衔

ID : 849

初级技术员

积分成就 测量币 : 2003
在线时间 : 0 小时
注册时间 : 2026-2-4
最后登录 : 2026-5-15

勋章
UID勋章测量学徒测量员
发表于 2026-5-1 15:59:59 | 显示全部楼层 IP:香港
这个可以,下载给小孩试试
回复

使用道具 举报

累计签到:20 天
连续签到:11 天
灌水成绩
1
176
2435
主题
帖子
积分

等级头衔

ID : 899

初级技术员

积分成就 测量币 : 2435
在线时间 : 0 小时
注册时间 : 2025-9-6
最后登录 : 2026-5-17

勋章
UID勋章测量学徒测量员
发表于 2026-5-1 15:59:59 | 显示全部楼层 IP:香港
谢谢支持,也可以让孩子以此为基础,开始学习Python~~
回复

使用道具 举报

累计签到:14 天
连续签到:1 天
灌水成绩
2
163
1781
主题
帖子
积分

等级头衔

ID : 814

测量学徒

积分成就 测量币 : 1781
在线时间 : 0 小时
注册时间 : 2025-11-10
最后登录 : 2026-5-15

勋章
UID勋章测量学徒测量员
发表于 2026-5-1 10:30:25 | 显示全部楼层 IP:香港
感谢无私奉献,谢谢了
回复

使用道具 举报

累计签到:20 天
连续签到:12 天
灌水成绩
3
174
2470
主题
帖子
积分

等级头衔

ID : 898

初级技术员

积分成就 测量币 : 2470
在线时间 : 0 小时
注册时间 : 2025-10-12
最后登录 : 2026-5-15

勋章
UID勋章测量学徒测量员
发表于 2026-5-1 15:59:59 | 显示全部楼层 IP:香港
谢谢分享,希望能帮到小孩
回复

使用道具 举报

累计签到:16 天
连续签到:1 天
灌水成绩
3
180
2006
主题
帖子
积分

等级头衔

ID : 897

初级技术员

积分成就 测量币 : 2006
在线时间 : 0 小时
注册时间 : 2026-1-23
最后登录 : 2026-5-20

勋章
UID勋章测量学徒测量员
发表于 2026-5-1 15:59:59 | 显示全部楼层 IP:香港
给小孩试试,看着不错呦
回复

使用道具 举报

累计签到:20 天
连续签到:11 天
灌水成绩
1
176
2435
主题
帖子
积分

等级头衔

ID : 899

初级技术员

积分成就 测量币 : 2435
在线时间 : 0 小时
注册时间 : 2025-9-6
最后登录 : 2026-5-17

勋章
UID勋章测量学徒测量员
发表于 2026-5-1 15:59:59 | 显示全部楼层 IP:香港
这个工具还挺好
回复

使用道具 举报

累计签到:14 天
连续签到:3 天
灌水成绩
0
165
1782
主题
帖子
积分

等级头衔

ID : 807

测量学徒

积分成就 测量币 : 1782
在线时间 : 0 小时
注册时间 : 2025-9-7
最后登录 : 2026-5-15

勋章
UID勋章测量学徒测量员
发表于 2026-5-1 15:59:59 | 显示全部楼层 IP:香港
实用的小工具
回复

使用道具 举报

累计签到:19 天
连续签到:11 天
灌水成绩
4
150
1960
主题
帖子
积分

等级头衔

ID : 868

测量学徒

积分成就 测量币 : 1960
在线时间 : 0 小时
注册时间 : 2026-2-5
最后登录 : 2026-5-15

勋章
UID勋章测量学徒测量员
发表于 2026-5-1 15:59:59 | 显示全部楼层 IP:香港
学习数学,最好的方式不是去领悟练习嘛
回复

使用道具 举报

累计签到:14 天
连续签到:1 天
灌水成绩
2
163
1781
主题
帖子
积分

等级头衔

ID : 814

测量学徒

积分成就 测量币 : 1781
在线时间 : 0 小时
注册时间 : 2025-11-10
最后登录 : 2026-5-15

勋章
UID勋章测量学徒测量员
发表于 2026-5-1 15:59:59 | 显示全部楼层 IP:香港
这个工能有点少
回复

使用道具 举报

快速回复换一批
好贴支持!
遇见神贴岂能不顶
路过留名
好贴帮顶
强无敌
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|精密测量技术论坛 ( 桂ICP备2026007449号-1 )

GMT+8, 2026-5-21 06:30 , Processed in 0.170148 second(s), 34 queries .

快速回复 返回顶部 返回列表