尼玛,原来用财富通转账比用支付宝便宜。

今天我哥们要我给打他些钱。

于是我就想到用支付宝试试,但哥也还有财富通的账号呀~~于是比较了两个支付平台的收费标准。

这是财富通的:
到账时间    服务费率真   手续费下限    手续费上限
次日到账    0.1%          1元/笔            10元/笔
2小时到账  0.25%          1元/笔            50元/笔
 
这是支付宝的:
收费标准:
用户类型 到账时间 服务费率 服务费下限 服务费上限
金账户会员
(7折)
次日到账 0.175% 0.9元/笔 35元/笔
2小时内到账 0.35% 1元/笔 35元/笔
普通会员 次日到账 0.25% 0.9元/笔 50元/笔
2小时内到账 0.5% 1元/笔

50元/笔

 

尼玛~~财富通便宜多了啊。果断用财富通!!!

不过这是公元2013年1月23号的数据哟。

Okular是linux下最好用的pdf阅读工具

我记得对于大多数Gnome桌面环境,Evince是默认的pdf阅读软件。今天不知道怎么回事,发现evince没有了。当时我不记得evince这个名字了,就apt-cache search pdf 随便装上了xpdf-viewer。太他妈难用了啊~~就卸载了,然后google: The Best PDF Viewer on Linux。找到了Okular,也是免费软件,装上一用。不错哈哈哈.贴一张网络上的图片:

另外今天才知道, Adobe也有出linux下的pdf阅读软件。

显示Gnome3任务栏

Gnome3桌面较之Gnome2有了非常大的区别~

第一眼看上去有惊艳的感觉~多用了一点时间,发现没有任务栏真是相当的不方便啊。我觉得最方便的还是Win7的方式。

那怎么把Gnome3消失的任务栏找回来呢?通过安装一个安装包搞定。

我用的是Debian 6.06 Wheazy

zausiu@accolade:~$ cat /etc/debian_version
6.0.6

对于Debian家族的ubuntu应该也是适用的。

# apt-get install tint2

$ tint2 &

于是久违的gnome任务又回来了~

Gnome的任务栏又回来了
Gnome的任务栏又回来了

 

Let the Universal Access Preferences Taskbar Icon Disappear让统一访问首选项在任务栏上消失

我用的是Debian Wheezy Stable系统。今天不知道怎么搞得,把任务栏上面弄出个 配置Universal Access Preferences的图标。右链点击也没有让我选择退出的选项。

搜索了一下,知道用 gnome-keyboard-properties 把这个该死的图标去掉。

1. alt+F2  输入 gnome-keyboard-properties

2. 选中Accessibility ,取消 Accessibility features can be toggled with keyboard shortcuts.

这几天调linux内核源代码,好困难好困难。

2012年终总结 预言2013

身为一只技术蝼蚁,我的2012是离奇又相当刺激的一年。这一年年初,我遇见了让我难忘的人,虽然结局非常悲惨;年中剑桥高级商务英语考试惨败与经历了时间最长的一次失眠症;下半年经历了找工作的惊心动魂又收获了惊喜;年尾写毕业论文比便秘还要艰难。

在互联网的战场上就更加刺激好玩~看看互联网的各派势怎么玩的

360:
战 争之王周流氓继续发挥,打了三大战役。小三大战,在终端市场狙击以期货方式做互联网手机的小米军团;3B大战,继续挖掘 客户端—浏览器—网址导流加搜索 的三级火箭的商业模式,推出自营搜索引擎,挑战百度的垄断地位,直击百度的要害‘竞价排名’,揭露百度搜索引擎上医疗推广的暴利,从搜索市场上圈到了 10%的市场份额;还有方舟子和周总的大战,哈哈,这次算是棋缝对手啊。

sina:
新浪的微博在商业化的探索上继续苦苦挣扎。传统新浪网造血供给微博,微博继续烧钱,面对腾讯微博的防守和微信的进攻,资本市场惭惭对新浪微博失去信心。新浪已然失去掘起为 Baidu, Alibaba, Tencent 三大巨头同量级的大军阀的机会。

