C#宿舍信息管理系统

简介

功能

1.发布公告
2.地理信息与天气信息的弹窗
3.学生信息的增删改查
4.宿舍信息的增删改查
5.管理员信息的增删改查
6.学生对宿舍物品的报修与核实
7.学生提交请假与销假
8.管理员对保修的审批
9.管理员对请假的审批

技术

1.采用C#\Winform开发的C\S系统
2.采用MD5对数据加密
3.数据库选用SQLServer
4.用户信息采用Xml来记录
5.界面使用了CSkin进行美化
6.使用了WebService获取地理位置信息与天气信息

一、需求分析:

1、功能性需求:是为了完成宿舍信息管理系统以及向其用户提供有用的功能所 需执行的动作,需要与用户进行沟通交流,核实用户需求。从软件帮助用户完成所需要的行为。2非功能性需求:作为对功能性的补充主要包括软件使用时对性能使用方面的需求,运行环境的需求。软件设计必须遵循相关标准、规范、用户界面设计的具体细节、未来可能的扩充方案等。

二、主要功能描述:

在用户登录系统,输入正确的用户名及密码,如果正确进入程序,如果输入用户名或密码错误将弹出友好界面提示。选择进入的界面学员查询自己的宿舍信息。修改密码、提交报修、申请离宿、报修成功、确认归宿、接收通知功能。宿管包括发布通知、宿舍学员的增删改查、管理报修、管理离宿情况。

三、概要设计

在这里插入图片描述

四、数据库设计

1.登陆表

在这里插入图片描述

2.成绩表

成绩表

五、详细设计

在这里插入图片描述

六、关键技术

