理发店会员卡管理程序的一些解释和预告


理发店会员卡管理程序的一些解释和预告

这个程序已经好久没有更新了。原因是比较复杂的。其中最主要的是私本打算学PyQt,0.5版以后全面转向图形化。私不记得自己有没有作出承诺(如果有的话就跟Gnome一样悲剧了),不过最初就是这样想的。其实私现在的水平用PyQt还是能做出一个基本的图形界面的,但如果单纯用弹窗的话界面会显得非常臃肿。所以思想基本上是做出一个类似KDE或者SCIM配置程序那样的界面,左边选择分类,右边的面板自动更改。不过凭借私目前的功力写出来还很困难,同时由于PyQt和Python很多地方有不同,基本上想用上图形的话代码也要重写。

还有一个原因是IdeaPad送修,所以原来的PyQt开发环境和源文件暂时都没有了,继续图形的话也比较难。

//

综上……私决定,继续推出文本化的0.5.0版,继续增加功能。其实有一个一直没发布的0.4.7版,增加了启动加载的东西,稍稍改善了运行时的效率(也增加了启动时间)。目前0.5版的一些想法是密码功能,否则的话知道一个卡号随便就用实在是不太安全。

//

未来的版本什么时候会有图形化的东西呢?也许很快(0.6版),也许要很长时间……

Linux用户我对不起您们啊……


注:该问题已于公历2010年7月29日上午11时正解决。

以下是原文:

//

我那个理发店会员卡管理程序……以前都是在Windows下调试的(因为没搞明白主客机共享问题),当初在Win下已经发现“当前目录”的问题了,不过我一直以为那是Python在Windows下的Bug。今天一时兴起把程序弄进了虚拟机里的OpenSUSE执行了一下。真是不跑不知道,一跑吓一跳。0.4.5发布的时候我还说要做到“任何操作都不报错退出”,可今天跑程序的时候还没操作呢就退出了,丢人啊……

原因就是那个万恶的“当前目录”。这个“当前目录”和Python程序的存放目录毫无关系,是由您的终端所打开的目录所决定的。在Windows下双击.py脚本运行,“当前目录”就是脚本存放的目录,而Linux下运行脚本是要在终端中调出来的,这个目录在Linux的默认状态下通常是您的家目录(即“/home/您的用户名”),然而程序中一切文件的读取写入都是在“当前目录”(家目录)下进行,于是就会出现“找不到某某文件”的提示并且直接退出程序。

当前的解决方法……就是您在运行脚本之前先打开程序存放的目录(“cd 程序目录”),然后直接“python3.1 main.py”即可。

其实这个问题很容易修正,就是在打开、关闭文件的代码之中加入“sys.path[0]+os.sep+”就可以了。不日我将放出修正后的版本,有经验的仁兄也可以对照源代码自行修正。

另外在Linux下没有cls这个命令(但是有clear),因此Linux清屏也不好使。不过这只是小问题,未来的更新将会把这问题一并解决掉。

又及:话说这么大Bug咋没人跟我提过?是根本没人跑过这程序还是大家都知道怎么解决了?(我估计是前者,唉……)

[7月29日更新]理发店会员卡管理程序v0.4.6——延伸


由于0.4.5版(及其之前版本有重大Bug),今一并上传0.4.6版紧急修正。

下载地址依然是惯例:

http://cid-d40a6a1ce1a272ac.office.live.com/browse.aspx/程序

样一的话:

0.4.6版:

以前一直没有发现的大Bug得到修正了。Linux用户我对不起您们啊……

另外,话说clear这个命令是不是所有的Unix终端都能用啊?

0.4.5版:

代码翻番达成!哦呵呵……不过目前代码也就只有370行左右,不用怎么考虑优化问题(这程序也没什么可优化的,大概)……

这个程序的一个目标是做到用户进行除退出程序外的任何操作(特别是错误的操作)都不会报错退出,私在0.4.5版中加入了一些意外处理的代码,有心者可以进到任何一个地方,随便敲些什么,如果有程序报错的情况,务必将问题回报给私,不胜受恩感激。

最近在研究PyQt,更新这小程序的频率有所降低。不过相比0.3版,0.4版才称得上真正意义上的“扩展”。最主要的革新是增加了“消费充值记录”功能(按帐号和名字保存在文件夹里),每笔消费(和充值)都会被记录以便日后翻找。另外还加入了一个彩蛋,虽然当初完全是为了好玩,还在考虑是不是要把它删掉,不过后来发现还是相当有用的,并且很可能是整个程序里面最有技术含量的一段代码(汗……),所以最后还是决定保留了。至于怎么进入彩蛋……看看源代码就知道了。