金山:
金 山软件旗下的游戏和办公软件仍然波澜不惊。金山快盘拆分出来成立金山云计算公司,不知业绩怎样,个人觉得快盘还是满好用的,不过我已经改成用腾讯微云了。 各大产商纷纷进入云存储领域,快盘若想有所作为也不那么容易。在傅胜的带领上,金山安全抢到了足够多的爆光率。金山安全年中推出猎豹浏览器,主打UI酷炫 的特点,至此金山安全的的商业模式与360几乎一样。金山安全旗下软件的推广明显变得流氓起来。但,祝我的老东家走好。

百度:
百度面临360搜索的极大威胁,李彦宏呼吁百度员工的‘狼性’。如周鸿祎所说,百度缺的不是狼性,缺的是人性。百度的欺诈医疗推广伤天害理,道德伦丧啊。今年8月时,哥就被百度的欺诈医疗推广骗到了广州海军医院。仅就3B大战而言,哥支持360.

阿里:
马云成功回购雅虎持有的股票。阿里巴巴还是马云的阿里巴巴。淘宝商城改名天猫。电商大战如火如茶。。。。。

腾讯:
腾讯股票继续大涨。腾讯录用了哥是一大利好啊!资本市场因此非常兴奋吧。微信成功挤占了新浪微博用户的时间,并稳固了腾讯在IM市场的垄断地位。纯移动设计的微信在开放平台,o2o上给予投资者极大的想象空间。

马雅人不靠谱。2013 年大预测:
作为一个技术蝼蚁,水平有限,手痒手贱,预测一下2013年哈….
1. 360搜索市场份额突破15%。3B大战升级。。。
2. 小米神话破灭。。。。
3. 360运营的Line即时通讯软件慢慢做大。因语音聊天功能触及运营商的高压红线,运营商和互联网公司的矛盾继续扩大。微信顺势也上线即时语音聊天,现在仅仅是语音对讲。
4. 以前一直闷声发大财的9158因涉嫌情色被整改。
5. 楼市回暖,全国平均涨幅10%

用Briss批量切除pdf文件的白边

这段时间准备论文,要看好多电子资料。比如中国知网下载的N多论文还有N多RFC的pdf。已经忍无可忍成天对住台电脑看资料,于是入手了一部kindle4。这下问题又来了,pdf(Portable Document Format)是专门为打印设计的,在页面的四个方向都预留了白边。对于kindle4本来就不大的屏幕来说,pdf显示在kindle4的屏幕上,字小的同乌蝇一样,比用电脑看还要费眼。于是想到去掉白边,在网络上搜索了一下,发现了好几种软件,最后哥选了briss,真的非常的酷喔~~可以把白边删除得干干净净。

不过问题又来了,我有好多pdf文件呀!但是briss的操作界面只支持一次处理一个文件。看Briss的帮助文件的时候发现Briss支持用控制台操作~~如下:

================

 

Command line usage(使用命令行)

If you prefer command line and trust the basic automatic detection algorithm use it this way (can be batched!):

如果你喜欢用命令行并信任白边自动推测算法,可以用以下命令操作(支持批处理)。

java -jar briss-0.0.13.jar -s [SOURCEFILE] [-d [DESTINATIONFILE]]

Example:

java -jar briss-0.0.13.jar -s dogeatdog.pdf -d dogcrop.pdf
java -jar briss-0.0.13.jar -s dogeatdog.pdf 

================

到此,就非常好办了。我的电脑装了UNIX工具链在windows平台下的移植版:cygwin,于是我只用写一行unix命令就把我的一个目录夹下面所有的pdf文件都切边了。命令如下:

 

zausiu@enigma /cygdrive/e/kindle4/ipv6_en             // 当前目录 e://kindle4/ipv6_en 下面存放了所有待切白边的pdf文件.
$ ls *.pdf | xargs -I'{}' -n1 java -jar d:/Program\ Files\ \(x86\)/briss-0.0.13/briss-0.0.13.jar -s '{}'    // 用来把该目录下面所有.pdf文件去白边的命令。
 
我的pdf文件很多,随便贴出一点命令的输出。
 
