




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
淮 海 工 学 院 计算机工程学院课程设计报告设计名称: Web应用技术课程设计 选题名称: 论坛系统的设计与实现 姓 名: 温婉莹 学 号: 2012130187 专业班级: 计算机科学与技术 D计算机121 系 (院): 计算机工程学院 设计时间: 2015.10.262015.11.15 设计地点: 软件实验室、教室 成绩:指导教师评语: 签名: 年 月 日面向对象课程设计报告 第 19 页,共 19 页1课程设计目的软件工程课程设计是计算机专业一个综合性的实践教学环节,其目的在于促进学生复习和巩固计算机软件设计知识,加深对软件设计方法、软件设计技术和设计思想的理解,并能运用所学软件设计知识和面向对象技术进行综合软件设计,通过本课程设计能够进行简单软件系统的开发,掌握软件设计的方法和面向对象程序设计的基本技术,提高学生的综合应用能力。2课程设计任务与要求:任务结合软件工程、面向对象程序设计课程以及相关课程中所学知识,积极完成设计任务。要求通过设计,深对课程基本内容的理解和综合运用。学生自选课题学生原则上可以结合个人爱好自选课题,要求课题有一定的深度与难度,有一定的算法复杂性,能够巩固数据结构课程所学的知识。学生自选课题需在16周前报课程设计指导教师批准方可生效。要求:(1)通过文献资料查阅和学习,了解当前软件设计技术和一般方法。(2)参考和研究一些公司和高校/企业成功的软件开发案例和实现方案,结合面向对象程序设计、软件工程等课程中所学知识,积极完成设计任务。(3)认真完成需求分析,并根据需求分析完成各设计题目的总体设计、详细设计和测设等环节的设计任务,开发工具推荐使用A | Vc+ | J 。(4)每位同学需提交可独立运行的软件程序。(5)认真按时完成课程设计报告,课程设计报告内容包括:课程设计目的、设计任务与要求、需求分析、概要设计、详细设计、调试分析、测试结果、附录和设计心得体会等。(6)每位同学需独立提交设计报告书(每人一份),要求编排格式统一、规范、内容充实,不少于10页(代码不算)。 3课程设计说明书一 需求分析1.根据论坛系统的需求,系统主要功能包括: 1.1 管理员界面分类设置:添加论坛分类,添加后可以继续编辑或是删除分类。版面设置:添加论坛板块,设置是否显示,添加后可以继续编辑或是删除版面信息。管理员设置:添加管理员账号,同时可以编辑、删除,修改密码。数据库备份:备份信息。帖子管理:可以按照帖子名的关键字搜索查看帖子信息,并可以删除或是回复帖子。用户管理模块包括:搜索查看注册用户信息,并可以删除用户。1.2用户注册:用户输入用户名、密码、邮件等进行用户注册。1.3 用户界面用户登录:用户输入用户名、密码进行登录。发表帖子:用户在系统中发帖,可以选择帖子的类型,也可以回复其他人的帖子。编辑个人资料:用户在此可以查看并编辑自己的资料。我的主题:在此查看自己发表的帖子。我的回复:在此查看回复的帖子。本系统由3人完成,小组分工如表1所示。表1 小组分工用户界面管理员界面数据库设计实现与用户注册温婉莹胡颖琳施晓霞2.数据流图整个系统的数据流程图如图1所示。用户系统界面系统数据库管理员后台界面查看信息信息的修改游客联系我们图1 整个系统的数据流程图 用户界面管理的数据流图如图2所示。用户用户登录查看回复回复信息查看个人信息用户个人信息信息编辑个人信息更新个人信息回复帖子浏览帖子帖子信息用户名密码回复回复信息个人信息个人信息个人信息个人信息查看信息帖子图2 用户界面管理的数据流图3.数据字典3.1数据字典列表数据流如表2所示。表2 数据字典(1)数据存储名称:管理员信息数据来源:管理员信息表数据去向:管理员登陆模块数据组成:管理员信息管理员系统编号+管理员姓名+管理员密码+管理员权限描述:存储了管理员的基本信息数据存储名称:注册用户信息数据来源:注册用户信息表数据去向:注册用户模块数据组成:注册用户信息=系统编号+用户名+密码+性别+电话+添加时间等描述:存储了注册用户的基本信息数据存储名称:论坛信息数据来源:论坛信息表数据去向:论坛模块数据组成:论坛信息=系统编号+名称+内容+图片+类别+添加时间等描述:存储了论坛的基本信息数据存储名称:新闻信息数据来源:新闻信息表数据去向:新闻模块数据组成:新闻信息=系统编号+类别名称+添加时间等描述:存储了新闻的基本信息3.2数据字典列表数据处理如表3所示。表3 数据字典(2)名字:录入信息描述:用户信息,论坛信息等的录入输入: 输入要添加录入的信息过程: 将需要添加录入的信息加入数据库中输出: 系统新的信息表页面输出: 查询得到的信息页面名字:修改、删除信息描述:对会员信息,漫画信息等修改或删除后存入数据库中输入: 输入要修改或删除的信息过程:对需要修改的信息做修改、删除过时的信息输出: 系统新的信息表页面输出: 查询得到的信息页面3.数据字典列表数据存储名字: 数据库信息别名:无描述:存储了数据库的基本信息数据组成:数据库信息=会员信息+论坛信息+新闻信息+管理员信息+论坛帖子信息位置:数据库输出: 查询得到的信息页面3.3 论坛系统的数据项管理员数据项如表4所示。表4 数据字典(3)名称:管理员编号简述:唯一的管理编号数据类型:文本字段大小:20名称:管理员帐号 简述:每个管理员所对应的帐号数据类型:文本字段大小:20名称:管理员密码 简述:每个管理员所对应的密码数据类型:文本字段大小:20名称:注册时间 简述:每个管理员所对应的注册时间数据类型:日期时间字段大小:8用户数据项如表5所示。表5 数据字典(4)名称:用户编号号 简述:每个用户所对应的编号数据类型:文本字段大小:20名称:用户帐号 简述:每个用户所对应的帐号数据类型:文本字段大小:20名称:用户密码 简述:每个用户所对应的密码数据类型:文本字段大小:20名称:注册时间 简述:每个用户所对应的注册时间数据类型:日期时间字段大小:8论坛信息数据项数据字典表6所示。表6 数据字典(5)名称:系统编号 简述:论坛息唯一的系统编号数据类型:文本字段大小:30名称:名称简述:论坛信息的名称数据类型:文本字段大小:30名称:论坛信息内容 简述:论坛信息的内容数据类型:备注字段大小:30名称:内容类别 简述:论坛信息的内容类别数据类型:文本字段大小:50名称:论坛图片 简述:论坛信息的图片名称数据类型:文本字段大小:30名称:论坛类型简述:论坛信息的图片类型数据类型:文本字段大小:30名称:添加者 简述:论坛信息的添加者数据类型:文本字段大小:30名称:添加时间 简述:论坛信息的添加时间数据类型:时间字段大小:8二 概要设计得到上面数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。用户界面功能E-R图如图3所示。用户ID用户发表、查看、回复用户名密码注册时间Email年龄性别生日QQMSN头像帖子帖子ID标题ID分类ID用户ID内容时间表情查看编辑个人资料密码Email生日QQMSN头像登录时间登录时间图3 用户界面E-R图用户界面的功能框图如图4所示。用户界面功能模块用户登录查看帖子发表帖子回复帖子查看个人资料编辑个人资料图4 用户界面的功能框图三 详细设计详细设计是在系统分析的基础上由抽象到具体的过程,同时,还应考虑到系统所实现的内外环境和主客观条件,本着实事求是的态度进行这一阶段的工作。详细设计阶段的主要目的是将需求分析阶段所提出的反映用户信息需求的系统逻辑方案转成可以实施的基于计算机与通信系统的物理方案。由于程序流程图是一种用尽可能少、尽可能简单的方法来描述系统处理过程的方法;而且它的符号简单明了,非常易于阅读和理解系统处理流程。所以本系统用户界面设计中采用的是程序流程图,如图5所示。结束开始用户登录验证用户名密码进入论坛查看发表回复帖子查看编辑个人资料子正确错误无法进入论坛图5 用户界面程序流程图四 设计与调试分析1.用户界面的部分核心代码1.1发帖部分代码:protected void Button_Click(object sender, EventArgs e) string titleType = typeid.Value; if (titleType.Trim() != ) titleType = + titleType + ; string title = StringClass.cutBadStr(subject.Value); string title_content = StringClass.cutBadStr(content.Value); string uptime = BBSClass.getDatatime(); string sql = insert + TitleClass.tablename + (kind_id,use_id,title,title_content,title_uptime,title_type,titile_Picture); sql += values( + Sessionkindid.ToString() + , + Sessionuseid.ToString() + , + title + ,; sql += + title_content + , + uptime + , + titleType + , + TypePicture.Value + ); DataHelpe.ExecuteSql(sql); gotopage(uptime); private void gotopage(string uptime) string Url = Url=DisplayReply.aspx; string t = &id= + TitleClass.getTitleidByUptime(uptime); string p = &p=1; Response.Redirect(Gotopage.aspx?type=Topic& + Url + t + p);发表帖子的主界面如图6所示。图6 发表帖子的主界面1.2.编辑个人资料部分代码protected void Submit1_ServerClick(object sender, EventArgs e) string sql = update +loginUser.tableName+ set ; sql += qq= +oicq.Value + ,; if (Request.Formoldpwd.ToString() != ) sql += Password= + StringClass.EncryptMD5(Request.Formregpwd.ToString() + , ; sql += Email= + Request.Formeditemail.ToString() + , ; if (this.CheckboxEmail.Checked) sql += EmailState=1 , ; else sql += EmailState=0 , ; sql += msn=+msn.Value+ ,; sql += blog= + homepage.Value + ,; sql += birthday= + year.Value + - + month.Value + - + day.Value + ,; sql += sex=+Sex.Value+ ,; sql += TopicDes= + sign.Value + ,; sql += Introduce= + introduce.Value + ; sql += where use_id=+Sessionuseid.ToString(); DataHelpe.ExecuteSql(sql); Response.Redirect(AlertInfor.aspx?edit=true);编辑个人资料的主界面如图7所示。图7 编辑个人资料的主界面2. 帖子具有相应的回复功能,主要测试还是在录入信息为主。分别对帖子各种功能模块进行测试,对于回复栏的测试和工具栏的测试,测试主要任务就是发现系统内不容易发现的隐患,导致系统崩溃或者漏洞百出,防止恶意进攻。在黑盒测试完成的情况下,进行模块接口测试, 模块接口测试是单元测试的基础。只有在数据能正确流入、流出模块的前提下,其他测试才有意义。测试接口正确与否应该考虑的因素:输入的实际参数与形式参数的个数是否相同;输入的实际参数与形式参数的属性是否匹配;调用其他模块时所给实际参数的个数是否与被调模块的形参个数相同;调用其他模块时所给实际参数的属性是否与被调模块的形参属性匹配;是否把某些约束作为参数传递;是否存在与当前入口点无关的参数引用;是否修改了只读型参数;对全程变量的定义各模块是否一致。表2发贴测试用例模块测试用例描述操作过程及数据预期结果发贴按要求输入帖子的相关信息进入发贴界面,输入帖子内容,标题,内容,再提交。发贴成功,发贴成功信息转到管理员。没输入标题进入发贴界面,没输入标题,再提交发贴失败。输入为空进入发贴界面,输入为空,再提交。无法发贴。五 用户手册点击index.aspx右击用浏览器打开,点击注册,输入相应的注册信息完成游客到用户的注册过程。点击登录,输入注册的用户名及密码,进入论坛主界面。在论坛主界面,我们可以查看各类帖子、发表帖子、回复帖子。同时在控制面板部分我们也可以查看个人资料并对其进行修改。六 测试成果用户登录后的主界面如图8所示。图8 用户登录后的主界面查看帖子的主界面如图9所示。图9 查看帖子的主界面查看用户个人资料的主界面如图10所示。图10 查看用户个人资料的主界面发表帖子的主界面如图11所示。图11 发帖的主界面编辑个人资料的主界面如图12所示。图12 编辑个人资料的主界面七 附录(源程序清单)论坛系统整个系统的核心代码注册界面的代码public partial class register : System.Web.UI.Page public string reg=; protected void Page_Load(object sender, EventArgs e) if (Request.QueryStringregister != null) reg = Request.QueryStringregister.ToString(); protected void Submit1_ServerClick(object sender, EventArgs e) if (this.gdcode.Value != SessionValation.ToString() Response.Redirect(GotoPage.aspx?register=false); else string sql = insert into loginuser(name,Password,RegeditTime,Email) values(; sql += + this.regname.Value + , + StringClass.EncryptMD5(Request.Formregpwd.ToString()+ ,+BBSClass.getDatatime()+; sql += ,+this.regemail.Value+ ) ; DataHelpe.ExecuteSql(sql); Sessionuseid = loginUser.getloginUserId(this.regname.Value); loginUser.changeOnlineState(Sessionuseid.ToString(), (int)loginUser.onLineState.ONLINE); loginUser.UpdateSetloginTime(BBSClass.getDatatime(), Sessionuseid.ToString(); Response.Redirect(GotoPage.aspx?register=true); 用户发帖部分的代码:protected void Button_Click(object sender, EventArgs e) string titleType = typeid.Value; if (titleType.Trim() != ) titleType = + titleType + ; string title = StringClass.cutBadStr(subject.Value); string title_content = StringClass.cutBadStr(content.Value); string uptime = BBSClass.getDatatime(); string sql = insert + TitleClass.tablename + (kind_id,use_id,title,title_content,title_uptime,title_type,titile_Picture); sql += values( + Sessionkindid.ToString() + , + Sessionuseid.ToString() + , + title + ,; sql += + title_content + , + uptime + , + titleType + , + TypePicture.Value + ); DataHelpe.ExecuteSql(sql); gotopage(uptime); private void gotopage(string uptime) string Url = Url=DisplayReply.aspx; string t = &id= + TitleClass.getTitleidByUptime(uptime); string p = &p=1; Response.Redirect(Gotopage.aspx?type=Topic& + Url + t + p); 编辑个人资料部分的代码:protected void Submit1_ServerClick(object sender, EventArgs e) string sql = update +loginUser.tableName+ set ; sql += qq= +oicq.Value + ,; if (Request.Formoldpwd.ToString() != ) sql += Password= + StringClass.EncryptMD5(Request.Formregpwd.ToString() + , ; sql += Email= + Request.Formeditemail.ToString() + , ; if (this.CheckboxEmail.Checked) sql += EmailState=1 , ; else sql += EmailState=0 , ; sql += msn=+msn.Value+ ,; sql += blog= + homepage.Value + ,; sql += birthday= + year.Value + - + month.Value + - + day.Value + ,; sql += sex=+Sex.Value+ ,; sql += TopicDes= + sign.Value + ,; sql += Introduce= + introduce.Value + ; sql += where use_id=+Sessionuseid.ToString(); DataHelpe.ExecuteSql(sql); Response.Redirect(AlertInfor.aspx?edit=true); 分类设置界面部分的代码:public partial class Admin_Addfenlei : System.Web.UI.Page SqlHelper data = new SqlHelper(); protected void Page_Load(object sender, EventArgs e) protected void btnAdd_Click(object sender, EventArgs e) string name = txtname.Text; string Isshow = ; if (CheckBox1.Checked) Isshow = 1; else Isshow = 0; data.RunSql(insert into block(block_name,block_Visible)values(+name+,+Isshow+); Alert.AlertAndRedirect(添加分?类成功|!?, ManageFenlei.aspx); 添加论坛版面界面部分的代码:protected void btnAdd_Click(object sender, EventArgs e) string name = txtname.Text; string Isshow = ; string ds = kind_describe.Text; int block_id = int.Parse(fenlei.SelectedValue); if (CheckBox1.Checked) Isshow = 1; else Isshow = 0; data.RunSql(insert into kind(block_id,kind_name,kind_describe,kind_Visible)values( + block_id + , + name + , + ds + , + Isshow + ); Alert.AlertAndRedirect(添加版?面?成功|!?, ManageBanmian.aspx); 用户信息管理界面部分代码protected void gvFilms_PageIndexChanging(object sender, GridViewPageEventArgs e) gvFilms.PageIndex = e.NewPageIndex; Get_Article(); protected void gvFilms_RowDataBound(object sender, GridViewRowEventArgs e) /鼠标移动变色 if (e.Row.RowType = DataControlRowType.DataRow) /当鼠标放上去的时候 先保存当前行的背景颜色 并给附一颜色 e.Row.Attributes.Add(onmouseover, currentcolor=this.style.backgroundColor;this.style.backgroundColor=#f6f6f6,this.style.fontWeight=;); /当鼠标离开的时候 将背景颜色还原的以前的颜色 e.Row.Attributes.Add(onmouseout, this.style.backgroundColor=currentcolor,this.style.fontWeight=;); /单击行改变行背景颜色 if (e.Row.RowType = DataControlRowType.DataRow) e.Row.Attributes.Add(onclick, this.style.backgroundColor=#f6f6f6; this.style.color=buttontext;this.style.cursor=default;); protected void btnDel_Click(object sender, EventArgs e) for (int rowIndex = 0; rowIndex 1) strTop = top + iCount.ToString(); string sql = select + strTop + * from Titlelist where title like % + TextBox1.Text.Trim() + %; SqlConnection con = new SqlConnection(SqlHelper.connstring); SqlCommand cmd = new SqlCommand(sql, con); SqlDataAdapter da = new SqlDat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教师招聘之《小学教师招聘》模拟题库讲解及答案详解(全优)
- 河流生态监测创新创业项目商业计划书
- 汽车动力性能展示创新创业项目商业计划书
- 用电负荷平衡创新创业项目商业计划书
- 2025年教师招聘之《小学教师招聘》考前冲刺测试卷包含答案详解【基础题】
- 教师招聘之《幼儿教师招聘》综合提升测试卷含答案详解【典型题】
- 教师招聘之《小学教师招聘》过关检测及参考答案详解【a卷】
- 2025年教师招聘之《幼儿教师招聘》题库必背100题附答案详解【考试直接用】
- 教师招聘之《幼儿教师招聘》复习试题及参考答案详解(典型题)
- 教师招聘之《小学教师招聘》考试历年机考真题集及参考答案详解【典型题】
- 能源服务、产品、设备和能源采购控制程序
- 包装设计市场调研
- 焊装工艺学习课件
- 【个人简历】保洁经理求职个人简历模板
- 绵阳东辰学校五升六预备年级招生考试数学试题
- GB/T 15856.2-2002十字槽沉头自钻自攻螺钉
- 插花艺术发展简史
- 学校防溺水“七不两会”教育(课堂)课件
- 《科学思维与科学方法论》第一章 科学问题与科研选题
- (完整版)电除颤操作评分标准
- 跌倒坠床不良事件鱼骨图分析
评论
0/150
提交评论