目錄
功能模塊:
實(shí)現(xiàn)思路:
運(yùn)行功能演示:
具體實(shí)現(xiàn)過程:
定義商品類:
定義商品管理類
定義顯示商品信息函數(shù)
輸入銷量函數(shù):
添加商品信息:
刪除商品信息
修改商品信息
導(dǎo)入商品信息
導(dǎo)出商品信息
求商品平均銷量
求商品最高銷量
求商品最低銷量
最后定義菜單函數(shù)和主函數(shù):
完整代碼:
功能模塊:
商品基本信息管理和商品銷量統(tǒng)計(jì)。
基本信息管理模塊的主要功能有商品基本信息的添加、刪除、修改、顯示和數(shù)據(jù)的導(dǎo)入導(dǎo)出
商品銷量統(tǒng)計(jì)管理模塊的主要功能有統(tǒng)計(jì)商品的最高銷量、最低銷量和平均銷量。
實(shí)現(xiàn)思路:
- 設(shè)計(jì)一個(gè)商品類,包含商品編號(hào)、名稱、一季度銷量、二季度銷量和三季度銷量等數(shù)據(jù)成員。
- 引入OS模塊,用于導(dǎo)入導(dǎo)出路徑文件信息
- 設(shè)計(jì)一個(gè)商品管理類,用于定義各個(gè)模塊的具體功能函數(shù)。
- 設(shè)計(jì)一個(gè)主菜單,兩個(gè)子菜單,分別管理商品基本信息和銷量信息
運(yùn)行功能演示:
商品信息管理系統(tǒng)啟動(dòng)后,首先進(jìn)入系統(tǒng)主界面,等待用戶輸入命令選擇相應(yīng)的功能。
如果用戶輸入“info”命令,則進(jìn)入商品基本信息管理子功能模塊。
在商品基本信息管理界面,用戶通過輸入相應(yīng)的命令進(jìn)行商品基本信息的增、刪、改、顯示等操作。
添加商品信息
刪除商品信息
修改商品信息
?顯示商品信息
如果用戶輸入“sale”命令,則進(jìn)入商品銷量管理子功能模塊。
在商品銷量管理界面用戶可選擇相應(yīng)的功能進(jìn)行銷量處理。
平均銷量:
最高銷量:
最低銷量:
文章來源:http://www.zghlxwxcb.cn/news/detail-473290.html
具體實(shí)現(xiàn)過程:
定義商品類:
class Goods:
def __init__(self,no,name,first=0,second=0,third=0):
self.no = no
self.name = name
self.first = int(first)
self.second = int(second)
self.third = int(third)
定義商品管理類
class GoodsList:
def __init__(self):
self.gdslist = []
定義顯示商品信息函數(shù)
在商品管理類下面定義顯示商品信息函數(shù):文章來源地址http://www.zghlxwxcb.cn/news/detail-473290.html
def show(self):
#顯示信息
print('{}\t{}\t{}\t{}\t{}'
.format('編號(hào)','名稱','一季度','二季度','三季度'))
for gd in self.gdslist:
print('{}\t{}\t{}\t{}\t{}'
.format(gd.no,gd.name,gd.first,gd.second,gd.third))
輸入銷量函數(shù):
def __enterSale(self,message):
#銷量輸入
while True:
try:
sale = input(message)
if 0 <= int(sale) <= 10000:
break
else:
print("輸入錯(cuò)誤,應(yīng)在0到10000之間")
except:
print("輸入錯(cuò)誤,應(yīng)在0到10000之間")
return sale
def __exists(self,no):
#判斷編號(hào)是否存在
for gd in self.gdslist:
if gd.no == no:
return True
else:
return False
添加商品信息:
def insert(self):
#添加信息
while True:
no = input('編號(hào):')
if self.__exists(no):
print('該編號(hào)已存在')
else:
name = input('名稱:')
first = self.__enterSale('一季度:')
second = self.__enterSale('二季度:')
third = self.__enterSale('三季度:')
gd = Goods(no,name,first,second,third)
self.gdslist.append(gd)
choice = input('繼續(xù)添加(y/n)?').lower()
if choice == 'n':
break
刪除商品信息
def delete(self):
#刪除學(xué)生信息
while True:
no = input('請(qǐng)輸入要?jiǎng)h除的學(xué)生學(xué)號(hào):')
for stu in self.stulist[::]:
if stu.no == no:
self.stulist.remove(stu)
print('刪除成功')
break
else:
print('該學(xué)號(hào)不存在')
choice = input('繼續(xù)刪除(y/n)?').lower()
if choice == 'n':
break
修改商品信息
def delete(self):
#刪除信息
while True:
no = input('請(qǐng)輸入要?jiǎng)h除的商品編號(hào):')
for gd in self.gdslist[::]:
if gd.no == no:
self.gdslist.remove(gd)
print('刪除成功')
break
else:
print('該編號(hào)不存在')
choice = input('繼續(xù)刪除(y/n)?').lower()
if choice == 'n':
break
導(dǎo)入商品信息
def load(self,fn):
#導(dǎo)入信息
if os.path.exists(fn):
try:
with open(fn,'r',encoding = 'utf-8') as fp:
while True:
fs = fp.readline().strip('\n')
if not fs:
break
else:
gd = Goods(*fs.split(','))
if self.__exists(gd.no):
print('該編號(hào)已存在')
else:
self.gdslist.append(gd)
print('導(dǎo)入完畢')
except:
print('error...')
else:
print('要導(dǎo)入的文件不存在')
導(dǎo)出商品信息
def save(self,fn):
#導(dǎo)出信息
with open(fn,'w',encoding = 'utf-8') as fp:
for gd in self.gdslist:
fp.write(gd.no + ',')
fp.write(gd.name + ',')
fp.write(str(gd.first) + ',')
fp.write(str(gd.second) + ',')
fp.write(str(gd.third) + '\n')
print("導(dǎo)出完畢")
求商品平均銷量
def sale_avg(self):
#求平均銷量
length = len(self.gdslist)
if length > 0:
first_avg = sum([gd.first for gd in self.gdslist])/length
second_avg = sum([gd.second for gd in self.gdslist])/length
third_avg = sum([gd.third for gd in self.gdslist])/length
print('一季度平均銷量是:%.2f'%first_avg)
print('二季度平均銷量是:%.2f'%second_avg)
print('三季度平均銷量是:%.2f'%third_avg)
else:
print('尚沒有商品銷量...')
求商品最高銷量
def sale_max(self):
#求最高
if len(self.gdslist) > 0:
first_max = max([gd.first for gd in self.gdslist])
second_max = max([gd.second for gd in self.gdslist])
third_max = max([gd.third for gd in self.gdslist])
print('一季度最高銷量是:%d'%first_max)
print('二季度最高銷量是:%d'%second_max)
print('三季度最高銷量是:%d'%third_max)
else:
print('尚沒有商品銷量...')
求商品最低銷量
def sale_min(self):
#求最低
if len(self.gdslist) > 0:
first_min = min([gd.first for gd in self.gdslist])
second_min = min([gd.second for gd in self.gdslist])
third_min = min([gd.third for gd in self.gdslist])
print('一季度最低銷量是:%d'%first_min)
print('二季度最低銷量是:%d'%second_min)
print('三季度最低銷量是:%d'%third_min)
else:
print('尚沒有商品銷量...')
最后定義菜單函數(shù)和主函數(shù):
def infoprocess(self):
#基本信息管理
print('商品基本信息管理'.center(20,'-'))
print('load----------導(dǎo)入商品信息')
print('insert--------添加商品信息')
print('delete--------刪除商品信息')
print('update--------修改商品信息')
print('show----------顯示商品信息')
print('save----------導(dǎo)出商品信息')
print('return--------返回')
print('-'*28)
while True:
s = input('info>').strip().lower()
if s == 'load':
fn = input('請(qǐng)輸入要導(dǎo)入的文件名:')
self.load(fn)
elif s == 'show':
self.show()
elif s == 'insert':
self.insert()
elif s == 'delete':
self.delete()
elif s == 'update':
self.update()
elif s == 'save':
fn = input('請(qǐng)輸入要導(dǎo)出的文件名:')
self.save(fn)
elif s =='return':
break
else:
print('輸入錯(cuò)誤')
def saleprocess(self):
#銷量統(tǒng)計(jì)
print('商品銷量統(tǒng)計(jì)'.center(24,'='))
print('avg --------平均銷量')
print('max --------最高銷量')
print('min --------最低銷量')
print('return --------返回')
print(''.center(30,'='))
while True:
s = input('sale>').strip().lower()
if s == 'avg':
self.sale_avg()
elif s == 'max':
self.sale_max()
elif s == 'min':
self.sale_min()
elif s == 'return':
break
else:
print('輸入錯(cuò)誤')
def main(self):
#主控函數(shù)
while True:
print('商品信息管理系統(tǒng)V1.0'.center(24,'='))
print('info --------商品基本信息管理')
print('sale --------商品銷量統(tǒng)計(jì)')
print('exit --------退出系統(tǒng)')
print(''.center(32,'='))
s = input('main>').strip().lower()
if s == 'info':
self.infoprocess()
elif s == 'sale':
self.saleprocess()
elif s == 'exit':
break
else:
print('輸入錯(cuò)誤')
if __name__ == '__main__':
gds = GoodsList()
gds.main()
完整代碼:
'''
導(dǎo)入導(dǎo)出文件的編碼是utf-8
'''
import os
class Goods:
def __init__(self,no,name,first=0,second=0,third=0):
self.no = no
self.name = name
self.first = int(first)
self.second = int(second)
self.third = int(third)
class GoodsList:
def __init__(self):
self.gdslist = []
def show(self):
#顯示信息
print('{}\t{}\t{}\t{}\t{}'
.format('編號(hào)','名稱','一季度','二季度','三季度'))
for gd in self.gdslist:
print('{}\t{}\t{}\t{}\t{}'
.format(gd.no,gd.name,gd.first,gd.second,gd.third))
def __enterSale(self,message):
#銷量輸入
while True:
try:
sale = input(message)
if 0 <= int(sale) <= 10000:
break
else:
print("輸入錯(cuò)誤,應(yīng)在0到10000之間")
except:
print("輸入錯(cuò)誤,應(yīng)在0到10000之間")
return sale
def __exists(self,no):
#判斷編號(hào)是否存在
for gd in self.gdslist:
if gd.no == no:
return True
else:
return False
def insert(self):
#添加信息
while True:
no = input('編號(hào):')
if self.__exists(no):
print('該編號(hào)已存在')
else:
name = input('名稱:')
first = self.__enterSale('一季度:')
second = self.__enterSale('二季度:')
third = self.__enterSale('三季度:')
gd = Goods(no,name,first,second,third)
self.gdslist.append(gd)
choice = input('繼續(xù)添加(y/n)?').lower()
if choice == 'n':
break
def delete(self):
#刪除信息
while True:
no = input('請(qǐng)輸入要?jiǎng)h除的商品編號(hào):')
for gd in self.gdslist[::]:
if gd.no == no:
self.gdslist.remove(gd)
print('刪除成功')
break
else:
print('該編號(hào)不存在')
choice = input('繼續(xù)刪除(y/n)?').lower()
if choice == 'n':
break
def update(self):
#修改信息
while True:
no = input('請(qǐng)輸入要修改的商品編號(hào):')
if self.__exists(no):
for gd in self.gdslist:
if gd.no == no:
gd.name = input('名稱:')
gd.salary = int(self.__enterSale('一季度:'))
gd.bonus = int(self.__enterSale('二季度:'))
gd.tax = int(self.__enterSale('三季度:'))
print('修改成功')
break
else:
print('該編號(hào)不存在')
choice = input('繼續(xù)修改(y/n)?').lower()
if choice == 'n':
break
def load(self,fn):
#導(dǎo)入信息
if os.path.exists(fn):
try:
with open(fn,'r',encoding = 'utf-8') as fp:
while True:
fs = fp.readline().strip('\n')
if not fs:
break
else:
gd = Goods(*fs.split(','))
if self.__exists(gd.no):
print('該編號(hào)已存在')
else:
self.gdslist.append(gd)
print('導(dǎo)入完畢')
except:
print('error...')
else:
print('要導(dǎo)入的文件不存在')
def save(self,fn):
#導(dǎo)出信息
with open(fn,'w',encoding = 'utf-8') as fp:
for gd in self.gdslist:
fp.write(gd.no + ',')
fp.write(gd.name + ',')
fp.write(str(gd.first) + ',')
fp.write(str(gd.second) + ',')
fp.write(str(gd.third) + '\n')
print("導(dǎo)出完畢")
def sale_avg(self):
#求平均銷量
length = len(self.gdslist)
if length > 0:
first_avg = sum([gd.first for gd in self.gdslist])/length
second_avg = sum([gd.second for gd in self.gdslist])/length
third_avg = sum([gd.third for gd in self.gdslist])/length
print('一季度平均銷量是:%.2f'%first_avg)
print('二季度平均銷量是:%.2f'%second_avg)
print('三季度平均銷量是:%.2f'%third_avg)
else:
print('尚沒有商品銷量...')
def sale_max(self):
#求最高
if len(self.gdslist) > 0:
first_max = max([gd.first for gd in self.gdslist])
second_max = max([gd.second for gd in self.gdslist])
third_max = max([gd.third for gd in self.gdslist])
print('一季度最高銷量是:%d'%first_max)
print('二季度最高銷量是:%d'%second_max)
print('三季度最高銷量是:%d'%third_max)
else:
print('尚沒有商品銷量...')
def sale_min(self):
#求最低
if len(self.gdslist) > 0:
first_min = min([gd.first for gd in self.gdslist])
second_min = min([gd.second for gd in self.gdslist])
third_min = min([gd.third for gd in self.gdslist])
print('一季度最低銷量是:%d'%first_min)
print('二季度最低銷量是:%d'%second_min)
print('三季度最低銷量是:%d'%third_min)
else:
print('尚沒有商品銷量...')
def infoprocess(self):
#基本信息管理
print('商品基本信息管理'.center(20,'-'))
print('load----------導(dǎo)入商品信息')
print('insert--------添加商品信息')
print('delete--------刪除商品信息')
print('update--------修改商品信息')
print('show----------顯示商品信息')
print('save----------導(dǎo)出商品信息')
print('return--------返回')
print('-'*28)
while True:
s = input('info>').strip().lower()
if s == 'load':
fn = input('請(qǐng)輸入要導(dǎo)入的文件名:')
self.load(fn)
elif s == 'show':
self.show()
elif s == 'insert':
self.insert()
elif s == 'delete':
self.delete()
elif s == 'update':
self.update()
elif s == 'save':
fn = input('請(qǐng)輸入要導(dǎo)出的文件名:')
self.save(fn)
elif s =='return':
break
else:
print('輸入錯(cuò)誤')
def saleprocess(self):
#銷量統(tǒng)計(jì)
print('商品銷量統(tǒng)計(jì)'.center(24,'='))
print('avg --------平均銷量')
print('max --------最高銷量')
print('min --------最低銷量')
print('return --------返回')
print(''.center(30,'='))
while True:
s = input('sale>').strip().lower()
if s == 'avg':
self.sale_avg()
elif s == 'max':
self.sale_max()
elif s == 'min':
self.sale_min()
elif s == 'return':
break
else:
print('輸入錯(cuò)誤')
def main(self):
#主控函數(shù)
while True:
print('商品信息管理系統(tǒng)V1.0'.center(24,'='))
print('info --------商品基本信息管理')
print('sale --------商品銷量統(tǒng)計(jì)')
print('exit --------退出系統(tǒng)')
print(''.center(32,'='))
s = input('main>').strip().lower()
if s == 'info':
self.infoprocess()
elif s == 'sale':
self.saleprocess()
elif s == 'exit':
break
else:
print('輸入錯(cuò)誤')
if __name__ == '__main__':
gds = GoodsList()
gds.main()
到了這里,關(guān)于商品信息管理系統(tǒng)(Python)完整版的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!