毕设成品 位置信息管理网站设计(源码+论文)


0 项目说明

位置信息管理网站设计

提示:适合用于课程设计或毕业设计,工作量达标,源码开放


1 研究目的

本课题主要研究实现的是对用户定位的信息进行管理的网站,该网站是无线定位方式传输定位信息,具有一定的实时性、有效性和保密性等特点,可以定位使用该设备的人或宠物的历史位置。将定位的信息存入到数据库中实现信息的智能化管理也是物联网信息检索的又一项发展建设。

2 研究方法

本课题将对无线定位信息进行整合分析,方便用户对自身位置的实时了解。对于相关定位信息的管理将采用权限式,利用网站的实时交互性实现用户对位置信息的管理。方便在紧急情况下确定被定位的事物精准的地理位置。在显示时将引入地图显示及定位功能利用相关的WebGis技术对相关方面扩展。

3 系统实现

系统的各部分功能模块独立开发、调试,然后利用系统集成的方法将定位信息传入数据库。各个功能模块采用事件驱动的方式 与应用程序进行交互,系统部分程序的应用执行是 在后台进行的。
在这里插入图片描述
各模块的结构:
1.权限管理:
该模块有如下功能:管理员可将用户权限设置为管理员,也可以直接添加管理员可以查询已经存在的管理员的信息。
2.用户位置信息管理:
该模块有如下功能:管理员可对该模块进行管理,可以查看所有用户设备的位置信息,可以修改、删除、添加用户的设备信息。
在这里插入图片描述
3.设备管理:
该模块有如下功能:管理员通过该模块可以增加、删除、修改设备类型,用户可以方便地管理自己的已添加的设备,以方便对各个设备位置信息的管理。
4.用户个人信息管理:
该模块有如下功能:用户可以方便地查看、修改自己的个人基本信息,同时可以修改密码。
在这里插入图片描述
5.中心点设置管理:
该模块有如下功能:管理员通过设置经度纬度来规范地图显示时的中心点。
6.位置信息读取显示:
该模块有如下功能:该模块可以通过读取数据库将信息显示在页面上,同时将位置信息一个一个读取画在导入的地图上,并按照定位的时间顺序连接起来。
在这里插入图片描述

4 界面展示

设计并且实现了一个位置信息管理网站设计,用My Eclipse作为开发工具,以SQL Server作为数据库,使用JSP语言开发。该系统界面友好、操作简单,容易维护,适合各种人群使用。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5 论文目录

引言
第1章 绪论
  1.1 论文背景
  1.2 系统开发的意义
  1.3 研究现状和发展趋势
  1.4 论文的基本结构
第2章 系统开发平台及相关技术
  2.1 开发平台简介
  2.2 系统运行环境及配置
第3章 系统需求分析
  3.1 系统业务描述
  3.2 可行性分析
  3.3 功能需求分析
  3.4 分析模型
    3.4.1 业务流程图
    3.4.2 实体模型图(ER图)
    3.4.3 系统用例图
第4章 系统设计
  4.1 概要设计
  4.2 数据库设计
  4.3 功能模块设计流程图
  4.4 软件界面设计
第5章系统编码与测试
  5.1 系统编码
  5.2 系统测试
结论与展望
致谢
参考文献
附录
  附录A外文文献及其译文
  附录B 参考文献的题录及摘要

6 项目源码

using RL.DBUtility;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Net;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApp
{
    public partial class Index2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                BindData();
            }
        }
        //绑定gvParts和gvNeed
        public void BindData()
        {
            //查询数据
            StringBuilder sb = new StringBuilder();
            sb.AppendLine("SELECT C.PartId,C.Num,C.PartName,S.Name,C.InTime,C.Quantity,C.UnitPrice");
            sb.AppendLine("FROM CarParts AS C INNER JOIN Supplies AS S");
            sb.AppendLine("ON C.FromDepartId = S.Id;");
            DataSet ds = DbHelperSQL.Query(sb.ToString());
            //将数据绑定到gvParts上展示
            gvParts.DataSource = ds.Tables[0];
            gvParts.DataBind();
            //查询数据并绑定显示,绑定需求商表
            string sql = "SELECT Id,IsDeliver,Num,Name,Principal,Address,Phone FROM NeedMerchant;";
            DataSet dsNeed = DbHelperSQL.Query(sql);
            gvNeedMer.DataSource = dsNeed;
            gvNeedMer.DataBind();
        }
        //分页
        protected void gvParts_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            // 得到该控件
            GridView theGrid = sender as GridView;
            int newPageIndex = 0;
            if (e.NewPageIndex == -3)
            {
                //点击了Go按钮
                TextBox txtNewPageIndex = null;

                //GridView较DataGrid提供了更多的API,获取分页块可以使用BottomPagerRow 或者TopPagerRow,当然还增加了HeaderRow和FooterRow
                GridViewRow pagerRow = theGrid.BottomPagerRow;

                if (pagerRow != null)
                {
                    //得到text控件
                    txtNewPageIndex = pagerRow.FindControl("txtNewPageIndex") as TextBox;
                }
                if (txtNewPageIndex != null)
                {
                    //得到索引
                    newPageIndex = int.Parse(txtNewPageIndex.Text) - 1;
                }
            }
            else
            {
                //点击了其他的按钮
                newPageIndex = e.NewPageIndex;
            }
            //防止新索引溢出
            newPageIndex = newPageIndex < 0 ? 0 : newPageIndex;
            newPageIndex = newPageIndex >= theGrid.PageCount ? theGrid.PageCount - 1 : newPageIndex;

            //得到新的值
            theGrid.PageIndex = newPageIndex;

            //重新绑定
            BindData();
        }

        protected void btnConfirm_Click(object sender, EventArgs e)
        {
            //为操作日志做好准备
            //获取输入编号数量和出库方向
            string Num = txtNum.Text;
            int Quantity = Convert.ToInt32(txtQuantity.Text);
            string NeederNum = txtNeedMerchant.Text;
            //根据写入的编号获取配件的名称
            string sqlGetPName = "Select PartName from CarParts where Num = @Num;";
            SqlParameter[] pmsGetPName = { 
                                        new SqlParameter("@Num",SqlDbType.NVarChar,50),
                                     };
            pmsGetPName[0].Value = Num;
            DataSet dsGetPName = DbHelperSQL.Query(sqlGetPName, pmsGetPName);
            string pName = dsGetPName.Tables[0].Rows[0]["PartName"].ToString();
            
            //根据写入的编号获取需求商的名称
            string nName = "";
            if (NeederNum != "")
            {
                string sqlGetNName = "Select Name from NeedMerchant where Num = @Num;";
                SqlParameter[] pmsGetNName = { 
                                        new SqlParameter("@Num",SqlDbType.NVarChar,50),
                                     };
                pmsGetNName[0].Value = NeederNum;
                DataSet dsGetNName = DbHelperSQL.Query(sqlGetNName, pmsGetNName);
                nName = dsGetNName.Tables[0].Rows[0]["Name"].ToString();
            }

            //获取用户登录的Id,并获取登录用户的相关信息
            int id = Convert.ToInt32(Session["Id"]);
            DateTime date = Convert.ToDateTime(Session["LoginTime"]);
            if (id == 0) 
            {
                id = 2;
            }
            string sqlUsers = "Select UserName,Department from Users where UserId = @id;";
            SqlParameter[] pms = { 
                                        new SqlParameter("@id",SqlDbType.Int),
                                     };
            pms[0].Value = id;
            DataSet ds = DbHelperSQL.Query(sqlUsers,pms);
            string type = ddlType.SelectedValue;
            //插入日志列表
            string sqlInsertLog = "insert into Log(Operator,Department,Type,Details,Time,IP)" +
                " Values(@Operator,@Department,@Type,@Details,getDate(),@IP)";
            SqlParameter[] pmsInsertLog = { 
                                          new SqlParameter("@Operator",SqlDbType.NVarChar,50),
                                          new SqlParameter("@Department",SqlDbType.NVarChar,50),
                                          new SqlParameter("@Type",SqlDbType.NVarChar,50),
                                          new SqlParameter("@Details",SqlDbType.NVarChar,50),
                                          new SqlParameter("@IP",SqlDbType.NVarChar,50)
                                          };
            pmsInsertLog[0].Value = ds.Tables[0].Rows[0]["UserName"];
            pmsInsertLog[1].Value = ds.Tables[0].Rows[0]["Department"];
            pmsInsertLog[2].Value = type;
            if (type == "入库")
            {
                pmsInsertLog[3].Value = Num + pName + type + Quantity + "件";
            }
            else
            {
                pmsInsertLog[3].Value = Num + pName + type + "至" + nName + Quantity + "件";
            }
            pmsInsertLog[4].Value = GetIP();
            DbHelperSQL.ExecuteSql(sqlInsertLog,pmsInsertLog);
            //根据下拉选择不同,有出库和入库两个选择,然后进行不同的操作
            //入库操作
           
            if (ddlType.SelectedValue == "入库")
            { 
                //更改数据库数据
                string sql = "update CarParts set Quantity = Quantity + @Quantity where Num = @Num";
                SqlParameter[] pms2 = { 
                                        new SqlParameter("@Quantity",SqlDbType.Int),
                                        new SqlParameter("@Num",SqlDbType.NVarChar,50)
                                     };
                pms2[0].Value = Quantity;
                pms2[1].Value = Num;
                DbHelperSQL.ExecuteSql(sql,pms2);
                //插入操作日志

                Response.Redirect("Index2.aspx");
            }
            //出库操作
            else
            {
                string sql = "update CarParts set Quantity = Quantity - @Quantity where Num = @Num";
                SqlParameter[] pms1 = { 
                                        new SqlParameter("@Quantity",SqlDbType.Int),
                                        new SqlParameter("@Num",SqlDbType.NVarChar,50)
                                     };
                pms1[0].Value = Quantity;
                pms1[1].Value = Num;
                DbHelperSQL.ExecuteSql(sql, pms1);
                //更改需求商的是否发货状态
                string sqlUpdate = "update NeedMerchant set IsDeliver = 'True' where Num = @NeedNum;";
                SqlParameter[] pars = { 
                                        new SqlParameter("@NeedNum",SqlDbType.NVarChar,50)
                                     };
                pars[0].Value = NeederNum;
                DbHelperSQL.ExecuteSql(sqlUpdate,pars);
                Response.Redirect("Index2.aspx");
            }
        }
        //获取Ip
        public string GetIP()
        {
            string result = String.Empty;
            result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
            if (string.IsNullOrEmpty(result))
            {
                result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
            }
            if (string.IsNullOrEmpty(result))
            {
                result = HttpContext.Current.Request.UserHostAddress;
            }
            if (string.IsNullOrEmpty(result))
            {
                return "127.0.0.1";
            }
            return result;
        }
    }
}

7 最后

**项目分享: ** https://gitee.com/asoonis/htw

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值