SQL server数据库管理系统、窗体、Windows XP环境
连接数据库:static SqlConnection conn = new SqlConnection(@"Data Source=507-59;AttachDbFilename=F:\软件开发实训\WTS\WTS\school.mdf;Integrated Security=True");
登录窗口的确定:DataSet ds = DBHelper.readDB("select * from customer where name ='" + name + "' and password='" + password + "'");
读数据库:DataSet ds = DBHelper.readDB("select * from student");
数据的删除:"delete  student where no=" + no + ""
数据的修改:"update student  set  name='" + name + "',chinese='" + chinese + "',math='" + math + "',english='" + english + "'where no=" + no + ""
数据的增加:"insert into student values(" + no + ",'" + name + "'," + chinese + "," + math + "," + english + ")"
数据的统计:"select no,name,chinese,math,english,chinese+math+english as 总分 from student"

Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;namespace 宿舍管理系统
{static class Program{/// <summary>/// 应用程序的主入口点。/// </summary>[STAThread]static void Main(){Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(new WFLogin());}}
}

SutdentManager.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CCWin;
using Tools;
using System.Xml;
using System.IO;namespace 宿舍管理系统
{public partial class StudentManager : Skin_Mac{#region 字段属性private WFLogin Fm;//登陆的窗体public int Sno { get; set; }//自己的学号private bool isHide = true;//标记是否隐藏通知private bool isChecked = false;//标记报修是否选择其他private string Pwd;//登录的密码public int Dormitoryno { get; set; }//此学生的宿舍号private DataSet dataset;//用于数据比对#endregion/// <summary>/// 构造函数/// </summary>/// <param name="fm">登陆窗体</param>/// <param name="sno">学号</param>/// <param name="pwd">密码</param>public StudentManager(WFLogin fm,string sno,string pwd){this.Fm = fm;this.Sno = Convert.ToInt32(sno);this.Pwd = pwd;InitializeComponent();}/// <summary>/// 窗体加载事件/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void StudentManager_Load(object sender, EventArgs e){//操作我的信息DataSet ds = DBHelper.Select("select * from StudentInfo where sno='"+Sno+"'");this.skinDataGridView1.DataSource = ds.Tables[0].DefaultView;//将宿舍号记录并赋值Dormitoryno = Convert.ToInt32(skinDataGridView1.Rows[0].Cells[0].Value.ToString().Trim());this.skinDataGridView1.Columns[0].HeaderText = "宿舍号";this.skinDataGridView1.Columns[1].HeaderText = "学号";this.skinDataGridView1.Columns[2].HeaderText = "姓名";this.skinDataGridView1.Columns[3].HeaderText = "性别";this.skinDataGridView1.Columns[4].HeaderText = "床铺号";this.skinDataGridView1.Columns[5].HeaderText = "入住时间";this.skinDataGridView1.Columns[0].Width = 83;this.skinDataGridView1.Columns[1].Width = 83;this.skinDataGridView1.Columns[2].Width = 83;this.skinDataGridView1.Columns[3].Width = 83;this.skinDataGridView1.Columns[4].Width = 83;this.skinDataGridView1.Columns[5].Width = 83;this.skinDataGridView1.Enabled = false;//操作宿舍舍友信息 根据宿舍号&性别进行查询DataSet ds2 = DBHelper.Select("select * from StudentInfo where dormitoryno='"+ Dormitoryno + "' and sgender='"+ skinDataGridView1.Rows[0].Cells[3].Value.ToString().Trim() + "'");this.skinDataGridView2.DataSource = ds2.Tables[0].DefaultView;//设置datagridview2样式this.skinDataGridView2.Columns[0].HeaderText = "宿舍号";this.skinDataGridView2.Columns[1].HeaderText = "学号";this.skinDataGridView2.Columns[2].HeaderText = "姓名";this.skinDataGridView2.Columns[3].HeaderText = "性别";this.skinDataGridView2.Columns[4].HeaderText = "床铺号";this.skinDataGridView2.Columns[5].HeaderText = "入住时间";this.skinDataGridView2.Columns[0].Width = 84;this.skinDataGridView2.Columns[1].Width = 84;this.skinDataGridView2.Columns[2].Width = 84;this.skinDataGridView2.Columns[3].Width = 84;this.skinDataGridView2.Columns[4].Width = 84;this.skinDataGridView2.Columns[5].Width = 84;#region  通知栏代码XmlDocument doc = new XmlDocument();doc.Load("事物表.xml");XmlElement Users = doc.DocumentElement;XmlNode xnl = Users.SelectSingleNode("/Users/manager[@no='1234']");this.label1.Text = xnl.InnerText;#endregiondataset = DBHelper.Select("select * from DormSum where dormitoryno='" + Dormitoryno + "'");this.Text += this.skinDataGridView1.Rows[0].Cells[2].Value.ToString();this.skinTabControl1.SelectedIndex = 0;}#region 事件//不让datagridview被选中的代码private void skinDataGridView1_SelectionChanged(object sender, EventArgs e){this.skinDataGridView1.ClearSelection();}//通知按钮private void btnUpOrDown_Click(object sender, EventArgs e){if (isHide){skinGroupBox1.Hide();btnUpOrDown.Text = "查看通知";}else if (!isHide){skinGroupBox1.Show();btnUpOrDown.Text = "我知道了";}isHide = !isHide;}//控制报修 其他内容的代码private void skinCheckBox8_CheckedChanged(object sender, EventArgs e){isChecked = !isChecked;if (isChecked){txtAreaQue.Enabled = true;}else{txtAreaQue.Enabled = false;}}//关闭窗口时关闭程序private void StudentManager_FormClosed(object sender, FormClosedEventArgs e){Fm.Close();}//提交报修的方法private void btnSubmit_Click(object sender, EventArgs e){//如果任何项都没有选择,就返回if (cb1.Checked == false && cb2.Checked == false && cb3.Checked == false && cb4.Checked == false && cb5.Checked == false && cb6.Checked == false && cb7.Checked == false && cb8.Checked == false){MessageBoxEx.Show("选择您要修理的项!");return;}dataset = DBHelper.Select("select * from DormSum where dormitoryno='" + Dormitoryno + "'");if (dataset.Tables[0].Rows[0][4].ToString() == "无修理项"){string fixItem = "";string things = "";fixItem += cb1.Checked ? cb1.Text + " " : "";fixItem += cb2.Checked ? cb2.Text + " " : "";fixItem += cb3.Checked ? cb3.Text + " " : "";fixItem += cb4.Checked ? cb4.Text + " " : "";fixItem += cb5.Checked ? cb5.Text + " " : "";fixItem += cb6.Checked ? cb6.Text + " " : "";fixItem += cb7.Checked ? cb7.Text : "";if (cb8.Checked == true){things = txtAreaQue.Text.Trim();}if (DBHelper.Update("update DormSum set isfix='已提交',fixItem='" + fixItem+ "',things='" + things + "' where dormitoryno='" + Dormitoryno + "'")){MessageBoxEx.Show("提交成功!");#region 重置按钮cb1.Checked = false;cb2.Checked = false;cb3.Checked = false;cb4.Checked = false;cb5.Checked = false;cb6.Checked = false;cb7.Checked = false;cb8.Checked = false;txtAreaQue.Text = "请填写您的问题。。。";#endregion}}else if (dataset.Tables[0].Rows[0][4].ToString() == "已提交" || dataset.Tables[0].Rows[0][4].ToString() == "维修中"){MessageBoxEx.Show("您的宿舍已经提交了请求,请等待。。");}else{MessageBoxEx.Show("发生未知错误!");}}//重置按钮private void btnReset_Click(object sender, EventArgs e){cb1.Checked = false;cb2.Checked = false;cb3.Checked = false;cb4.Checked = false;cb5.Checked = false;cb6.Checked = false;cb7.Checked = false;cb8.Checked = false;txtAreaQue.Text = "请填写您的问题。。。";}//退出按钮private void 退出ToolStripMenuItem_Click(object sender, EventArgs e){this.Close();}//注销按钮private void 注销ToolStripMenuItem_Click(object sender, EventArgs e){Fm.ReLogin();Fm.Show();this.Dispose();}private void 更改密码ToolStripMenuItem_Click(object sender, EventArgs e){new UpdataPwd(Sno, Pwd, "student").ShowDialog();}private void btnFix_Click(object sender, EventArgs e){dataset = DBHelper.Select("select * from DormSum where dormitoryno='" + Dormitoryno + "'");if (dataset.Tables[0].Rows[0][4].ToString() == "否"){MessageBoxEx.Show("您的宿舍还没有提交修理内容!");return;}new WFDormSch(Dormitoryno).ShowDialog();}//提交离宿private void btnDate_Click(object sender, EventArgs e){System.DateTime dt = dateTimePicker1.Value.Date;System.DateTime dt2 = dateTimePicker2.Value.Date;if (dt.CompareTo(dt2) > 0){MessageBoxEx.Show("日期有误!");return;}XmlDocument doc = new XmlDocument();doc.Load("事物表.xml");XmlElement Users = doc.DocumentElement;if (Users.SelectSingleNode("/Users/student[sno='" + Sno + "']") != null){MessageBoxEx.Show("您还有假期未消除!");return;}XmlElement student = doc.CreateElement("student");XmlElement sno = doc.CreateElement("sno");XmlElement leavetime = doc.CreateElement("leavetime");XmlElement arrivetime = doc.CreateElement("arrivetime");XmlElement state = doc.CreateElement("state");Users.AppendChild(student);student.AppendChild(sno);student.AppendChild(leavetime);student.AppendChild(arrivetime);student.AppendChild(state);sno.InnerText = Sno.ToString();leavetime.InnerText = dt.Date.ToString();arrivetime.InnerText = dt2.Date.ToString();state.InnerText = "未消假";doc.Save("事物表.xml");MessageBoxEx.Show("申请成功!");}//查看自己请假信息private void btnHld_Click(object sender, EventArgs e){XmlDocument doc = new XmlDocument();doc.Load("事物表.xml");XmlElement Users = doc.DocumentElement;if (Users.SelectSingleNode("/Users/student[sno='" + Sno + "']") == null){MessageBoxEx.Show("您已经没有请假信息!");return;}new WFHld(Sno).ShowDialog();}#endregion}
}

七、程序截图

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

七、联系与交流

q:969060742 完整代码、sql、程序资源

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/285228.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IDEA Android新建项目基础

title: IDEA Android基础开发 search: 2024-03-16 tags: “#JavaAndroid开发” 一、构建基本项目 在使用 IDEA 进行基础的Android 开发时&#xff0c;我们可以通过IDEA自带的新建项目功能进行Android应用开发基础架构的搭建&#xff0c;可以直接找到 File --> New --> …

图论基础|841.钥匙和房间、463. 岛屿的周长

目录 841.钥匙和房间 思路&#xff1a;本题是一个有向图搜索全路径的问题。 只能用深搜&#xff08;DFS&#xff09;或者广搜&#xff08;BFS&#xff09;来搜。 463. 岛屿的周长 841.钥匙和房间 力扣题目链接 (opens new window) 有 N 个房间&#xff0c;开始时你位于 0…

k8s笔记27--快速了解 k8s pod和cgroup的关系

k8s笔记27--快速了解 k8s pod和 cgroup 的关系 介绍pod & cgroup注意事项说明 介绍 随着云计算、云原生技术的成熟和广泛应用&#xff0c;K8S已经成为容器编排的事实标准&#xff0c;学习了解容器、K8S技术对于新时代的IT从业者显得极其重要了。 之前在文章 docker笔记13–…

微服务(基础篇-001-介绍、Eureka)

目录 认识微服务&#xff08;1&#xff09; 服务架构演变&#xff08;1.1&#xff09; 单体架构&#xff08;1.1.1&#xff09; 分布式架构&#xff08;1.1.2&#xff09; 微服务&#xff08;1.1.3&#xff09; 微服务结构 微服务技术对比 企业需求 SpringCloud(1.2) …

javaSSM游泳馆日常管理系统IDEA开发mysql数据库web结构计算机java编程maven项目

一、源码特点 IDEA开发SSM游泳馆日常管理系统是一套完善的完整企业内部系统&#xff0c;结合SSM框架和bootstrap完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用SSM框架&#xff08;MVC模式开发&#xff09;MAVEN方式加载&#xff0c;系统具有完整的源代码和…

使用Django实现信号与消息通知系统【第154篇—Django】

&#x1f47d;发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 使用Django实现信号与消息通知系统 在Web应用程序中&#xff0c;实现消息通知系统是至关重…

Java学习笔记 | Java基础语法 | 03 | 流程控制语句

文章目录 0 前言1.流程控制语句1.1 流程控制语句分类1.2 顺序结构 2.判断语句2.1 if语句1. if语句格式1练习1&#xff1a;老丈人选女婿练习2&#xff1a;考试奖励 2. if语句格式2练习1&#xff1a;吃饭练习2&#xff1a;影院选座 3. if语句格式3练习1&#xff1a;考试奖励 2.2 …

Maven高级(工程分模块开发,聚合于继承,版本锁定,Mavne私服的搭建和发布)【详解】

目录 一、Maven复习 1. Maven基本概念 1 Maven的作用 2 Maven的仓库 3 坐标的概念 2. Maven安装配置 3. Maven构建项目 4. Maven依赖管理 5. Maven依赖传递 二、工程分模块开发 1. 分模块开发介绍 2. 工程分模块示例 (1) 创建父工程 (2) 创建pojo模块步骤 (3) 创…

【Redis】优惠券秒杀

全局唯一ID 全局唯一ID生成策略&#xff1a; UUIDRedis自增snowflake算法数据库自增 Redis自增ID策略&#xff1a;每天一个key&#xff0c;方便统计订单量ID构造是 时间戳 计数器 Component public class RedisIdWorker {// 2024的第一时刻private static final long BEGIN…

【Linux】vim配置及安装方法

注 安装方法在文章最后 配置文件的位置 在目录 /etc/ 下面&#xff0c;有个名为vimrc的文件&#xff0c;这是系统中公共的vim配置文件&#xff0c;对所有用户都有效。而在每个用户的主目录下&#xff0c;都可以自己建立私有的配置文件&#xff0c;命名为“.vimrc”。例如&…

20240319-图论

图论练习题目 拓扑排序深度优先搜索方法广度优先搜索方法 无向无权图无向有权图有向无权图 利用广度优先搜索算法有向有权图 带排序的广度优先算法/dijkstra最小生成树prims算法Kruskals Algorithm 最小割 min-cut二分图 Bipartite Graph 队列例题1 所有可能的路径例题2 岛屿数…

【Linux】写个日志和再谈线程池

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;折纸花满衣 &#x1f3e0;个人专栏&#xff1a;信号量和线程池 目录 &#x1f449;&#x1f3fb;日志代码Log.cppMain.cc &#x1f449;&#x1f3fb;线程池代码LockGuard.hpp(自定义互斥锁&#xff0c;进…

Java获取方法参数名称方案||SpringBoot配置顺序注解

一: Java获取方法参数名称的方法 普盲: getDeclaredMethods与getMethods的的区别 1、getMethods返回一个包含某些 Method 对象的数组&#xff0c;这些对象反映此 Class 对象所表示的类或接口的公共 member 方法。 2、getDeclaredMethods返回 Method 对象的一个数组&#xff0c…

python绘图matplotlib——使用记录2

本博文来自于网络收集&#xff0c;如有侵权请联系删除 三维图绘制 1 三维散点图2 三维柱状图三维曲面 1 三维散点图 import matplotlib.pyplot as plt import numpy as npfrom mpl_toolkits.mplot3d import Axes3Dfig plt.figure() # ax fig.gca(projection"3d")…

Docker(二):Docker常用命令

docker 查看docker支持的所有命令和参数。 ➜ ~ docker Management Commands:config Manage Docker configscontainer Manage containersimage Manage imagesnetwork Manage networksnode Manage Swarm nodesplugin Manage pluginssecret …

操作系统究竟是什么?在计算机体系中扮演什么角色?

操作系统究竟是什么&#xff1f;在计算机体系中扮演什么角色&#xff1f; 一、操作系统概念二、操作系统如何管理软硬件资源2.1 何为管理者2.2 操作系统如何管理硬件 三、系统调用接口作用四、用户操作接口五、广义操作系统和狭义操作系统 一、操作系统概念 下面是来自百度百科…

51单片机学习笔记——LED闪烁和流水灯

任务分析 首先要知道LED闪烁主要是怎么工作的&#xff0c;闪烁亮灭自然是一下为高一下为低&#xff0c;亮灭的频率则需要延时来进行控制。 上节已经知道了如何点亮那延时如何做呢首先先编写主框架 这样是否可以通过循环将LED灯一直循环闪烁。 以为while一直在循环所以其实是可…

【评分标准】【网络系统管理】2019年全国职业技能大赛高职组计算机网络应用赛项H卷 无线网络勘测设计

第一部分&#xff1a;无线网络勘测设计评分标准 序号评分项评分细项评分点说明评分方式分值1点位设计图AP编号AP编号符合“AP型号位置编号”完全匹配5AP型号独立办公室、小型会议室选用WALL AP110完全匹配5员工寝室选用智分&#xff0c;其他用放装完全匹配5其它区域选用放装AP…

设计模式(十二):中介者模式(行为型模式)

Mediator&#xff0c;中介者模式&#xff1a;用一个中介对象封装一些列的对象交互。属于行为型模式 Facade&#xff0c;外观模式&#xff1a;为子系统中的一组接口提供一致的界面&#xff0c;facade 提供了一高层接口&#xff0c;这个接口使得子系统更容易使用。属于结构型模式…

Linux升级GCC

文章目录 一、安装 EPEL 仓库二、更新yum三、安装 CentOS 开发工具组四、安装scl五、安装gcc 11六、启用gcc 11七、设置永久使用 一、安装 EPEL 仓库 命令&#xff1a; yum install epel-release -y二、更新yum 命令&#xff1a; yum update -y三、安装 CentOS 开发工具组 …