网络应用开发课程设计报告.docx
《网络应用开发课程设计报告.docx》由会员分享,可在线阅读,更多相关《网络应用开发课程设计报告.docx(19页珍藏版)》请在冰豆网上搜索。
网络应用开发课程设计报告
计算机科学与技术学院课程设计成绩单
课程名称:
网络应用开发指导教师:
胡静
姓名
杨师
性别
女
学号
2
班级
网络工程1303班
综合成绩
成绩等级
程序运行情况
(占总成绩20%)
□能正确运行□基本能正确运行□能运行但结果不完善
(20分)(15分)(10分)
程序功能的完善程度
(占总成绩10%)
□完善□基本完善□不完善
(10分)(8分)(5分)
程序结构的合理性
(占总成绩10%)
□合理□基本合理□不太合理
(10分)(8分)(5分)
对问题的答辩情况
(占总成绩40%)
□概念正确有创新□能正确回答所有问题□基本能正确回答
(40分)(35分)(30分)
□部分问题回答概念不清晰
(20分)
学生的工作态度与独立工作能力
(占总成绩10%)
□工作态度认真能独立完成任务□工作态度认真但独立性较差
(10分)(8分)
□工作态度基本认真但缺乏独立性
(5分)
设计报告的规范性
(占总成绩10%)
□符合规范□基本符合规范□规范性较差
(10分)(8分)(5分)
A:
90分~100分;A-:
85分~89分;B+:
82~84分;B:
78~81分;B-:
75分~77分;
C+:
72分~74分;C:
68分~71分;C-:
64~67分;D:
60~63分;F:
0分~59分。
武汉科技大学计算机科学与技术学院制表
计算机科学与技术学院
课程设计报告
课程名称:
网络应用开发
专业:
网络工程
班级:
2013级03班
学号:
2
姓名:
杨师
指导老师:
胡静
一、设计目的
《网络应用开发》是一门实用性、综合性较强的课程。
学生在学完本门课程后,不仅要掌握Web设计的方法和技术,更重要的是能综合应用所学的网页设计、高级编程语言及数据库知识,具有实际开发动态网站的能力。
本课程设计旨在使学生通过完成一个小型的Web应用系统,实现从网站规划、设计、编码和调试的全过程,将理论知识和实践知识相结合,提高学生实际开发网站的动手能力。
二、设计内容
在线留言本
1、用户能够注册
2、用户登录后
●查看并编辑用户注册信息
●首页分页显示全部的留言主题
●可以留言,或对他人的留言进行回复
●对自己的留言进行修改或删除
可增加的功能:
下载专区功能,提供文件的上传、显示和下载
三、系统总体设计
四、数据库设计
SQLServer新建数据库MessageBox,在其中新建3张表,分别为User(用户表)、Send(留言表)、Reply(回复表):
User表:
UserName
Password
Sex
Email
PhoneNumber
Master
Fancy
Birthday
PS
用户名(key)
登录密码
性别
邮箱
手机号码
专业擅长
业余爱好
生日
备注
1.用户经过注册页面Regist.aspx注册后信息插入User表
2.用户经过登录页面Welcome.aspx登录时比对User表,信息核对正确即登陆成功
3.用户经过编辑个人资料页面Edit.aspx修改个人信息时更新User表
Send表:
LeavewordID
Title
Body
Createtime
LUserName
留言编号(key)
留言主题
留言内容
留言时间
留言人的用户名
1.在留言板主页Main.aspx页面可以发表个人留言,同时给每条留言分配留言ID
2.在个人留言记录Home.aspx页面对自己的留言及回复修改或删除的时候更新Send表
Reply表:
ReplyID
Body
Createtime
LeavewordID
回复编号(key)
回复内容
回复时间
留言编号
1.在留言板主页Main.aspx页面可以选择任意一条留言来回复,同时给每条回复分配回复ID
2.在个人留言记录Home.aspx页面对自己的留言及回复修改或删除的时候更新Reply表
五、系统功能设计与实现
1.Welcome.aspx留言板欢迎页面
登录按钮点击事件:
protectedvoidButton1_Click(objectsender,EventArgse)
{
GridView1.DataBind();
if(Page.IsValid==true)
{
Session["user"]=TextBox1.Text;
Response.Redirect("~/showmessage.aspx");
}
}
用户名检测验证功能:
protectedvoidCustomValidator1_ServerValidate(objectsource,ServerValidateEventArgsargs)
{
GridView1.DataBind();
if(GridView1.Rows.Count==0)
args.IsValid=false;
}
2.Regist.aspx注册页面
用户名检测按钮点击事件:
protectedvoidCustomValidator1_ServerValidate(objectsource,ServerValidateEventArgsargs)
{
GridView1.DataBind();
if(GridView1.Rows.Count==0)
args.IsValid=true;
else
args.IsValid=false;
}
籍贯级联功能:
privatestring[]hunan={"常德市","长沙市","郴州地区","张家界市","衡阳市","怀化市","永州市","娄底市","邵阳市","湘潭市","湘西自治区","益阳市","岳阳市","株洲市"};
privatestring[]hubei={"鄂州市","恩施自治州","黄冈市","黄石市","荆门市","荆州市","十堰市","随州市","武汉市","咸宁市","襄樊市","孝感地区","孝感市","宜昌地区","宜昌市","郧阳地区"};
protectedvoidBindCity(Stringsheng,DropDownListddl){
if(sheng.Equals("湖南省"))
{
ddl.Items.Clear();
ddl.Items.Add(newListItem("",""));
for(inti=0;i{
ddl.Items.Add(newListItem(hunan[i]));
}
}
elseif(sheng.Equals("湖北省"))
{
ddl.Items.Clear();
ddl.Items.Add(newListItem("",""));
for(inti=0;i{
ddl.Items.Add(newListItem(hubei[i]));
}
}
}
提交按钮点击事件:
protectedvoidButton1_Click(objectsender,EventArgse)
{
stringstr="";
stringstr1="";
Session["username"]=username.Text;
Session["password"]=password.Text;
Session["pro"]=pro.SelectedValue;
Session["city"]=city.SelectedValue;
Session["sex"]=sex.SelectedValue;
Session["email"]=email.Text;
Session["phone"]=phone.Text;
for(inti=0;i{
if(good.Items[i].Selected)
{
str1+=good.Items[i].Value+",";
}
}
try
{
str=str.Substring(0,str.Length-1);
}
catch{}
for(inti=0;i{
if(like.Items[i].Selected)
{
str+=like.Items[i].Value+",";
}
}
try
{
str=str.Substring(0,str.Length-1);
}
catch{}
birth.Text=Calendar1.SelectedDate.ToShortDateString();
Session["good"]=str1;
Session["likes"]=str;
Session["birth"]=birth.Text;
Session["extra"]=extra.Text;
if(Page.IsValid)
{
SqlDataSource1.Insert();
Response.Redirect("~/Welcome.aspx");
}
}
3.留言板主页
导航栏四个按钮点击事件:
protectedvoidButton2_Click(objectsender,EventArgse)
{
Response.Redirect("~/Edit.aspx");
}
protectedvoidButton3_Click(objectsender,EventArgse)
{
Response.Redirect("~/download.aspx");
}
protectedvoidButton1_Click(objectsender,EventArgse)
{
Response.Redirect("~/Home.aspx");
}
我要留言点击事件:
protectedvoidsend_Click(objectsender,EventArgse)
{
Panel1.Visible=true;
}
留言发表:
protectedvoidsubmit_Click(objectsender,EventArgse)
{
Session["Ucreatetime"]=DateTime.Now.ToString();
SqlDataSource2.Insert();
Response.Redirect("~/showmessage.aspx");
}
选择留言触发事件:
protectedvoidGridView2_SelectedIndexChanged(objectsender,EventArgse)
{
Session["Rid"]=GridView2.Rows[GridView2.SelectedIndex].Cells[1].Text;
}
回复按钮点击:
protectedvoidButton1_Click(objectsender,EventArgse)
{
TextBox1.Visible=true;
Button2.Visible=true;
}
protectedvoidButton2_Click(objectsender,EventArgse)
{
Session["Mbody"]=TextBox1.Text;
Session["Mcreatetime"]=DateTime.Now.ToString();
SqlDataSource2.Insert();
Response.Redirect("~/main.aspx");
}
protectedvoidGridView2_SelectedIndexChanged(objectsender,EventArgse)
{
Session["Rid"]=GridView2.Rows[GridView2.SelectedIndex].Cells[1].Text;
}
}
效果图:
4.Home.aspx页面查看个人留言记录
个人留言表选择触发事件:
protectedvoidGridView1_SelectedIndexChanged(objectsender,EventArgse)
{
Session["id"]=GridView1.Rows[GridView1.SelectedIndex].Cells[1].Text;
Response.Redirect("~/Todo.aspx");
}
效果:
个人回复表选择触发事件:
protectedvoidGridView2_SelectedIndexChanged(objectsender,EventArgse)
{
Session["Rid"]=GridView2.Rows[GridView2.SelectedIndex].Cells[1].Text;
Response.Redirect("~/Todo.aspx");
}
}
效果:
5.Edit.aspx页面编辑个人资料
直接使用数据源控件绑定更新User表的信息:
SqlDataSourceID="SqlDataSource1"runat="server"ConnectionString="<%$ConnectionStrings:
messageConnectionString%>"
SelectCommand="SELECT[Id],[username],[password],[sex],[procy],[Email],[phone],[good],[likes],[birth],[extra]FROM[User]WHERE([username]=@username)"UpdateCommand="UPDATE[User]SETusername=@username,password=@password,sex=@sex,procy=@procy,Email=@email,phone=@phone,good=@good,likes=@likes,birth=@birth,extra=@extraWHERE([username]=@username)"
>
SessionParameterName="username"SessionField="user"Type="String"/>
QueryStringParameterName="username"/>
QueryStringParameterName="password"/>
QueryStringParameterName="sex"/>
QueryStringParameterName="procy"/>
QueryStringParameterName="email"/>
QueryStringParameterName="phone"/>
QueryStringParameterName="good"/>
QueryStringParameterName="likes"/>
QueryStringParameterName="birth"/>
QueryStringParameterName="extra"/>
SqlDataSource>
DetailsViewID="DetailsView1"runat="server"Height="169px"Width="420px"AutoGenerateRows="False"DataSourceID="SqlDataSource1"style="margin-left:
194px"DataKeyNames="Id">
BoundFieldDataField="Id"HeaderText="Id"SortExpression="Id"InsertVisible="False"ReadOnly="True"/>
BoundFieldDataField="username"HeaderText="username"SortExpression="username"/>
BoundFieldDataField="password"HeaderText="password"SortExpression="password"/>
BoundFieldDataField="sex"HeaderText="sex"SortExpression="sex"/>
BoundFieldDataField="procy"HeaderText="procy"SortExpression="procy"/>
BoundFieldDataField="Email"HeaderText="Email"SortExpression="Email"/>
BoundFieldDataField="phone"HeaderText="phone"SortExpression="phone"/>
BoundFieldDataField="good"HeaderText="good"SortExpression="good"/>
BoundFieldDataField="likes"HeaderText="likes"SortExpression="likes"/>
BoundFieldDataField="birth"HeaderText="birth"SortExpression="birth"/>
BoundFieldDataField="extra"HeaderText="extra"SortExpression="extra"/>
CommandFieldShowEditButton="True"/>
DetailsView>
6.Download.aspx页面上传下载专区
主要后台代码:
protectedvoidPage_Load(objectsender,EventArgse)
{
if(!
Page.IsPostBack){
stringstr=Server.MapPath("~/files/");//页面加载获取下载文件的存放目录
DirectoryInfodir=newDirectoryInfo(str);//获得该目录下的所有文件
[]files=dir.Get();
ListItemitems;//将遍历的文件名称显示在LISTBOX控件中
foreach(infofilesinfiles)
{
items=newListItem();//声明一个ListItem对象
items.Text=info;
items.Value=info;
ListBox1.Items.Add(items);//向ListBox控件中添加数据信息
}
}
}
protectedvoidButton1_Click(objectsender,EventArgse)
{
stringsaveDir=@"\files\";//指定的文件夹要存在
stringappPath=Request.PhysicalApplicationPath;
if(fuImage.HasFile)
{
stringsavePath=appPath+saveDir+fuImage.;
fuImage.SaveAs(savePath);
Label1.Text="上传成功!
";
}
else
Label1.Text="上传失败";
}
protectedBooleanDownLoad(string){
BooleanDok=false;
try{
stringFullPathURL=Server.MapPath();//获取文件下载路径
System.IO.file=newSystem.IO.(FullPathURL);
if()//判断要下载的文件是否存在
{
Response.Clear();//清空response对象中的内容
Response.AddHeader("Content-disposition","attachment;="+HttpUtility.UrlEncode());
Response.AddHeader("Content-Length",());
Response.ContentType="application/octet-stream";
Response.Write);//通过对Response对象执行下载文件的操作
Response.End();//结束Response对象
Response.Flush();//刷新Response对象
Response.Clear();//清空response对象中的内容
Dok=true;
}
else{
this.Page.ClientScr