Python 购物车

购物车需求:

可购买的商品信息显示
显示购物车内的商品信息、数量
购物车内的商品数量进行增加、减少
用户余额的充值
用户购买完成进行结账,将最终余额回写到用户文件中  

 

流程图:

 

代码:

 1、主文件 

def login():# 验证用户帐号和密码函数global namelock = "lock.txt"loginfile = "password.txt"login_info = 0i = 0while i < 3 and login_info == 0:name = input("Please input your name: ")with open(lock, "r") as f:for line in f:# if name in line:if name == line.strip():sys.exit('\033[32:1m用户 %s 已经被锁定\033[0m' % name)password = input("Please input password: ")with open(loginfile, "r") as f:for line in f:user_file, pass_file = line.split()if user_file == name and pass_file == password:print("Bingo!")login_info = 1return nameelse:print("You name or password is error!")i += 1else:if i == 3 and login_info == 0:f = open(lock, "a")f.write(name + "\n")f.close()print('\033[32:1m用户 %s 已经被锁定\033[0m' % name)  

 

def show_goods():# 显示当前商店所有商品函数commodity = "commodity.txt"x = PrettyTable(["商品名称", "价格", "数量"])x.align["商品名称"] = "l"  # 以name字段左对齐x.align["价格"] = "r"  # 以name字段右对齐x.align["数量"] = "r"  # 以name字段右对齐x.padding_width = 1  # 填充宽度with open(commodity, "r", encoding='utf-8') as f:for line in f:name, money, number = line.split()x.add_row([name, money, number])print(x)  

 

def show_shopping_cart():# 显示购物车商品函数open_shop_cart()  

 

def show_bought_goods():# 显示已购买商品函数open_bought()  

 

def show_yue(username):# 显示帐号的金额money = "money.txt"x = PrettyTable(["用户", "余额"])x.align["用户"] = "l"  # 以name字段左对齐x.align["余额"] = "r"  # 以name字段右对齐x.padding_width = 1  # 填充宽度with open(money, "r", encoding='utf-8') as f:for line in f:name, money = line.split()if name == username:x.add_row([name, money])print(x)  

 

def show_info():# 显示信息函数print("*****************************")print("修改密码,请输入E:")print("查看购物车,请输入S:")print("查看已购买商品函数,请输入V:")print("充值,请输入M:")print("查询余额,请输入Y:")print("购买商品,请输入B:")print("查看商品数量和价格,请输入G:")print("添加商品到购物车,请输入商品名称:")print("*****************************")return input("请输入你的选择:")  

 

def recharge(username):# 充值函数key = usernamen = input("请输入充值金额:")filename = "money.txt"edit_file_data(filename, username, n, '+')  

 

def add_goods_shopping_cart(key):# 添加商品到购物车函数n = input("请输入购买数量:")file1 = "commodity.txt"file2 = "shop-cart.txt"ret = edit_file_data(file1, key, n, '-')if int(ret) == 1:print("*****************************")print("商品数量不足,请重新选择")returnelse:edit_file_data(file2, key, n, '+')  

 

def goods_bought(username):# 从商品购买函数while True:show_shopping_cart()q = input("输入q返回上级菜单,输入其他键继续:")if q.lower() == 'q':return# else:key = input("请输入购买商品名称:")n = input("请输入购买数量:")file1 = "money.txt"file2 = "shop-cart.txt"file3 = "bought.txt"with open("commodity.txt", "r", encoding='utf-8') as f1:for line in f1:shop = line.split()if str(shop[0]) == str(key):value = shop[2]sum_value = int(n) * int(value)with open(file1, "r", encoding='utf-8') as f1:for line in f1:shop = line.split()if str(shop[0]) == str(username):value = shop[1]if int(sum_value) > int(value):print("*****************************")print("余额不足请充值:")print("*****************************")return recharge(username)ret = edit_file_data(file2, key, n, '-')if int(ret) == 1:print("*****************************")print("购物车中没有这么多商品,请重新选择")print("*****************************")continueelse:edit_file_data(file1, username, sum_value, '-')edit_file_data(file3, key, n, '+')  

 

