C#入门实现简易存款利息计算器
通过开发一个基于命令行的简易存款利息计算器,展示C#语言中循环结构、分支判断以及变量作用域的实际应用。程序支持录入本金与存期,根据预设利率计算单利收益,旨在帮助C#初学者掌握控制台应用程序的基础逻辑。
功能概述与设计思路
本示例旨在计算不同年限(1年、2年、3年、5年)下整存整取的存款本息和。程序核心采用命令行交互模式,具体设计如下:
- 循环主体:使用
do...while循环包裹主逻辑,允许用户在多次计算前不退出程序,仅当输入退出指令时流程结束。 - 状态保持:本金(
benJ)、年利率(liV)等变量定义在循环体外,确保在一次会话中用户只需输入一次数值,符合操作习惯。 - 逻辑分支:利用
switch语句根据不同的操作指令分发任务,如输入金额、选择年限或执行计算。 - 数据校验:在接收用户输入时加入基础校验(如最低投资额),提升程序的鲁棒性。
完整源代码
以下为实现了上述功能的 C# 控制台代码。直接复制到 .NET Console 项目中即可运行。
using System;
class Program
{
static void Main(string[] args)
{
// 初始化变量,作用域在Main内,保持跨循环状态
double benJ = 0; // 本金
double liV = 0; // 年利率小数
double shouY = 0; // 收益/总额
int cunY = 0; // 存期
int cmdOrder = 0; // 操作指令
Console.WriteLine("操作指令说明:输入本金(1),输入存款年度(2),计算(3),查看利率(4),退出(0)");
do
{
try
{
// 读取指令并进行类型转换
cmdOrder = Convert.ToInt16(Console.ReadLine());
switch (cmdOrder)
{
case 1:
Console.WriteLine("请输入您的本金数额:");
do
{
benJ = Convert.ToDouble(Console.ReadLine());
if (benJ < 100)
Console.WriteLine("最低投资额为100,请重新输入:");
} while (benJ < 100); // 基础有效性校验
shouY = benJ; // 重置当前累计值
break;
case 2:
Console.WriteLine("请输入存入的年限(1、2、3、5):");
do
{
cunY = Convert.ToInt16(Console.ReadLine());
if (cunY < 1) // 简单的最小值限制
Console.WriteLine("存入年限最少为1年,请重新输入:");
} while (cunY < 1);
// 根据年限设定对应年利率
switch (cunY)
{
default:
case 1:
liV = 3.00; break;
case 2:
liV = 3.75; break;
case 3:
liV = 4.25; break;
case 5:
liV = 4.75; break;
}
liV = liV / 100.00; // 将百分比转为小数形式
break;
case 3:
// 执行复利逻辑模拟(原文代码虽标记注释未启用自动转存,但循环累加实为单利或复利混合计算方式,此处按原代码逻辑呈现)
for (int i = 1; i <= cunY; i++)
{
shouY += benJ * liV;
}
Console.WriteLine("按{0}年的利率{1:P1}计算,您的本金{2:C}将在{0}后增长至:{3:C}", cunY, liV, benJ, shouY);
Console.WriteLine("注:未启用自动转存。");
break;
case 4:
Console.WriteLine("利率表参考:");
Console.WriteLine("1年:3.00%、2年:3.75%");
Console.WriteLine("3年:4.25%、5年:4.75%");
Console.WriteLine();
break;
case 0:
Console.WriteLine("\n感谢使用^_^,按任意键退出……");
break;
default:
if (cmdOrder != 0) Console.WriteLine("请输入有效的命令序号(1 - 9):");
break;
}
}
catch (FormatException)
{
Console.WriteLine("输入格式无效,请重新输入数字。");
}
if (cmdOrder != 0) Console.WriteLine("请输入操作指令(1 - 9):");
} while (cmdOrder != 0);
Console.ReadKey();
}
}
关键知识点解析
第1步:理解变量与作用域
目的:避免重复输入本金和年限。
操作:将 double benJ 等变量声明在 do 循环之外。这样每次进入循环体时,这些变量保留上一次的计算结果,除非用户再次输入新值。
第2步:应用 Switch 语句进行路由
入口:获取用户输入的整数指令 cmdOrder。
动作:switch (cmdOrder) 精确匹配数字,执行相应的业务块。注意 case 执行完毕后必须使用 break 跳出,否则会发生“穿透”现象继续执行下一个 case。
第3步:构建输入验证循环
参数:例如要求本金 >= 100 且年限 >= 1。
动作:内部嵌套 do...while 或 while 循环,直到满足条件才跳出并赋值给外部变量,防止非法数据污染计算结果。
总结
这个简易计算器展示了结构化编程的基本形态:输入 -> 校验 -> 处理 -> 输出。虽然在现实中银行利息计算可能涉及更复杂的复利公式或税务扣减,但作为C#初学者的练手项目,它很好地融合了控制流与数据结构。以上就是使用C#实现简易存款利息计算器的详细内容,更多关于C#基础语法的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