Since no destination was provided destination will be set to  : E:\kindle4\ipv6_en\draft-itojun-ipv6-transition-abuse-01_cropped.pdf
Clustering PDF: draft-itojun-ipv6-transition-abuse-01.pdf
Created 2 clusters.
Starting to render clusters…..finished!
Calculating crop rectangles.
Starting to crop files.
Cropping succesful. Cropped to:E:\kindle4\ipv6_en\draft-itojun-ipv6-transition-a=buse-01_cropped.pdf
 
Since no destination was provided destination will be set to  : E:\kindle4\ipv6_en\layer2_attacks_and_mitigation_t_cropped.pdf
Clustering PDF: layer2_attacks_and_mitigation_t.pdf
Created 2 clusters.
Starting to render clusters……….finished!
Calculating crop rectangles.
Starting to crop files.
Cropping succesful. Cropped to:E:\kindle4\ipv6_en\layer2_attacks_and_mitigation_t_cropped.pdf
 
大概的意思是,我的命令没有提供切白边后新pdf文件的文件名,于是自动取了一个名字。然后程序分析pdf文件,开始切边,最后切边成功。
由于我写的命令是用了Unix Shell的语法,所以如果你的机器没有装cygwin是运行不了这个命令的。可以把它用windows批处理的语法改写,但是哥不会windows批处理的语法哈~~~
 

 

Linux内核Makefiles教程(二)

接第一篇 

3.3.可加载模块目标 obj-m (Loadable module goals – obj-m)

obj-m指定将被构建为可加载内核模块的对象文件(object file)。

一个模块可以从一个源文件构建或者从多个源文件构建。如果模块仅仅从一个源文件构建,kbuild makefile仅仅把对象文件加到obj-m。如下:

       #drivers/isdn/i4l/Makefile

        obj-$(CONFIG_ISDN_PPP_BSDCOMP) += isdn_bsdcomp.o

在这个例子中,$(CONFIG_ISDN_PPP_BSDCOMP)被求值为m.

If a kernel module is built from several source files, you specify that you want to build a module in the same way as above.

如果一个内核模块需要从多个源文件构建,你也是按照刚才提到的那一行指定。不过,除此之外,还要额外地指定,你的内核模块需要哪些对象文件。所以还需要设置<模块名>-objs变量。如下:

       #drivers/isdn/i4l/Makefile

        obj-$(CONFIG_ISDN) += isdn.o

        isdn-objs := isdn_net_lib.o isdn_v110.o isdn_common.o

在这个例子中,模块名是 isdn 。Kbuild将编译isdn-objs列出的所有对象文件,然后运行$(LD) –r把这些对象文件链接成一个文件isdn.o。

Kbuild用-objs后缀或者-y后缀识别构成复合对象文件(composite objects)的对象文件。这样,Makefile就可以使用CONFIG_* 符号来确定一个对象文件是不是一个复合对象文件的一部分。如下:

       #fs/ext2/Makefile

        obj-$(CONFIG_EXT2_FS)        += ext2.o

        ext2-y                       := balloc.o bitmap.o

        ext2-$(CONFIG_EXT2_FS_XATTR) += xattr.o

在上例中,如果$(CONFIG_EXT2_FS_XATTR)求值为y,则xattr.o是复合对象文件ext2.o的组成部分。

当然,如果你要把对象文件编译进入内核映象文件。也可以应用上述语法。比如,如果CONFIG_EXT2_FS=y,kbuild就会构建一个ext2.o文件,如你所想,再把这个文件链接到build-in.o。

3.4. 导出符号的对象文件

并不需要在Makefile中为模块使用特殊的标记来导出符号。

3.5. 库文件目标(Library file goals – lib-y)

在obj-*中指定的对象文件列表或者被用来构建内核模块,或者被内建到内核映象文件之中。Makefile还能指定创建库文件的对象文件。所有在lib-y中指定的对象文件会被用来在对应文件夹下创建一个库文件。注意已经在obj-y中列出过的对象文件,如果再在lib-y中列出,则不会被用来创建库文件,因为这些对象文件将是全局可见的。为了一致性,lib-m中列出的对象文件会被包含到lib.a。