def edit_password(username):# 修改帐号密码函数passwd1 = input("请输入你的新密码:")passwd2 = input("请再次确认你的密码:")if passwd1 != passwd2:print("*****************************")print("你2次输入的密码不一致,请重新输入")print("*****************************")return edit_password(username)else:file1 = "password.txt"file2 = "tmp.txt"with open(file1, "r", encoding='utf-8') as f1:with open(file2, "w", encoding='utf-8') as f2:for line in f1:shop = line.split()if str(shop[0]) == str(username):shop[1] = str(passwd1)dat_out = " ".join(shop)f2.write(dat_out + "\n")else:dat_out = " ".join(shop)f2.write(dat_out + "\n")move_filename(file1)print("*****************************")print("密码修改成功!")  

 

def open_shop_cart():x = PrettyTable(["商品名称", "数量"])x.align["商品名称"] = "l"  # 以name字段左对齐# x.align["价格"] = "r"  # 以name字段右对齐x.align["数量"] = "r"  # 以name字段右对齐x.padding_width = 1  # 填充宽度with open("shop-cart.txt", "r", encoding='utf-8') as f:for line in f:name, number = line.split()x.add_row([name, number])print("*****************************")print(x)  

 

def open_commodity():x = PrettyTable(["商品名称", "价格", "数量"])x.align["商品名称"] = "l"  # 以name字段左对齐x.align["价格"] = "r"  # 以name字段右对齐x.align["数量"] = "r"  # 以name字段右对齐x.padding_width = 1  # 填充宽度with open("commodity.txt", "r", encoding='utf-8') as f:for line in f:name, money, number = line.split()x.add_row([name, money, number])print(x)  

 

def open_bought():x = PrettyTable(["商品名称", "数量"])x.align["商品名称"] = "l"  # 以name字段左对齐x.align["数量"] = "r"  # 以name字段右对齐x.padding_width = 1  # 填充宽度with open("bought.txt", "r", encoding='utf-8') as f:for line in f:name, number = line.split()x.add_row([name, number])print(x)  

 

def move_filename(filename):# 重命名文件名函数for file in os.listdir('.'):  # os.listdir('.')遍历文件夹内的每个文件名,并返回一个包含文件名的listif file == filename:os.remove(file)for file in os.listdir('.'):if file == "tmp.txt":new_name = filenameos.rename(file, new_name)return  

 

def edit_file_data(filename, key, n, operator):# 修改文件数据函数file2 = "tmp.txt"sign = 0if operator == '+':with open(filename, "r", encoding='utf-8') as f1:with open(file2, "w", encoding='utf-8') as f2:for line in f1:shop = line.split()if str(shop[0]) == str(key):sign = 1shop[1] = str(int(shop[1]) + int(n))dat_out = " ".join(shop)f2.write(dat_out + "\n")else:dat_out = " ".join(shop)f2.write(dat_out + "\n")if sign == 0:shop = [key, str(n)]dat_out = " ".join(shop)f2.write(dat_out + "\n")elif operator == '-':with open(filename, "r", encoding='utf-8') as f1:with open(file2, "w", encoding='utf-8') as f2:for line in f1:shop = line.split()if str(shop[0]) == str(key):if int(shop[1]) < int(n):return 1else:shop[1] = str(int(shop[1]) - int(n))dat_out = " ".join(shop)f2.write(dat_out + "\n")else:dat_out = " ".join(shop)f2.write(dat_out + "\n")move_filename(filename)return 0    

 

#!/usr/bin/env python
# -*- conding:utf-8 -*-
# create a shopping cart system# 20170921
# evescnimport sys
import os
import yaml
from prettytable import PrettyTabledef main():# 验证用户帐号和密码username = login()# 显示当前商店内的所有商品show_goods()while True:# 输出显示信息key = show_info()print("*****************************")if key.lower() == 's':show_shopping_cart()elif key.lower() == 'e':edit_password(username)elif key.lower() == 'v':show_bought_goods()elif key.lower() == 'm':recharge(username)elif key.lower() == 'y':show_yue(username)elif key.lower() == 'b':goods_bought(username)elif key.lower() == 'g':show_goods()else:add_goods_shopping_cart(key)if __name__ == "__main__":main() 

  

 2、用户帐号密码文件 

# password.txt
evescn 123456
gmkk 12321   

 

 3、用户金额文件 

# money.txt
evescn 30
gmkk 200  

 

 4、商品文件  

# commodity.txt
《Python入门》 5 100
《Python放弃》 12 100
瓜子 89 10
苹果 55 5
西瓜 15 2
葡萄 12 3
西红柿 8 4

  

 5、购物车文件  

