鱼C论坛

 找回密码
 立即注册
查看: 1258|回复: 0

[作品展示] 期中作品--基于easygui实现的记账软件

[复制链接]
发表于 2020-1-30 09:32:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
# -*- coding: utf-8 -*-
"""

@author: dlnb5

"""
#运用easygui实现一个记账软件


import easygui as g
import os
import os.path
class Book:
    def __init__(self):
        pass
    
    def welcome(self):
        g.msgbox('欢迎使用本软件\n 本软件账本采用明文记录的方式\n 使用时请注意个人隐私 ','警告')
    def doccr(self):#此函数用于对文件进行读取操作
        if not os.path.exists('账本.txt'):
            
            self.f = open('账本.txt','w')
    
            self.f.write('感谢使用本系统\n')
            self.f.write('当前余额 0 元\n')
            self.f.close()
            self.f = open('账本.txt','r')
        else:
            self.f = open('账本.txt','r')
        self.b1 = self.f.readlines()
        self.rest1 = self.b1[-1] #读取当前文件的最后一行
        self.a1 = self.rest1.find(' ')
        self.a2 = self.rest1.find(' ',self.a1+1)
        self.rest = int(self.rest1[self.a1:self.a2])
        self.f.close()
        
    def iocome(self):#选择支出或者收入
        self.doccr()
        self.choice1 = g.buttonbox('你要记录收入还是支出呀','记账1.0 by dlnb',('收入','支出','查询账本','退出'))
        if self.choice1 == '收入':
            self.income()
            self.textshow()
        if self.choice1 == '支出':
            self.outcome()
            self.textshow()
        if self.choice1 == '查询账本':
            self.searchbo()
        if self.choice1 == '退出':
            pass
    def outcome(self):#记录支出
        try:
            self.input1 = g.multenterbox('请填写下面各项,带*为必填项','请输入您的支出',['您支出的项目是: ','您支出的花费是:'])
            self.outitem = self.input1[0]
            self.outpr = int(self.input1[1])
            g.msgbox('您支出在%s的花费是 %d元 已经记录成功\n'%(self.outitem,self.outpr))
            self.cal(-self.outpr)
            self.f = open('账本.txt','a')
            self.f.write('您支出在%s的花费是 %d元 已经记录成功\n'%(self.outitem,self.outpr))
            self.f.write('当前余额 %d 元\n'%self.rest)
            self.f.close()
        except:
            g.msgbox('您输入有误!下面为您显示账本')
            
        
        
    def income(self):#记录收入
        try:
            self.input2 = g.multenterbox('请填写下面各项,带*为必填项','请输入您的收入',['您收入的项目是: ','您收入的项目是:'])
            self.initem = self.input2[0]
            self.inpr = int(self.input2[1])
            g.msgbox('您%s的收入 %d元已经记录成功\n'%(self.initem,self.inpr))
            self.cal(self.inpr)
            self.f = open('账本.txt','a')
            self.f.write('您于%s的收入 %d元已经记录成功\n'%(self.initem,self.inpr))
            self.f.write('当前余额 %d 元\n'%self.rest)
            self.f.close()
        except:
            g.msgbox('您输入有误!下面为您显示账本')
        
    def cal(self,d):#此函数用于计算具体的花费数值
        self.rest = self.rest + d
        print('当前余额是 %d'%self.rest)
        
    def textshow(self):
        self.f = open('账本.txt','r')
        self.ts = g.textbox(msg='您的帐本如下',title = '您的帐本',text=self.f.readlines(),run=True)
        self.f.close()
    def searchbo(self):
        self.f = open('账本.txt','r')
        self.choice2 = g.buttonbox(self.f.read(),'记账1.0 by dlnb',('另存为...','关闭软件'))
        if self.choice2 == '另存为...':
            self.saveas()
        if self.choice2 == '关闭软件':
            self.choice1 = '退出'

    def saveas(self):
        self.f = open('账本.txt','r')
        self.filecon = self.f.read()
        self.another_path = g.filesavebox(default=".txt")
        if os.path.splitext(self.another_path)[1] != '.txt':
            self.another_path += '.txt'
        with open(self.another_path, "w") as self.new_file:
            self.new_file.write(self.filecon[:])

book=Book()        
book.welcome()        
while True: 
    book.iocome()
    if book.choice1 == '退出':
        break
    

期待各位指导
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-27 19:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表