利用原生js编写简单计算器-Sander的博客-CSDN博客

<!DOCTYPE html><html lang="en">  
<head>    
<meta charset="UTF-8" />    
<meta name="viewport" content="width=device-width, initial-scale=1.0" />    
<title>Document</title>    
<style>      
	/*计算器盒子*/
	.divs {        
		width: 500px;        
		height: 600px;        
		border: 1px solid #000000;        
		margin: auto;      
	}
	/* 计算器的结果显示区  即input.value*/
	.divs > input {        
		width: 460px;        
		height: 45px;       
	 	margin-left: 18px;        
	 	margin-top: 10px;        
	 	font-size: 30px;        
	 	background-color: white;        
	 	text-align: right;      /* 让内容从最右侧开始 */
	 }
	 /* 给divs下面所有的div设置,即给计算器的按键进行设置 */      
	 .divs > div {        
	 	width: 100px;        
	 	height: 100px;        
	 	float: left;        
	 	border: 1px solid #000000;       
	 	margin-left: 18px;        
	 	margin-top: 25px;        
	 	font-size: 40px;        
	 	line-height: 100px;        
	 	text-align: center;        
	 	user-select: none;      /*禁止选中*/
	 }    
</style>  
</head>  
<body>    
	<div class="divs">      
		<input type="text" value="0" id="input1" disabled />
		<!-- value设置初始显示为0 -->      
		<div class="block">7</div>      
		<div class="block">8</div>      
		<div class="block">9</div>     
		<div class="block">-</div>      
		<div class="block">4</div>      
		<div class="block">5</div>      
		<div class="block">6</div>      
		<div class="block">+</div>      
		<div class="block">1</div>      
		<div class="block">2</div>      
		<div class="block">3</div>      
		<div class="block">*</div>      
		<div class="block">C</div>      
		<div class="block">0</div>      
		<div class="block">=</div>      
		<div class="block">/</div>    
	</div>
    <script>      
    	var blocks = document.getElementsByClassName("block");
    	// 获取类名为blocks的内容 形成数组      
    	var input = document.getElementById("input1");
    	// 获取input      
    	var firstValue = 0,
    	// 用于存储中间值的变量        
    	bool = false;
    	// bool 通过判断消除计算后input.value中的内容 从而使下次运算可以正常进行      
    	var type;
    	// 定义计算类型(+ - * /)  

	//for 遍历block数组    
    	for (var i = 0; i < blocks.length; i++) {        
    		blocks[i].onclick = function () {
    			//判断this.innerHTML是否为数字          
    			if (!isNaN(this.innerHTML)) {
    				//判断 当bool=true时进入,使其input.value重新归0            
    				if (bool) {              
    					input.value = "0";              
    					bool = false;            
    				}
    				//点击内容使其以字符串的形式累加显示到input.value中            
    				input.value = Number(input.value +this.innerHTML).toString();
    				} 
				//当this.innerHTML不是数字时
				else {
					// 判断this.innerHTML是否不等于C 或 = ;即判断this.innerHTML是否为 = - * /            
    					if (this.innerHTML !== "C" && this.innerHTML !== "=") {              
    						firstValue = Number(input.value);              
    						type = this.innerHTML;              
    						input.value = "0";            
    					} 
					// 点击C时的属性设置
					else if (this.innerHTML === "C") {              
    						firstValue = 0;
						// 暂存区归0
    						type = undefined;
    						// type设为未定义
    						input.value = "0";
    						// input.value设置为0 ,即重新显示为0            
    					} else {
    						//利用switch语句完成 = - * /运算,结果以的字符串形式统一输出
    						switch (type) {                
    							case "+":                  
    								input.value = (firstValue + Number(input.value)).toString();                  
    								break;                
    							case "-":                 
    								input.value = (firstValue - Number(input.value)).toString();                  
    								break;                
    							case "*":                  
    								input.value = (firstValue * Number(input.value)).toString();                  
    								break;                
    							case "/":                  
    							if (Number(input.value) === 0) input.value = "0";                  
    							else{                    
    								input.value = (firstValue / Number(input.value)).toString();                  
    								break;              
    							}              
    							bool = true;
    							// 当按下等号后 bool设置为true 进行上面的判断 使input.value="0",bool=false 进而不影响接下来的运算
    					}          
    				}        
    			};      
    		}    
    	</script>  
    </body>
    </html>

效果图:
在这里插入图片描述

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
以下是使用Amber Tools 22进行多胺分子动力学模拟的步骤: 1. 确定目标多胺的化学结构。 2. 制备输入文件:通常需要准备一个包含目标多胺结构的PDB文件,并使用ambpdb工具将其转换为Amber格式: ``` ambpdb -p input.pdb > input.prmtop ``` 其中,input.pdb为目标多胺结构的PDB文件,input.prmtop是输出的Amber格式拓扑文件。 3. 生成分子动力学模拟系统:使用tleap工具生成分子动力学模拟所需的所有输入文件: ``` tleap -f leap.in ``` 其中,leap.in文件包含以下内容: ``` source leaprc.protein.ff14SB #加载力场参数 source leaprc.water.tip3p #加载水分子参数 addions mymol Na+ 0 #添加离子,以平衡系统电荷 solvatebox mymol TIP3PBOX 10.0 #用水盒子包围系统,水盒的边界至少与分子中最远的原子相差10 Å savepdb mymol.pdb mymol #保存包含离子和水分子的PDB文件以及模拟系统的prmtop和inpcrd文件。 saveamberparm mymol mymol.prmtop mymol.inpcrd quit ``` 其中,mymol为自定义的系统名称。 4. 进行分子动力学模拟:使用pmemd或sander工具进行分子动力学模拟: ``` pmemd -O -i md.in -p mymol.prmtop -c mymol.inpcrd -o mdout -r md.rst ``` 其中,md.in为模拟输入文件,-p指定模拟系统的prmtop文件,-c指定初始结构的inpcrd文件,-o指定模拟输出文件,-r指定模拟结束后保存的结构文件。 5. 分析模拟结果:使用模拟输出文件进行模拟结果分析,例如分析能量、轨迹、结构变化等。 以上是利用Amber Tools 22进行多胺分子动力学模拟的一般步骤,具体操作需要结合实际情况和目标来进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值