//

使用说明:

本程序基于Python3.1.2制作,需有Python3.0以上版本的解释器方可运行。由于Python官方下载页面被我天朝和谐(原因未知),请有志者按照下面的方法使用。

1、将压缩包中的文件解压到任意文件夹

Windows用户:

2-1、用浏览器打开http://www.python.org/ftp/python/页面,选择最新版本的Python文件夹(当前为3.1.2)进入。如果您是32位用户,请下载python-3.x.x.msi,如果是64位用户,请下载python-3.x.x.amd64.msi,下载后安装到任意文件夹。

3-1、双击main.py运行主程序。

Linux用户:

2-2、若您的发行版没有附带python3.1以上版本,请从您特定发行版的软件管理器中找到最新的python(目前为python3.1.2)安装。

3-2、0.4.6(不含)之前版本需在终端中打开程序所在目录再执行“python3.1 main.py”运行主程序,之后版本从终端可直接运行。

若要回报Bug,请到ukyoi.wordpress.com留言或尝试联系本人。

//

更新:

testing 0.4.6:

修正因本地目录不同引发的Bug

修正Linux清屏错误

testing 0.4.5:

增强程序容错能力,减少误操作导致崩溃的可能

修改部分提示

beta 0.4.4:

增加返回主菜单清屏设计(这是CS Slayer大神的建议)

增加一个彩蛋(纯属无聊)

alpha 0.4.3:

修正二级菜单返回错误

调整部分消息停滞时长

alpha 0.4.2:

部分菜单项目修改

增加“按姓名搜索”功能(查找用户资料——按姓名搜索)

alpha 0.4.1:

增加消费充值记录

之前版本:

详见发行注记

理发店会员卡管理程序 testing 0.3.3版


几天没更新网志,看到网站流量统计直线下降,真是有点不甘啊。最近父上要用网络,私基本是在玩鬼泣4和改程序中度过的,没怎么上网。不过今天还是打算把新版本的程序发上来,虽然我觉得应该没什么人关心。

另外在此感谢一下CS Slayer,居然对这程序给私留言了。私深知大神看到小白胡扯时的感受,足下居然还能不吝指点,实感恩不尽。

//

testing 0.3.3版本下载:

http://cid-d40a6a1ce1a272ac.office.live.com/browse.aspx/程序

这是私发布的第二个版本。由于想加的东西实在太多,程序不完善的地方也很多,所以从0.3.2开始程序的版本号扩展了一位,并且加入了alpha、beta、testing这类声明。关于这个“testing”,按照通常的规范是没这种说法的,私为了把公开测试和自行测试分开才使用了这样一个词,愿编程达人少假借之。

今次代码扩展到了260行,看起来增加了一半,其实很大程度上是因为把初始化脚本集成到主程序里了,并没有太大的革新(详见发行注记)。总体来讲比较有用的改进就是增强了确认提示,减少了误操作的机会;另外也不需要先运行一遍reset了。

未来可能的扩展:

1、可执行文件:鉴于Windows用户的平均计算机应用水平,打算为Windows用户加入可执行文件(exe)包,降低使用门槛。
2、会员卡使用日志:这是母亲大人的建议(不愧是理发店常客)。有这个就能把每次消费、充值情况记录下来,一目了然。
3、自定义消费模式:比如剪发烫发染发之类的,一次设定之后就可以直接调用,减少每次都输入金额带来的潜在误操作几率。不过这是个浩大的工程,得仔细想想算法……
4、图形界面:私就有很深的图形界面癖,所以深知图形界面的吸引力。并且使用按钮和输入数字进入菜单相比可以很大程度减少复杂的容错设计。CS Slayer大神建议私使用PyQt以便实现跨平台(以后要不要有个手机版呢?玩笑而已……),不过那东西私还没用过,得从头学,是个更浩大的工程……

使用说明:

本程序基于Python3.1.2制作,需有Python3.0以上版本的解释器方可运行。由于Python官方下载页面被我天朝和谐(原因未知),请有志者按照下面的方法使用。

1、将压缩包中的文件解压到任意文件夹

Windows用户:

