parent
002ec4fa1d
commit
3b01298739
@ -0,0 +1,8 @@
|
|||||||
|
# 默认忽略的文件
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
||||||
|
# 基于编辑器的 HTTP 客户端请求
|
||||||
|
/httpRequests/
|
||||||
|
# Datasource local storage ignored files
|
||||||
|
/dataSources/
|
||||||
|
/dataSources.local.xml
|
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="JAVA_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||||
|
<exclude-output />
|
||||||
|
<content url="file://$MODULE_DIR$" />
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||||
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
|
</component>
|
||||||
|
</project>
|
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/Double.iml" filepath="$PROJECT_DIR$/.idea/Double.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="" vcs="Git" />
|
||||||
|
<mapping directory="$PROJECT_DIR$/Git" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 9aaa5210e3c7bf30e3ddf212aa39ac28a6cbcbc7
|
@ -0,0 +1,88 @@
|
|||||||
|
let displayValue = '0'; // 显示屏上的内容
|
||||||
|
let firstNumber = null; // 第一个数字
|
||||||
|
let secondNumber = null; // 第二个数字
|
||||||
|
let operation = null; // 运算符
|
||||||
|
let waitingForSecondNumber = false;
|
||||||
|
|
||||||
|
// 更新显示
|
||||||
|
function updateDisplay() {
|
||||||
|
const display = document.getElementById('display');
|
||||||
|
display.innerText = displayValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 添加数字
|
||||||
|
function appendNumber(number) {
|
||||||
|
if (waitingForSecondNumber) {
|
||||||
|
displayValue = number.toString();
|
||||||
|
waitingForSecondNumber = false;
|
||||||
|
} else {
|
||||||
|
displayValue = displayValue === '0' ? number.toString() : displayValue + number.toString();
|
||||||
|
}
|
||||||
|
updateDisplay();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 设置运算符
|
||||||
|
function setOperation(op) {
|
||||||
|
if (firstNumber === null) {
|
||||||
|
firstNumber = parseFloat(displayValue);
|
||||||
|
} else if (operation) {
|
||||||
|
secondNumber = parseFloat(displayValue);
|
||||||
|
firstNumber = performCalculation(firstNumber, secondNumber, operation);
|
||||||
|
displayValue = firstNumber.toString();
|
||||||
|
updateDisplay();
|
||||||
|
}
|
||||||
|
operation = op;
|
||||||
|
waitingForSecondNumber = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 计算结果
|
||||||
|
function calculate() {
|
||||||
|
if (operation && !waitingForSecondNumber) {
|
||||||
|
secondNumber = parseFloat(displayValue);
|
||||||
|
displayValue = performCalculation(firstNumber, secondNumber, operation).toString();
|
||||||
|
firstNumber = null;
|
||||||
|
secondNumber = null;
|
||||||
|
operation = null;
|
||||||
|
updateDisplay();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 执行计算
|
||||||
|
function performCalculation(num1, num2, operator) {
|
||||||
|
switch (operator) {
|
||||||
|
case '+':
|
||||||
|
return num1 + num2;
|
||||||
|
case '-':
|
||||||
|
return num1 - num2;
|
||||||
|
case '*':
|
||||||
|
return num1 * num2;
|
||||||
|
case '/':
|
||||||
|
return num2 !== 0 ? num1 / num2 : '错误';
|
||||||
|
default:
|
||||||
|
return num2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 百分号处理
|
||||||
|
function percent() {
|
||||||
|
displayValue = (parseFloat(displayValue) / 100).toString();
|
||||||
|
updateDisplay();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 添加小数点
|
||||||
|
function appendSymbol(symbol) {
|
||||||
|
if (!displayValue.includes(symbol)) {
|
||||||
|
displayValue += symbol;
|
||||||
|
updateDisplay();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 清除显示
|
||||||
|
function clearDisplay() {
|
||||||
|
displayValue = '0';
|
||||||
|
firstNumber = null;
|
||||||
|
secondNumber = null;
|
||||||
|
operation = null;
|
||||||
|
waitingForSecondNumber = false;
|
||||||
|
updateDisplay();
|
||||||
|
}
|
@ -0,0 +1,69 @@
|
|||||||
|
body, html {
|
||||||
|
margin: 0;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
background-color: #f2f2f2; /* 背景颜色 */
|
||||||
|
font-family: 'Arial', sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.calculator {
|
||||||
|
width: 400px; /* 计算器宽度 */
|
||||||
|
border-radius: 30px; /* 圆角 */
|
||||||
|
overflow: hidden; /* 隐藏超出边界部分 */
|
||||||
|
background: #ffffff; /* 背景颜色 */
|
||||||
|
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2); /* 阴影效果 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.display {
|
||||||
|
background: #000; /* 显示区域颜色 */
|
||||||
|
color: #ffffff; /* 字体颜色 */
|
||||||
|
font-size: 64px; /* 字体大小 */
|
||||||
|
text-align: right; /* 文字右对齐 */
|
||||||
|
padding: 20px; /* 内边距 */
|
||||||
|
border-bottom: 1px solid #dddddd; /* 下边框 */
|
||||||
|
height: 100px; /* 显示区域高度 */
|
||||||
|
box-sizing: border-box; /* 包括内边距和边框 */
|
||||||
|
overflow: hidden; /* 隐藏超出内容 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.buttons {
|
||||||
|
display: grid; /* 使用网格布局 */
|
||||||
|
grid-template-columns: repeat(4, 1fr); /* 四列 */
|
||||||
|
gap: 1px; /* 按钮间隔 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.button {
|
||||||
|
height: 80px; /* 按钮高度 */
|
||||||
|
border: none; /* 无边框 */
|
||||||
|
font-size: 36px; /* 字体大小 */
|
||||||
|
color: white; /* 字体颜色 */
|
||||||
|
background: #007AFF; /* 按钮颜色 */
|
||||||
|
transition: background 0.3s; /* 背景颜色渐变 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.button.zero {
|
||||||
|
grid-column: span 2; /* 0按钮跨两列 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.button.function {
|
||||||
|
background: #8E8E93; /* 功能按钮颜色 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.button.operator {
|
||||||
|
background: #FF3B30; /* 运算符按钮颜色 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.button:hover {
|
||||||
|
cursor: pointer; /* 鼠标样式 */
|
||||||
|
background: #0051D4; /* 鼠标悬停效果 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.button.operator:hover {
|
||||||
|
background: #7A7A7A; /* 运算符鼠标悬停效果 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.button.function:hover {
|
||||||
|
background: #7A7A7A; /* 功能按钮鼠标悬停效果 */
|
||||||
|
}
|
@ -0,0 +1,88 @@
|
|||||||
|
let displayValue = '0'; // 显示屏上的内容
|
||||||
|
let firstNumber = null; // 第一个数字
|
||||||
|
let secondNumber = null; // 第二个数字
|
||||||
|
let operation = null; // 运算符
|
||||||
|
let waitingForSecondNumber = false;
|
||||||
|
|
||||||
|
// 更新显示
|
||||||
|
function updateDisplay() {
|
||||||
|
const display = document.getElementById('display');
|
||||||
|
display.innerText = displayValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 添加数字
|
||||||
|
function appendNumber(number) {
|
||||||
|
if (waitingForSecondNumber) {
|
||||||
|
displayValue = number.toString();
|
||||||
|
waitingForSecondNumber = false;
|
||||||
|
} else {
|
||||||
|
displayValue = displayValue === '0' ? number.toString() : displayValue + number.toString();
|
||||||
|
}
|
||||||
|
updateDisplay();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 设置运算符
|
||||||
|
function setOperation(op) {
|
||||||
|
if (firstNumber === null) {
|
||||||
|
firstNumber = parseFloat(displayValue);
|
||||||
|
} else if (operation) {
|
||||||
|
secondNumber = parseFloat(displayValue);
|
||||||
|
firstNumber = performCalculation(firstNumber, secondNumber, operation);
|
||||||
|
displayValue = firstNumber.toString();
|
||||||
|
updateDisplay();
|
||||||
|
}
|
||||||
|
operation = op;
|
||||||
|
waitingForSecondNumber = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 计算结果
|
||||||
|
function calculate() {
|
||||||
|
if (operation && !waitingForSecondNumber) {
|
||||||
|
secondNumber = parseFloat(displayValue);
|
||||||
|
displayValue = performCalculation(firstNumber, secondNumber, operation).toString();
|
||||||
|
firstNumber = null;
|
||||||
|
secondNumber = null;
|
||||||
|
operation = null;
|
||||||
|
updateDisplay();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 执行计算
|
||||||
|
function performCalculation(num1, num2, operator) {
|
||||||
|
switch (operator) {
|
||||||
|
case '+':
|
||||||
|
return num1 + num2;
|
||||||
|
case '-':
|
||||||
|
return num1 - num2;
|
||||||
|
case '*':
|
||||||
|
return num1 * num2;
|
||||||
|
case '/':
|
||||||
|
return num2 !== 0 ? num1 / num2 : '错误';
|
||||||
|
default:
|
||||||
|
return num2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 百分号处理
|
||||||
|
function percent() {
|
||||||
|
displayValue = (parseFloat(displayValue) / 100).toString();
|
||||||
|
updateDisplay();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 添加小数点
|
||||||
|
function appendSymbol(symbol) {
|
||||||
|
if (!displayValue.includes(symbol)) {
|
||||||
|
displayValue += symbol;
|
||||||
|
updateDisplay();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 清除显示
|
||||||
|
function clearDisplay() {
|
||||||
|
displayValue = '0';
|
||||||
|
firstNumber = null;
|
||||||
|
secondNumber = null;
|
||||||
|
operation = null;
|
||||||
|
waitingForSecondNumber = false;
|
||||||
|
updateDisplay();
|
||||||
|
}
|
@ -0,0 +1,69 @@
|
|||||||
|
body, html {
|
||||||
|
margin: 0;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
background-color: #f2f2f2; /* 背景颜色 */
|
||||||
|
font-family: 'Arial', sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.calculator {
|
||||||
|
width: 400px; /* 计算器宽度 */
|
||||||
|
border-radius: 30px; /* 圆角 */
|
||||||
|
overflow: hidden; /* 隐藏超出边界部分 */
|
||||||
|
background: #ffffff; /* 背景颜色 */
|
||||||
|
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2); /* 阴影效果 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.display {
|
||||||
|
background: #000; /* 显示区域颜色 */
|
||||||
|
color: #ffffff; /* 字体颜色 */
|
||||||
|
font-size: 64px; /* 字体大小 */
|
||||||
|
text-align: right; /* 文字右对齐 */
|
||||||
|
padding: 20px; /* 内边距 */
|
||||||
|
border-bottom: 1px solid #dddddd; /* 下边框 */
|
||||||
|
height: 100px; /* 显示区域高度 */
|
||||||
|
box-sizing: border-box; /* 包括内边距和边框 */
|
||||||
|
overflow: hidden; /* 隐藏超出内容 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.buttons {
|
||||||
|
display: grid; /* 使用网格布局 */
|
||||||
|
grid-template-columns: repeat(4, 1fr); /* 四列 */
|
||||||
|
gap: 1px; /* 按钮间隔 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.button {
|
||||||
|
height: 80px; /* 按钮高度 */
|
||||||
|
border: none; /* 无边框 */
|
||||||
|
font-size: 36px; /* 字体大小 */
|
||||||
|
color: white; /* 字体颜色 */
|
||||||
|
background: #007AFF; /* 按钮颜色 */
|
||||||
|
transition: background 0.3s; /* 背景颜色渐变 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.button.zero {
|
||||||
|
grid-column: span 2; /* 0按钮跨两列 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.button.function {
|
||||||
|
background: #8E8E93; /* 功能按钮颜色 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.button.operator {
|
||||||
|
background: #FF3B30; /* 运算符按钮颜色 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.button:hover {
|
||||||
|
cursor: pointer; /* 鼠标样式 */
|
||||||
|
background: #0051D4; /* 鼠标悬停效果 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.button.operator:hover {
|
||||||
|
background: #7A7A7A; /* 运算符鼠标悬停效果 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.button.function:hover {
|
||||||
|
background: #7A7A7A; /* 功能按钮鼠标悬停效果 */
|
||||||
|
}
|
Loading…
Reference in new issue