最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

个人博客设计报告

来源:动视网 责编:小OO 时间:2025-09-30 21:07:25
文档

个人博客设计报告

个人博客设计报告软件需求说明书1、引言a)编写目的对ASP.NET网页设计有个大概的理解和运用,能掌握一些简单的网页制作方法。熟悉C#语言。b)背景软件名称:个人博客。2、正文该个人博客是一个小型的博客,它的主要功能有:登录,发表文章,发表评论等。用户登录博客后,可以查看个人资料;可以查看已经发表过的文章和评价;可以发表新的文章和新的评论;可以修改文章的内容;还可以删除文章和评论。该博客使用固定的用户名和密码,用户名为:admin;密码为admin。该博客除了上述功能外,我们还可以添加其他功能
推荐度:
导读个人博客设计报告软件需求说明书1、引言a)编写目的对ASP.NET网页设计有个大概的理解和运用,能掌握一些简单的网页制作方法。熟悉C#语言。b)背景软件名称:个人博客。2、正文该个人博客是一个小型的博客,它的主要功能有:登录,发表文章,发表评论等。用户登录博客后,可以查看个人资料;可以查看已经发表过的文章和评价;可以发表新的文章和新的评论;可以修改文章的内容;还可以删除文章和评论。该博客使用固定的用户名和密码,用户名为:admin;密码为admin。该博客除了上述功能外,我们还可以添加其他功能
个人博客设计报告

软件需求说明书

1、引言

a)编写目的

对ASP.NET网页设计有个大概的理解和运用,能掌握一些简单的网页制作方法。熟悉C#语言。

b)背景

软件名称:个人博客。

2、正文

该个人博客是一个小型的博客,它的主要功能有:登录,发表文章,发表评论等。

用户登录博客后,可以查看个人资料;可以查看已经发表过的文章和评价;可以发表新的文章和新的评论;可以修改文章的内容;还可以删除文章和评论。

该博客使用固定的用户名和密码,用户名为:admin;密码为admin。

该博客除了上述功能外,我们还可以添加其他功能,如:

(1)、添加留言板,更多的和读者交流;

(2)、添加音乐盒,让你在更新你的个人博客的同时聆听音乐;

(3)、添加最近访问人的名单,告诉你最近有几个人访问了你的个人博客;

(4)、为每个文章添加相关文章,方便其他读者进行链接阅读;

(5)、相册,用于存放相片等。

3、任务概要

a)目标

提供用户一个简单的博客,能够实现发布文章、修改文章和删除文章;还有能够实现对文章的评价以及删除评价等功能。

b)约束

对发表文章进行约束,只有登录后才能进行发表文章和查看个人资料;对用户输入的Email进行约束,当用户所输入的Email格式不正确时提醒用户。

c)绑定

将数据信息存入数据库中,在博客上用代码将表格与数据库的信息进行绑定,用以实现数据的显示功能。

4、需求规定

a)功能

该博客的主要功能有:用户登录、发表文章、修改或删除文章、发表评价、删除评价等。

[1]:登录个人博客的账号和密码是固定的,其用户名为:admin,密码为:admin。

[2]:只有登录博客后才可以对该博客进行文章的添加和修改。

[3]:不论是否登录博客,都可以对文章进行评价,但是要删除评价只能登录博客后才能进行。

[4]:个人信息的显示只有登录博客后才能看到。

b)基本数据

i.文章的主要数据类型

数据库中文章所在表的名称为:Notes。

文章ID:        NoteID                数字类型(自动编号)

文章标题:        Title                文本类型

文章内容:        Contents            备注类型

张贴时间:        DataTime            日期/时间类型

ii.评价的主要数据类型

数据库中评价所在的表的名称为:Comments。

评价ID:        CommentID            数字类型(自动编号)

对应文章ID:    NoteID                数字类型

游客名称:        Author                文本类型

Email地址:    Email                文本类型

评价内容:        Comment            备注类型

发布时间:        DataTime            日期/时间类型

c)灵活性

该博客的灵活性良好,其基本功能都能在同一个网页上执行,步骤简单。当用户未登录博客时,能提醒用户登录后可以查看个人资料,还可以进行更多的管理。当用户输入的Email地址有误时,会提示用户输入正确的Email地址。

d)输出方式

该博客需要在IE6以上的浏览器使用。

5、开发环境规定

个人博客运用Microsoft Visual Studio 2005编写,其数据库使用ACCESS。

