基于Visual Studio+SQL Server的项目实施管理系统设计与实现

目录

前言 II
概要 III
ABSTRACT IV
目录 V
一、系统概述 1
1.1系统分析 1
1.1.1背景介绍 1
1.1.2需求分析 2
二、系统概述与总体设计原理 3
2.1项目实时管理系统模块的功能原理 3
2.2项目实时管理系统模块的构成模块 3
2.3规划系统文件 4
2.3.1规划文件 4
2.3.2选择开发工具 6
三、数据库设计 7
3.1数据库描述 7
3.2数据库分析 7
3.3数据库概念结构设计 7
3.3.1系统基本表 7
3.3.2项目信息表 8
3.3.3单位信息表 8
3.3.4人员信息表 9
3.4数据库逻辑结构设计 9
3.4.1系统基本表 9
3.4.2项目信息表 11
3.4.3单位信息表 12
3.4.4人员信息表 13
3.5数据库系统参数配置 14
3.6数据访问层设计 15
3.6.1 用户登录模块 16
3.6.2 项目信息模块 17
3.6.3 单位信息模块 18
3.6.4 人员信息模块 18
四、系统编码实现 19
4.1Restful API接口设计 19
4.1.1 Restful API接口说明 19
4.1.2 Restful API接口设计 20
4.2用户登录模块 21
4.2.1登录模块 21
4.2.2注册小模块 22
4.2.3服务器配置 24
4.3项目信息模块 25
4.4单位信息模块 29
4.5人员信息模块 30
4.6附属功能模块 31
五、系统测试 32
5.1测试工具 32
5.2功能性测试、非功能性测试 32
5.2.1 功能性测试 32
5.2.2 非功能性测试 34
六、发布及管理 36
6.1本地发布 36
6.1.1 本地发布概述 36
6.1.2 本地文件发布 36
6.2.3 本地IIS目标IP发布 38
6.2 远程服务器发布 39
6.2.1远程服务器发布概述 39
6.2.2远程服务器环境搭建 39
6.2.3远程服务器连接 40
结束语 41
致谢 42
参考文献 43
二、系统概述与总体设计原理
2.1项目实时管理系统模块的功能原理
基于Restful API的项目实施管理系统的实现原理非常清晰,其主要目的是实现项目实施的进度管理,其次附带一些辅助性的功能,其目的是提高用户的用户体验以及应用程序的多元化、丰富应用程序的内涵、充实应用程序的内容。其各个主要模块的功能原理如下:
用户登录模块:本模块主要分为登录和注册两部分
(1)登录:本部分采用Basic认证,通过提交登录信息,应用程序调用Restful API接口,通过Ajax请求将接口将票据信息加入到请求的Head里面,将票据信息随着请求一起发送到服务端去,验证登录。
(2)注册:本部分基于MVC框架实现简易的Web应用,通过https的双向认证完成注册(基于系统安全性考虑),并将注册信息保存到数据库中。
项目信息模块:本模块是项目实施管理系统的最为重要核心模块,所有的执行方案全部通过调用Restful API接口的方式实现。
单位信息模块:本模块大部分功能是基于Restful API实现的,但少部分内容是直接通过封装的类库文件直接实现的。类库采用C++语言编写,主要考虑到C++语言的处理速度会相对较快。
人员信息模块:本模块由于涉及的内容较少,经过考虑全部由封装的类库文件直接实现(类库文件有C#编写)。

using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Web.Services;


/// <summary>
/// GraduationThesisTest 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 
// [System.Web.Script.Services.ScriptService]
public class GraduationThesisTest : System.Web.Services.WebService
{
    
    
    public GraduationThesisTest()
    {
    
    
        //如果使用设计的组件,请取消注释以下行 
        //InitializeComponent(); 
    }

    public string strcon = "data source=.;initial catalog=GraduationThesis;user id=sa;password=123456";

    /// <summary>
    /// Insert用户信息表
    /// </summary>
    /// <param name="UserRegiste_Name">4132</param>
    /// <param name="UserRegiste_Sex"></param>
    /// <param name="UserRegiste_Phone"></param>
    /// <param name="UserRegiste_Cardid"></param>
    /// <param name="UserRegiste_Email"></param>
    /// <returns></returns>
    [WebMethod(Description ="123\r\n45")]
    public string Insert_User_RegisteInfo(string UserRegiste_Name, string UserRegiste_Sex, string UserRegiste_Phone, string UserRegiste_Cardid, string UserRegiste_Email)
    {
    
    
        string Login_id = GetLoginid();
        try
        {
    
    
            //检测Login_id是否正常
            int id = int.Parse(Login_id);
            try
            {
    
    
                using (SqlConnection con = new SqlConnection(strcon))
                {
    
    
                    con.Open();
                    //填写用户信息表
                    SqlCommand command = new SqlCommand("insert into User_RegisteInfo values(@UserLogin_ID,@UserRegiste_Name,@UserRegiste_Sex,@UserRegiste_Phone,@UserRegiste_Cardid,@UserRegiste_Email)", con);
                    command.Parameters.Add("UserLogin_ID", SqlDbType.NVarChar).Value = Login_id;

                    command.Parameters.Add("UserRegiste_Name", SqlDbType.NVarChar).Value = UserRegiste_Name;
                    command.Parameters.Add("UserRegiste_Sex", SqlDbType.NVarChar).Value = UserRegiste_Sex;
                    command.Parameters.Add("UserRegiste_Phone", SqlDbType.NVarChar).Value = UserRegiste_Phone;
                    command.Parameters.Add("UserRegiste_Cardid", SqlDbType.NVarChar).Value = UserRegiste_Cardid;
                    command.Parameters.Add("UserRegiste_Email", SqlDbType.NVarChar).Value = UserRegiste_Email;
                    command.ExecuteNonQuery();
                    con.Close();
                    return Insert_User_Login(UserRegiste_Name, "000000");
                }
            }
            catch (Exception ex)
            {
    
    
                return ex.ToString();
            }
        }
        catch
        {
    
    
            return Login_id;
        }
    }
    /// <summary>
    /// Select用户信息表
    /// </summary>
    /// <param name="UserRegiste_Name"></param>
    /// <param name="UserRegiste_Sex"></param>
    /// <param name="UserRegiste_Phone"></param>
    /// <param name="UserRegiste_Cardid"></param>
    /// <param name="UserRegiste_Email"></param>
    /// <returns></returns>
    [WebMethod]
    public string Select_Insert_User_RegisteInfo(string UserRegiste_Name, string UserRegiste_Sex, string UserRegiste_Phone, string UserRegiste_Cardid, string UserRegiste_Email)
    {
    
    
        return "";
    }
    /// <summary>
    /// Insert登录信息表
    /// </summary>
    /// <returns></returns>
    private string Insert_User_Login(string username, string password)
    {
    
    
        try
        {
    
    
            using (SqlConnection con = new SqlConnection(strcon))
            {
    
    
                con.Open();
                SqlCommand command = new SqlCommand("insert into User_Login values(@UserLogin_Name,@UserLogin_Password)", con);
                command.Parameters.Add("UserLogin_Name", SqlDbType.NVarChar).Value = username;
                command.Parameters.Add("UserLogin_Password", SqlDbType.NVarChar).Value = password;
                command.ExecuteNonQuery();
                con.Close();
            }
            List<User_LoginInfo> user_LoginInfos = new List<User_LoginInfo>();
            User_LoginInfo user_LoginInfo = new User_LoginInfo();
            user_LoginInfo.Result = "注册成功!请登录系统进行密码重置!";
            user_LoginInfo.Name = "用户名:" + username;
            user_LoginInfo.Password = "初始密码:" + password;
            user_LoginInfos.Add(user_LoginInfo);
            return JsonConvert.SerializeObject(user_LoginInfos);
        }
        catch (Exception ex)
        {
    
    
            return ex.ToString();
        }
    }

    /// <summary>
    /// 获取登录ID
    /// </summary>
    /// <returns></returns>
    private string GetLoginid()
    {
    
    
        string id = null;
        try
        {
    
    
            using (SqlConnection con = new SqlConnection(strcon))
            {
    
    
                con.Open();
                //获取登录编号
                SqlCommand command = new SqlCommand("select top 1 * from User_Login order by UserLogin_ID desc", con);
                SqlDataReader dr = command.ExecuteReader();
                if (dr.Read())
                    id = (int.Parse(dr[0].ToString()) + 1).ToString();
                dr.Close();
                con.Close();
            }
            return id;
        }
        catch (Exception ex)
        {
    
    
            return ex.ToString();
        }
    }

    /// <summary>
    /// 登录User_LoginInfo实体
    /// </summary>
    public class User_LoginInfo
    {
    
    
        public string Result {
    
     get; set; }
        public string Name {
    
     get; set; }
        public string Password {
    
     get; set; }
    }
    /// <summary>
    /// 用户信息实体
    /// </summary>
    public class User_RegisteInfo
    {
    
    
        public string UserLogin_ID {
    
     get; set; }
        public string UserRegiste_Name {
    
     get; set; }
        public string UserRegiste_Sex {
    
     get; set; }
        public string UserRegiste_Phone {
    
     get; set; }
        public string UserRegiste_Cardid {
    
     get; set; }
        public string UserRegiste_Email {
    
     get; set; }
    }
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/newlw/article/details/130880585
今日推荐