2010年年末了,总结一下今年的程序作品

  不能不说时间过得太快了。记得2008年元旦的时候某位朋友和我写东西时,还提醒我注意年份要用2008年,转眼间就快用上2011年了。三年前的场景就像是昨天发生的一样。

  好了,我们来看下我在2010年都做了哪些程序作品。今年的程序作品大多是给别人做软件或者是要完成某任务而制作的,自己独自设计的东西相对于初中和高中来说少了不少。突然觉得自己的成果很少,因为很多时间都花在了PSP和NDS上。下面回顾一下今年的主要成果。

  1. Lieo Picture Displayer

  最新版本:v1.2.0.1  开发工具:Visual Basic 2010

  这个软件是今年最大的劳动成果。今年寒假的时候要我做这个软件的人通过QQ找到我,交付了我这样一个任务。本软件是作为《石化装置抗腐蚀选材系统》中的一部分功能开发的,主要为管道装置的各个组成部分添加辅助说明、提供链接文档和程序。软件允许使用者以链接点和链接区域的形式为图片上各部分添加相应的对话框,并能灵活地使用各种控件对链接对话框进行设计。经过长时间的试用和修改,根据用户的需求添加了不少功能。软件运行过程截图如下:

  

  目前该软件已经完成,一共编写了约10400行代码。刚开始做这个软件时花了一个星期的时间做了一个初版给用户试用。用户感觉很满意,并提出具体的功能需求。之后的版本我自己设计出了如上面的第二张图所示的面板编辑功能,得到了很好的评价。最初他说给我的报酬是1000元保底,5000元封顶,现在所获得的报酬已经不止这个数,达到了五位数字。

 

  2. Lieo Contact Manage预览版

  最新版本:v0.1.0.0 Alpha  开发工具:C++ Builder 6

  这是可视化程序设计课的实验作品。学会了C++ Builder开发程序的基本方法,并且开始接触使用数据库Paradox。程序的主要窗体运行截图如下:

  

  该程序配备了篇幅为36页的实验报告。使用C++ Builder后立即发现了VS的优越性。截图如下:

  

 

  3. 石化抗腐蚀装置选材系统

  不要认为这个系统是我设计和开发的!我只是负责改进该软件原有的结构和算法,使之运行速度更快,并添加一些新的功能。软件的主要功能大体上都已经实现了,但是还存在一些问题。例如代码结构不佳、部分功能未完成、有一些位修正的漏洞等。我的工作主要是:优化代码的结构、添加部分功能、修正一些错误,并且将此程序与《Lieo Picture Displayer》耦合起来,使之构成一个完整的系统。

  (引自原来的博文)原来初始化5秒、计算5秒的程序优化到初始化和计算几乎不需要时间,真是有很大的成就感啊。原先程序主要耗时是用在不停地创建和销毁Office对象上,我把所有数据文件转换成csv后,并通过几天彻夜的调试,解决了这个问题。程序调试是艰辛的,尤其是别人写的没注释没开发文档还特别繁琐的程序,改造过程的辛苦不多说了,我还为一些看不到的小问题纠结了很久(比如字符串Nothing的问题、原先程序就有的BUG以及xls转换成csv遇到的诸多问题等等)。

  软件截图如下:

  做这些工作当然是有报酬的,虽然不是很多,嘿嘿。

  4. Lieo TH Helper

  这个绘制函数图像的小软件是TH要我做的。原来的函数可以看成是由m和n组成的参数式形式,而且要求m+n=1,需要根据用户给定的系数(a,b,c,d,p等)绘制出图像,并且要能够获取图像上某一点所对应的m和n值,最后要根据此图像得到另外一个式子的最大值。

  编这个程序的时候,我首先按照m递增取得图像上离散的各点存入一个ArrayList中,之后按照X坐标升序排列(因为X值越大并不代表m的值越大)。这样把该ArrayList中相邻的点连起来即得到了函数图像(实际操作是生成矩形)。当用户选取图像上一点时,根据坐标二分查找此ArrayList,就能快速地得到m和n的值。

  编写这个程序还要解决坐标轴的刻度问题。解决这个问题的办法和下面所示的另外一个绘制函数图像的方法一样,设置一个AutoScaleMax方法计算出给定的任意数据的坐标轴最大值和小的刻度,具体不谈了。

  软件运行效果如下图所示:

  

 

  5. Lieo Document Manager

  最新版本:v1.0.0.0  开发工具:Visual Basic 2010

  该软件提供资料的管理和检索功能。用户先通过资料录入界面输入多达10万条资料,之后通过指定关键字、资料类别、语言等信息检索这些资料,之后在搜索结果中打开这些文件。除了要满足用户的各类功能需求之外,软件还要符合预先制定的性能指标:在最坏的搜索条件下,检索10万条记录的执行时间不能超过3秒。

  我将用户输入的信息进行分块处理,每10000条记录存储在一个记录块中(CSearchArea类)。在用户输入检索信息的同时,程序利用另外一个线程在后台加载资料头信息列表。同时,每当用户输入一些关键词时,如果程序发现当前关键词列表中有新增和减少的内容,则会在后台预先搜索部分关键词。当用户执行搜索命令时,后台已经进行了部分关键词的搜索,会减少大量不满足条件的元组,这时仅需要为那些后来输入的关键词和剩下的元组进行检索。经过测试,对于含有100万条记录的文件,程序能够在用户执行搜索命令后0.5秒内得到查询结果。软件的运行界面如下图:

  

  该软件的基本功能已经实现,并已经交给用户。该软件目前处于“闲置”阶段,还没有真正开始试用和修改,待用户手头的工作完成后(就是那个法兰计算程序),再进行“复工”。

 

  6. Lieo Crystal Detector

  版本:v2.0.0.0  开发工具:Visual Studio 2010(Windows Presentation Foundation)

  
  
  

  这个软件是之前日志提到的挑战杯项目。由于该软件正处于研制阶段,加上学校的评选结果还没有出来,具体的细节也不方便透露。等到这个版本完善后,再详细记述吧。(目前KC已经拿到了这个项目具体细节的详细纸质报告)

 

  7. 其他内容

  上面介绍的6个软件成果是2010年中比较重大的。其他的还有一些小的作品,大多是学校的课程设计、实验作品,还有一些是教老弟(就是某篇日志中提到的XXX)C#的时候制作的一些小程序,还有一些参赛的小程序。下面介绍几个耗费时间比较多的:

  (1)数据结构课程设计:包括5个大的程序,10个书后的设计题。最后上交了一个80页的实验报告(桢哥已经拿到了该实验报告的PDF版)。数据结构课设的成绩毫无疑问是优秀,为了避免某些人不劳而获,别人要求“参考”我的实验报告时都给的是转换成PNG图片的版本。(嘿嘿)

  (2)个人网站——Lieo Work's Collection:用SharePoint制作的网页,中间的插图是用Photoshop做的(PS菜鸟只能有这种水平了),界面如下。该网站记录了我制作的大多数计算机作品,还有写过的一些文章,等等。该网站内容随着时间而更新(喂喂,又有半年没更新了,寒假回去认真更新)。

  

 

  哦,前一段时间买了个二手的文曲星准备重新写高中时代的“跳楼游戏”(FLOOR.BAS),但是一直没有开工(NDS都玩不过来哪有时间摆弄文曲星)。恩,初步预计下个学期开学的时候写吧,顺便开发个新的mini游戏。如果本学期的第20周没有什么事,可能会在那时候写吧。

  好了,今年的程序作品回顾到这,敬请期待明年这个时候发布的“2011年程序作品总结”,呵呵。

 

5条评论


  1. 回复大谷神不死:可以看啊。我登出了再看还是可以看啊。。。

    回复

发表评论

电子邮件地址不会被公开。