使用说明书

1、编辑软件

该博客使用的编辑软件是Microsoft Visual Studio 2005。

2、数据库

该博客使用的数据库是ACCESS。

3、路径

请将文件夹1080417435放在该路径F盘,使文件中数据库的路径为:F:\\1080417435\\Blog\\App_Data\\Blog.mdb

或则将文件web.config中的Data Source的路径改成数据库所在的位置的路径。

4、密码

使用博客是请打开登录网页Login.aspx,用户名和密码都为:admin。

概要设计说明书

1、引言

a)编写目的

对ASP.NET网页设计有个大概的理解和运用,能掌握一些简单的网页制作方法。熟悉C#语言。

b)背景

软件名称:个人博客。

2、总体设计

a)需求规定

该博客的主要功能有:用户登录、发表文章、修改或删除文章、发表评价、删除评价等。

[1]:登录个人博客的账号和密码是固定的,其用户名为:admin,密码为:admin。

[2]:只有登录博客后才可以对该博客进行文章的添加和修改。

[3]:不论是否登录博客,都可以对文章进行评价,但是要删除评价只能登录博客后才能进行。

[4]:个人信息的显示只有登录博客后才能看到。

b)运行环境

个人博客运用Microsoft Visual Studio 2005编写,其数据库使用ACCESS。

c)基本设计概念和处理流程

根据其需求规定先建立数据库,在根据数据库和需求规定进行编写网页。

i.登录系统:

判断用户名和密码是否正确。如不正确,提示用户并让用户重新登录。如果正确,登录到博客主页面,并提供用户显示个人资料、添加、修改、删除文章和评价等功能。

ii.发表文章

用户只有在登录成功后才可以发表文章。发表的文章必须输入标题,如果没有输入,则提示用户标题不能为空,让用户重新输入。

iii.修改文章

用户只有在登录成功后才可以对文章进行修改和删除。在删除文章时,其对应的评价一并删除。

iv.发表评价

发表评价在登录前和登录后都能进行评价,评价是必须输入游客名,如游客名为空,则提示用户游客名不能为空,让用户重新输入。

3、设计和运行结果

a)登录

i.新建一个网页命名为 Login.aspx 。在主界面插入一个层,并添加背景图片。

ii.在层内插入4行2列的表格,添加文字和文本使其显示如下图登录界面:

      用户名文本ID为:boxcontent;

密码文本ID为Password,类型为TextMode="Password";

Cookie标签ID为Persistent,类型CssClass="boxcontent",其功能为保存用户名。

    按钮登录ID为LoginUser,行为OnClick="LoginUser_Click"。

iii.在表格下方添加一个Lable,内容为“用户名或者密码不正确,请重新登录!”。文本颜色红色,不可见。其属性为:ID="InvalidLogin"、ForeColor="Red" 、Visible="False"。

iv.在代码文件Login.aspx.cs中添加代码如下控制登录:

protected void Page_Load (object sender, EventArgs e) {

              if (!IsPostBack)

                 if (Request.Params["logout"] == "true")

                    FormsAuthentication.SignOut ();

           }

           protected void LoginUser_Click (object sender, EventArgs e) {

              // 检查用户名和密码

          if (FormsAuthentication.Authenticate (UserName.Text, Password.Text)) {

                 // 如果检查通过,保存Cookie

FormsAuthentication.SetAuthCookie (UserName.Text, Persistent.Checked);

                 // 重定向到Default.aspx

                Response.Redirect ("Default.aspx", true);

              }

              else

                 InvalidLogin.Visible = true; //登录失败显示Lable

         }

v.登录界面

vi.登录的控制

在web.config文件中可以设置登录的用户名和密码,其代码如下:

    

        

            

                

            

        

    

在该文件中还需定义数据库的位置,即将Data Source的路径改成数据库所在的位置的路径。

b)主界面

登录成功后则进入主界面。主界面的设计包括博客标题,个人资料,日历,登录、退出按钮的设计等。先给主界面添加一个5*3的表格,使其构成一个框架。

i.博客标题

将第一行合并单元格,添加背景图片后,在添加两个文本按钮“登录”和“退出”。对齐格式为右对齐。

两个文本按钮的代码如下:

登录

退出

在代码文件Default.aspx.cs文件中添加代码控制这两个文本按钮:

protected void SetVisible(bool IsMasterLogined)

