《深入体验C_项目开发 - 在线留言簿系统.docx》由会员分享,可在线阅读,更多相关《深入体验C_项目开发 - 在线留言簿系统.docx(38页珍藏版)》请在优知文库上搜索。
1、第2章在线留言簿系统当今网络应用随处可见,QQ、MSN、博客、微博、留言板、论坛随着热门生活节奏的加快,人们将更多地使用网络进行交流,而作为交流方式之一的在线留言簿系统更是深受人们的青睐。通过在线留言簿系统,可以实现身处世界各地的人们的在线交流。本章将讲解在线留言簿系统的运行流程,并通过具体的实例来讲解其具体的实现过程。2.1 第一个盈利项目无论你是一位IT菜鸟,还是职场中的程序高手,只要从事IT这一行业,就会发现这行很容易揽到私活。我在学生时代就给一些公司干过网页设计、图像处理等一些兼职,当然是给他们做下手。自从学习程序之后,我就一直想着做一个真正的项目,不但能赚到钱,而且还能让我的产品能被
2、客户所使用。现在回忆起来,我做的第一个真正的盈利项目应该是大四那年的在线留言簿系统。2.1.1 不速之客2005年12月1日,大雪纷飞风流倜傥的学生会主席CH来到了我们的宿舍。他的来意十分明确,学校官方网站准备升级,要增加一个在线留言簿系统供学生使用。学校想让学生来完成这个升级工作,这样不但节约开支,而且可以检验学生的实践能力。CH在得到这个消息后,第一时间想到了我们宿舍,因为华东区大学生计算机竞赛团体一等奖来自我们宿舍。有了学生会主席的大力举荐,加上我们的实力,这个项目就很自然地被我们拿下了。2.1.2 组建团队2005年12月2日,小雪飘飘虽然项目不大,我们还是组建了一个小团队,团队成员如
3、下。舍友A;一个来自偏远山区的孩子,家庭贫困。可能因为家庭的原因,酷爱学习,快成学习超人了。仅有的零花钱全都买了辅导书:PHPsJavaASPPhotOShop、DreamweaverC+Flash0最大优点是啥都懂,缺点是啥都不精通。项目的核心编码他是不能胜任了,但是其策划经验是最好的。任务:负责项目规划,撰写系统设计规划书。舍友B:父母是做生意的,最大的特点是有钱,大学四年花钱如流水。从小酷爱编程,在C语言和数据库领域有颇深的造诣。任务:负责文件概览工作。舍友C一个运动狂人,喜欢惊险刺激的户外运动,每天早晨去操场跑马拉松,冬天穿短裤上街,从不生病,目标是攀登珠峰。任务:负责搭建并设计数据库
4、。舍友D:一个普通城市家庭的孩子,戴着一副眼镜,文质彬彬。此人十分聪明,属于一看就会的类型,所以学习成绩很好。课余爱好广泛,喜欢看足球、踢足球。任务:负责留言系统的编码工作。我:目前还没有出人头地,充其量是IT界一只待飞的小鸟。任务:负责系统整体框架设计,协调项目中各个模块的进展,并设计数据库访问层。整个项目的具体操作流程是:项目规划一文件概览一搭建数据库一设计数据库访问层f编码实现。2.1.3 小会议2005年12月3日,晴今天我们召开了一个动员会议,并为未来项目的进展做了一个简单的规划。我们一致认为:本项目包括后台数据库的建立、维护以及前端应用程序的开发两个方面。应用程序的开发采用目前比较
5、流行的ADO数据库访问技术,并将每个数据库表的字段和操作封装到相应的类中,使应用程序的各个窗体都能够共享对表的操作,而不需要重复编码,使程序更加易于维护,从而将面向对象的程序设计思想成功地应用于应用程序设计中,这也是本系统的优势和特色,具体流程如图2-2所示。图2-2实现流程最后我做了一个简单的总结:“要开发一个在线留言簿系统,首先需要进行系统需求分析和总体设计,分析系统的使用对象和用户需求,设计系统的体系结构和数据库表结构,决定使用的开发工具和后台数据库,规划项目的开发进度等。”大家一致提议:A尽快作出规划书,后续工作将以规划书为基础进行扩展。2005年12月14日,晴空万里系统规划是一个项
6、目的基础,是任何项目的第一步工作。原来我做项目时,往往看到功能之后就忙不迭地新建工程,并进行编码。但是总是忽略了这样或那样的要求,到最后需要经过多次修改,造成了欲速则不达。这次我吸取了以前的教训,在前期阶段就进行了一丝不苟的分析。2.2 系统概述和总体设计2005年12月5日,上午,阳光明媚会议完成后,整个团队就兴奋地马上开始了具体工作。今天一大早,A就做出了项目规划书。整个规划书分为两个部分,分别是在线留言簿模块功能原理和在线留言簿系统构成模块。2005年12月5日,下午按照预先分配的任务,由A负责系统概述和总体设计,这是我们整个项目的第一步,能不能打响第一枪就靠他了。我深知A向来做事比较拖
7、沓,所以一开始就宣称会一直紧盯着他不放。他无奈之下,只好抽出一段时间将任务完成了。2.2.1 在线留言簿模块功能原理Web站点的在线留言簿系统的实现原理比较清晰明了,其主要操作是对数据库数据进行添加和删除操作。在其实现过程中,往往是根据系统的需求而进行不同功能模块的设置。在线留言簿模块的必备功能如下。(1)提供信息发布表单供用户发布新的留言。(2)将用户发布的留言添加到系统库中。(3)在页面内显示系统库中的留言数据。(4)对某条留言数据进行在线回复。(5)删除系统内不需要的留言。2.2.2 在线留言簿系统构成模块一个典型的在线留言簿系统构成模块如下。 信息发表模块:用户可以在系统上发布新的留言
8、信息。 信息显示模块:用户发布的留言信息能够在系统上显示。 留言回复模块:可以对用户发布的留言进行回复,以实现相互间的交互。 系统管理模块:站点管理员能够对发布的信息进行管理控制。上述应用模块的具体运行流程如图2-3所示。图2-3在线留言簿系统运行流程图通过前面的介绍,读者可初步了解在线留言簿模块的原理和具体的运行流程。在接下来的内容中,将通过一个具体的在线留言簿模块实例,向读者讲解个典型在线留言簿系统的具体设计流程。2005年12月7日,上午,晴空万里历时两天,A的系统规划工作大功告成,有了这个规划书,以后的工作就有目的性了。接下来,需要B马上规划出系统所需的项目文件,为后期的编码工作做好准
9、备。2.3 规划系统文件2005年12月7日,下午,雪花飘飘经过前面两天的忙碌,总算有了一点成果。经过总体构成模块分析后,接下来就可以根据各构成功能模块来规划系统实现文件了。规划项目文件的工作由B来完成,一下午的时间他就在VisualStudio2005中规划好了项目文件。2.3.1 规划文件2005年12月8日,上午,阳光明媚今天是个好天气,我的心情也充满了期待。在这个美好的日子里,B在网上光顾了很多留言簿系统,并且发表了多个留言信息。根据总结的模块功能和规划的结构图,B规划出了整个项目的实现文件,具体说明如下。 系统配置文件:功能是对项目程序进行总体配置。 样式设置模块:功能是设置系统文件
10、的显示样式。 数据库文件:功能是搭建系统数据库平台,保存系统的登录数据。 留言簿列表文件:功能是将系统内的留言信息以列表样式显示出来。 发布留言模块:功能是向系统内添加新的留言数据。 留言管理页面:功能是删除系统内部需要的留言数据。2.3.2 选择我的武器2005年12月8日,下午,工具的困惑在此,B准备使用当前最新的VisualStudio2005,预期规划的各个文件在VisualStudio-u00田田国目-31三-2005解决方案资源管理器中的效果如图2-4所示。Pttp.lc*lkxtlin7tTBinlAjtxSrvie.sax四Jtnlispx国Kaifu.spx同Itetpdll
11、1.etvewwdFen.px1.etvvordPatspx.cs,1.ivyaa白三fic-iYgXMMtpx二?视用2三a-jSStflE图2-4预期规划的项目文件2.4 数据库设计本项目系统的开发主要包括后台数据库的建立、维护以及前端应用程序的开发两个方面。数据库设计是在线留言簿系统设计开发的一个重要组成部分。2.4.1 后台数据库及数据库访问接口的选择2005年12月9日,又见雪花,选择数据库数据库工作由C来完成,C对我们的建议为:开发数据库管理信息系统需要选择后台数据库和相应的数据库访问接口。后台数据库的选择需要考虑用户需求、系统功能和性能要求等因素。考虑到系统所要管理的数据量比较大
12、,且需要多用户同时运行访问,本项目将使用SQ1.Server2005作为后台数据库管理平台。2.4.2 数据库结构的设计对于具体的数据库设计,C参考了A的需求分析。由需求分析的规划可知整个项目对象有两种信息,所以对应的数据库也需要包含这两种信息,从而系统需要包含如下两个数据库表。 Message:留言信息表。 Reply:回复信息表。C给出了具体数据库表的书面文件:在SQ1.Server2005中创建一个名为“1.iuyan”的数据库,并新建了两个表:MeSSage和RePly。(1)表MeSSage用于保存留言信息,具体设计结构如表2-1所示。表2-1Message信息表结构字段名称数据类型
13、是否主键默认值功能描述IDint是递增1编号Titlevarchar(200)否Null标题MessagetextNull内容CreateDatedatetime否Null时间IPvarchar(20)否NullIP地址Emailvarchar(250)否Null邮箱Statustinyint否0状态(2)表RePIy用于保存留言回复信息,具体设计结构如表2-2所示。表2-2RePIy信息表结构字段名称数据类型是否主键默认值功能描述IDint是递增1编号ReplyVarchar(100O)否Null内容CreateDatedatetime否Null时间IPvarchar(20)否NullIP地
14、址MessageIDint否Null留言编号2005年12月9日,傍晚,数据库的重要性静下心细想一下,数据库工作看似比较简单,其实很有技术含量。合理的数据库设计是一个项目是否高效的基础。所以在进行设计时,C很谨慎、认真,经过4天的努力后才满足他的要求。接下来,需要我自己亲自出马,完成参数设置文件和数据库访问层的设计。2.5 系统配置设置和数据库访问层系统配置设置和数据库访问层的工作由我来完成,此步骤是整个项目的基础,项目中的具体功能将以此为基础进行扩展。我深知此步骤的重要性,所以一直通宵达旦,尽力寻求最优方案。2005年12月10日,上午,多云间阴拿着A的功能分析、B的规划文件和C的数据库设计,我仔细统筹规划,总结出此过程需要两个阶段,分别需要完成系统配置和实现数据库访问层。2.5.1 系统配置经过前面两天的忙碌,总算有了一点成果。经过总体构成功能分析后,接下来就可以根据各构成功能模块进行实质性的工作了。具体有如下两个工作。新建网站项目。实现。1.新建网站项目实质性工作的第一步是创建一个VisualStudio2005项目,流程如下。(1)打开ViSUalStUdio2005,选择【文件】I【项目】I【网站】命令,在弹出的【新建网站】对话框中创建一个名为“1.iuyan”的