# shop-cart.txt
瓜子 6
苹果 2
西瓜 3
西红柿 2

  

 6、已购商品文件  

# bought.txt
瓜子 1

  

运行结果:

  1、修改用户密码测试 

Please input your name: evescn
Please input password: 123456
Bingo!
+----------------+------+------+
| 商品名称       | 价格 | 数量 |
+----------------+------+------+
| 《Python入门》 |    5 |  100 |
| 《Python放弃》 |   12 |  100 |
| 瓜子           |   89 |   10 |
| 苹果           |   55 |    5 |
| 西瓜           |   15 |    2 |
| 葡萄           |   12 |    3 |
| 西红柿         |    8 |    4 |
+----------------+------+------+
*****************************
修改密码,请输入E:
查看购物车,请输入S:
查看已购买商品函数,请输入V:
充值,请输入M:
查询余额,请输入Y:
购买商品,请输入B:
查看商品数量和价格,请输入G:
添加商品到购物车,请输入商品名称:
*****************************
请输入你的选择:e
*****************************
请输入你的新密码:Gmkk
请再次确认你的密码:gmkk
*****************************
你2次输入的密码不一致,请重新输入
*****************************
请输入你的新密码:gmkk
请再次确认你的密码:gmkk
*****************************
密码修改成功!
*****************************  

 

# password.txt 文件内容
evescn gmkk
gmkk 12321  

 

 2、添加商品到购物车测试 

# 原商品文件信息《Python入门》 5 100
《Python放弃》 12 100
瓜子 89 10
苹果 55 5
西瓜 15 2
葡萄 12 3
西红柿 8 4# 原购物车文件信息瓜子 6
苹果 2
西瓜 3
西红柿 2  

 

Please input your name: evescn
Please input password: 123456
Bingo!
+----------------+------+------+
| 商品名称       | 价格 | 数量 |
+----------------+------+------+
| 《Python入门》 |    5 |  100 |
| 《Python放弃》 |   12 |  100 |
| 瓜子           |   89 |   10 |
| 苹果           |   55 |    5 |
| 西瓜           |   15 |    2 |
| 葡萄           |   12 |    3 |
| 西红柿         |    8 |    4 |
+----------------+------+------+
*****************************
修改密码,请输入E:
查看购物车,请输入S:
查看已购买商品函数,请输入V:
充值,请输入M:
查询余额,请输入Y:
购买商品,请输入B:
查看商品数量和价格,请输入G:
添加商品到购物车,请输入商品名称:
*****************************
请输入你的选择:瓜子
*****************************
请输入购买数量:20
*****************************
修改密码,请输入E:
查看购物车,请输入S:
查看已购买商品函数,请输入V:
充值,请输入M:
查询余额,请输入Y:
购买商品,请输入B:
查看商品数量和价格,请输入G:
添加商品到购物车,请输入商品名称:
*****************************
请输入你的选择:  

 

# 商品文件信息《Python入门》 5 100
《Python放弃》 12 100
瓜子 69 10
苹果 55 5
西瓜 15 2
葡萄 12 3
西红柿 8 4# 购物车文件信息瓜子 26
苹果 2
西瓜 3
西红柿 2  

 

 3、充值测试和显示余额测试 

# 充值前 money.txt 文件
evescn 30
gmkk 200  

 

*****************************
修改密码,请输入E:
查看购物车,请输入S:
查看已购买商品函数,请输入V:
充值,请输入M:
查询余额,请输入Y:
购买商品,请输入B:
查看商品数量和价格,请输入G:
添加商品到购物车,请输入商品名称:
*****************************
请输入你的选择:m
*****************************
请输入充值金额:200
*****************************
修改密码,请输入E:
查看购物车,请输入S:
查看已购买商品函数,请输入V:
充值,请输入M:
查询余额,请输入Y:
购买商品,请输入B:
查看商品数量和价格,请输入G:
添加商品到购物车,请输入商品名称:
*****************************
请输入你的选择:y
*****************************
+--------+------+
| 用户   | 余额 |
+--------+------+
| evescn |  230 |
+--------+------+
*****************************  

 

 4、显示购物车 

