03-c#入门(简易存款利息计算器v1.0)
本想把练习题做了的结果放上来,不过发现附录是有答案的,就算了吧,自己做了没问题就行了哈。之前提到过,要是有朋友有想法,需要做小工具我可以帮忙实现,不过貌似大家都很忙。SO,自己学完第4章后,决定做一个工具:简易存款利息计算器,可以更好地复习前面学过的知识。
- 原理介绍
为啥叫简易呢,因为现在只能计算整存整取(只有1、2、3、5四种年限哈)的利息,并且没有启用自动转存(俗称利滚利,就是把本年和上年的利息之和,作为下年利息计算时的本金)功能,方便和网上已有的工具对比计算结果,判断自己的程序算出来正不正确哈(其实是不想越写越复杂,怕写不出来,哈哈,到时候承诺了的,半天拿不出来,就有点丢人了)。
- 使用do循环作为程序的主体,用户不输入退出指令(0),程序会一直提示输入操作指令;
- 使用switch判断用户输入的指令(无效指令会继续提示输入),执行对应的操作;
- 由于变量是在主体do循环外声明的,所以只要不退出循环,变量的值会一直保留,符合用户的操作习惯;
当然,这还是v1.0版本哈,随着后面的不断深入学习,我会(不)尝(保)试(证)完善这个程序,尽量把所学的知识点都能够融入进去,使程序的每个版本更新时,都会有不错的变化。
- 详细代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | 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更多,哈),随着后面的深入学习,相信可以把这个工具完善得很好。例如:封装每个功能项为函(对)数(象),在使用时,只需传入相关参数即可返(输)回(出)结果。
大家多多指教哈~~~~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 单线程的Redis速度为什么快?
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库