2024年Web前端最全前端实现科学计算器_前端插件计算器,2024年前端面试

跳槽是每个人的职业生涯中都要经历的过程,不论你是搜索到的这篇文章还是无意中浏览到的这篇文章,希望你没有白白浪费停留在这里的时间,能给你接下来或者以后的笔试面试带来一些帮助。

也许是互联网未来10年中最好的一年。WINTER IS COMING。但是如果你不真正的自己去尝试尝试,你永远不知道市面上的行情如何。这次找工作下来,我自身感觉市场并没有那么可怕,也拿到了几个大厂的offer。在此进行一个总结,给自己,也希望能帮助到需要的同学。

面试准备

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

面试准备根据每个人掌握的知识不同,准备的时间也不一样。现在对于前端岗位,以前也许不是很重视算法这块,但是现在很多公司也都会考。建议大家平时有空的时候多刷刷leetcode。算法的准备时间比较长,是一个长期的过程。需要在掌握了大部分前端基础知识的情况下,再有针对性的去复习算法。面试的时候算法能做出来肯定加分,但做不出来也不会一票否决,面试官也会给你提供一些思路。

目录

Calculator

这个作业属于哪个课程https://bbs.csdn.net/forums/ssynkqtd-05
这个作业要求在哪里https://bbs.csdn.net/topics/617294583
这个作业的目标完成一个具有可视化界面的计算器
其他参考文献

源代码链接

0. 界面展示

在这里插入图片描述

1. PSP表格

PSPPersonal Software Process Stages预估耗时(分钟)实际耗时(分钟)
Planning计划6040
• Estimate• 估计这个任务需要多少时间1510
Development开发700850
• Analysis• 需求分析 (包括学习新技术)100150
• Design Spec• 生成设计文档6075
• Design Review• 设计复审3045
• Coding Standard• 代码规范 (为目前的开发制定合适的规范)3040
• Design• 具体设计6090
• Coding• 具体编码300350
• Code Review• 代码复审4560
• Test• 测试(自我测试,修改代码,提交修改)6075
Reporting报告9060
• Test Repor• 测试报告3020
• Size Measurement• 计算工作量1510
• Postmortem & Process Improvement Plan• 事后总结, 并提出过程改进计划4530
合计850950

2. 解题思路描述

要求实现一个具有图形化界面简易计算器

  1. 编程语言选择。原本打算使用 Java,Python 等的 GUI 框架来实现一个简单图形化界面,但是界面要实现的好看比较困难,最后选择 html + css + js 来实现。
  2. 界面设计。一般的计算器都比较简陋,要做一个比较好看的计算器需要花点时间来设计 UI 界面,以前有开发移动端的经验,看过比较多的 UI 设计,这点比较容易。
  3. 核心功能。实现计算功能用 js 其实就是字符串的计算,计算逻辑的实现是比较困难的,特别是加上了科学计算以后。这点可以去 github 和 stackflow 上看看。
  4. exe打包。作业要求要生成 exe 文件,第一次遇到 html 生成 exe 的情况。查找到软件 HTML2EXE 可以实现此需求(超好用)。

3. 设计与实现过程

项目由 html、css、js 完成。

  1. 将所有的按键及属性装在一个数组内,便于后续代码的编写
let calculator_buttons = [
    {
        name: "square-root", symbol: "√", formula: "Math.sqrt(", type: "math\_function"
    }, {
        name: "square", symbol: "x²", formula: POWER, type: "math\_function"
    }
    .....
    ];

  1. 将输入的字符分为 operation (显示的字符串) 和 formula (计算使用的字符串)
let data = {
    operation: [], formula: [],
}

  1. 点击等于的时候进行计算
function calculator(button) {
    if (button.type === 'operator') {
        data.operation.push(button.symbol)
        data.formula.push(button.formula)
    }
    	......
    else if (button.type === 'math\_function') {
        let symbol, formula;
        if (button.name === 'factorial') {
            symbol = "!"
            formula = button.formula
            data.operation.push(symbol)
            data.formula.push(formula)
        } 
        ......
    } else if (button.type === 'key') {
        if (button.name === 'clear') {
            data.operation = []
            data.formula = []
            updateOutputResult(0)
        } 
        ......
    } else if (button.type === 'calculate') {
        formula_str = data.formula.join('')
        // 生成计算使用的字符串
        ......
        let result
        try {
            // 计算结果
            ......
        } catch (error) {
            if (error instanceof SyntaxError) {
                result = "SyntaxError"
                updateOutputResult(result)
                return
            }
        }
        ans = result  // 保存上一次计算结果
        data.operation = [result]
        data.formula = [result]
        updateOutputResult(result)
        return
    }
    updateOutputOperation(data.operation.join(''))
}

  1. 将 formula 生成计算使用的字符串

总结

前端资料汇总

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

  • 框架原理真的深入某一部分具体的代码和实现方式时,要多注意到细节,不要只能写出一个框架。

  • 算法方面很薄弱的,最好多刷一刷,不然影响你的工资和成功率😯

  • 在投递简历之前,最好通过各种渠道找到公司内部的人,先提前了解业务,也可以帮助后期优秀 offer 的决策。

  • 要勇于说不,对于某些 offer 待遇不满意、业务不喜欢,应该相信自己,不要因为当下没有更好的 offer 而投降,一份工作短则一年长则 N 年,为了幸福生活要慎重选择!!!
    喜欢这篇文章文章的小伙伴们点赞+转发支持,你们的支持是我最大的动力!

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
抱歉,我是一个文本AI模型,无法提供前端页面的开发。不过,我可以为您提供一个可供参考的HTML代码,您可以在此基础上继续进行开发。 ```html <!DOCTYPE html> <html> <head> <title>科学计算器</title> <style> #calculator { width: 300px; border: 1px solid #000; padding: 10px; margin: 0 auto; text-align: center; } #result { height: 50px; margin-bottom: 10px; font-size: 30px; text-align: right; padding: 5px; border: 1px solid #000; background-color: #eee; } #buttons { display: flex; flex-wrap: wrap; justify-content: space-between; } .button { width: calc(25% - 10px); height: 50px; margin-bottom: 10px; font-size: 20px; border: none; border-radius: 5px; background-color: #ccc; cursor: pointer; } .button:hover { background-color: #ddd; } .operation { background-color: #f44336; color: #fff; } .operation:hover { background-color: #ff6659; } .clear { background-color: #e7e7e7; } .clear:hover { background-color: #f1f1f1; } </style> </head> <body> <div id="calculator"> <div id="result"></div> <div id="buttons"> <button class="button clear">C</button> <button class="button operation">/</button> <button class="button operation">*</button> <button class="button">7</button> <button class="button">8</button> <button class="button">9</button> <button class="button operation">-</button> <button class="button">4</button> <button class="button">5</button> <button class="button">6</button> <button class="button operation">+</button> <button class="button">1</button> <button class="button">2</button> <button class="button">3</button> <button class="button operation">=</button> <button class="button">0</button> <button class="button">.</button> </div> </div> </body> </html> ``` 这是一个简单的科学计算器的HTML代码,包括一个显示结果的区域和一个按钮区域。您可以根据需要添加更多的功能和按钮。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值