1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193
| **from** tkinter **import** \* **from** tkinter.messagebox **import** \* <br/>**class** AddFrame(Frame): **def** \__init_\_(self,master = **None**): Frame.\__init_\_(self, master) self.root = master _ _self.book_ID = StringVar() self.book_Name = StringVar() self.book_Writer = StringVar() self.book_Num = StringVar() self.book_Price = StringVar() self.createPage() <br/>**def** createPage(self): Label(self).grid(row = 0,stick = W,pady = 10) Label(self, text = **'编 号:'**,font = (**"楷体"**,15,**"bold"**)).grid(row = 1,stick = W,pady = 15) Entry(self,textvariable=self.book_ID,font = (**"楷体"**,15,**"bold"**)).grid(row = 1,column = 1,stick = E) Label(self, text = **'书 名: '**,font = (**"楷体"**,15,**"bold"**)).grid(row=2, stick=W, pady=15) Entry(self, textvariable=self.book_Name,font = (**"楷体"**,15,**"bold"**)).grid(row=2, column=1, stick=E) Label(self, text = **'作 者: '**,font = (**"楷体"**,15,**"bold"**)).grid(row=3, stick=W, pady=15) Entry(self, textvariable=self.book_Writer,font = (**"楷体"**,15,**"bold"**)).grid(row=3, column=1, stick=E) Label(self, text = **'数量 /本: '**,font = (**"楷体"**,15,**"bold"**)).grid(row=4, stick=W, pady=15) Entry(self, textvariable=self.book_Num,font = (**"楷体"**,15,**"bold"**)).grid(row=4, column=1, stick=E) Label(self, text = **'价格 /元: '**,font = (**"楷体"**,15,**"bold"**)).grid(row=5, stick=W, pady=15) Entry(self, textvariable=self.book_Price,font = (**"楷体"**,15,**"bold"**)).grid(row=5, column=1, stick=E) Button(self, text=**'录 入'**,font = (**"楷体"**,15,**"bold"**),command = self.add_books).grid(row = 6,stick=W,column=1, pady=20,padx = 40) <br/>**def** add_books(self): bookid = self.book_ID.get() bookname = self.book_Name.get() bookwriter = self.book_Writer.get() booknum = self.book_Num.get() bookprice = self.book_Price.get() f = open(**'books.txt'**) temp = 0 **for** line **in** f: l = line.strip().split(**','**) **if** l\[1\] == bookname: temp = 1 **break else**: **continue if** temp == 1:_ _**with** open(**'books.txt'**,**'r'**) **as** fr: lines = fr.readlines() **with** open(**'books.txt'**,**'w'**) **as** fw: **for** line **in** lines: v = line.strip().split(**','**) **if** bookname == v\[1\]: num = int(booknum)+int(v\[3\]) num_str = str(num) fw.write(v\[0\]+**','**+v\[1\]+**','**+v\[2\]+**','**+num_str+**','**+v\[4\]+**'\\n'**) **else**: fw.write(line) fr.close() fw.close() **else**:_ _fw = open(**'books.txt'**,**'a'**) fw.write(bookid+**','**+bookname+**','**+bookwriter+**','**+booknum+**','**+bookprice+**'\\n'**) fw.close() showinfo(message=**'录入成功!'**) <br/>**class** DeleteFrame(Frame): **def** \__init_\_(self,master = **None**): Frame.\__init_\_(self, master) self.root = master _ _self.book_Name = StringVar() self.booknum_Delete = StringVar() self.createPage() <br/>**def** createPage(self): Label(self).grid(row = 0,stick = W,pady = 10) Label(self, text = **'书 名:'**,font = (**"楷体"**,15,**"bold"**)).grid(row = 1,stick = W,pady = 15) Entry(self,textvariable=self.book_Name,font = (**"楷体"**,15,**"bold"**)).grid(row = 1,column = 1,stick = E) Label(self, text = **'删除数量 /本: '**,font = (**"楷体"**,15,**"bold"**)).grid(row=2, stick=W, pady=15) Entry(self, textvariable=self.booknum_Delete,font = (**"楷体"**,15,**"bold"**)).grid(row=2, column=1, stick=E) Button(self, text=**'删 除'**,font = (**"楷体"**,15,**"bold"**),command = self.delete_books).grid(row = 6,stick=W,column=1, pady=20,padx = 30) <br/>**def** delete_books(self): bookname = self.book_Name.get() book_num_delete = self.booknum_Delete.get() f = open(**'books.txt'**) temp = 0 **for** line **in** f: l = line.strip().split(**','**) **if** bookname == l\[1\] **and** int(l\[3\]) > int(book_num_delete): _ _temp = 1 **break elif** bookname == l\[1\] **and** int(l\[3\]) <= int(book_num_delete):_ _temp = 2 **break else**: **continue if** temp == 1: **with** open(**'books.txt'**,**'r'**) **as** fr: lines = fr.readlines() **with** open(**'books.txt'**,**'w'**) **as** fw: **for** line **in** lines: v = line.strip().split(**','**) **if** bookname == v\[1\]: num = int(l\[3\]) - int(book_num_delete) str_value = str(num) fw.write(l\[0\]+**','**+l\[1\]+**','**+l\[2\]+**','**+str_value+**','**+l\[4\]+ **'\\n'**) **else**: fw.write(line) fr.close() fw.close() showinfo(message=**'删除成功!'**) **elif** temp == 2: **with** open(**'books.txt'**,**'r'**) **as** fr: lines = fr.readlines() **with** open(**'books.txt'**,**'w'**) **as** fw: **for** line **in** lines: v = line.strip().split(**','**) **if** bookname == v\[1\]: **continue **fw.write(line) fr.close() fw.close() showinfo(message=**'删除成功!'**) **else**: showwarning(title = **'Waring'**,message = **'您输入的图书书名有误,请重新输入!'**) <br/>**class** CountFrame(Frame): **def** \__init_\_(self,master = **None**): Frame.\__init_\_(self, master) self.root = master _ _self.book_Name = StringVar() self.createPage() <br/>**def** createPage(self): Label(self).grid(row = 0,stick = W,pady = 40) Label(self, text = **'书 名:'**,font = (**"楷体"**,15,**"bold"**)).grid(row = 1,stick = W,pady = 20) Entry(self,textvariable=self.book_Name,font = (**"楷体"**,15,**"bold"**)).grid(row = 1,column = 1,stick = E) Button(self, text=**'统 计'**,font = (**"楷体"**,15,**"bold"**),command = self.count_books).grid(row = 6,stick=W,column=1, pady=20,padx = 30) <br/>**def** count_books(self): bookname = self.book_Name.get() f = open(**'books.txt'**) **for** line **in** f: l = line.strip().split(**','**) **if** l\[1\] == bookname: count_remain = int(l\[3\]) **break else**: **continue **f1 = open(**'book_lend.txt'**) count_lend = 0 **for** line1 **in** f1: l1 = line1.strip().split(**','**) **if** l1\[0\] == bookname: count_lend += 1 _ _**else**: **continue **count_all = count_remain + count_lend countWin = Tk() countWin.title(**'统计信息'**) countWin.geometry(**'500x400'**) Label(countWin).grid(row = 0,stick = W,pady = 20) Label(countWin, text = **'书 名: '**+bookname,font = (**"楷体"**,15,**"bold"**)).grid(row=1, stick=W, pady=10,padx = 90) Label(countWin, text = **'总 数: '**+str(count_all),font = (**"楷体"**,15,**"bold"**)).grid(row = 2,stick = W,pady = 15,padx = 90) Label(countWin, text = **'借出数量: '**+str(count_lend)+**'本'**,font = (**"楷体"**,15,**"bold"**)).grid(row = 3,stick = W,pady = 15,padx = 90) Label(countWin, text = **'剩余数量: '**+str(count_remain)+**'本'**,font = (**"楷体"**,15,**"bold"**)).grid(row = 4,stick = W,pady = 15,padx = 90) <br/>**class** Register_admirFrame(Frame): **def** \__init_\_(self,master = **None**): Frame.\__init_\_(self, master) self.root = master _ _self.admir_Name = StringVar() self.admir_Password = StringVar() self.admir_Password_repetion = StringVar() self.createPage() <br/>**def** createPage(self): Label(self).grid(row = 0,stick = W,pady = 20) Label(self, text = **'账 号:'**,font = (**"楷体"**,15,**"bold"**)).grid(row = 1,stick = W,pady = 15) Entry(self,textvariable=self.admir_Name,font = (**"楷体"**,15,**"bold"**)).grid(row = 1,column = 1,stick = E) Label(self, text = **'密 码: '**,font = (**"楷体"**,15,**"bold"**)).grid(row=2, stick=W, pady=15) Entry(self, textvariable=self.admir_Password,font = (**"楷体"**,15,**"bold"**),show = **'\*'**).grid(row=2, column=1, stick=E) Label(self, text = **'重新输入密码: '**,font = (**"楷体"**,15,**"bold"**)).grid(row=3, stick=W, pady=15) Entry(self, textvariable=self.admir_Password_repetion,font = (**"楷体"**,15,**"bold"**),show = **'#'**).grid(row=3, column=1, stick=E) Button(self, text=**'注册'**,font = (**"楷体"**,15,**"bold"**),command = self.register_admir).grid(row = 4,stick=W,column=1, pady=20,padx = 30) <br/>**def** register_admir(self): admirname = self.admir_Name.get() admirpassword = self.admir_Password.get() admirpasstwo = self.admir_Password_repetion.get() f = open(**'login_admir.txt'**) temp = 0 **for** line **in** f: l = line.strip().split(**','**) **if** l\[0\] == admirname: showwarning(message=**'输入用户名已经存在'**) temp = 1 **break else**: **continue if** temp != 1 **and** admirpassword == admirpasstwo: fw = open(**'login_admir.txt'**,**'a'**) fw.write(admirname+**','**+admirpassword+**'\\n'**) fw.close() showinfo(message=**'注册成功!'**) **elif** temp != 1 **and** admirpassword != admirpasstwo: showwarning(message=**'两次输入密码不一致'**)
|