2-1、用浏览器打开http://www.python.org/ftp/python/页面,选择最新版本的Python文件夹(当前为3.1.2)进入。如果您是32位用户,请下载python-3.x.x.msi,如果是64位用户,请下载python-3.x.x.amd64.msi,下载后安装到任意文件夹。

3-1、双击main.py运行主程序(0.3.3之前的版本初次使用时需先运行reset.py,之后版本可直接运行主程序)。

Linux用户:

2-2、若您的发行版没有附带python3.1以上版本,请从您特定发行版的软件管理器中找到最新的python(目前为python3.1.2)安装。

3-2、直接或在终端启动main.py运行主程序(0.3.3之前的版本初次使用时需先运行reset.py,之后版本可直接运行主程序)。

若要回报Bug,请到ukyoi.wordpress.com留言或尝试联系本人。

//

更新:

testing 0.3.3:
初始化脚本与主程序整合
增加初次运行检测、自动初始化

beta 0.3.2:
版本号再次扩展(囧)
增加消费、充值后余额显示
增加余额不足提示
调整部分确认提示

0.3 alpha (0.3.1):
版本号扩展
增加用户遍历功能(查看用户资料——遍历用户)

0.2之前版本:
详见发行注记。

理发店会员卡管理程序——私首个发布的Python程序


为防止有人唠叨,先贴地址,下载在此(然而我强烈建议您看完全文):

直接用浏览器打开这个(不要使用下载工具,若有下载工具的话建议关闭浏览器集成):

http://cid-d40a6a1ce1a272ac.office.live.com/self.aspx/程序/理发店会员卡管理程序.zip

如果上面的方法不行,请进入这里然后选择程序下载:

http://cid-d40a6a1ce1a272ac.office.live.com/browse.aspx/程序

/

使用说明:

本程序基于Python3.1.2制作,需有Python3.0以上版本的解释器方可运行。由于Python官方下载页面被我天朝和谐(原因未知),请有志者按照下面的方法使用。

1、将压缩包中的文件解压到任意文件夹

Windows用户:

2-1、用浏览器打开http://www.python.org/ftp/python/页面,选择最新版本的Python文件夹(当前为3.1.2)进入。如果您是32位用户,请下载python-3.x.x.msi,如果是64位用户,请下载python-3.x.x.amd64.msi,下载后安装到任意文件夹。

3-1、初次运行,建议双击reset.py初始化(通常这一步非必须)。此后可双击main.py运行主程序。

Linux用户:

2-2、若您的发行版没有附带python3.1以上版本,请从您特定发行版的软件管理器中找到最新的python(目前为python3.1.2)安装。一般情况下可直接打开.py文件运行,若出现错误,尝试在终端中输入“python3.1 (要运行的文件地址)”运行程序。

3-2、初次运行,建议先运行reset.py初始化(通常这一步非必须)。此后可启动main.py运行主程序。

若要回报Bug,请到ukyoi.wordpress.com留言或尝试联系本人。

/

样一的话:

这个程序其实原本是给自家附近的一个理发店写的。那个理发店现在还在用笔记本(不是笔记本电脑-_-||)来记录会员卡使用情况。于是私突发奇想,准备学过Python之后先写一个这样的程序,于是就没有理会教材最后的“毕业任务”,毕竟无非是个字典的处理,道理上差不多。当然这个简陋的程序可能不会被采用,不过也无妨,私学编程的初衷并非要造福人类,只是自娱自乐罢了。若日后真的能够投入应用那自然美甚,若只能自娱也是很好的。

这是私学Python之后公开发布的第一个程序(首次公开发布时为0.2版),只有约180行的代码。极为简陋,甚至连图形界面都没有(Python的图形化想跨平台真的很成问题),完全是DOS时代的操作方式。功能非常有限,只能记录卡号、姓名和金额。但是采用了框架和操作分离的写法,可扩展性比较强,日后的版本可以按照需要继续定制和维护。

这个程序是在一天内仓促完工的,没怎么推敲代码,Debug也不到半天(说实话这么点功能要Debug半天已经很长了)。所以问题还比较多(最大的问题是几乎无容错能力,如果误操作可能会报错直接退出),请大家多包涵。如果有Bug可到ukyoi.wordpress.com给私留言,也可以直接尝试联系本人……

扯了这么多,再次重申:其实程序本身烂得很。高级程序员看到程序千万别骂我,毕竟闻道有先后术业有专攻……

更新:

0.2:

调整部分消息停滞时长、增加部分确认提示。

0.1:

修正重大Bug。