软件程序设计课程设计说明书-新闻发布与管理软件.doc_第1页
软件程序设计课程设计说明书-新闻发布与管理软件.doc_第2页
软件程序设计课程设计说明书-新闻发布与管理软件.doc_第3页
软件程序设计课程设计说明书-新闻发布与管理软件.doc_第4页
软件程序设计课程设计说明书-新闻发布与管理软件.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

信息与电气工程学院课程设计说明书(2009/2010学年第一学期)课程名称 : 软件程序设计 题 目 : 新闻发布与管理软件 专业班级 : 电子信息工程07-01 学生姓名 : 学 号: 070070119 指导教师 : 设计周数 : 2周 设计成绩 : 2010年1月8日1 课程设计目的1.1 掌握基本的c#的基础知识,了解一些常用控件的用法及掌握简单代码编写的方法。1.2 掌握基本的数据库语句(例如删除、修改、更新等),了解数据库设计的详细过程能够将数据库知识与c#知识相结合。1.3 掌握一个系统软件的详细设计过程和基于asp.net.2.0的网站开发技术。2、课程设计正文(包括分析、设计、程序设计和测试等几部分)web服务器为 b/s 。数据库服务器microsoft sql server 2005。开发工具采用mirosoft visual studio.net中c#。2.1数据库的设计2.1.1 数据库的简单分析一个简单的新闻发布与管理软件系统,对于一般的用户来说,可以浏览新闻并查看每条新闻的详细信息;对于一个新闻录入人员来说,他可以通过登陆系统登陆后可以录入新闻,录入的新闻需待管理员审核;对于一个新闻管理员来说,通过登陆系统进入新闻管理页面,可以对录入的新闻进行审核、编辑、删除等操作,如果审核通过则录入的新闻被发布。 综合各方面因素考虑,新闻发布与管理软件的功能主要体现在对各种新闻的提供、保存、更新、管理等操作上,包括新闻分类信息、新闻信息、管理者信息等。根据该系统的数据特点,可总结如下数据结构:管理者信息:包括数据项:管理者编号、是否为管理员、用户名、密码等信息。新闻信息:包括数据项:新闻编号、新闻标题、发布时间、新闻内容、作者等。2.1.2数据库的逻辑设计该系统总共包括两张表,分别是管理者信息表(userinfo)和新闻信息表(newsinfo). userinfo表列名数据类型长度是否为主键是否为空注释useridint4是否用户编号,自动增长usernamenvarchar16否否用户名userpwdnvarchar12否否用户密码userroleint4否否用户角色,0代表管理员,1代表录入员 newsinfo表列名数据类型长度是否为主键是否为空注释newsidint4是否新闻编号,自动增长newstitlenvarchar50否否新闻标题newsdatedatetime8否否发布时间newscontentntext16否否新闻内容newauthornvarchar16否是作者newscheckint4否否1代表审核通过,0代表未审核通过。2.1.3、系统文件划分 前台客户界面部分:1) 单条新闻的显示 view.aspx2) 新闻主页 index.aspx3) 更多新闻 morenews.aspx 后台客户界面部分:1) 管理员登录 login.aspx2) 管理新闻admin.aspx3) 审核并发布新闻ncheck.aspx4) 录入新闻add.aspx根据新闻发布与软件管理的基本要求,设计系统的结构框架如下:新闻发布与管理软件 新闻审核发布新闻管理新闻录入管理者登陆浏览更多新闻显示单条新闻 前台后台管理 (1)浏览新闻功能:一般用户只能浏览新闻。用户通过点击主页面上“新闻标题”的超链接就可以阅读具体的新闻内容,点击“更多新闻”超链接可以查看显示所有新闻,并且使用分页,显示的效果,每页显示10条新闻,用户可通过单击下方的页码进行跳转,这里显示的所有新闻按发布的时间降序排列,以保证最新发布的新闻位于最前列。用户通过单击每条新闻的标题可以查看到新闻的详细内容。 发布新闻功能:录入员通过登录可以使用发布新闻功能。发布新闻时,需要填新闻的标题、内容和发布者姓名,发布时间取当前系统时间,不需要填写,录入的新闻需待管理员审核后才能正式发布。管理者登录功能:管理着分管理员和录入员两个角色。点击主页上的“新闻管理”超链接进入登陆页面,需要录入新闻时,应以录入员身份登录系统。需要管理新闻时应以管理员的身份登录。一般用户进入管理页面登录时,会提示用户“用户名或密码错误,可能您的权限不够”。管理新闻功能:管理员通过登录进入新闻管理页面,可以对未审核的新闻进行编辑、删除、修改等操作,通过点击对应“新闻编号”的超链接对录入的新闻进行审核,如果审核通过则正式发布这条新闻,同时在主页面上显示该新闻的标题及发布时间。2.1.3 系统流程图如下:开始 输入登陆密码和帐号 判断数据库里帐号密码是否相符?密码或用户名错误 进入管理或录入新闻界面 结束yn进入新闻主页面 (2)2.2 连接数据库2.2.1配置文件新闻发布与管理软件的数据库连接字符串是在配置中设置的,该文件的代码如下:“asp.net 配置”选项。 设置和注释的完整列表在 ments 中,该文件通常位于 windowsmicrosoft.netframeworkv2.xconfig 中-!- 通过 节可以配置 asp.net 使用的 安全身份验证模式, 以标识传入的用户。 -!- 如果在执行请求的过程中出现未处理的错误, 则通过 节可以配置相应的处理步骤。具体说来, 开发人员通过该节可以配置 要显示的 html 错误页 以代替错误堆栈跟踪。 -文中粗体部分是数据库连接字符串部分,其他为程序配置文件中自动生成的。”connectionstring”表示连接字符串,该字符串命名为”connectionstring”, data source 代表数据源。2.3 界面设计及代码实现2.3.1 新闻主页的设计(index.aspx)其代码实现如下:protected void page_load(object sender, eventargs e) sqlconnection conn = new sqlconnection(configurationmanager.connectionstringsconnectionstring.connectionstring); /打开数据库连接 conn.open(); /创建查询语句 string sql = select top 10 newsid,newstitle,newsdate from newsinfo where newscheck=1 order by newsdate desc ; sqldataadapter da = new sqldataadapter(sql, conn); dataset ds = new dataset(); da.fill(ds); gridview1.datasource = new dataview(ds.tables0); gridview1.databind(); 2.3.2 管理者登陆界面设计(admin.aspx) 通过角来区分新闻录入员和新闻管理员,如果是一般用户登陆则会提示“用户名或密码错误,可能您的权限不够”信息。其代码实现如下protected void btnlogin_click(object sender, eventargs e) /创建数据库连接 sqlconnection conn = new sqlconnection(configurationmanager.connectionstringsconnectionstring.connectionstring); conn.open(); /创建一个命令对象 sqlcommand cmd = new sqlcommand(select userid,userrole from userinfo where username= + txtusername.text.trim().tolower() + and userpwd= + txtpwd.text.trim() + , conn); /执行命令对象操作的查询操作,并将结果返回给datareader对象。 sqldatareader dr = cmd.executereader(); /执行datareader的read方法,判断是否查询到记录 if (dr.read() int rolecode = (int)druserrole; if (rolecode = 0) response.redirect(admin.aspx); else response.redirect(add.aspx); else /弹出对话窗,告知错误。 response.write(alert(用户名或密码错误,可能您的权限不够!); /释放datareader对象,关闭数据库连接 dr.close(); conn.close(); protected void btnreset_click(object sender, eventargs e) txtusername.text = ; txtpwd.text = ;2.3.3 管理新闻界面设计(admin.aspx)其代码实现如下:protected void page_load(object sender, eventargs e) if (!ispostback) binddata(); /绑定数据 void binddata() /连接数据库 sqlconnection conn = new sqlconnection(configurationmanager.connectionstringsconnectionstring.connectionstring); conn.open();/打开数据库 string sql = select * from newsinfo order by newsdate desc ; sqldataadapter da = new sqldataadapter(sql, conn); dataset ds = new dataset(); da.fill(ds); gridview1.datasource = ds.tables0.defaultview; gridview1.databind(); / 行编辑 protected void gridview1_rowediting(object sender, gridviewediteventargs e) gridview1.editindex = e.neweditindex; binddata(); /取消行编辑 protected void gridview1_rowcancelingedit(object sender, gridviewcancelediteventargs e) gridview1.editindex = -1; binddata(); /行删除 protected void gridview1_rowdeleting(object sender, gridviewdeleteeventargs e) string connstring = data source=.sqlexpress;attachdbfilename=|datadirectory|zmzdb.mdf;integrated security=true;connect timeout=30;user instance=true; sqlconnection conn = new sqlconnection(connstring); string sql = delete from newsinfo where newsid= + gridview1.datakeyse.rowindex.value.tostring() + ; sqlcommand cmd = new sqlcommand(sql, conn); conn.open(); cmd.executenonquery(); conn.close(); binddata(); /将编辑后的内容存入数据库,更新数据库内容 protected void gridview1_rowupdating(object sender, gridviewupdateeventargs e) string connstring = data source=.sqlexpress;attachdbfilename=|datadirectory|zmzdb.mdf;integrated security=true;connect timeout=30;user instance=true; sqlconnection conn = new sqlconnection(connstring); string sql = update newsinfo set newstitle= + (textbox)(gridview1.rowse.rowindex.cells1.controls0).text.tostring().trim() + ,newsdate= + (textbox)(gridview1.rowse.rowindex.cells2.controls0).text.tostring().trim() + ,newscontent= + (textbox)(gridview1.rowse.rowindex.cells3.controls0).text.tostring().trim() + ,newauthor= + (textbox)(gridview1.rowse.rowindex.cells4.controls0).text.tostring().trim() + where newsid= + gridview1.datakeyse.rowindex.value.tostring() + ; sqlcommand cmd = new sqlcommand(sql, conn); conn.open(); cmd.executenonquery(); conn.close(); gridview1.editindex = -1; binddata(); / 执行换页操作 protected void gridview1_pageindexchanging(object sender, gridviewpageeventargs e) gridview1.pageindex = e.newpageindex; binddata(); protected void gridview1_rowdatabound(object sender, gridviewroweventargs e) /如果是绑定数据行 if (e.row.rowtype = datacontrolrowtype.datarow) if (e.row.rowstate = datacontrolrowstate.normal | e.row.rowstate = datacontrolrowstate.alternate) (linkbutton)e.row.cells6.controls0).attributes.add(onclick, javascript:return confirm(你确认要删除 + e.row.cells1.text + 吗?); 2.3.4 浏览更多新闻界面设计(morenews.aspx)其代码实现如下:protected void page_load(object sender, eventargs e) if (!ispostback) binddata(); /绑定数据 void binddata() sqlconnection conn = new sqlconnection(configurationmanager.connectionstringsconnectionstring.connectionstring); /打开数据库连接 conn.open(); /创建查询语句 string sql = select newsid,newstitle,newsdate from newsinfo where newscheck=1 order by newsdate desc ; sqldataadapter da = new sqldataadapter(sql, conn); dataset ds = new dataset(); da.fill(ds); gridview1.datasource = new dataview(ds.tables0); gridview1.databind(); protected void gridview1_pageindexchanging1(object sender, gridviewpageeventargs e) gridview1.pageindex = e.newpageindex; binddata(); 2.3.5 审核及发布新闻界面设计(ncheck.aspx)其代码实现如下:protected void page_load(object sender, eventargs e) /连接数据库 sqlconnection conn = new sqlconnection(configurationmanager.connectionstringsconnectionstring.connectionstring); /打开数据库连接 conn.open(); /获取传递参数 string news_id = request.querystringid.tostring(); string sql = select newstitle,newsdate,newauthor,newscontent from newsinfo where newsid= + news_id; /创建数据库命令 sqlcommand cmd = new sqlcommand(sql, conn); /执行命令对象操作的查询操作,并将结果返回给datareader对象。 sqldatareader dr = cmd.executereader(); if (dr.read() ntitle.text = drnewstitle.tostring(); ninfo.text = 作者: + drnewauthor.tostring() + 日期: + drnewsdate.tostring(); ncontent.text = drnewscontent.tostring(); conn.close(); protected void button1_click(object sender, eventargs e) string connstring = data source=.sqlexpress;attachdbfilename=|datadirectory|zmzdb.mdf;integrated security=true;connect timeout=30;user instance=true; sqlconnection conn = new sqlconnection(connstring); /打开数据库连接 conn.open(); /获取传递参数 string news_id = request.querystringid.tostring(); string check = update newsinfo set newscheck=1 where newsid= + news_id; sqlcommand cmd = new sqlcommand(check,conn); cmd.executenonquery(); /执行sql语句后弹出对话窗,告知审核成功。 response.write(alert(审核成功,该新闻已发布!); protected void button2_click(object sender, eventargs e) response.redirect(admin.aspx);2.3.6 浏览新闻界面设计(view.aspx)其代码实现过程如下:protected void page_load(object sender, eventargs e) /连接数据库 sqlconnection conn = new sqlconnection(configurationmanager.connectionstringsconnectionstring.connectionstring); /打开数据库连接 conn.open(); string news_id = request.querystringid.tostring(); /int news_id = convert.toint32(request.querystringnewsid.tostring(); string sql = select newstitle,newsdate,newauthor,newscontent from newsinfo where newsid= + news_id; /创建数据库命令 sqlcommand cmd = new sqlcommand(sql, conn); /执行命令对象操作的查询操作,并将结果返回给datareader对象。 sqldatareader dr = cmd.executereader(); if (dr.read() ntitle.text = drnewstitle.tostring(); ninfo.text = 作者: + drnewauthor.tostring() + 日期: + drnewsdate.tostring(); ncontent.text = drnewscontent.tostring(); conn.close(); protected void button1_click(object sender, eventargs e) response.redirect(index.aspx);2.3.7 录入新闻界面设计(add.aspx)其代码实现过程如下:protected void btnsubmit_click(object sender, eventargs e) /创建连接数据库的对象 sqlconnection conn = new sqlconnection(configurationmanager.connectionstringsconnectionstring.connectionstring); conn.open();/打开数据库连接 /创建一个命令对象 if (txttitle.text.trim() != & txtcontent.text.trim() != & txtauthor.text.trim() != ) datetime tt = system.datetime.now; sqlcommand cmd = new sqlcommand(insert into newsinfo values( + txttitle.text.trim() + , + tt.tostring() + , + txtcontent.text.trim() + , + txtauthor.text.trim() + ,+ 0 +), conn); try int i = cmd.executenonquery(); if (i = 1) response.write(alert(录入成功!); else response.write(alert(错误,录入失败!); catch(exception err) response.write(alert(+err.tostring()+); /response.write(alert(新闻录入失败,不能重复录入新闻!!); conn.close(); else /txttitle.text = ; /txtcontent.text = ; /txt

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论