{

HyperLink_Login.Visible = !IsMasterLogined;

HyperLink_Logout.Visible = IsMasterLogined;

}//控制登录按钮在用户未登录是显示,退出按钮在用户登录后显示。

将第二行合成单元格,添加背景图片和文本标题。其结果为:

ii.个人资料

个人资料与登录、退出文本按钮一样,在用户登录前,显示的是文本提示“登录后可查看个人资料,还可以进行更多管理”,用户登录后显示个人资料,其代码同上在文件Default.aspx.cs的protected void SetVisible(bool IsMasterLogined)中添加:

HyperLink_DngAn.Visible = IsMasterLogined;//个人资料

HyperLink1.Visible = !IsMasterLogined;//登录前的文本

            个人资料在用户登录前和登录后显示如下:

 

iii.日历

为博客添加如下图所示日历:

其设计代码如下:

控制代码如下:

    protected void Calendar1_SelectionChanged(object sender, EventArgs e)

    {

        Session["FromDate"] = Calendar1.SelectedDates[0];

        Session["ToDate"] = Calendar1.SelectedDates[Calendar1.SelectedDates.Count - 1].AddDays(1);

        DataBind();

    }

c)文章列表

文章列表使用的是工具箱中数据栏里的GridView,将GridView拖至表格第三行的左边单元格内,然后添加数据库内的数据,过程如下图步骤:

1.在选择数据源下拉列表中选择新建数据源,发开窗口如下:

2.选择Access数据库,点击确定,出现如下窗口:

3.选择浏览,找到我们的数据库后单击确定:

4.在指定来自表或试图的列中选择数据库表Notes中的数据Title,点击下一步即可完成。

则主界面的总体显示如下图:

d)文章显示、添加文章和文章的管理

i.文章的显示

文章的显示方法与文章列表相同,使用的是工具箱中数据栏的DetailsView,用同样的方法绑定数据库,在数据库表Notes中选择Title、Contents、DateTime。

在显示的同时,给用户提供对文章的管理,即修改、删除和发表评论。其设计代码如下:

修改

删除

发表评论

ii.添加文章界面

新建一个移动WEB用户控件命名为:NoteEditor.ascx。在界面添加文字、文本框、按钮和隐藏属性。并在NoteEditor.ascx.cs文件中定义它们的属性。我们添加文章时,我们的标题应不能为空,这在按钮提交是先判断标题是否为空,代码如下:

protected void Button1_Click (object sender, EventArgs e) {

           string a;

              a = TextBox1.Text;

           if (a == "")

               Label2.Text = "用户名不能为空";

             else if (Submit_Note != null)

                 Submit_Note (sender, e);

}

添加界面如下:

如果标题不为空,则允许添加文章,添加代码如下:

public void SetInsert (){

              Title = "";

              Contents = "";

              IsModify = false;

              Button_Text = "提交新消息";

           }

        将设计好的界面拉至主界面的正中间,在其上面添加一个文字按钮:发表文章,其在用户登录前不显示。

iii.文章管理

文章管理就是对文章的修改和删除的管理,设计代码如上显示,其控制代码如下:

protected void LinkButton_Modify_Note_Click(object sender, EventArgs e){

String str_Title = String.Empty, str_Contens = String.Empty, str_DateTime = String.Empty;

int int_NoteID = Convert.ToInt32(GridView1.SelectedValue);

myBlog.GetNoteData(int_NoteID, ref str_Title, ref str_Contens, ref str_DateTime);

NoteEditor1.SetModify(str_Title, str_Contens, int_NoteID);

NoteEditor1.Visible = true;

CommentEditor1.Visible = false;

}

protected void LinkButton_Delete_Note_Click(object sender, EventArgs e) {

int int_NoteID = Convert.ToInt32(GridView1.SelectedValue);

myBlog.DeleteNote(int_NoteID);

DataBind();

NoteEditor1.Visible = false;

CommentEditor1.Visible = false;

}

e)添加评价和评价的管理

i.添加评价界面

添加评价界面的方法同添加发表文章界面的方法,即新建一个移动WEB用户控件文件命名为:CommentEditor.ascx。

ii.评价的显示和管理

评价的显示是在主界面中使用工具箱中数据栏下的Repearter,其设计代码如下:

发表于:

Email: <%# Eval("Email") %>

评论:


4、数据库内容的读取和各个按钮的动作