注意,同一个kbuild makefile会同时指定被内建到内核映象中的对象文件,也会指定用来创建库文件的对象文件。因此,在同一个文件夹下面有可能同时存在built-in.o和lib.a文件。

       #arch/i386/lib/Makefile

        lib-y    := checksum.o delay.o

上例中,会基于checksum.o和delay.o创建一个库文件lib.a。为了让kbuild意识到该目录下有lib.a库文件被创建,这个目录需要被列入到libs-y。本教程将在6.3节”列出需要遍历的路径”中详述。

lib-y的使用通常受限于 lib/ 和 arch/*/lib。

3.6. 深入遍历子目录夹

每个Makefile文件只负则在当前文件夹下面构建对象。在子目录下面的构建则由子目录下面的对象Makefile负责。不过你需要使用使用obj-y或者obj-m告诉kbuild系统将进入哪些子目录。比如话:当前目录是fs/,ext2/是当前目录下面的一个子目录,为了告诉kbuild进入ext2/目录,使用以下的语句:

        #fs/Makefile

        obj-$(CONFIG_EXT2_FS) += ext2/

如果CONFIG_EXT2_FS被求值为y(内建)或者m(模块),那么obj-*变量就会告诉kbuild需要进入ext2/子目录继续编译。

Kbuild仅仅使用这个信息来通知是否进入某个子目录,而进入后的子目录下面是用内建方式编译还是编译成模块则是由子目录下面的Makefile文件指定。最好像上例那个使用CONFIG_*变量。这样的好处是,如果CONFIG_*变量的求值既不是y也不是m,那么kbuild就完全可以忽略掉某子目录了。

3.7. 编译选项/标识

EXTRA_CFLAGS, EXTRA_AFLAGS, EXTRA_LDFLAGS, EXTRA_ARFLAGS

所有的EXTRA_VARIABLES仅仅作用于它们被赋值的kbuild makefile,应用于所有该makefile文件中执行的命令。

$(EXTRA_CFLAGS)指定了编译C文件的C编译器的编译选项。

Example:

        # drivers/sound/emu10k1/Makefile

        EXTRA_CFLAGS += -I$(obj)

        ifdef DEBUG

            EXTRA_CFLAGS += -DEMU10K1_DEBUG

        endif

变量( EXTRA_CFLAGS)是必要的,因为最上级的Makefile定义的(CFLAGS)作用于整个linux内核代码树。

而$(EXTRA_AFLAGS)的作用域则是每个文件夹下面单独的Makefile。

比如下面的例子编译汇编语言程序。

        #arch/x86_64/kernel/Makefile

        EXTRA_AFLAGS := -traditional

$(EXTRA_LDFLAGS) 用于当前Makefile文件中的$(LD)。

$(EXTRA_ARFLAGS) 则用于当前Makefile文件中的$(AR)。

Example:

        #arch/m68k/fpsp040/Makefile

        EXTRA_LDFLAGS := -x

未完待续

copyright ykyi.net

Linux内核Makefiles教程(一)

 

Linux内核Makefiles

本教程描述了了Linux内核的Makefile是如何工作的。

1. 概述

Linux内核的Makefile包括五个部分。

Makefile

最上层Makefile

.config

内核配置文件。

arch/$(ARCH)/Makefile

CPU架构相关Makefile

scripts/Makefile.*

对于所有Kbuild Makefile的公共方法。.

kbuild Makefiles

有将近500个kbuild Makefiles。

最上层Makefile读取.config文件。.config文件是由内核配置过程生成的。

最上级的Makefile负责生成linux的内核映象文件vmlinux和其它所有的模块。最上级Makefile递归地进入内核代码树的各级子目录分别执行子目录下的Makefile。究竟要进入哪些子目录是由内核配置阶段决定的,即配置在.cncfig文件中。最上级Makefile提定了一个路径为arch/$(ARCH)/Makefile的子目录Makefile。这个Makefile中定义了与处理器架构紧密相关的信息。

每一个子目录下面都有一个kbuild Makefile,这里都定义了一些makefile命令和变量可以被更下级的Makefile继承。Kbuild Makefile使用来自.config配置的信息生成各种文件列表用来构建内建的或者模块化的目标文件。Scripts/Makefile.*包括了很多被其它Makefile使用定义和规则。

2. 谁使用内核Makefile

内核Makefile的使用者可以大致分为四种。

用户(Userse)

这类使用者仅仅敲入一些命令,如“make menuconfig”或者“make”。他们很少会阅读甚修改内核Makefile和源代码文件。

一般开发者(Normal Developers)

一般开发者一般编写一些设备驱动程序,文件系统,网络协议。他们需要维护他们编写的代码涉及的子系统的kbuild Makefiles。为了工作地更有效率,他们甚至还需要对整个内核的Makefile有全局的把握,包括对kbuild的公共接口的详尽了解。

处理器架构开发者(Arch Developers)

这部分开发者关心与某个处理器架构紧密相关的代码部分,比如PC上最广泛使用的x86,以及IA64,还有ARM,Sparc,PowerPC,Alpha,s390,MIPS。Linux支持几百种处理器架构。从内核2.6.24开始,i386和x86_64合并为x86。

KBuild的开发者(KBuild Developers)

KBuild的开发者就是维护内核构建系统的开发者,他们需要知道内核Makefile的各个方面。

——

本篇教程主要面向第二类开发者和第三类开发者。即一般开发者和处理器体系架构开发者。

3. kbuild文件

大多数内核Makefile文件是kbuild Makefile文件,它们使用不同于一般make文件的kbuild语法。下面会介绍kbuild makefile的语法。Kbuild文件一般被命名为Mafile,但是也可以使用Kbuild名字。如果已经存在一个Makefile文件了,那么就只好用Kbuild名字了。

3.1节 "目标定义"是一个快速简介,更详细的介绍会在下面的章节陆续介绍并有真实的例子。

3.1. 目标定义(Goal Definitions)

目标定义是kbuild Makefile的最重要的部分。它们定义了哪些文件会被构建,并指定一些特殊的选项组合以及将递归进入到哪些子目录。

最最简单的makefile只有一行代码,如:

       obj-y += foo.o

这行代码告诉kbuild系统当前目录下有一个目标要构建,它的名字是foo.o。foo.o将从foo.c或者foo.S生成。

 

如果foo.o需要被构建成一个内核模块,那么应该使用obj-m。因此一般使用下面的模式:

       obj-$(CONFIG_FOO) += foo.o

$(CONFIG_FOO)是一个makefile变量,在makefile执行时被替换为y(如果内建到内核)或者m(如果构建成模块)。如果CONFIG_FOO既不是y也不是m,那个这一行代码会被忽略,指定的文件不会被编译也不会被链接。

 

3.2 内建的对象目标(object goals) obj-y

Kbuild Makefile通过obj-y列表为linux内核映象vmlinux指定目标文件(.o)。究竟是哪些目标文件则取决于内核配置。Kbuild系统会编译所有obj-y列表中的文件。然后Kbuild系统会调用$(LD) -r把所有的这系文件合并到一个built-in.o文件。跟住呢,built-in.o被最上级Makefile链接到linux内核映象文件vmlinux。

在obj-y列表中指定的文件顺序是很重要的。列表中的重复项也是被充许的。首先出现的会被首先链接到built-in.o,后面的重复项会被忽略。

链接的顺序当然也是有重要意义的。因为一些函数调用,如module_init(),_initcall会在系统启动阶段按照他们被链接的先后顺序被调用。所以改变链接的顺序当然会造成意义重大的影响。比如:会改变SCSI控制器被内核发现的先后顺序,因此磁盘的编号则会改变。

       #drivers/isdn/i4l/Makefile

        # Makefile for the kernel ISDN subsystem and device drivers.

        # Each configuration option enables a list of files.

        obj-$(CONFIG_ISDN)             += isdn.o

        obj-$(CONFIG_ISDN_PPP_BSDCOMP) += isdn_bsdcomp.o

(第一篇完)   第二篇

copyright ykyi.net

 

中山大学软件工程专业Java语言课作业

这是11年中山大学软件工程硕士研究生java必修课的大作业,授课老师是温武少~ 讨厌写java代码。代码写得不好~不过,需要的童鞋可以拿过去改改。 下载源代码!!!

下面是作业要求:

面向对象程序设计课程项目

基于JAVA银行管理系统设计(Case 2,3,4)

 

注意:如果发现全部或者部分copy程序,双方都将会被部分或者全部扣分。本课程是必修课,70分是通过线。

    系统将依据3-tier架构设计银行管理系统。要求所有的项目用JAVA语言编程。设计的系统将是简化的银行管理系统。 

 

项目二:银行管理系统Business Logic 设计 (中程检查:10月31日(40%);上交11月7日 (60%), 当堂运行+ftp上交)

 

    所有的用户输入都是由命令行输入。项目必须提供设计文档、测试和运行报告。在线提交程序源程序。 

 

1. 银行用户分类: 普通个人用户,个人贵宾用户(VIP),企业用户

   对所有的用户必须支持以下功能:开户、存款、取款、查询、转账、改密码、销户等七项工作。所有对账户的操作都要产生日志。 所有的数据都要永久化(存到硬盘)。系统重新启动时要能恢复数据。

(1)开户:调研银行管理系统需要存储的账户信息。

     开户时需要身份证号码,决定开的账户类型,存款的初始金额。银行生成用户的帐号,用户输入初始密码。系统给出开户的时间日志。

(2)存款:

   存款时需要给银行提供自己的账号,密码以及要存款的金额;银行系统反馈用户帐户的余额以及存款的日志。

(3)取款:

   取款时需要给银行提供自己的账号、密码以及要取的金额;系统判断是否有足够余额以供取款。取款后给出用户帐户的余额,产生取款日志。

(4)查询:

    查询时用户需要给银行提供自己的身份证、账号和密码;银行方面给出用户帐户的余额以及查询的日志。用户还可以查询一段时间所有的操作(流水)。

(5)转帐:(对不同用户转账有限制,请看账户类型说明)

    用户转帐时需要判断是否能够满足转账条件。如满足,需要给银行提供转出帐户的账号、身份证号码、密码和用户名称及转入帐户的帐号和用户名称,用户也需要提供转账金额。系统方面将产生转账日志、转出用户帐户的余额等信息。

(6)改密码:

用户到银行改密码时需要给银行提供身份证、帐号、以及密码,并且输入新的密码。系统方面将产生相关日志。

(7)销户:

用户到银行销户时需要给银行提供身份证、帐号以及密码,并且把帐户的余额全部取出。系统方面将产生相关日志。

 

不同类型用户的特别限制和权限:

(1) 所有的用户可开两种账户—活期和定期。用户的活期和定期账号之间可以转账。

(2) 普通用户不能产生透支。

(3) VIP用户的初始存款额(包括活期和定期)要求大于100万, 每月平均日余额要求不低于10万。如果连续2个月月平均日余额要低于10万, 将收取每月1000元的管理费。VIP用户将能够透支最多 10万元。 但要求透支的款项在规定的时间(30天)内归还。如不归还,账户将被冻结。

(4) 转账只能在个人用户之间进行,或在企业用户之间进行。

(5) 普通用户只能接收转账转入,不能转钱到别人的账户。但普通用户可以在他自己的账号内转账。VIP和企业用户容许转入、转出。

(6) 企业用户容许多个账号操作人。 我们指定其中的一到两个人作为账户超级用户,可以要求增加账户操作人。不同账户操作人必须使用不同密码。 

(7) 企业用户不容许透支。要求账面存款余额总数(包括所有的账户)不小于1万元。

 

2.   银行雇员分类: 前台操作员, 银行经理,银行业务总管、系统管理员。 他们各自的职责:

系统必须能存储所有的雇员信息(自己调研)。银行经理管理一个或多个前台操作员,同时他可以做所有的前台操作员操作。银行业务总管管理一个或多个银行经理,他可以做所有的银行前台操作员及银行经理的工作。

 

银行雇员操作:

(1) 前台操作员:对账户所有的操作。雇员本身所作的操作的日报,月报,季度报和年报(包括数据和日志)。前台操作员向一个银行经理报告。

(2) 银行经理:作为前台操作员的所有操作,部门操作的日报,月报,季度报和年报(包括数据和日志, 及每个成员的报告)。银行经理必须较容易查到他部门人员总数及具体情况。银行经理向银行业务总管报告。 

(3) 银行业务总管(包括个人账户和企业账户两类):作为前台操作员和部门经理的所有操作,整个银行相关业务操作的日报,月报,季度报和年报(包括数据和日志, 及每个成员的报告,每个部门的报告)。银行业务总管应较容易查到他所管人员总数及具体情况。

(4) 系统管理员:雇员管理。 产生整个银行的总报表和总日志(日报,月报,季度报和年报)。

 

3. (加分 20%) 银行系统网络接口

  提供外面银行在线操作要求(必须提供通过网络提供各种操作需要的信息)。在线操作必须产生专用的日志。

 

项目三:银行管理系统后台数据库及接口设计(上交11月21日,当堂运行+ftp上交)

    数据存储采用数据库(建议用MYSQL.把business logic 层修改以支持数据库。

项目四: 银行管理系统UI设计(开放设计,上交11月28日,当堂运行+ftp上交)

所用的用户输入和输出采用GUI。

 

说明: 项目总成绩计算:项目1: 20%

                       项目2: 50%

                       项目3: 15%

                       项目4: 15% 

更多说明:

1.运行报告主要是指:系统所实现的所有功能的运行截图;

2.所谓“冻结”的意思是:只能查询余额,不能进行存款、取款的操作;不要求实现“解冻”,也就是这个账号一旦被冻结,这辈子就“冻”死了;

3.所谓“日报”:只要在txt文件下,随便输出几行文本,知道今天做了哪些事就可以了;月报、年报类似;

4.所有的定期与活期,分别使用各自固定的利率就可以:例如所有定期的利率为3%,所有活期的利率为2%;

5.银行业务总管(包括个人账户和企业账户两类)的意思是:银行业务总管只需要两个:一个“个人账户业务总管”,一个“企业账户业务总管”;

6.前台操作员向一个银行经理报告:意思是银行经理能查到他部门人员的日报,月报,季度报和年报;银行经理向银行业务总管报告的含义类似。

//////////////////////

copyright ykyi.net

 

 

 

 

三分钟Qt Quick入门

Qt Quick是一种设计用户界面的新方法。

在介绍Qt Quick之前,让我们先看一下现念的用户界面UI是什么样的。在桌面操作系统下,标准的按钮,文本框,窗体仍然能满足要求。但是这些千篇一律的灰色单调的控件渐渐让用户感到厌倦了。用户们更想看到平滑观感的,光泽的,动态的的用户界面。Qt Quick就是为了实现这些的目标。

Qt Quick包括两个部分。第一部分是QtDeclarative模块。这个模块负责把Qt Quick集成到Qt应用程序中。第二部分是一种界面描述语言:QML。使用QtDeclarative使得开发者能够在C++和QML之间共享数据对象,也可以把C++类插入到QML之中,等等。QML是个全新的语言,专门为设计用户界面设计,在其它的开发中也有用武之地。

迫不及待了吧。让我们看一个简单的例子:

import Qt 4.6

Rectangle {
width: 200
height: 200

Text {
text: "hello! ykyi.net"
font.pointSize: 10
font.bold: true

anchors.centerIn: parent
}
}

读完这断代码,再尝试在Qt Creator中运行它。不用我多费口舌,你就恍然大悟了。每一个以大写字母开头的单词定义了一个新的对象。最外面的矩形则是主窗体,可以给它设置属性。比如anchors属性把Text限定在窗体的中央。这样,即使窗体放大了,文本仍然显示在窗体正中央。

前文,我有说过平滑观感的,光泽的,动态的的用户界面。那么Qt Quick怎么做到呢?简单!看看下面的代码,编辑Text的属性,设置rotation:NumberAnimation。不可思议的事情就发生了!

rotation: NumberAnimation {
to: 360;
duration: 1500;
running: true;
repeat: true;
}

现在,指定的文本疯狂的转动起来。我们已经看到在Qt Quick中开发有物资的界面是多么简单。我们所展示的只是Qt Quick特效的凤毛一角,最终能创造出什么样的奇幻效果只受限于你的想象力。

copyright ykyi.net