项目内容及项目要求:
内容:
本项目是设计一个简单的商品信息管理系统。具体可以对商品内容进行(打印功能菜单,添加商品信息,修改商品信息,退出系统)等操作。
项目要求:
用定义函数的方法来完成对商品进行(打印功能菜单,添加信息,修改信息,退出系统)等的操作。注意:必须写明实现该程序的流程和思路。
实现流程:
1,定义函数实现各个模块的具体功能
2,对各个模块的功能进行测试
2,最后用写一个主函数实现其所有功能,形成一个完整的商品信息管理系统
以下是对各功能模块的实现:
1,定义一个print_caidan()函数实现打印功能菜单的功能
def print_caidan():
"""打印功能菜单"""
print("*"*10 +"商品管理系统 v1.0.1" + "*"*10)
print("1.添加商品信息")
print("2.修改商品信息")
print("3.退出系统")
2,定义一个tianjia()函数实现添加商品信息的功能,
def tianjia(input_num):
"""添加商品信息"""
# 定义一空字典来存放添加的商品信息内容
dict1 = {}
spsl = 1
if input_num == "1":
spbh = input("请输入商品{0}编号:>". format(spsl))
spmc = input("请输入商品{0}名称:>". format(spsl))
spjg = input("请输入商品{0}价格:>". format(spsl))
# 将商品编号、名称和价格添加到字典中
dict1[spbh] = {"name": spmc, "price": spjg}
spsl += 1
spsl
print("商品已添加成功!")
return dict1
2,定义一个xuigai()函数实现修改商品信息的功能
def xuigai(input_num, dict1):
"""修改商品信息"""
if input_num == "2":
spbh = input("请输入要修改的商品编号:")
if spbh in dict1:
xbh = input("请输入新的商品编号(按回车键跳过):")
xmc = input("请输入新的商品名称(按回车键跳过):")
xjg = input("请输入新的商品价格(按回车键跳过):")
# 如果用户输入了新的商品编号,则修改商品编号
if xbh:
dict1[xbh] = dict1.pop(spbh)
spbh = xbh
# 如果用户输入了新的商品名称,则修改商品名称
if xmc:
dict1[spbh]["name"] = xmc
# 如果用户输入了新的商品价格,则修改商品价格
if xjg:
dict1[spbh]["price"] = xjg
print("商品已修改成功!")
else:
print("找不到该商品编号,请重新输入")
3,定义一个tc()函数实现退出系统的功能
def tc(input_num):
"""退出系统"""
if input_num == "3":
print("程序已退出")
else:
print("输入不合法,请重新输入")
4,定义一个主函数main()实现所有功能的拼接,形成一个完整的商品信息管理系统。
def main():
print_caidan()
while True:
p = input("请输入您要进行的操作(1-添加商品,2-修改商品,3-退出程序):")
if p == "1":
dict = tianjia(p)
elif p == "2":
xuigai(p, dict)
else:
tc(p)
break
print('*' * 20 + "商品列表如下" + '*' * 20)
for spbh, product_info in dict.items():
print("商品编号:{}\t 名称:{}\t 价格:{}元".format(spbh, product_info["name"], product_info["price"]))
5.if __name__ == "__main__":
是Python中常用的一个语句块,它用于判断当前代码模块是否是主程序入口。如果当前模块是直接被运行的,那么__name__
变量的值就是 "__main__"
,就会执行if __name__ == "__main__":
语句块中的代码。如果当前模块是被其他模块导入的,则__name__
变量的值就是模块名,那么if __name__ == "__main__":
语句块中的代码不会被执行。
这种写法主要是为了方便模块的测试和调试。如果一个模块中有一些测试代码,我们希望这些测试代码只有在当前模块作为主程序运行时才执行,而在被其他模块导入时不执行,那么我们就可以使用if __name__ == "__main__":
语句来实现这个目的。
# 主程序的入口调用主函数
if __name__ == "__main__":
main()
源程序代码:
#-*_ coding:utf-8 _*_
"""
Test02
-------------------
商品信息录入
"""
def print_caidan():
"""打印功能菜单"""
print("*"*10 +"商品管理系统 v1.0.1" + "*"*10)
print("1.添加商品信息")
print("2.修改商品信息")
print("3.退出系统")
def tianjia(input_num):
"""添加商品信息"""
dict1 = {}
spsl = 1
if input_num == "1":
spbh = input("请输入商品{0}编号:>". format(spsl))
spmc = input("请输入商品{0}名称:>". format(spsl))
spjg = input("请输入商品{0}价格:>". format(spsl))
# 将商品编号、名称和价格添加到字典中
dict1[spbh] = {"name": spmc, "price": spjg}
spsl += 1
spsl
print("商品已添加成功!")
return dict1
def xuigai(input_num, dict1):
"""修改商品信息"""
if input_num == "2":
spbh = input("请输入要修改的商品编号:")
if spbh in dict1:
xbh = input("请输入新的商品编号(按回车键跳过):")
xmc = input("请输入新的商品名称(按回车键跳过):")
xjg = input("请输入新的商品价格(按回车键跳过):")
# 如果用户输入了新的商品编号,则修改商品编号
if xbh:
dict1[xbh] = dict1.pop(spbh)
spbh = xbh
# 如果用户输入了新的商品名称,则修改商品名称
if xmc:
dict1[spbh]["name"] = xmc
# 如果用户输入了新的商品价格,则修改商品价格
if xjg:
dict1[spbh]["price"] = xjg
print("商品已修改成功!")
else:
print("找不到该商品编号,请重新输入")
def tc(input_num):
"""退出系统"""
if input_num == "3":
print("程序已退出")
else:
print("输入不合法,请重新输入")
def main():
print_caidan()
while True:
p = input("请输入您要进行的操作(1-添加商品,2-修改商品,3-退出程序):")
if p == "1":
dict = tianjia(p)
elif p == "2":
xuigai(p, dict)
else:
tc(p)
break
print('*' * 20 + "商品列表如下" + '*' * 20)
for spbh, product_info in dict.items():
print("商品编号:{}\t 名称:{}\t 价格:{}元".format(spbh, product_info["name"], product_info["price"]))
# 主程序的入口调用主函数
if __name__ == "__main__":
main()