⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.cs

📁 网上购物系统需求说明网上网上购物系统需求说明购物系统需求说明网上购物系统需求说明
💻 CS
📖 第 1 页 / 共 2 页
字号:
			this.btn_c.Text = "C";
			this.btn_c.Click += new System.EventHandler(this.btn_Oper);
			// 
			// btn_ce
			// 
			this.btn_ce.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
			this.btn_ce.Location = new System.Drawing.Point(104, 40);
			this.btn_ce.Name = "btn_ce";
			this.btn_ce.Size = new System.Drawing.Size(80, 32);
			this.btn_ce.TabIndex = 21;
			this.btn_ce.Text = "CE";
			this.btn_ce.Click += new System.EventHandler(this.btn_Oper);
			// 
			// btn_bak
			// 
			this.btn_bak.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
			this.btn_bak.Location = new System.Drawing.Point(16, 40);
			this.btn_bak.Name = "btn_bak";
			this.btn_bak.Size = new System.Drawing.Size(80, 32);
			this.btn_bak.TabIndex = 22;
			this.btn_bak.Text = "backspace";
			this.btn_bak.Click += new System.EventHandler(this.btn_Oper);
			// 
			// Form1
			// 
			this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
			this.ClientSize = new System.Drawing.Size(292, 261);
			this.Controls.Add(this.btn_bak);
			this.Controls.Add(this.btn_ce);
			this.Controls.Add(this.btn_c);
			this.Controls.Add(this.btn_mul);
			this.Controls.Add(this.btn_div);
			this.Controls.Add(this.btn_sub);
			this.Controls.Add(this.btn_sqt);
			this.Controls.Add(this.btn_add);
			this.Controls.Add(this.btn_rev);
			this.Controls.Add(this.btn_eql);
			this.Controls.Add(this.btn_dot);
			this.Controls.Add(this.btn_sign);
			this.Controls.Add(this.btn_0);
			this.Controls.Add(this.btn_3);
			this.Controls.Add(this.btn_2);
			this.Controls.Add(this.btn_1);
			this.Controls.Add(this.btn_6);
			this.Controls.Add(this.btn_5);
			this.Controls.Add(this.btn_4);
			this.Controls.Add(this.btn_9);
			this.Controls.Add(this.btn_8);
			this.Controls.Add(this.btn_7);
			this.Controls.Add(this.txtBox);
			this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
			this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
			this.MaximizeBox = false;
			this.Menu = this.mainMenu1;
			this.Name = "Form1";
			this.Text = "计算器";
			this.Load += new System.EventHandler(this.Form1_Load);
			this.ResumeLayout(false);

		}
		#endregion

		#region 各和常数变量的声明
		public const int NULL = 0;	  // 定义操作码
		public const int ADD = 1;     //表示加
		public const int SUB = 2;     //减
		public const int MUL = 3;     //乘
		public const int DIV = 4;    //除
		public const int SQRT = 5;   //求平方根
		public const int NODOT  = 0;	 // 定义是否点击了小数点,0为没点
		public const int HASDOT = 1;     //定义是否点击了小数点,1为点了
		private double res = 0;		 // 记录结果数
		private double tmp = 0;		 // 当前输入的操作数
		private int opt = NULL;		 // 记录操作码
		private int dot = NODOT;	// 记录是否点击了小数点,初始值设为0为没有点
		private int num = 0;		// 记录输入操作数的个数
		private int dotnum = 0;		// 记录小数点部分的个数		
		string strOper;            //获取操作符
		#endregion
		/// <summary>
		/// 应用程序的主入口点。
		/// </summary>
		[STAThread]
		static void Main() 
		{
			Application.Run(new Form1());
		}

		  
        #region 获取操作数事件
		private void btn_0_Click(object sender, System.EventArgs e)
		{
			System.Windows.Forms.Button btnTmp;
			double i;

			btnTmp = sender as System.Windows.Forms.Button;  //用来判断事件是否是按键操作			
			if (btnTmp != null)
			{
				if (dot == NODOT)    // 没有点击小数点
				{					
					i = double.Parse(btnTmp.Tag.ToString()); //取用户自定义的控件关联数,并转换成double型
					tmp = tmp * 10 + i;   //按键的先后位数依次减少10倍,原数升位再加上新数作为个位
					txtBox.Text = tmp.ToString();   //将其转化成文本显示
				}
				else   // 点击了小数点
				{					
					dotnum++;    //记录小数点部分的个数
					// 生成小数部分的新的数值
					i = double.Parse(btnTmp.Tag.ToString()) / System.Math.Pow(10,dotnum);
					tmp = tmp + i;  //将小数点后的值加到当前操做数
					txtBox.Text = tmp.ToString();
				}
			}
		
		}

		#endregion

        #region 获取操作符
		private void btn_Oper(object sender, System.EventArgs e)
		{
			Button tmp1=(Button)sender;
			strOper=tmp1.Text;

			/*添加*/
			switch (strOper)
			{ 
				case "/":       //除法运算
					if(opt!=NULL&&opt!=DIV)  //用来做连运算,实现上一次计算,近似等于等号
					{
						calc();
					}
					opt = DIV;
					if (num != 0)  //判断操作数的个数,如果两个就做二元运算
					{
						if (tmp != 0)
							res = res / tmp;
						else
						{
							txtBox.Text="零不能做除数";
							break;
						}

					}
					else
						res = tmp;
					num++;					  
					tmp = 0;
					txtBox.Text = res.ToString();
					dot = NODOT;
					break;

				case "*":
					// 乘法运算
					if(opt!=NULL&&opt!=MUL)
					{
						calc();
					}

					opt = MUL;
					
					if (num!= 0 )     //判断操作数的个数,如果两个就做二元运算	
					{
						if(tmp!=0)
							res = res * tmp;
					}
					else
						res = tmp;
					
					num++;					                  
					tmp = 0;
					txtBox.Text = res.ToString();
					dot = NODOT;
					break;

				case "+":            //加法运算	
					if(opt!=NULL&&opt!=ADD)  //非首次运算或连加
					{
						calc();
					}
					opt = ADD;
					if (num != 0)    //判断操作数的个数,如果两个就做二元运算
						res = res + tmp;
					else
						res = tmp;
					num++;					
					tmp = 0;
					txtBox.Text = res.ToString();
					dot = NODOT;
					break;

				case "-":        //减法运算	
					if(opt!=NULL&&opt!=SUB)
					{
						calc();
					}
					opt = SUB;
					if (num != 0)    //判断操作数的个数,如果两个就做二元运算
						res = res - tmp;
					else
						res = tmp;
					num++;					 
					tmp = 0;
					txtBox.Text = res.ToString();
					dot = NODOT;
					break;

				case "sqt":     //平方根运算				
					if (tmp > 0)  //要求操作数大于0
					{
						tmp = Math.Sqrt(tmp);
						
					}					
					txtBox.Text =tmp.ToString();
					num++;						
					dot = NODOT;				
					break;

				case "1/x":  //倒数运算
					if (tmp != 0)
					{
						tmp = 1 / tmp;
						txtBox.Text = tmp.ToString();
						
					}
					else						
						txtBox.Text ="零不能为除数";									
					dot = NODOT;
					break;

				case ".":
					// 点击了小数点
					if(dot==HASDOT)
						return;
					else
					{
						dot = HASDOT;
						dotnum = 0;
					}					
					break;

				case "+/-":
					// 点击了符号运算
					if(tmp!=0)     //对运算数取反
					{
						tmp = -tmp;
						txtBox.Text = tmp.ToString();
					}
					else
					{
						res=-res;	//对结果取反					
						txtBox.Text = res.ToString();	
					}
					dot = NODOT;
					break;	

				case "C":         //清除运算
					res = 0;		 
					tmp = 0;		 
					opt = NULL;		 
					dot = NODOT;	
					num = 0;		
					dotnum = 0;		//恢复初始设定
					txtBox.Text="0.";
					break;

				case "CE":         //清除最后输入的计算数					
					tmp = 0;		 // 清除当前输入的操作数					
					txtBox.Text="0.";
					break;

				case "backspace":         //清除最后输入数字的最后的位数
					string showNumber;
					showNumber=txtBox.Text;
					if(txtBox.Text.Length>1)
					{
						txtBox.Text=showNumber.Substring(0,showNumber.Length-1);
						tmp=double.Parse(txtBox.Text);
					}
					else
					{
						txtBox.Text="0.";
						tmp=0;
					}
					break;

			}
		
		}
        #endregion

		#region 等于事件和等于事件的处理		
		private void btn_eql_Click(object sender, System.EventArgs e)
		{		
			calc();
		}
		//等于的算法
		private void calc()
		{		
			if (num == 0 )    //判断是否有操作数,没有就返回0
			{
				res = 0;
				tmp = 0;
				txtBox.Text = res.ToString();
				return;
			}

			switch (opt)  //找到对应的运算符进行相应的计算
			{
					// 加法
				case ADD:
					res = res + tmp;					
					break;

					// 减法
				case SUB:
					res = res - tmp;					
					break;

					// 乘法
				case MUL:
					res = res * tmp;					
					break;

					// 除法
				case DIV:
					res = res / tmp;					
					break;
				
					// 求平方根
				case SQRT:
					res = System.Math.Sqrt(tmp);					
					break;

				default:
					return;
			}
			txtBox.Text = res.ToString();   //结果转换成字符形式输出到文本显示屏
			//重要一步---每计算一次都要把中间量重设成初值,否则连续运算出现问题
			opt = NULL;  //运算符清空
			tmp=0;	//清空当前操作数,只有再次输入操作数才进行计算,否则保持原数
			dot = NODOT;  //新一次的计算,小数点的判断从新计算
			
		}
		#endregion
	
		#region 菜单事件
		//复制事件
		private void menuItem_cop_Click(object sender, System.EventArgs e)
		{
		    if(txtBox.SelectionLength>0)
			{
				txtBox.Copy();
			}
		}

		//粘贴事件
		private void menuItem_pas_Click(object sender, System.EventArgs e)
		{
		   txtBox.Paste();
		}

		//打开关于“计算器”的主题--调用windows xp中计算器的帮助
		private void menuItem_hsj_Click(object sender, System.EventArgs e)
		{
		   Help.ShowHelp(this,"C:\\WINDOWS\\Help\\calc.chm");	
		}

        //打开关于“计算器”
		private void menuItem_abt_Click(object sender, System.EventArgs e)
		{
			Form2 fm2=new Form2();
			fm2.Show();
		}
		#endregion

		private void Form1_Load(object sender, System.EventArgs e)
		{
		
		}

		private void txtBox_TextChanged(object sender, System.EventArgs e)
		{
		
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -