资源描述
※※※※※※※※※
※※
※※
※※
※※※※※※※※※
2013级
数据库应用系统开发
xxxx大学
集中实践报告书
课题名称
报刊订阅管理系统
姓 名
学 号
系、 部
计算机系
专业班级
指导教师
2015年 6 月 30 日
一、设计任务及要求:
设计任务:报刊订阅管理系统的开发
要 求:
本系统主要有一下功能模块:
(1)登陆功能:登陆系统为身份验证登陆,分为管理员登陆和一般用 户登陆。
(2)录入新信息功能:管理员录入新用户和报刊信息;普通用户修改个人信息。
(3)订阅功能:普通用户可以订阅报刊。
(4)查询功能:用户和管理员可以查询各自所需的信息。
(5)统计功能:用户和管理员可以统计各自所需的信息。
(6)系统维护功能:管理员可以对数据库里的信息进行备份和恢复。
二、指导教师评语:
三、成绩
指导教师签名:
年 月 日
报刊订阅管理系统的开发
1选题的意义
现在生活中,人们对知识和对时事的渴求也越来越高,而获得知识的一个主要途径就是通过书籍报刊杂志,所以通过开发一个报刊订阅管理系统让人们能够方便快捷的订阅各种报刊杂志。
通过参考其他信息管理系统,制作该报刊订阅管理系统,实现登陆、注册、查询、添加、删除、修改信息等功能。
2 系统功能需求分析
2.1系统概述
报刊订阅管理系统
登录功能
录入新信息
订阅功能
统计功能
查询功能
图1 报刊订阅管理系统功能
2.2系统的组成及各模块的功能
系统由登陆、录入、订阅、查询、统计等功能模块组成:
(1)登陆功能:登陆系统为身份验证登录。分为管理员登录和一般用户登录。分别通过不同的用户名和密码进入报刊订阅管理界面,新的用户需要注册。
(2)录入新信息功能:对于管理员,包括新用户信息和新报刊信息的录入功能,信息一旦提交就存入到后台数据库中;普通用户自行注册进行可以修改个人信息。
(3)订阅功能:用户可以订阅报刊,系统自动计算所需金额,并显示在界面上;管理员不可订阅报刊,必须以用户身份订阅报刊。
(4)查询功能:用户可以查询并显示自己所订阅的信息;管理员可以按人员、报刊、部门分类查询。查询出的信息显示在界面上,并且可以预览和打印出结果。
(5)统计功能:管理员可以按用户、部门、报刊统计报刊的销售情况,并对一些重要的订阅信息进行统计;普通用户可以统计出自己的订阅情况,并且可以预览和打印出结果。
2.3系统的运行环境
Visual Studio 2008
Microsoft SQL Sever 2005
3系统设计
3.1总体结构设计
图2 报刊订阅管理系统功能框图
报刊订阅管理系统
登陆功能
录入新信息
订阅功能
用户登陆
管理员登陆
注册
管理员
普通用户
查询功能
统计功能
用户信息
报刊信息
修改个人信息
仅限用户订阅
用户
管理员
用户
管理员
订阅信息
人员
报刊
部门
订阅情况
用户
部门
报刊
3.2数据库实现
表1 管理员信息表
字段名
类型
长度
备注
aname
varchar
20
主键 自动增长
password
varchar
30
表2 用户信息表
字段名
类型
长度
备注
userid
varchar
20
主键 自动增长
password
varchar
30
uname
varchar
20
idcard
char
18
phone
varchar
20
adress
varchar
100
did
varchar
20
表3 部门信息表
字段名
类型
长度
备注
did
varchar
20
主键
dname
varchar
40
表4 报刊种类信息表
字段名
类型
长度
备注
sortid
varchar
10
主键
sortname
varchar
40
表5 报刊信息表
字段名
类型
长度
备注
newsid
varchar
20
主键
newsname
varchar
40
newsoffice
varchar
40
period
varchar
10
price
smallmoney
introduce
varchar
100
sortid
varchar
10
表6 订阅信息表
字段名
类型
长度
备注
orderid
varchar
20
主键
userid
varchar
20
newsid
varchar
20
ordernum
float
10
ordermon
datetime
4系统实现
4.1登录模块的设计与实现
图3 登陆界面
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
public partial class 登陆 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
faillog.Text = "";
}
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection connection = new SqlConnection(ConfigurationManager.AppSettings["sqlcon"]);
connection.Open();
if (!CheckBox1.Checked)
//if (RadioButtonList1.SelectedIndex == 0)
{
string cmdusers = "select * from users where userid='" + userid.Text + "'";
SqlCommand cmdu = new SqlCommand(cmdusers, connection);
SqlDataReader rdu = cmdu.ExecuteReader();
if (rdu.Read())
{
string dbpassword = rdu.GetString(rdu.GetOrdinal("password"));
if (password.Text == dbpassword)
{
Session["userid"] = userid.Text.ToString();
Response.Redirect("用户/用户页面.aspx");
}
else
{
faillog.Text = "账号/密码错误";
}
}
else
faillog.Text = "该用户不存在";
}
else
{
string cmdadmin = "select * from adminuser where aname='" + userid.Text + "'";
SqlCommand cmda = new SqlCommand(cmdadmin, connection);
SqlDataReader rda = cmda.ExecuteReader();
if (rda.Read())
{
string dbpassword = rda.GetString(rda.GetOrdinal("password"));
if (password.Text == dbpassword)
{
Session["userid"] = userid.Text.ToString();
Response.Redirect("管理员/管理员页面.aspx");
}
else
faillog.Text = "账号/密码错误";
}
else
faillog.Text = "该用户不存在";
}
connection.Close();
}
protected void Button2_Click(object sender, EventArgs e)
{
Response.Redirect("注册页面.aspx");
}
}
4.2其他模块的设计与实现
(1)用户信息模块
图4 用户界面
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
public partial class 用户_用户页面 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
bind();
}
public void bind()
{
SqlConnection connection = new SqlConnection(ConfigurationManager.AppSettings["sqlcon"]);
string str = " select * from users where userid = '" + Session["userid"] + "'";
SqlDataAdapter da = new SqlDataAdapter(str, connection);
DataSet ds = new DataSet();
connection.Open();
da.Fill(ds, "users");
usergrid1.DataSource = ds;
usergrid1.DataKeyNames = new string[] { "userid" };
usergrid1.DataBind();
connection.Close();
}
protected void userid1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
usergrid1.PageIndex = e.NewPageIndex;
bind();
}
protected void usergrid1_RowEditing(object sender, GridViewEditEventArgs e)
{
usergrid1.EditIndex = e.NewEditIndex;
bind();
}
protected void userid1_Rowupdating(object sender, GridViewUpdateEventArgs e)
{
// string connstring = "Data Source = localhost;Integrated Security = True;Initial Catalog = 报刊订阅管理系统;";
// SqlConnection connection = new SqlConnection(connstring);
SqlConnection connection = new SqlConnection(ConfigurationManager.AppSettings["sqlcon"]);
connection.Open();
string updatestr = "update users set uname='" + ((TextBox)(usergrid1.Rows[e.RowIndex].Cells[0].Controls[0])).Text.ToString().Trim() + "', idcard='" + ((TextBox)(usergrid1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() + "', phone='" + ((TextBox)(usergrid1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim() + "' , address='" + ((TextBox)(usergrid1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim() + "' where userid='" + Session["userid"] + "'";
// string sqlstr = "update student set Number='" + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[0].Controls[0])).Text.ToString().Trim() + "', Name='" + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() + "'where Number='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
SqlCommand cmd = new SqlCommand(updatestr, connection);
cmd.ExecuteNonQuery();
connection.Close();
usergrid1.EditIndex = -1;
bind();
}
protected void userid1_Canceling(object sender, GridViewCancelEditEventArgs e)
{
usergrid1.EditIndex = -1;
bind();
}
}
(2)管理员信息模块
图5 管理员界面
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
public partial class 管理员_管理员页面 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
(3)注册模块
图6 注册界面
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
public partial class 注册页面 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
public int register(int a)
{
int t=0;
return t+a;
}
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection connection = new SqlConnection(ConfigurationManager.AppSettings["sqlcon"]);
connection.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "select * from users where userid = '"+userid.Text+"'";
cmd.Connection = connection;
SqlDataReader rd = cmd.ExecuteReader();
if (userid.Text.Length >= 6 & userid.Text.Length <= 20)
{
if (!rd.Read())
{
rd.Close();
if (password1.Text.Length >= 6 & userid.Text.Length <= 30)
{
if (password2.Text == password1.Text)
{
if (name.Text.Length <= 20)
{
if (idcard.Text.Length == 18)
{
cmd.CommandText = "insert into users(userid,password,uname,idcard,phone,address,did) values('" + userid.Text + "','" + password1.Text + "','" + name.Text + "','" + idcard.Text + "','" + phone.Text + "','" + address.Text + "','1')";
cmd.ExecuteNonQuery();
ClientScript.RegisterStartupScript(GetType(), "message", "<script>alert('成功!');</script>");
}
else
ClientScript.RegisterStartupScript(GetType(), "message", "<script>alert('身份证号不符合规格(18位)');</script>");
}
else
ClientScript.RegisterStartupScript(GetType(), "message", "<script>alert('姓名过长(10个汉字以内)');</script>");
}
else
ClientScript.RegisterStartupScript(GetType(), "message", "<script>alert('两次输入的密码不一样');</script>");
}
else
ClientScript.RegisterStartupScript(GetType(), "message", "<script>alert('密码不符合规格(6-30位字符)');</script>");
}
else
ClientScript.RegisterStartupScript(GetType(), "message", "<script>alert('对不起,此账号已被注册');</script>");
}
else
ClientScript.RegisterStartupScript(GetType(), "message", "<script>alert('账号名不符合规则:请输入6到20位用户名');</script>");
connection.Close();
}
}
5设计体会
5.1总结
本次程序设计是由二人共同完成,经历了从选择题目,整体分析,画流程图,设计模板,自己编写程序,上网查找标准代码,完善所编程序到调试程序的过程,其中我们有共同合作的欢乐,也有分工进行编写程序的喜悦,我们分工编写不同的函数,再将各自所编程序组成整体,在我们将程序进行整体组合时发现我们的程序无法自行输入矩阵,通过我们的共同研究,找到了我们所编程序的不妥之处,并进行了改进,编写程序的过程真是一个幸福的过程,让我找回了在编程道路上曾经失去的信心,让我感受到了伟大的团结力量。
5.2存在的主要问题
我们对于数据库的使用还不是很熟悉,在编写程序代码的时候经验不足,也走向过很多误区。
参考文献
[1] 王珊 萨师煊 ,《数据库系统概论》, 高等教育出版社, 2006.5
[2] 郭靖,《ASP.NET开发技术大全》,清华大学出版社,2009-5
[3] 张跃廷,《ASP NET开发实战宝典》,清华大学出版社,2010-1
展开阅读全文