java 用泛型做计算器_使用泛型 ,做计算器

using hnn0731.Domain; //包含在同一命名空间里。

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace hnn0731

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("请输入用户名:");

String userName = Console.ReadLine();

int count = 0;

while (userName != "admin")

{

count++;

if (count == 3)

{

Console.WriteLine("输入用户名错误超过三次,将重新进入!");

System.Threading.Thread.Sleep(1000);

}

Console.WriteLine("用户名错误,请重新输入!!!");

Console.WriteLine("请输入用户名:");

userName = Console.ReadLine();

}

Console.WriteLine("请输入密码:");

String password = Console.ReadLine();

//int countpass = 0;

while (password != "password")

{

Console.WriteLine("密码错误,请重新输入!!!");

Console.WriteLine("请输入密码:");

password = Console.ReadLine();

}

Console.WriteLine("登陆成功!!!");

int select = 1;

while (select == 1)

{

Console.WriteLine("欢迎进入计算器空间!!!");

Console.WriteLine("请输入要计算的数字类型:整型选择1,浮点型选择2");

int type = Convert.ToInt32(Console.ReadLine());

if (type == 1)

{

Console.WriteLine("请输入要计算的第一个数字:");

int num1 = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("请输入要计算的符号:");

string sigh = Convert.ToString(Console.ReadLine());

Console.WriteLine("请输入要计算的第二个数字:除数不能为0");

int num2 = Convert.ToInt32(Console.ReadLine());

Test ti = new Test();

switch (sigh)

{

case "+": Console.WriteLine("int:{0}{1}{2}={3}", num1, sigh, num2, ti.add(num1, num2));

break;

case "-": Console.WriteLine("int:{0}{1}{2}={3}", num1, sigh, num2, ti.subdu(num1, num2));

break;

case "*": Console.WriteLine("int:{0}{1}{2}={3}", num1, sigh, num2, ti.multi(num1, num2));

break;

case "/": Console.WriteLine("int:{0}{1}{2}={3}", num1, sigh, num2, ti.divi(num1, num2));

break;

}

//object a = 1;

//Console.WriteLine(a);

//Console.WriteLine(a.GetType());

//Console.WriteLine(a.ToString());

}

else

{

Console.WriteLine("请输入要计算的第一个数字:");

double num1 = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("请输入要计算的符号:");

string sigh = Convert.ToString(Console.ReadLine());

Console.WriteLine("请输入要计算的第二个数字:");

double num2 = Convert.ToDouble(Console.ReadLine());

Test ti = new Test();

switch (sigh)

{

case "+": Console.WriteLine("double:{0}{1}{2}={3}", num1, sigh, num2, ti.add(num1, num2));

break;

case "-": Console.WriteLine("double:{0}{1}{2}={3}", num1, sigh, num2, ti.subdu(num1, num2));

break;

case "*": Console.WriteLine("double:{0}{1}{2}={3}", num1, sigh, num2, ti.multi(num1, num2));

break;

case "/": Console.WriteLine("double:{0}{1}{2}={3}", num1, sigh, num2, ti.divi(num1, num2));

break;

}

}

Console.WriteLine("是否要继续使用计算机,是请输入1,否输入0");

select = Convert.ToInt32(Console.ReadLine());

}

//Console.ReadKey();

}

}

}

引用的函数:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace hnn0731.Domain

{

class Test

{

//加法

public T add(T t1, T t2)

{

//object tem1=t1,tem2=t2;

if (t1 is int)

{

object ret = Convert.ToInt32(t1) + Convert.ToInt32(t2);

return (T)ret;

}

else if (t1 is double)

{

object ret = Convert.ToDouble(t1) + Convert.ToDouble(t2);

return (T)ret;

}

return t1;

}

//减法

public T subdu(T t1, T t2)

{

if (t1 is int)

{

object ret = Convert.ToInt32(t1) - Convert.ToInt32(t2);

return (T)ret;

}

else if (t1 is double)

{

object ret = Convert.ToDouble(t1) - Convert.ToDouble(t2);

return (T)ret;

}

return t1;

}

//乘法

public T multi(T t1, T t2)

{

if (t1 is int)

{

object ret = Convert.ToInt32(t1) * Convert.ToInt32(t2);

return (T)ret;

}

else if (t1 is double)

{

object ret = Convert.ToDouble(t1) * Convert.ToDouble(t2);

return (T)ret;

}

return t1;

}

//除法

public T divi(T t1, T t2)

{

if (Convert.ToInt32(t2) != 0)

{

if (t1 is int)

{

object ret = Convert.ToInt32(t1) / Convert.ToInt32(t2);

return (T)ret;

}

// 在 C# 的统一类型系统中,所有类型(预定义类型、用户定义类型、引用类型和值类型)

//都是直接或间接从 Object 继承的。可以将任何类型的值赋给 object 类型的变量。

//将值类型的变量转换为对象的过程称为“装箱”。

//将对象类型的变量转换为值类型的过程称为“取消装箱”。

else if (t1 is double) //判断t1是否为double类型

{

object ret = Convert.ToDouble(t1) / Convert.ToDouble(t2);

return (T)ret;

}

}

else

{

Console.WriteLine("输入错误!!!");

object ret = 0;

return (T)ret;

}

return t1;

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
泛型计算器Java程序中的作用是为了实现通用的计算功能。通过使用泛型,可以将不同类型的数据作为输入参数,并进行相应的计算操作。 在泛型计算器Java程序中,通常会定义一个泛型方法,该方法接收一个操作符和两个泛型参数,并返回一个BigDecimal类型的结果。这个方法会使用字符串来代替操作符进行判断和计算,因为字符串的处理更加方便和精确。通过将泛型参数转换为字符串,并使用BigDecimal类的方法进行计算,可以保证计算结果的精确性。 泛型计算器Java程序还可以使用其他Java的特性来扩展功能,比如使用枚举和Java.awt.Desktop工具。这些特性可以在代码中提供更多的计算功能,并且使程序更加实用和灵活。 总之,泛型计算器Java程序中的作用是实现通用的计算功能,并通过使用字符串和BigDecimal类来提供精确的计算结果。同时,可以使用其他Java的特性来扩展程序的功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [泛型和接口的方式设计一个计算器](https://blog.csdn.net/weixin_29233333/article/details/115079494)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [java计算器](https://download.csdn.net/download/wataxi_1985/4144578)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值