*****************************
修改密码,请输入E:
查看购物车,请输入S:
查看已购买商品函数,请输入V:
充值,请输入M:
查询余额,请输入Y:
购买商品,请输入B:
查看商品数量和价格,请输入G:
添加商品到购物车,请输入商品名称:
*****************************
请输入你的选择:s
*****************************
+----------+------+
| 商品名称 | 数量 |
+----------+------+
| 瓜子     |   26 |
| 苹果     |    2 |
| 西瓜     |    3 |
| 西红柿   |    2 |
+----------+------+
*****************************  

 

 5、显示已购商品 

*****************************
修改密码,请输入E:
查看购物车,请输入S:
查看已购买商品函数,请输入V:
充值,请输入M:
查询余额,请输入Y:
购买商品,请输入B:
查看商品数量和价格,请输入G:
添加商品到购物车,请输入商品名称:
*****************************
请输入你的选择:v
*****************************
+----------+------+
| 商品名称 | 数量 |
+----------+------+
| 瓜子     |    1 |
+----------+------+
*****************************  

 

 6、购买商品 

*****************************
修改密码,请输入E:
查看购物车,请输入S:
查看已购买商品函数,请输入V:
充值,请输入M:
查询余额,请输入Y:
购买商品,请输入B:
查看商品数量和价格,请输入G:
添加商品到购物车,请输入商品名称:
*****************************
请输入你的选择:b
*****************************
*****************************
+----------+------+
| 商品名称 | 数量 |
+----------+------+
| 瓜子     |   26 |
| 苹果     |    2 |
| 西瓜     |    3 |
| 西红柿   |    2 |
+----------+------+
输入q返回上级菜单,输入其他键继续:
请输入购买商品名称:瓜子
请输入购买数量:20
*****************************
+----------+------+
| 商品名称 | 数量 |
+----------+------+
| 瓜子     |    6 |
| 苹果     |    2 |
| 西瓜     |    3 |
| 西红柿   |    2 |
+----------+------+
输入q返回上级菜单,输入其他键继续:
请输入购买商品名称:瓜子
请输入购买数量:5
*****************************
余额不足请充值:
*****************************
请输入充值金额:200
*****************************
修改密码,请输入E:
查看购物车,请输入S:
查看已购买商品函数,请输入V:
充值,请输入M:
查询余额,请输入Y:
购买商品,请输入B:
查看商品数量和价格,请输入G:
添加商品到购物车,请输入商品名称:
*****************************
请输入你的选择:b
*****************************
*****************************
+----------+------+
| 商品名称 | 数量 |
+----------+------+
| 瓜子     |    6 |
| 苹果     |    2 |
| 西瓜     |    3 |
| 西红柿   |    2 |
+----------+------+
输入q返回上级菜单,输入其他键继续:
请输入购买商品名称:瓜子
请输入购买数量:7
*****************************
购物车中没有这么多商品,请重新选择
*****************************
*****************************
+----------+------+
| 商品名称 | 数量 |
+----------+------+
| 瓜子     |    6 |
| 苹果     |    2 |
| 西瓜     |    3 |
| 西红柿   |    2 |
+----------+------+
输入q返回上级菜单,输入其他键继续:
请输入购买商品名称:瓜子
请输入购买数量:6
*****************************
+----------+------+
| 商品名称 | 数量 |
+----------+------+
| 瓜子     |    0 |
| 苹果     |    2 |
| 西瓜     |    3 |
| 西红柿   |    2 |
+----------+------+
输入q返回上级菜单,输入其他键继续:q
*****************************
修改密码,请输入E:
查看购物车,请输入S:
查看已购买商品函数,请输入V:
充值,请输入M:
查询余额,请输入Y:
购买商品,请输入B:
查看商品数量和价格,请输入G:
添加商品到购物车,请输入商品名称:
*****************************
请输入你的选择:  

 

# 运行后文件数据*****************************
修改密码,请输入E:
查看购物车,请输入S:
查看已购买商品函数,请输入V:
充值,请输入M:
查询余额,请输入Y:
购买商品,请输入B:
查看商品数量和价格,请输入G:
添加商品到购物车,请输入商品名称:
*****************************
请输入你的选择:y
*****************************
+--------+------+
| 用户   | 余额 |
+--------+------+
| evescn |  170 |
+--------+------+
*****************************
修改密码,请输入E:
查看购物车,请输入S:
查看已购买商品函数,请输入V:
充值,请输入M:
查询余额,请输入Y:
购买商品,请输入B:
查看商品数量和价格,请输入G:
添加商品到购物车,请输入商品名称:
*****************************
请输入你的选择:s
*****************************
*****************************
+----------+------+
| 商品名称 | 数量 |
+----------+------+
| 瓜子     |    0 |
| 苹果     |    2 |
| 西瓜     |    3 |
| 西红柿   |    2 |
+----------+------+
*****************************
修改密码,请输入E:
查看购物车,请输入S:
查看已购买商品函数,请输入V:
充值,请输入M:
查询余额,请输入Y:
购买商品,请输入B:
查看商品数量和价格,请输入G:
添加商品到购物车,请输入商品名称:
*****************************
请输入你的选择:v
*****************************
+----------+------+
| 商品名称 | 数量 |
+----------+------+
| 瓜子     |   27 |
+----------+------+
*****************************  

 

 已知的bug问题:

没有对用户输入的商品进行判断,一旦用户输入的商品不存在,将会报错(添加商品到购物车和购买商品时需要输入商品名称)

  

 

转载于:https://www.cnblogs.com/python-gm/p/7562020.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253260.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

认对画对MOS管

MOS管我们在设计电路中经常用的一种无源器件。 首先介绍下&#xff0c;在原理图和PCB以及实物PCBA中如何辨别各种MOS管&#xff0c;作为应用好的先决条件&#xff0c;必须认对画对管子。 1. MOS管的GSD三极在原理图和PCB上怎么判定&#xff1a; G极(gate)—栅极&#xff0c;原…

Jmeter之BeanShell

在Jmeter中各种分类组件中都有相应的BeanShell组件&#xff0c;这里简单的说明一下Beanshell的使用。 一、概念 BeanShell是一种符合Java语法的脚本语言&#xff0c;也有自己的一些特定语法 二、内置变量 Jmeter在它的Beanshell中内置了变量&#xff0c;用户可以通过这些变量与…

HDU 1875 畅通工程再续

传送门&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1875 简单的最小生成树 #include <iostream> #include <cstdio> #include <cmath> using namespace std;const int maxn100005; const double INF1.0e20;struct Node{double x,y; } isl[maxn];…

C语言变长数组 struct中char data[0]的用法

摘要&#xff1a;在实际的编程中&#xff0c;我们经常需要使用变长数组&#xff0c;但是C语言并不支持变长的数组。此时&#xff0c;我们可以使用结构体的方法实现C语言变长数组。 struct MyData {int nLen;char data[0];}; 在结构中&#xff0c;data是一个数组名&#xff1b;但…

MOS管的实际应用

继上一篇“认对画对MOS管”后&#xff0c;现在小结一下MOS管的具体应用&#xff1a; 应用MOS管前&#xff0c;理解MOS管每个参数的具体意义后&#xff0c;再额外注意一下管子本身的体二极管&#xff0c;本身Vf1.6V&#xff0c;导通后管子本身阻抗一般是mΩ级&#xff1b;管子厂…

Spring - Spring Boot Spring Cloud

Spring -> Spring Boot > Spring Cloud 这几天刚刚上班&#xff0c;公司用的是Spring Cloud&#xff0c;接触不多。我得赶快学起来。 想学习就必须得知道什么是微服务&#xff0c;什么是Spring Boot&#xff0c;什么是Spring Cloud&#xff0c;以及两者之间有什么关系&am…

JAVA中循环删除list中元素的方法总结

印象中循环删除list中的元素使用for循环的方式是有问题的&#xff0c;但是可以使用增强的for循环&#xff0c;然后今天在使用时发现报错了&#xff0c;然后去科普了一下&#xff0c;再然后发现这是一个误区。下面就来讲一讲。。伸手党可直接跳至文末。看总结。。 JAVA中循环遍历…

直流有刷电机与无刷电机的区别

首先介绍有刷电机与无刷电机工作原理&#xff0c;最后从调速方式及性能差异这两个方面详细的阐述了有刷电机与无刷电机的区别。 有刷电机与无刷电机工作原理 1、有刷电机 电机工作时&#xff0c;线圈和换向器旋转&#xff0c;磁钢和碳刷不转&#xff0c;线圈电流方向的交替变化…

MapReduce详解

MapReduce简介 MapReduce是一种编程模型&#xff0c;用于大规模数据集&#xff08;大于1TB&#xff09;的并行运算。概念"Map&#xff08;映射&#xff09;"和"Reduce&#xff08;归约&#xff09;"&#xff0c;是它们的主要思想。 MapReduce极大地方便了编…

运放的主要参数详细介绍

1. 引言 运放的作用是调节和放大模拟信号&#xff0c;它是用途十分广泛的器件&#xff0c;接入适当的反馈网络&#xff0c;可用作精密的交流和直流放大器、有源滤波器滤波器、振荡器振荡器及电压比较器。其应用领域包括但不限制通讯、电子、汽车、工业检测等等&#xff0c;并将…

MOS管的主要参数与重要特性

双极性晶体管&#xff1a;NPN和PNP管&#xff1b; 单极性晶体管&#xff1a;场效应管&#xff08;MOSFET和JFET&#xff09;&#xff1b; MOS管相对三极管具有速度快、输入阻抗高、噪声低、动态范围大、功耗小、容易集成等优点。 下面总结下其主要参数与重要特性&#xff0c…

垂直居中方法总结

<style>#box{position: absolute;margin: auto;top:0px;right: 0px;bottom: 0px;left: 0px;width: 100%;height: 30%;background-color: red;text-align: center;} </style> <body><div id"box"><h1>文字居中</h1></div> …

NAND 坏块管理

NAND的操作管理方式 NAND FLASH的管理方式&#xff1a;以三星FLASH为例&#xff0c;一片Nand flash为一个设备(device)&#xff0c;1 (Device) xxxx (Blocks)&#xff0c;1 (Block) xxxx (Pages)&#xff0c;1(Page) 528 (Bytes) 数据块大小(512Bytes) OOB 块大小(16Bytes&…

运放的典型电路举例与计算仿真

运放电路的计算&#xff0c;通过记各种公式很难记住&#xff0c;但是掌握其两个重要概念&#xff0c;所有计算均可迎刃而解。 那就是运放的两个重要特性&#xff1a; 虚断&#xff1a;运放本质特性&#xff0c;输入阻抗大&#xff0c;两个输入端视为等效开路&#xff1b; 虚…

#define GPBCON (*(volatile unsigned *)0x56000010) 的理解

2019独角兽企业重金招聘Python工程师标准>>> 对于不同的计算机体系结构&#xff0c;设备可能是端口映射&#xff0c;也可能是内存映射的。如果系统结构支持独立的IO地址空间&#xff0c;并且是端口映射&#xff0c;就必须使用汇编语言完成实际对设备的控制&#xff…

三极管基本参数介绍与放大电路分析

全称为半导体三极管&#xff0c;也称双极型晶体管、晶体三极管&#xff0c;是一种电流控制电流的半导器件&#xff0c;作用是把微弱信号放大成幅度值较大的电信号&#xff0c; 也用作无触点开关。 两个PN结的排列方式有两种&#xff1a;PNP和NPN。 三个端点依序称为射极&#…

eclipse启动了tomcat,但是浏览器打不开欢迎页

tomcat在eclipse中启动成功&#xff0c;主页却打不开 症状&#xff1a; tomcat在eclipse里面能正常启动&#xff0c;而在浏览器中访问http://localhost:8080/不能访问&#xff0c;且报404错误。同时其他项目页面也不能访问。 关闭eclipse里面的tomcat&#xff0c;在tomcat安装目…

三极管放大电路三种类型

根据三极管三个电极与输入输出端子的连接方式&#xff0c;可归纳为三种&#xff1a;共发射极电路、共基极电路和共集电极电路&#xff1b; 三种电路的共同点&#xff1a;各有两个回路&#xff0c;一个输入回路一个输出回路&#xff0c;两个回路有一个公共 端&#xff0c;而公…

MOS管的米勒效应简介

一、米勒平台介绍 Mos管的三极都会存在以下 的三个电容,分别是:Cgs,Cgd,Cds。 米勒电容指的是Cgd。米勒效应在MOS驱动中臭名昭著,他是由MOS管的米勒电容引发的米勒效应,在MOS管开通过程 中,GS电压上升到某一电压值后GS电压有一段稳定值(图中t2~t3阶段),过后Vgs电压…

PopupWindow 使用详解(二) Popwindow 制作常见花哨效果

帝都几日降温&#xff0c;终于被撂倒了。but 只要一息尚存就得不断进步&#xff01;于是&#xff0c;写出 《PopupWindow 使用详解》的第二篇 笔记&#xff0c;先奉上 第一篇链接: 《PopupWindow 使用详解&#xff08;一&#xff09; 中文API 文档 赠送 ListPopupWindow 中文 A…