新建一个文件夹命名为APP_Code,在文件夹内新建一个脚本文件Blog.cs,在其中添加连接数据库和按钮动作的代码:

public class Blog{

      private OleDbConnection m_Connection;

      private String m_brChar = "\\n";

      public Blog (){

m_Connection = new OleDbConnection (ConfigurationManager.AppSettings["ConnString"]); ;

      }

      private void ExecuteCommand (OleDbCommand cmd){

         cmd.Connection = m_Connection;

         try{

            m_Connection.Open ();

            cmd.ExecuteNonQuery ();

         }

         finally{

            m_Connection.Close ();

         }

      }

      public DataSet GetNotes (DateTime fromDate, DateTime toDate)

      {

         DataSet ds = new DataSet ();

         // 查询特定时间段内张贴的文章,填入DataSet的MyNotes表中

         OleDbDataAdapter da = new OleDbDataAdapter ("SELECT * FROM Notes WHERE DateTime BETWEEN ? AND ? ORDER BY DateTime DESC", m_Connection);

         da.SelectCommand.Parameters.Add ("FromDate", OleDbType.Date).Value = fromDate;

         da.SelectCommand.Parameters.Add ("ToDate", OleDbType.Date).Value = toDate.AddDays (1);

         m_Connection.Open ();

         da.Fill (ds, "MyNotes");

         // 关闭数据库连接

         m_Connection.Close ();

         return ds;  // 返回数据集

      }

      public DataSet GetComments (int noteID, ref int count) {

         DataSet ds = new DataSet ();

         String selectCmd = "SELECT * FROM Comments WHERE NoteID = ? ORDER BY DateTime DESC";

         OleDbDataAdapter da = new OleDbDataAdapter (selectCmd, m_Connection);

         da.SelectCommand.Parameters.Add ("NoteID", OleDbType.Integer).Value = noteID;

         m_Connection.Open ();

         da.Fill (ds, "MyComments");

         count = ds.Tables["MyComments"].Rows.Count;

         m_Connection.Close ();

         return ds;

      }

