通过上机操作掌握C#中流程控制语句的基本使用方法;掌握if…else、switch 等常用流程控制语句的使用方法。
-
要求
假设某商场共提供6种商品(编号为001006,单价可自行设置),且规定一次购物满100元可享受9折优惠;一次购物满 300 元可享受 8.5 折优惠;一次购物在 300 元以上可享受8 折优惠。客户购物付款时仅需要连续输入所购商品的编号和数量,程序将自动显示购物清单、折扣率和应付金额。
具体要求如下:
1)若没有输入商品数量,则默认为1。
2)若没有输入商品的编号,直接单击“确定”按钮,则表示统计完毕,屏幕上显示购物金额、折扣率和应付金额。
3)为了防止因用户误单击“确定”按钮导致结算数据重复出现,在显示了结算数据后“确定”按钮呈灰色显示(不可用)。
4)单击“返回”按钮,则清除上次购物详细清单及结算数醒 商场收银程据,将程序恢复到初始状态。
程序运行后显示如图 3-21 所示的页面,在输入了商品编号和数量后单击“确定”按钮,在屏幕上将显示包含有“品名”“单价”“数量”和“小计”的购物详细清单。如果没有输入商品编号直接单击“确定”按钮,在购物清单下方将显示包含有“购物金额”“折扣率”和“应付款”的结算数据,如图 3-22 所示。
5)要求“确定”按钮能响应〈Enter)键,“返回”按钮能响应(Esc〉键。
-
步骤和内容
1.问题分析
用户输入商品“编号”及“数量”值后,使用 switch 语句对商品“编号”进行判断,从而得到相应的商品名称和单价,根据“数量”计算出小计值并将结果显示到标签控件中。为了得到总购物金额,还需要将小计值累加到内存变量中。
用户未输入编号直接单击“确定”按钮,意味着要求执行结算操作。程序根据累加的小计值得到购物总金额,再根据购物总金额判断出相应的折扣率,最后根据总金额和折扣率计算出应付款值,并将结算数据显示到标签控件中。如果用户输入了不存在的商品编号,则屏幕上显示出错提示信息。
2.设计程序界面
新建一个 Windows 窗体应用程序项目,向窗体中添加3 个标签、2 个文本框和 2 个按钮控件,适当调整各控件的大小及位置。
3.设置对象属性
页面中各控件的初始属性设置如表 3-11所示。
控件的其他初始属性在窗体的装入事件中通过代码进行设置。
4.编写程序代码
代码在后文给出
结果:
-
总结
本次主要目的是通过设计一个简单的商场收银台程序,加深对面向对象编程的理解,掌握类与对象的设计、创建与使用方法,以及了解实际场景中程序设计的流程与技巧。
在编程实现过程中,我首先创建了商品类,并为其定义了相应的属性和方法。然后,我创建了收银台类,并在其中实现了商品录入、查询和结算等功能。
在测试阶段,我编写了一些测试用例来验证程序的正确性。我模拟了用户购买商品的过程,包括选择商品、修改数量、查询总价以及最终结算等步骤。通过测试,我发现程序能够正确地完成这些操作,并输出正确的结果。
通过本次实验,我深刻体会到了面向对象编程的优势和魅力。通过将现实世界中的事物抽象为类和对象,并使用类之间的关系来描述它们之间的交互,可以使得程序更加易于理解和维护。同时,我也学会了如何使用类和对象来实现复杂的功能,并提高了自己的编程能力。
此外,我还意识到在程序设计中需要注意的一些问题。例如,在定义类和对象时,需要充分考虑其属性和方法的合理性和完整性;在实现功能时,需要注重代码的健壮性和可读性;在测试时,需要尽可能覆盖所有的情况以确保程序的正确性。
通过设计一个简单的商场收银台程序,我不仅加深了对面向对象编程的理解,还提高了自己的编程实践能力。同时,我也认识到了自己在程序设计方面还存在一些不足之处,需要继续努力学习和提高。