软件程序设计课程设计说明书新闻发布与管理软件

上传人:仙*** 文档编号:30467027 上传时间:2021-10-10 格式:DOC 页数:18 大小:1.05MB
返回 下载 相关 举报
软件程序设计课程设计说明书新闻发布与管理软件_第1页
第1页 / 共18页
软件程序设计课程设计说明书新闻发布与管理软件_第2页
第2页 / 共18页
软件程序设计课程设计说明书新闻发布与管理软件_第3页
第3页 / 共18页
点击查看更多>>
资源描述
信息与电气工程学院课程设计说明书(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 = ; /txtAuthor.Text = ; Response.Write(alert(请填写完整); return; protected void btnReset_Click(object sender, EventArgs e) txtTitle.Text = ; txtContent.Text = ; txtAuthor.Text = ; 3、课程设计总结或结论 通过为期两周的C#课程设计,我学会了很多东西,虽然自己的新闻发布与软件管理实现了技术要求的基本任务,但还有待不断的完善。从最初的调研工作到与老师的不断交流过程中,我意识到了对于新闻发布与管理软件需要考虑很多,关于新闻管理的权限,发布审核等,而自己只能在有限的时间和能力内,做的更好。在课余时间我查阅了大量资料,同时也深入学习了C#语言代码的编写,在逐渐的上机操作中,我已对于Web页面的总体设计和Web窗体的基本常用控件的设计熟练掌握,能够熟练运用SQL Server 2005数据库的删除,修改,更新的语句,以及结合C#语言进行数据库的链接,数据的绑定等操作。对于一个系统软件的设计开发:从系统需求分析到数据库的设计到各模块的划分及界面的设计和代码的实现基本掌握,学会了对一些相似的代码模块得到移植和改进。在实际操作过程中也遇到了很多问题,在向老师和同学的请教过程中,自己学到了很多知识,也学会了自己去解决问题。比如:()如何解决数据库的select、 update 等语句出现的一些语法错误()在向数据表中插入数据时,所插字段可能与表中变量不匹配()在字符转换时可能不同类型的数据不能显示转换()传递参数时可能会出现空值() 学会了GridView等控件的使用及数据库的连接方法。() 学会了通过width = 100%设计表、层的全屏效果。() 学会了角色的简单运用 。()学会了Ctrl+A全选页面设计页面背景的效果。() 应用、实践了很多条件的设置。(10) 知道了控件属性中事件要和程序中事件一致。(1) 引用数据库要采用相对路径,数据库配置要正确。4、参考文献1 王建华、汤世明、谢吉容等 ASP.NET2.0 动态网站开发技术 电子工业出版社2 邱锦伦 曹 等编著 Visual C#.NET程序设计教程 清华大学出版社3 李新峰 张光桃编著 亮剑.NET:图解ASP.NET网站开发实战 电子工业出版社4 施伟伟 王敬栋编著 ASP.NET 2.0数据库通用模块开发与系统移植清 华大学出版社5 http:/6 http:/www.B课程设计评 语课程设计成 绩指导教师(签字) 年 月 日注:此表必须在同一页面。
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!