我们在编写一个简易的电影院自动售票机售票系统,它主要实现的功能为:(1)显示正在上映的电影,并提示用户输入想看的电影。(2)用户选择一部分电影后显示用户所选电影名称和票价,并提示用户输入购票金额。(3)如果用户输入了正确的金额,出票并提示购票成功;如果用户输入金额大于票价,找零、出票并提示购票成功;如果用户输入的金额不足,提示重新输入。(4)购票完成后,返回到售票页面。
如何实现这个功能呢?首先,我们采用面向对象设计思想,将用户输入系统放到一个模块中,将出票系统放到另一个模块中。
1.出票系统模块
出票系统模块设计如下。
(1)新建一个类,用来接收用户选择的电影和票价。
(2)当用户选择电影后,显示用户所选电影名称和票价。
(3)当用户输入购票金额后,对金额进行判断。如果金额和票价一致,出票并提示购票成功。如果用户输入金额大于票价,找零、出票并提示购票成功;如果用户输入的金额不足,提示重新输入。
2.用户输入界面模块
用户输入界面模块设计如下。
(1)电影售票系统是一直在循环售票,我们可以用一个while无限循环来实现售票系统一直运行。
(2)售票系统的界面显示正在上映的电影列表,并提示用户输入所选电影的代号。由于要判断用户输入的代号是否是列表中的电影的代号,我们将电影代号和电影名称放到一个字典中。
(3)电影对应的票价放到一个列表中,方便修改。
(4)当用户输入电影代号后,先判断用户输入代号是否是显示的正在上映电影的代号。如果不是显示的电影的代号,提示输入错误,重新输入。
(5)如果用户输入了正确的电影代号,那么从字典和列表中取出对应的电影名称和票价信息,并将此信息传递到出票系统模块。
(6)提示用户输入购票金额,并将金额信息传递到出票系统。
3.出票系统模块
开始编写出票系统模块代码,先新建一个名为ticketing.py的模块,用来存储出票系统程序代码,如下图所示:4.用户输入模块
准备编写用户输入界面模块代码,先新建一个名为ticketing_main.py的模块,用来存储用户输入界面程序代码,如下图所示:运行结果: