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.pswp.cn/news/253260.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/253260.shtml
英文地址,請注明出處:http://en.pswp.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;管子廠…

imp導入前對當前用戶清庫腳本

--清空當前用戶所有表begin for i in ( select drop table || a.tab_name as sqls from (select distinct t.tab_name from (select Lower(table_name) as tab_name from user_tables) t) a ) loop dbms_output.put_line(i.sqls); execute immediate i.sqls; end loop;end;/--清…

Spring - Spring Boot Spring Cloud

Spring -> Spring Boot > Spring Cloud 這幾天剛剛上班&#xff0c;公司用的是Spring Cloud&#xff0c;接觸不多。我得趕快學起來。 想學習就必須得知道什么是微服務&#xff0c;什么是Spring Boot&#xff0c;什么是Spring Cloud&#xff0c;以及兩者之間有什么關系&am…

C語言 · 前10名

算法提高 前10名 時間限制&#xff1a;1.0s 內存限制&#xff1a;256.0MB問題描述數據很多&#xff0c;但我們經常只取前幾名&#xff0c;比如奧運只取前3名。現在我們有n個數據&#xff0c;請按從大到小的順序&#xff0c;輸出前10個名數據。輸入格式兩行。第一行一個整數n…

ssacanf\Sprintf格式化字符串

一、sscanf sscanf() - 從一個  int sscanf(const char *buffer,const char *format,[argument ]...); buffer 存儲的數據 format 格式控制字符串 argument 選擇性設定字符串 sscanf會從buffer里讀進數據&#xff0c;依照argument的設定將數據寫回。字符串中讀進與指定格式相…

防火墻規則

1、iptables -t -L -n -t指定表格 -L 顯示目前表格的規則 -n 數字顯示2、iptables-save 以命令方式顯示規則3、清除清空filter從頭制定規則 ipatables -F 清除已經定義 iptables -X 清除自定義鏈 iptables -z 清除鏈統計和計數4、設定默認規則,當所有規則不匹…

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極大地方便了編…

JavaScriptBreak 語句 continue 語句

break 語句用于跳出循環。 continue 用于跳過循環中的一個迭代。 Break 語句 我們已經在本教程之前的章節中見到過 break 語句。它用于跳出 switch() 語句。 break 語句可用于跳出循環。 continue 語句跳出循環后&#xff0c;會繼續執行該循環之后的代碼&#xff08;如果有的話…

kernel mtd 分區與UBOOT 分區的理解

今天做內核移植&#xff0c;準備添加NAND flash的驅動&#xff0c;做到MTD分區時&#xff0c;想起在一本書上看到的一句話&#xff0c;說的是分區時每個區之間沒有間隙&#xff0c;前一個區的結束地址是后一個區的起始地址。可是當我看我的開發板的教程時&#xff0c;分區如下&…

運放的主要參數詳細介紹

1. 引言 運放的作用是調節和放大模擬信號&#xff0c;它是用途十分廣泛的器件&#xff0c;接入適當的反饋網絡&#xff0c;可用作精密的交流和直流放大器、有源濾波器濾波器、振蕩器振蕩器及電壓比較器。其應用領域包括但不限制通訊、電子、汽車、工業檢測等等&#xff0c;并將…

FastDFS 文件上傳工具類

FastDFS文件上傳工具類 import org.csource.common.NameValuePair;import org.csource.fastdfs.ClientGlobal;import org.csource.fastdfs.StorageClient1;import org.csource.fastdfs.StorageServer;import org.csource.fastdfs.TrackerClient;import org.csource.fastdfs.Tra…

MOS管的主要參數與重要特性

雙極性晶體管&#xff1a;NPN和PNP管&#xff1b; 單極性晶體管&#xff1a;場效應管&#xff08;MOSFET和JFET&#xff09;&#xff1b; MOS管相對三極管具有速度快、輸入阻抗高、噪聲低、動態范圍大、功耗小、容易集成等優點。 下面總結下其主要參數與重要特性&#xff0c…

【Codeforces Round #430 (Div. 2) B】Gleb And Pizza

【鏈接】點擊打開鏈接 【題意】 在這里寫題意【題解】 根據圓心到原點的距離這個東西判斷一下圓在不在那個環里面就好【錯的次數】 0【反思】 在這了寫反思【代碼】 #include <cstdio> #include <iostream> #include <algorithm> #include <cstring> #…

垂直居中方法總結

<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> …