A44151. 编程实现:商品管理系统预先准备: 建立 userpass.txt 预先建立并存储用户信息文件。文件格式:以“,”分隔的一组用户名和密码信息。例如: zhangsan,123456 建立 goods.txt 以自定义格式存储 3 个商品的信息(每个商品包含:商品编号,商品名称,商品类型,商品库存)。 文件内容样例(仅供参考): 001,商品 1,类型 1,10;002,商品 2,类型 1,5;00…
题目描述
编程实现:商品管理系统
预先准备:
建立 userpass.txt
预先建立并存储用户信息文件。文件格式:以“,”分隔的一组用户名和密码信息。例如:
zhangsan,123456
建立 goods.txt
以自定义格式存储 3 个商品的信息(每个商品包含:商品编号,商品名称,商品类型,商品库存)。
文件内容样例(仅供参考):
001,商品 1,类型 1,10;002,商品 2,类型 1,5;003,商品 3,类型 2,20
系统登录:
1.显示一个 6 位随机数(验证码),并提示用户输入用户名、密码和刚刚显示的6 位验证码;
2.如果用户输入的用户名和密码与 userpass.txt 文件中的信息相符合,且验证码也和提示的6 位验证码相符合,则继续程序进入系统主界面的初始状态(见下文中的“系统主界面”->“初始状态”部分),例如以下过程:
说明:以____为背景的是内容程序输出,____内容为用户输入:
您的登录验证码为 386597
请输入用户名:zhangsan
请输入密码:123456
登录验证码:386597
身份验证通过,欢迎登录!
3.如果用户输入的用户名和密码与 userpass.txt 文件中的信息不符合,或者验证码和提示的6 位验证码不符合,则登陆不成功,提示身份验证失败,退出程序。例如以下过程:
说明:以 为背景的是内容程序输出, 内容为用户输入:
您的登录验证码为 386597
请输入用户名:zhangsan
请输入密码:123456
登录验证码:123456
身份验证失败!
>>>
系统主界面:
1.初始状态:显示从文件中读取所有商品的信息(包含商品编号,商品名称,商品类型,库存数量),并以“::”提示输入命令。
2.如果输入“add”,则添加商品。要求客户输入商品编号,商品名称,商品类型,库存数量。输入时须判断所有输入项不能为空,且库存数量必须为数字格式,输入后将新添加的商品存入文件,并回到初始状态。
3.如果输入“count”,则计算并输出所有商品的库存数量之和。并回到初始状态。
4.如此循环。
注意:在程序运行过程中,不论用户如何输入都不会出现红色error 导致的程序异常结束(利用 try/except
语句)。
add 命令的输入输出过程可自行设计,输入输出样例(仅供参考)例如:
说明:以 为背景的是内容程序输出, 内容为用户输入:
::add
商品编号:004
商品名:商品 4
商品类型:类型 3
库存数量:30
001,商品 1,类型 1,10
002,商品 2,类型 1,5
003,商品 3,类型 2,20
004,,商品 4,类型 3,30
::
count 命令的执行过程例如:
说明:以____为背景的是内容程序输出,____内容为用户输入:
::count
65
001,商品 1,类型 1,10
002,商品 2,类型 1,5
003,商品 3,类型 2,20
004,,商品 4,类型 3,30
::
将程序命名为“lq006”。
参考答案
待更新...答案解析
评判标准:
20 分:实现从 userpass.txt 中读取用户信息并验证用户输入的用户名/密码的有效性;通过修改 userpass.txt 文件内容来验证;
30 分:在 20 分标准的基础上,实现了显示 6 位随机数(验证码)并验证用户输入的验证码是否与之相符的功能;
50 分:在 30 分标准的基础上,实现从文件中读取 3 个商品信息并显示在 Python 控制台中的功能;
70 分:在 50 分标准的基础上,实现添加商品(add 命令)写入文件,验证非空及数据类型,并再次从文件中读取所有商品显示的功能,回到系统主界面的初始状态,且 add 命令可多次执行;
100 分:在 70 分标准的基础上,实现商品总库存量计算(count 命令),并显示文件中所有商品,重新回到系统主界面的初始状态;且 count 命令可多次执行;
120 分:在100 分标准的基础上,整个程序运行过程中,不论用户如何输入都不会出现红色error 错误导致的程序出错退出。