      public void InsertNote (String title, String contents) {

         OleDbCommand cmd = new OleDbCommand ("INSERT INTO Notes (Title, Contents) VALUES (?, ?)");

         cmd.Parameters.Add ("Title", OleDbType.VarChar).Value = title;

cmd.Parameters.Add ("Contents", OleDbType.LongVarChar).Value = contents.Replace (m_brChar, "
");

         ExecuteCommand (cmd);

      }

      public void InsertComment (int noteID, String author, String email, String comment){

         OleDbCommand cmd =

            new OleDbCommand ("INSERT INTO Comments(NoteID, Author, Email, Comment) VALUES(?, ?, ?, ?)");

         cmd.Parameters.Add ("NoteID", OleDbType.Integer).Value = noteID;

         cmd.Parameters.Add ("Author", OleDbType.VarChar).Value = author;

         cmd.Parameters.Add ("Email", OleDbType.VarChar).Value = email;

cmd.Parameters.Add ("Comment", OleDbType.LongVarChar).Value = comment.Replace (m_brChar, "
");

         ExecuteCommand (cmd);

         // 如果邮件提醒功能打开,则发送一封邮件给博客主人

         String sendNotifications = ConfigurationManager.AppSettings["SendNotifications"];

         if (sendNotifications != null && sendNotifications == "1")

         {

            String noteTitle = String.Empty, noteDate = String.Empty;

            // 读取父消息的细节(标题和发布时间)

            cmd.CommandText = "SELECT Title, Date FROM Notes WHERE NoteID = " + noteID;

            m_Connection.Open ();

            OleDbDataReader reader = cmd.ExecuteReader (CommandBehavior.CloseConnection);

            if (reader.Read ()){

               noteTitle = reader["Title"].ToString ();

               noteDate = ((DateTime) reader["Date"]).ToString ();

               reader.Close ();

            }

            // 创建Email提醒的内容

            String mailMsg = String.Format ("{0} (email: {1} 刚刚在你的博客上张贴了评论)"

               + "“{2}”,张贴时间为{3}。评论内容如下:{4}{4}{5}

               author, email, noteTitle, noteDate, Environment.NewLine, comment);

            // 发送邮件

            SmtpClient smtpClient = new SmtpClient ();

            smtpClient.Send ("miniBlog

               ConfigurationManager.AppSettings["AdminEmail"],

               "新的评论", mailMsg);

         }

      }

      public void UpdateNote (int noteID, String title, String contents)

      {

         OleDbCommand cmd = new OleDbCommand ("UPDATE [Notes] SET [Title] = ?, [Contents] = ? WHERE [NoteID] = ?");

         cmd.Parameters.Add ("Title", OleDbType.VarChar).Value = title;

cmd.Parameters.Add ("Contents", OleDbType.LongVarChar).Value = contents.Replace (m_brChar, "
");

         cmd.Parameters.Add ("NoteID", OleDbType.Integer).Value = noteID;

         ExecuteCommand (cmd);

      }

      public void UpdateComment (int commentID, String author, String email, String comment)

      {

         OleDbCommand cmd = new OleDbCommand ("UPDATE Comments SET Author = ?, Email = ?,"

            + " Comment = ? WHERE CommentID = ?");

         cmd.Parameters.Add ("Author", OleDbType.VarChar).Value = author;

         cmd.Parameters.Add ("Email", OleDbType.VarChar).Value = email;

cmd.Parameters.Add ("Comment", OleDbType.LongVarChar).Value = comment.Replace (m_brChar, "
");

         cmd.Parameters.Add ("CommentID", OleDbType.Integer).Value = commentID;

         ExecuteCommand (cmd);

      }

      public void DeleteNote (int noteID){

         OleDbCommand cmd = new OleDbCommand ("DELETE FROM Notes WHERE NoteID = " + noteID);

         ExecuteCommand (cmd);

         cmd.CommandText = "DELETE FROM Comments WHERE NoteID = " + noteID;

         ExecuteCommand (cmd);

      }

      public void DeleteComment (int commentID){

         OleDbCommand cmd = new OleDbCommand ("DELETE FROM Comments WHERE CommentID = " + commentID);

         ExecuteCommand (cmd);

      }

      public void GetNoteData (int noteID, ref String title, ref String contents, ref String post_time){

         OleDbCommand cmd = new OleDbCommand ("SELECT * FROM Notes WHERE NoteID = "

            + noteID, m_Connection);

         try{

            m_Connection.Open ();

            OleDbDataReader reader = cmd.ExecuteReader (CommandBehavior.CloseConnection);

            if (reader.Read ()){

               title = reader["Title"].ToString ();

contents = reader["Contents"].ToString ().Replace ("
", m_brChar);

               post_time = reader["DateTime"].ToString ();

               reader.Close ();

            }

         }

         finally {

            m_Connection.Close ();

         }

      }

      public void GetCommentData (int commentID, ref String author, ref String email, ref String comment) {

         OleDbCommand cmd = new OleDbCommand ("SELECT * FROM Comments WHERE CommentID = "

            + commentID, m_Connection);

         try{

            m_Connection.Open ();

            OleDbDataReader reader = cmd.ExecuteReader (CommandBehavior.CloseConnection);

            if (reader.Read ()){

               author = reader["Author"].ToString ();

               email = reader["Email"].ToString ();

comment = reader["Comment"].ToString ().Replace ("
", m_brChar);

               reader.Close ();

            }

         }

         finally{

            m_Connection.Close ();

         }    }   }

5、系统数据结构设计

a)文章的主要数据类型

数据库中文章所在表的名称为:Notes。

文章ID:        NoteID                数字类型(自动编号)

文章标题:        Title                文本类型

文章内容:        Contents            备注类型

张贴时间:        DataTime            日期/时间类型

b)  评价的主要数据类型

数据库中评价所在的表的名称为:Comments。

评价ID:        CommentID            数字类型(自动编号)

对应文章ID:    NoteID                数字类型

游客名称:        Author                文本类型

Email地址:    Email                文本类型

评价内容:        Comment            备注类型

发布时间:        DataTime            日期/时间类型

6、博客整体显示

文档

个人博客设计报告

个人博客设计报告软件需求说明书1、引言a)编写目的对ASP.NET网页设计有个大概的理解和运用,能掌握一些简单的网页制作方法。熟悉C#语言。b)背景软件名称:个人博客。2、正文该个人博客是一个小型的博客,它的主要功能有:登录,发表文章,发表评论等。用户登录博客后,可以查看个人资料;可以查看已经发表过的文章和评价;可以发表新的文章和新的评论;可以修改文章的内容;还可以删除文章和评论。该博客使用固定的用户名和密码,用户名为:admin;密码为admin。该博客除了上述功能外,我们还可以添加其他功能
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top