c#入门之实现简易存款利息计算器示例

所属分类: 软件编程 / C#教程 阅读数: 98
收藏 0 赞 0 分享

本想把练习题做了的结果放上来,不过发现附录是有答案的,就算了吧,自己做了没问题就行了哈。之前提到过,要是有朋友有想法,需要做小工具我可以帮忙实现,不过貌似大家都很忙。SO,自己学完第4章后,决定做一个工具:简易存款利息计算器,可以更好地复习前面学过的知识。

原理介绍
为啥叫简易呢,因为现在只能计算整存整取(只有1、2、3、5四种年限哈)的利息,并且没有启用自动转存(俗称利滚利,就是把本年和上年的利息之和,作为下年利息计算时的本金)功能,方便和网上已有的工具对比计算结果,判断自己的程序算出来正不正确哈(其实是不想越写越复杂,怕写不出来,哈哈,到时候承诺了的,半天拿不出来,就有点丢人了)。

使用do循环作为程序的主体,用户不输入退出指令(0),程序会一直提示输入操作指令;
使用switch判断用户输入的指令(无效指令会继续提示输入),执行对应的操作;
由于变量是在主体do循环外声明的,所以只要不退出循环,变量的值会一直保留,符合用户的操作习惯;
当然,这还是v1.0版本哈,随着后面的不断深入学习,我会(不)尝(保)试(证)完善这个程序,尽量把所学的知识点都能够融入进去,使程序的每个版本更新时,都会有不错的变化。

详细代码

复制代码 代码如下:

Console.WriteLine("操作指令说明:输入本金(1),输入存款年度(2),计算(3),查看利率(4),退出(0)");
double benJ=0,liV=0,shouY=0;
int cunY = 0,cmdOrder = 0;
do
{
    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}",shouY,liV);
                }
                Console.WriteLine("按{0}年的利率{1}计算,您的本金{2}将在{0}后增长至:{3}", cunY, liV, benJ, shouY);
                Console.WriteLine("注:未启用自动转存。");
            }
            break;
        case 4:
            {
                Console.WriteLine("利率表,@sfrost");
                Console.WriteLine("1年:3.00%、2年:3.75%");
                Console.WriteLine("3年:4.25%、5年:4.75%");
                Console.WriteLine("\n");
            }
            break;
        default:
            if (cmdOrder != 0) Console.WriteLine("请输入有效的命令序号(1 - 9):");
            break;
    }
    if (cmdOrder != 0) Console.WriteLine("请输入操作指令(1 - 9):");
} while (cmdOrder != 0);
Console.WriteLine("\n");
Console.WriteLine("感谢使用^_^,按任意键退出……");
Console.ReadKey();

结语
程序写完后,回头去看书上的switch一节,才发现自己理解错了一个概念,书上说“执行完一个case后,再执行第二个case是非法的”,自己把case理解成switch了,哈哈,怪不得这个程序可以调试通过。

最后,说好的简易哈,很多地方还可以完善(其实BUG更多,哈),随着后面的深入学习,相信可以把这个工具完善得很好。例如:封装每个功能项为函(对)数(象),在使用时,只需传入相关参数即可返(输)回(出)结果。

更多精彩内容其他人还在看

c#开发word批量转pdf源码分享

已经安装有Office环境,借助一些简单的代码即可实现批量Word转PDF,看下面的实例源码吧
收藏 0 赞 0 分享

c# xml API操作的小例子

这篇文章主要介绍了c# xml API操作的小例子,有需要的朋友可以参考一下
收藏 0 赞 0 分享

c#唯一值渲染实例代码

这篇文章主要介绍了c#唯一值渲染实例代码,有需要的朋友可以参考一下
收藏 0 赞 0 分享

淘宝IP地址库采集器c#代码

这篇文章主要介绍了淘宝IP地址库采集器c#代码,有需要的朋友可以参考一下
收藏 0 赞 0 分享

C#在后台运行操作(BackgroundWorker用法)示例分享

BackgroundWorker类允许在单独的专用线程上运行操作。如果需要能进行响应的用户界面,而且面临与这类操作相关的长时间延迟,则可以使用BackgroundWorker类方便地解决问题,下面看示例
收藏 0 赞 0 分享

c#文本加密程序代码示例

这是一个加密软件,但只限于文本加密,加了窗口控件的滑动效果,详细看下面的代码
收藏 0 赞 0 分享

c#生成站点地图(SiteMapPath)文件示例程序

这篇文章主要介绍了c#生成站点地图(SiteMapPath)文件的示例,大家参考使用
收藏 0 赞 0 分享

C# 键盘Enter键取代Tab键实现代码

这篇文章主要介绍了C# 键盘Enter键取代Tab键实现代码,有需要的朋友可以参考一下
收藏 0 赞 0 分享

C# WinForm导出Excel方法介绍

在.NET应用中,导出Excel是很常见的需求,导出Excel报表大致有以下三种方式:Office PIA,文件流和NPOI开源库,本文只介绍前两种方式
收藏 0 赞 0 分享

C#串口通信程序实例详解

在.NET平台下创建C#串口通信程序,.NET 2.0提供了串口通信的功能,其命名空间是System.IO.Ports,创建C#串口通信程序的具体实现是如何的呢?让我们开始吧
收藏 0 赞 0 分享
查看更多