每个程序员都可以⼊⼿的⼩项⽬创意⼤集合我经常看有⼈发帖问关于软件项⽬创意点⼦的事,也看到了很多回帖,我⾃⼰也回了⼀些常见的软件项⽬创意。不过我觉得只列出三两个是远远不够的,因此就收集并这个软件项⽬创意列表,⼤家要简单的编程软件项⽬创意学习练⼿的话,可以收藏并扩散本⽂。这些软件项⽬创意并不是论⽂级别的,只是想抛砖引⽟让⼤家能从中受些启发。
下⾯你们会看到 120 多个个软件项⽬创意想法,都是我通过头脑风暴得来的。我将其根据主题分成了10 个分类,但有些软件项⽬创意其实涵盖了不⽌⼀个主题。
更新:如果你喜欢这些想法的话,你也可以读⼀下我做的。该书有100多页,包含了200个想法,有很多有⽤的内容和链接。每个想法都包含⼀个难度评分,实现该想法的提⽰以及复杂版的想法。要⽐下⾯这些更有深度。另外也请⼤家阅读下我的另⼀本书《编码⽣存⼿册:习惯和陷阱》,免费的哟。
⽂本操作
逆转字符串——输⼊⼀个字符串,将其逆转并输出。
拉丁猪⽂字游戏——这是⼀个英语语⾔游戏。基本规则是将⼀个英语单词的第⼀个辅⾳⾳素的字母移动到词尾并且加上后缀-ay(譬
如“banana”会变成“anana-bay”)。可以在上了解更多内容。
统计元⾳字母——输⼊⼀个字符串,统计处其中元⾳字母的数量。更复杂点的话统计出每个元⾳字母的数量。
判断是否为回⽂——判断⽤户输⼊的字符串是否为回⽂。回⽂是指正反拼写形式都是⼀样的词,譬如“racecar”。
统计字符串中的单词数⽬——统计字符串中单词的数⽬,更复杂的话从⼀个⽂本中读出字符串并⽣成单词数⽬统计结果。
⽂本编辑器——记事本类型的应⽤,可以打开、编辑、保存⽂本⽂档。可以增加单词⾼亮和其它的⼀些特性。
RSS源创建器——可以从其它来源读取⽂本并将其以RSS或者Atom的格式发布出去。
实时股价——可以查询股票当前价格。⽤户可以设定数据刷新频率,程序会⽤绿⾊和红⾊的箭头表⽰股价⾛势。
访客留⾔簿/⽇志——允许⼈们添加评论或者⽇记,可以设置开启/关闭评论,并且可以记录下每⼀条⽬的时间。也可以做成喊话器。
新闻和⽐分播报器——⼀个桌⾯应⽤,可以从⽹上收集新闻和⽐赛分数,将结果在屏幕上滚动播出。
占星罗盘——⽤占星术来预测每天的运程。
密码短信——可以将数据加密解密,并能将其发送给朋友。
帮你挑礼物——输⼊⼀堆你可能会送的礼物,当有⼈过⽣⽇时,该程序会随机选择⼀样礼物。也可以加上⼀个额外功能,可以告知哪⾥可以弄到这个礼物。
HTML⽣成器——将 TEXT ⽂档转换成HTML⽂件,对制作⽹页HTML⽂档很有⽤。
CD-Key⽣成器——利⽤某种算法⽣成⼀个唯⼀的key。软件开发者可以⽤它来作为软件的激活器。
正则表达式查询⼯具——⽤户可以输⼊⼀段⽂本,在另外的控件⾥输⼊⼀个正则表达式。运⾏以后会返回匹配的内容或者正则表达式中的错误。
⽹络
FTP⼯具——与远程⽹络服务器交互⽂件。
原⼦钟校时——从⽹上同步原⼦钟时间。全世界有很多原⼦钟,可以把它们都列出来。
聊天应⽤(IRC或者MSN风格的)——像IRC那样的聊天室软件或者MSN那样的实时聊天软件。更复
杂⼀点的话,可以为聊天制定⼀套你⾃⼰的传输协议。
获取当前天⽓——获取某个地区当前的天⽓情况。
P2P⽂件共享应⽤——像LimeWire、FrostWire、Bearshare或者torrent风格的应⽤。
端⼝扫描器——输⼊某个ip地址和端⼝区间,程序会逐个尝试区间内的端⼝,如果能成功连接的话就将该端⼝标记为open。
邮件检查⼯具(POP3/IMAP)——⽤户输⼊⼀些账号信息,包括服务器、ip、协议类型(POP3或者IMAP),应⽤每隔⼀段时间就会检查下该账号下的邮箱。
数据包嗅探器——侦测电脑上进出的数据包,获取诸如⽬的地和⼤⼩之类的信息。
IP注册地查询——输⼊ip地址,查询该ip是在哪注册的。
Whois查询⼯具——输⼊⼀个ip或者主机地址,通过whois查询并将结果返回。
邮编查询——输⼊邮编,返回使⽤该邮编的地区名称。
远程登⼊——远程登⼊桌⾯类型的应⽤,可以查看和控制远程电脑(假如你已经获得权限)。可能需
要你⾃⼰的⽹络和两台电脑来进⾏测试。
⽹站定时检查器——每隔⼀段时间或者在预定的时间尝试连接某个⽹站或者服务器,来检查它是否可以连上,如果连不上了会通过邮件或者桌⾯通知来告知你。
⼩型⽹页服务器——简易版的⽹页服务器,可以存放包含Javascript和其它形式代码的HTML⽂件。复杂⼀点的话可以尝试流媒体视频、创建⼀种服务器端语⾔或者其它类型的流媒体。
⽹络蜘蛛——⼀个可以⾃动执⾏⽹页上各种任务的程序,任务包括⽹站检查、页⾯抓取、数据摘要以及⽹络邮务。
产品库存管理——创建⼀个管理产品库存的应⽤。建⽴⼀个产品类,包含价格、id、库存数量。然后建⽴⼀个库存类,记录各种产品并能计算库存的总价值。
电影商店——管理录像带租借,记录借出时间、到期时间、逾期费⽤。复杂⼀点可以⽣成逾期⽤户的账号报告。
航空/酒店预订系统——创建⼀套预订航班或酒店的预订系统。不同的航班座位和酒店房间收费不⼀样。譬如头等舱要⽐经济舱贵。带阁楼的套间要更贵些。记录下何时有空房可供预订。
学⽣成绩管理器——记录⼀个班级的学⽣(创建⼀个Student类,记录他们的名字、平均分和考试分数)和他们的成绩等级。根据学⽣的测验和作业的分数计算出平均分和成绩等级。复杂⼀点可以将数据画在贝尔曲线上。
银⾏账户管家——创建⼀个名为“Account”的抽象类,有三个为“CheckingAccount”、
“SavingsAccount”和“BusinessAccount”的⼦类。通过类似ATM的程序来管理这些账户的借贷。
馆藏⽬录——创建⼀个图书类,记录书名、页数、国际标准书号、是否借出。⽤它来管理各种书籍,允许⽤户进⾏借出和归还操作。复杂⼀点的话,可以⽣成逾期图书和逾期费⽤的报告。也可以让⽤户进⾏预约操作。
线程处理
下载进度条——创建⼀个表⽰下载进度的进度条。进度条由独⽴的线程操作,通过委托来和主线程进⾏通讯。
下载管理器——允许程序同时下载数个⽂件,每个都⽤单独的线程进⾏背景下载。主线程会关注下载进度并且在下载完成时通知⽤户。
聊天软件(远程聊天)——做⼀个聊天软件,允许你通过ip直接连接到另⼀台电脑,也允许你的“服务器”程序处理多个请求连接。
批量缩略图⽣成器——在进⾏图⽚转换的处理时会需要很多时间,尤其是图⽚很⼤时。做⼀个图⽚处理程序,能让你在做其它事的时候在后台线程⾥将数百张图⽚转换成某个⼤⼩的图⽚。复杂⼀点的话可以⽤⼀个线程来缩放,⽤另⼀个线程来为缩略图重命名。
Web应⽤
所见即所得编辑器——创建⼀个在线编辑器,允许⽤户移动元素、创建表格、书写⽂本、设置颜⾊,⽽⽤户不必懂HTML。就像Dreamweaver或者FrontPage。如果需要例⼦的话,可以参看DIC。
分页浏览器——创建⼀个可以分页的⼩型⽹页浏览器,可以同时浏览⼏个⽹页。简化⼀点的话不要考虑Javascript或者其它客户端代码。⽂件下载器——该程序可以从⽹页上下载各种资源,包括视频和其它⽂件。⽤于有很多下载链接的⽹页。
远程登录——创建⼀个远程登录的应⽤,可以通过⽹络登录服务器并能执⾏⼀些基本命令。
在线⽩板——做⼀个在线⽩板程序,你和朋友们可以⼀起在⽩板上进⾏⼀些操作,画图、写字等等。
带宽监视器——这个⼩⼯具可以记录你已经在⽹上上传和下载多少数据流量了。可以试着做份报告或者图表来展⽰各时段的使⽤情况。
书签搜集管理器——该程序可以让⽤户上传书签并将它们排序,去掉重复的,并能⽣成书签⽂件以供Firefox/IE/Safari等使⽤。复杂⼀点的话可以试着将书签整理进不同的⽂件夹。网站程序下载
密码保险箱——⽤来记录各种密码,并且将它们加密,这样别⼈就看不到了。
iGoogle媒体播放器⼩部件——做⼀个iGoogle⼩部件,可以⽤来播放本地⾳乐列表,也可以每天分享⼀⾸歌。也许还可以让别⼈看到你最近听了些什么歌。
基于⽂本的游戏——做⼀个像Utopia那样的⽂本RPG,游戏中,你可以创建⼀个⽂明、收集资源、共铸联盟、施放法术、回合制系统。看看是否能够统⼀王国。
定时⾃动登录——做⼀个程序可以在预定的时间登录进某个指定的⽹页并且执⾏特定的动作,然后在登出。可以⽤来检查邮箱、发布常规内容、为其它程序获取信息。
电⼦卡⽚⽣成器——可以让⽤户制作⾃⼰的电⼦卡⽚并发送给其他⼈。可以使⽤flash也可以不⽤。可以使⽤图⽚库,也可以加上深刻的格⾔警句。
内容管理系统——像Joomala、Drupal、PHP Nuke这样的内容管理系统。从简单的做起,慢慢增加其它功能。
模板制作器——该⽹站应⽤允许⽤户输⼊各种颜⾊代码、元素、尺⼨,来为PHPBB、Invision Board、MySpace之类的应⽤创建模板⽂件。
验证码⽣成器——应该在登录时见过有数字有字母的验证码图⽚吧?这可以防⽌⾃动登录和垃圾⼴告。试着⾃⼰做⼀个,如果使⽤PHP的话,看下GD的图⽚函数。
⽂件
试卷⽣成器——该程序可以从⽂件中随机挑选出不同的题⽬⽣成⼀份试卷。每份试卷可以不⼀样,通过读取答案来给打分。
快速启动——该⼯具可以添加各个程序的⼩图标,点击⼩图标就可以运⾏程序。和Windows的快速启动类似。
⽂件管理器——做⼀个⽂件管理器,要加些新特性,更佳的搜索功能、新图标、新外观。
⽂件记录排序⼯具——从⽂件中读取记录,将其排序并写回⽂件中。允许⽤户选择排序风格以及排序关键字。
⽣成财务交易⽂件并且算出平均值——将财务交易读进⽂件,按照账户分类、算出各软件项⽬创意的总量或平均值、理清各账户的借贷数据。
Zip⽂件⽣成器——⽤户输⼊不同⽂件夹的⽂件,也许还包括其他电脑中的⽂件,然后程序将这些⽂件打包成zip⽂件。复杂⼀点的话,打包时对这些⽂件进⾏压缩。
PDF⽣成器——从txt、html或其它⽂件中读取数据⽣成PDF⽂件。可以做成⼀个⽹页服务,⽤户上传⽂件,返回⼀个pdf版本。
批量⽂件命名器——程序批量处理⼀些⽂件,将根据⽤户提供的过滤器为它们重命名。譬如⽤户输⼊的过滤器为myimage###.jpg,那么会⽣成⾄少包含3位数的⽂件名,譬如myimage001.jpg、myimage145.jpg,甚⾄是myimage1987.jpg,因为1987也满⾜了⾄少包含3位数的条件。
MP3标签⽣成器——修改MP3⽂件的id3v1标签。还可以试着在MP3⽂件的头部加⼊id3v2的标签,譬如album art标签。
⽇志⽂件⽣成器——该程序可以记录指定事件的⽇志。譬如程序做了什么、系统在⼲什么、⽂件什么时候被修改了。
Excel分页输出器——做⼀个在线程序,可以读取⽂件内容⽣成⼀个excel分页。可以通过CVS或者其
它⽂件格式来做。复杂⼀点的话看看是否能创建公式字段。
RPG⾓⾊属性⽣成器——做⼀个程序来给RPG⾓⾊随机分配属性点数,可以由⽤户制定⼀些分配规则。可以⽣成职业、性别、⼒量/魔法/敏捷点数、额外能⼒或者贸易技能。把结果保存成⽂件,这样跑团的时候地下城主可以把它打印出来。
⽂件复制⼯具——该⼯具可以批量处理⽂件复制和备份操作。
数据库
SQL查询分析器——该⼯具可以让⽤户输⼊⼀条查询命令,让其运⾏于本地数据库中。尽量让它运⾏得更⾼效。
远程SQL⼯具——该⼯具能让你通过⽹络在远程服务器上执⾏查询操作。它能接收远程主机地址、验证⽤户名和密码、执⾏查询并返回结果。
卡⽚整理器——创建⼀个在线应⽤,⽤来记录搜集到的卡⽚。可以让⽤户输⼊整套卡⽚,查看哪些已经有了,哪些还需要搜集。要增加复杂度的话,还可以让⽤户知道还差多少可以完成,或者已经收集卡⽚的价值。
报告⽣成器——该⼯具可以根据数据库中的表格⽣成⼀份报告。譬如根据订单表格⽣成销售报告。
数据库备份脚本制作器——该程序可以读取数据库的对象、关系、记录和步骤,⽣成⼀个sql⽂件,该⽂件可以导⼊另⼀个数据库或者作为备份⽂件。
备忘录——该程序可以让⽤户设置⼀个⽇期和某个事件的时间、事件备注并将它们放到⽇历上。⽤户可以查看⽇历、搜索特定的事件。复杂⼀点的话,可以让⽤户设置重复发⽣的事件,譬如每天、每周、每⽉、每年等等。
预算记录器——该程序可以记录家庭预算。⽤户可以添加⽀出、收⼊,计算⼀段时间内的收⼊和⽀出。复杂⼀点的话,让⽤户指定⼀个时间段,显⽰该时间段内的家庭收⽀情况。
电话簿——记录各种联系⼈和他们的号码、邮箱、备注。复杂⼀点的话可以让⽤户连上⽹将电话簿发布到设置好的⽹站上。
电视节⽬记录器——你是否有不想错过的电视节⽬?但没有录像机或者想之后能到该电视节⽬然后录下来,那么可以做个程序寻各种在线电视导航⽹站,记录下电视节⽬名称、播放时间、播放频道,存在数据库中。数据库或者⽹站到时就会发邮件提醒你,节⽬就快在某个频道开始了。
旅⾏计划系统——该系统可以让⽤户管理旅⾏路线,记录下航班和酒店安排、感兴趣的地⽅、预算和时间表。
实体关系图⽣成器——该程序可以让⽤户整合实体关系图,并将其保存起来,也可以⽤它来⽣成⼀些基础SQL语句。
数据库翻译器(MySQL<->SQL Server)——该⼯具可以从数据库A读取数据,⽣成数据库B使⽤的SQL语句,将数据存⼊数据库B。⽐较常⽤的是SQL Server和Oracle使⽤的MySQL服务器。
BBS论坛——为你和⼩伙伴们做⼀个论坛,可以发帖、管理、分享想法和想法。
图像和多媒体
幻灯⽚——做⼀个以幻灯⽚形式显⽰各种图⽚的程序。为了增加难度可以做些额外的效果,譬如渐进检出、星型擦除、窗⼝渐隐。
思维导图——允许⽤户记录下各种想法并且快速地进⾏头脑风暴将这些想法整合到⼀张思维导图中。越快越好,因此要让⽤户能迅速地写下想法,然后将其拖到可视的导图中去,将想法之间的关系展现出来。
导⼊图⽚并存成灰度图——该⼯具将图⽚上的彩⾊除尽并保存。可以增加对⽐度调整、⾊化等额外功能以增加复杂度。
在线流媒体视频——试着⾃⼰做⼀个在线流媒体视频播放器。
MP3播放器(以及其他格式的⾳乐播放器)——该⼩程序⽤来播放你最爱的⾳乐⽂件。复杂⼀点的话看看能否加个播放列表功能和均衡器。
批量图⽚处理——该程序可以将⼀个⽂件夹内的图⽚进⾏统⼀的处理,譬如降低图⽚⾊调、转换格式或者修改⽂件属性。还可以尝试给图⽚增加标签。
CD烧录器——可以轻松烧录CD的⼯具。
YouTube下载器——可以从Youtube上下载视频到硬盘中,要⽀持包括FLV和AVI在内的⽂件格式。
墙纸管理⼯具——做⼀个管理墙纸的程序,可以定时更换刷新墙纸,也可以针对分辨率进⾏缩放。
截屏程序——做⼀个可以截屏的⼯具,复杂⼀点可以增加⼀个转发邮件的功能。
图⽚浏览器——该程序可以查看电脑上各种格式的图⽚,譬如PNG、GIF、JPG、BMP、TIFF等等。
交通信号灯——试着做⼀个交通信号灯并且把它放到可以互动的场景中。不要让汽车闯红灯或者撞到其它车。
MP3-WAV转换器——MP3格式本质上就是压缩版的WAV。试着将MP3转换成WAV格式以供可以处理WAV格式的程序使⽤。请记住
1MB的MP3⼤约等于10MB的WAV。
签名⽣成器——是否在⽹上见过有⼈的留⾔后⾯有条⽣成的签名?试着做个程序让⽤户可以指定背景、⽂字、颜⾊和对齐⽅式来定制⼀个签
名档。
屏保——电脑空闲时会运⾏的屏保程序。简单版的可以使⽤⼀些标准图⽚,复杂版的可以做出能在屏幕上转来转去的3D物体。
⽔印——你是否想保护你图⽚的版权?在图⽚上加上标志或者⽂字,这样别⼈就不能轻易地从你⽹站上盗图了。做⼀个程序来给你的图⽚加上⽔印吧。
海龟图——创建⼀个20*20的格⼦,⽤命令让⼀只海龟在格⼦上画线。可以前进、左转、右转,拿起或放下笔等等。复杂⼀点的话,允许程序从⽂件中读取命令列表。可以在⽹上了解到更多关于“海龟图”的信息。
游戏
战船——创建两块游戏⾯板,玩家各占⼀边,在上⾯放置⼀些战船,玩家看不到对⽅的⾯板。每艘船都占⼏个格⼦,玩家轮流攻击某个格⼦,如果格⼦上有船,那就命中⽬标,否则就是未命中。当⼀艘船所占的所有格⼦都被攻击命中了,那么船就被击沉。谁先将对⽅战船全部击沉就获胜。
象棋跳棋——象棋或者跳棋游戏。可以试着做成可以联⽹玩,⽤图形⽤户界⾯来实现悔棋、保存⾛棋过程并且可以回放。
刽⼦⼿——从⽂件中随机选择⼀个单词,让玩家猜单词中的字母。旁边是⼀幅隐藏的⾏绞刑的画,猜错⼀个单词,画就显⽰出⼀部分。画全部显⽰出来时还没能猜全的话玩家就输了。
填字游戏——创建⼀个填字游戏,并为每个词提供⼀个提⽰信息,让玩家填上所有正确的单词。
青蛙跳——让青蛙跳过河或者马路,过河的话要跳在顺流⽽下速度各异的⽊头或者睡莲叶⼦上,过马路的话要避开速度各异的车⼦。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。