基于C#+SQL Server2008实现(WinForm)学生宿舍管理系统【100010029】

news2024/11/24 15:44:30

1 概述

本次课程设计是数据库课程设计,我选的是学生宿舍管理系统,功能块主要是宿舍管理、学生管理、出入登记和来访登记,目的在于将学生宿舍的管理实现信息化,监控学生宿舍的情况防止意外发生。

课程设计任务的需求分析

2.1设计任务

设计出一个方便进行宿舍管理的系统的数据库。

2.2设计要求

假定学校有多栋宿舍楼,每栋楼有多层,每层有多个寝室,每个寝室可住多名学生,学生宿舍管理系统对学校的学生宿舍进行规范管理,其管理的对象如下:

.宿舍信息:编号、楼层、床位数、单价等。

.学生:学号、姓名、性别、年龄、所在院系、年级、电话等。

每个宿舍最多可以住4位同学,每个同学只能在一个宿舍,不同宿舍的费用标准可以不同。不同院系、年级的同学可以住同一间宿舍。

系统要能够对宿舍、学生、住宿信息进行登记、调整,并能随时进行各种查询、统计等处理。包括:

.寝室分配:根据院系、年级分配寝室。

.学生管理:实现入住学生信息的登记、维护和查询功能。

.信息查询:按公寓楼号、学生姓名等查询住宿信息。

.出入登记:对学生进出公寓的情况进行登记、实现基本的出、入监控功能。

2.3需求描述的规范文档

  1. 宿舍情况查询和清空宿舍;
  2. 学生信息查询和修改、删除和添加;
  3. 学生出入登记;
  4. 来访登记;
  5. 权限管理,包括三种权限(宿舍管理员、高级管理员和超级管理员);
  6. 宿舍管理员可以编辑出入登记和来访登记,但是不能操作学生信息和宿舍信息,只能查询;
  7. 高级管理员可以操作学生信息和宿舍信息但是不能编辑出入登记和来访登记;
  8. 超级管理员除了高级管理员的权限外还能对高级管理员和宿舍管理员的用户进行添加和删除修改。

3 概念结构设计

3.1概念结构设计工具(E-R模型)

使用E-R图作为概念结构设计工具,构建出数据库E-R模型。

3.2管理员子系统

3.2.1子系统描述

管理员表:id,名字,密码,联系方式,权限。

其中主键为id。

3.2.2分E-R图

在这里插入图片描述

3.2.3说明

管理员表用于记录管理员信息。

3.3宿舍子系统

3.3.1 子系统描述

宿舍表:id,宿舍管理员id,宿舍号(如C),宿舍楼号,宿舍学生性别。

其中主键为id,外键为宿舍管理员id。

3.3.2 分E-R图

在这里插入图片描述

3.3.3 说明

宿舍表用于记录已有宿舍信息。

3.4房间子系统

3.4.1 子系统描述

房间表:id,宿舍id,房间号,价格。

其中主键为id,外键为宿舍id。

3.4.2 分E-R图

在这里插入图片描述

3.4.3 说明

房间表用于记录房间信息。

3.5学生子系统

3.5.1子系统描述

学生表:id,学号,姓名,性别,年龄,联系方式,学院id,专业id,年级,宿舍id,房间id。

其中主键为id,外键为学院id,专业id,宿舍id,房间id。

3.5.2分E-R图

在这里插入图片描述

3.5.3说明

学生表用于记录学生信息。

3.6院系子系统

3.6.1子系统描述

院系专业表:id,院系名字,所属学院id。

其中主键为id,外键为所属学院id。

3.6.2分E-R图

在这里插入图片描述

3.6.3说明

院系专业表用于记录院系专业信息。

3.7出入登记子系统

3.7.1 子系统描述

出入登记表:id,宿舍id,学生id,出去时间,返回时间。

其中主键为id,外键为宿舍id,学生id。

3.7.2 分E-R图

在这里插入图片描述

3.7.3 说明

出入登记表用于记录学生出入宿舍的信息。

3.8来访登记子系统

3.8.1 子系统描述

来访登记表:id,宿舍id,学生id,来访人名字,来访时间,出去时间。

其中主键为id,外键为宿舍id,学生id。

3.8.2 分E-R图

在这里插入图片描述

3.8.3 说明

来访登记表用于宿舍来访登记。

3.9总体E-R图

在这里插入图片描述

4 逻辑结构设计

4.1 关系数据模式

管理员表(admin):

id int 主键

名字(aname) varchar(10) 非空

密码(password) varchar(10) 非空

联系方式(tel) varchar(20) 非空

权限(power) tinyint 非空

宿舍表(dormitory):

id int 主键

管理员id(a_id) int 非空 外键联系admin表

宿舍号(如C)(ch) char(1) 非空

宿舍编号(num) int 非空

宿舍学生性别(s_gender) varchar(10) 非空

房间表(room):

id itn 主键

宿舍id(d_id) int 非空 外键联系dormitory表

宿舍号(num) int 非空

剩余床位(margin) tinyint 非空

价格(price) int 非空

学生表(student):

id int 主键

学号(sno) varchar(20) 非空

姓名(sname) varchar(10) 非空

性别(gender) varchar(10) 非空

年龄(age) int 非空

联系方式(tel) varchar(20) 非空

学院id(u_id) int 非空 外键联系major表

专业id(m_id) int 非空 外键联系major表

年级(class) int 非空

宿舍id(d_id) int 非空 外键联系dormitory表

房间id(r_id) int 非空 外键联系room表

院系专业表(major):

id int 主键

名字(name) varchar(50) 非空

所属学院id(m_id) int 非空 外键联系major表

出入登记表(in_out):

id int 主键

宿舍id(d_id) int 非空 外键联系dormitory表

学生id(s_id) int 非空 外键联系student表

出去时间(out_date) datetime 非空

返回时间(in_date) datetime

来访登记表(visit):

id int 主键

宿舍id(d_id) int 非空 外键联系dormitory表

学生id(s_id) int 非空 外键联系student表

来访人名字(name) varchar(10) 非空

来访时间(in_date) datetime 非空

出去时间(out_date) datetime

4.2 视图的设计

dormitory和room之间的视图:

在这里插入图片描述

dormitory和in_out之间的视图:

在这里插入图片描述

dormitory和visit之间的视图:

在这里插入图片描述

4.3 优化

在宿舍表和房间表、学生表、出入登记表、来访登记表之间建立外键约束,实现删除和更新的级联,并且建立视图。

5 数据库物理设计与实施

5.1 数据库应用的硬件、软件环境介绍

此次数据库设计使用的硬件包括笔记本电脑一台,装有win10系统,软件环境为VS2012和sql server2008。

5.2 物理结构设计

数据库表的设计可见4.1关系数据模式,同时为了提高数据库的查找效率和用户响应速度,数据库应该建立相应的视图和索引提高存取效率,其中视图见4.2。

5.3 索引的设计

本次数据库课程设计除了主键索引和非空索引外并没有设置其他索引。

5.4 建立数据库

数据库:

CREATE DATABASE [dms] ON  PRIMARY 
( NAME = N'dms', FILENAME = N'D:\dms.mdf' , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
    LOG ON 
( NAME = N'dms_log', FILENAME = N'D:\dms_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)

表:

admin表:

CREATE TABLE [dbo].[admin](
	    [id] [int] IDENTITY(1,1) NOT NULL,
	    [aname] [varchar](10) NOT NULL,
	    [password] [varchar](10) NOT NULL,
	    [tel] [varchar](20) NOT NULL,
	    [power] [tinyint] NOT NULL,
      CONSTRAINT [PK_admin] PRIMARY KEY CLUSTERED 
(
	    [id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

dormitory表

 CREATE TABLE [dbo].[dormitory](
	    [id] [int] IDENTITY(1,1) NOT NULL,
[a_id] [int] NOT NULL,
	    [ch] [char](1) NOT NULL,
	    [num] [int] NOT NULL,
	    [s_gender] [varchar](10) NOT NULL,
     CONSTRAINT [PK_dormitory] PRIMARY KEY CLUSTERED 
(
	     [id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

student表

CREATE TABLE [dbo].[student](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[sno] [varchar](20) NOT NULL,
	[sname] [varchar](10) NOT NULL,
	[gender] [varchar](10) NOT NULL,
	[age] [int] NOT NULL,
	[tel] [varchar](20) NOT NULL,
	[u_id] [int] NOT NULL,
	[m_id] [int] NOT NULL,
	[class] [int] NOT NULL,
	[d_id] [int] NOT NULL,
	[r_id] [int] NOT NULL,
 CONSTRAINT [PK_student] PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

major表

CREATE TABLE [dbo].[major](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[name] [varchar](50) NOT NULL,
	[m_id] [int] NOT NULL,
 CONSTRAINT [PK_major] PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS     = ON) ON [PRIMARY]
) ON [PRIMARY]

visit表

CREATE TABLE [dbo].[visit](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[d_id] [int] NOT NULL,
	[s_id] [int] NOT NULL,
	[name] [varchar](10) NOT NULL,
	[in_date] [datetime] NOT NULL,
	[out_date] [datetime] NULL,
 CONSTRAINT [PK_visit] PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

in_out表

CREATE TABLE [dbo].[in_out](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[d_id] [int] NOT NULL,
	[s_id] [int] NOT NULL,
	[out_date] [datetime] NOT NULL,
	[in_date] [datetime] NULL,
 CONSTRAINT [PK_in_out] PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

5.5 加载测试数据

admin表如下:其中0为宿舍管理员权限(此权限无法查询未分配学生),1为高级管理员,2为超级管理员

在这里插入图片描述

dormitory表如下:

在这里插入图片描述

room表如下:

在这里插入图片描述

major表如下:

在这里插入图片描述

student表如下:

在这里插入图片描述

在这里插入图片描述

visit表和in_out表为空。

6 数据操作要求及实现

6.1数据查询

关于数据查询的代码举例如下:

查询管理员用户名密码:

select id,aname,password,power from admin

查询宿舍楼号:

查询未归学生:

  select student.sname name from in_out left join student on in_out.s_id=student.id where in_date is null

查询宿舍:

 select room.id, dormitory.ch+cast(dormitory.num as varchar(2)) 楼号,dormitory.s_gender 性别,room.num 房号,room.margin 剩余床位,room.price 价格 from room left join dormitory on room.d_id = dormitory.id
                  “select room.id, dormitory.ch+cast(dormitory.num as varchar(2)) 楼号,dormitory.s_gender 性别,room.num 房号,room.margin 剩余床位,room.price 价格 from room left join dormitory on room.d_id = dormitory.id where" + s1 + s2 + s3

查询学生:

 select student.id, student.sno 学号,student.sname 姓名,student.gender 性别,student.age 年龄,student.tel 联系方式,student.class 年级,A.name 学院,B.name 专业,dormitory.ch+cast(dormitory.num as varchar(2)) 楼号,student.r_id 房间id,room.num 房间" + " from (((student left join major A on student.u_id=A.id) left join major B on student.m_id=B.id) left join dormitory on student.d_id=dormitory.id) left join room on student.r_id=room.id" + " where"+s1+s2+s3+s4+s5+s6+s7+s8+s9+s10

查询出入登记记录:

   select student.sno 学号,student.sname 姓名,student.tel 联系方式,student.class 年级,A.name 学院,B.name 专业,room.num 房间,in_out.out_date 出去时间,in_out.in_date 返回时间" +" from ((((in_out left join student on in_out.s_id=student.id) left join major A on student.u_id=A.id) left join major B on student.m_id=B.id) left join dormitory on student.d_id=dormitory.id) left join room on student.r_id=room.id" +" where" + s1 + s2

查询来访登记记录:

select visit.name 来访人,student.sno 学号,student.sname 姓名,student.tel 联系方式,student.class 年级,A.name 学院,B.name 专业,room.num 房间,visit.in_date 访问时间,visit.out_date 出去时间" +" from ((((visit left join student on visit.s_id=student.id) left join major A on student.u_id=A.id) left join major B on student.m_id=B.id) left join dormitory on student.d_id=dormitory.id) left join room on student.r_id=room.id" +" where" + s1 + s2

查询管理员:

 select id, aname 名字,tel 联系方式,power 权限 from admin

6.2数据更新

关于数据更新举例如下:

修改学生:

"update student set"+str+"where sno='"+s1+"'"

修改出入登记记录:

"update in\_out set in\_date='"+t.ToString()+"' where d\_id="+s1+" and s\_id="+s2

修改来访登记记录:

"update visit set out\_date='" + t.ToString() + "' where d\_id=" + s1 + " and name='" + s2 + "'"

6.3数据删除

关于数据删除举例如下:

删除学生:

string sqlStr = "delete from student where id=";

删除管理员:

string sqlStr = "delete from admin where id=";

6.4数据添加

关于数据添加举例如下:

添加学生:

"insert into student (sno,sname,gender,age,tel,u\_id,m\_id,class,d\_id,r\_id) values('"+s1+"','"+s2+"','"+s3+"',"+s6+",'"+s5+"',"+s7+","+s8+","+s4+","+s9+","+s10+ ")"

添加出入登记:

"insert into in\_out (d\_id,s\_id,out\_date) values(" + s1 + "," + s2 + ",'" + t.ToString() + "')"

添加来访登记:

"insert into visit (d\_id,s\_id,name,in\_date) values(" +ConnectDB.getInstance().GetDorId(s1)+","+ConnectDB.getInstance().GetStuId(s2)+",'"+s3+"','"+d.ToString()+"')"

6.5数据维护

关于数据维护方面,每隔固定时间就要备份一次数据,并且删除冗余数据。以防止数据丢失和出错。

7 源代码及查询截图

7.1程序流程图

在这里插入图片描述

7.2数据库链接

关于数据库链接的代码如下:

 string str;
        SqlConnection con;
        static ConnectDB cdb = new ConnectDB();

        private ConnectDB()
        {
                    str = @"Data Source=A;Initial Catalog=dms;Persist Security Info=True;User ID=dms;Password=dms";
            con = new SqlConnection(str);
             }

数据库连接的打开和关闭:

con.Open();
con.Close();

7.3重点代码分析

7.3.1登陆:

通过查询数据库中管理员的名字和密码以及权限进行登陆,代码如下,

con.Open();
string cmd = "select id,aname,password,power from admin";
SqlCommand com = new SqlCommand(cmd, con);
SqlDataReader reader = com.ExecuteReader();
while (reader.Read())
{
String user = reader["aname"].ToString();
String pwd = reader["password"].ToString();
Form1.power = Int32.Parse(reader["power"].ToString().Trim());
                Form1.admin_name = "欢迎,"+user;
               Form1.admin_id = Int32.Parse(reader["id"].ToString().Trim());
                if (user.Trim() == u && pwd.Trim() == p)
                {
                    reader.Close();
                    con.Close();
                    return true; //登陆成功为true
                }
            }
reader.Close();
con.Close();
    return false;

7.3.2按权限显示内容:

通过判断登陆时获取的权限,决定是否显示相应的界面和内容,代码部分举例如下,

if (b == true && power == 0)
{
v_name_label1.Visible = b;
v_name1.Visible = b;
v_name_label2.Visible = b;
v_name_c.Visible = b;
v_name_label3.Visible = b;
v_name2.Visible = b;
in_bt.Visible = b;
out_bt.Visible = b;
}
else
{
 v_name_label1.Visible = false;
 v_name1.Visible = false;
 v_name_label2.Visible = false;
 v_name_c.Visible = false;
 v_name_label3.Visible = false;
 v_name2.Visible = false;
 in_bt.Visible = false;
 out_bt.Visible = false;
     }

7.3.3清空宿舍:

通过将学生的所属宿舍id改为0并且将宿舍剩余床位数量改为相应值来情况宿舍,代码部分举例如下,其中dat为查询出来的结果,最后一句模仿点击查询,将清空之后的结果显示,

if (dat == null)
{
 MessageBox.Show("没有选中的内容!", "提示");
 return;
 }
 string sqlStr = "update room set margin=4 where id=";
 for (int i = 0; i < dat.Rows.Count; i++)
 {
ConnectDB.getInstance().Change(sqlStr+dat.Rows[i]["id"]);
 }
 sqlStr = "update student set d_id=0,r_id=0 where r_id=";
 for (int i = 0; i < dat.Rows.Count; i++)
{
 ConnectDB.getInstance().Change(sqlStr + dat.Rows[i]["id"]);
}
    select_Click(sender, e);

7.3.4按条件查询学生:

通过左连接查询相应条件的学生进行显示,代码如下,

string s1 = num.Text.ToString().Trim();
string s2 = name.Text.ToString().Trim();
string s3 = gender.Text.ToString().Trim();
string s4 = class_t.Text.ToString().Trim();
string s5 = tel.Text.ToString().Trim();
string s6 = age.Text.ToString().Trim();
string s7 = school.Text.ToString().Trim();
string s8 = major.Text.ToString().Trim();
string s9 = do_c.Text.ToString().Trim();
string s10 = room.Text.ToString().Trim();
try
{
 if (s4 != "")
     Int32.Parse(s4);
 if (s6 != "")
     Int32.Parse(s6);
 if (s10 != "")
     Int32.Parse(s10);
 }
 catch (Exception a)
 {
 MessageBox.Show("请输入正确格式的数据!", "提示");
 return;
 }
 DataSet ds;
 s1 = s1 != "" ? " student.sno='"+s1+"'" : " student.sno!='null'";
 s2 = s2 != "" ? " and student.sname='" + s2 + "'" : " and student.sname!='null'";
 s3 = s3 != "" ? " and student.gender='" + s3 + "'" : " and student.gender!='null'";
 s4 = s4 != "" ? " and student.class=" + s4 : " and student.class!=0";
 s5 = s5 != "" ? " and student.tel='" + s5 +"'" : " and student.tel!='null'";
 s6 = s6 != "" ? " and student.age=" + s6 : " and student.age!=0";
 s7 = s7 != "" ? " and A.name='" + s7 + "'" : " and A.name!='null'";
 s8 = s8 != "" ? " and B.name='" + s8 + "'" : " and B.name!='null'";
              s9 = s9 != "全部" ? " and dormitory.ch='" + s9[0] + "' and dormitory.num=" + s9.Substring(1, s9.Length - 1) : "";
 s10 = s10 != "" ? " and room.num=" + s10 : "";
ds = ConnectDB.getInstance().GetData("select student.id, student.sno 学号,student.sname 姓名,student.gender 性别,student.age 年龄,student.tel 联系方式,student.class 年级,A.name 学院,B.name 专业,dormitory.ch+cast(dormitory.num as varchar(2)) 楼号,student.r_id 房间id,room.num 房间" +" from (((student left join major A on student.u_id=A.id) left join major B on student.m_id=B.id) left join dormitory on student.d_id=dormitory.id) left join room on student.r_id=room.id" +       " where"+s1+s2+s3+s4+s5+s6+s7+s8+s9+s10); 
dat = ds != null ? ds.Tables[0] : null;
dataGridView0.DataSource = dat;

7.4查询截图

以下截图为超级管理员(权限为2)权限下的情况:

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

8 收获、体会和建议

经过这次的数据库课程设计,首先,当然是得到了技能上的提升了,因为在完成这个课程设计的时候必须使用到C#和sql语言,并且C#的陌生和sql语言的复杂都让我有点难以解决,这便让我在这其中得到了技能的提升。

其次,由于本次课程设计的时间只有两周并且是在任务比较多的时间,这让我加快了学习的效率,学会了平心静气不浮躁的学习。

♻️ 资源

在这里插入图片描述

大小: 5.63MB
➡️ 资源下载:https://download.csdn.net/download/s1t16/87248133

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

01算法的概念

开始系统学习算法啦&#xff01;为后面力扣和蓝桥杯的刷题做准备&#xff01;这个专栏将记录自己学习算法是的笔记&#xff0c;包括概念&#xff0c;算法运行过程&#xff0c;以及代码实现&#xff0c;希望能给大家带来帮助&#xff0c;感兴趣的小伙伴欢迎评论区留言或者私信博…

Day828.多线程原语:管程 -Java 并发编程实战

多线程原语&#xff1a;管程 Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于多线程原语&#xff1a;管程的内容。 并发编程这个技术领域已经发展了半个世纪了&#xff0c;相关的理论和技术纷繁复杂。 那有没有一种核心技术可以很方便地解决的并发问题呢&#xff1…

JAVA毕业设计——基于SpringBoot的健身房管理系统(源代码+数据库)

github代码地址 https://github.com/ynwynw/gym-public 毕业设计所有选题地址 https://github.com/ynwynw/allProject 基于SpringBoot的健身房管理系统(源代码数据库) 一、系统介绍 系统层次结构图如下&#xff1a; 管理员登录模块会员管理模块教练管理模块课程管理模块器材…

基于Java+SQL Server2000实现(界面)学生选课管理系统【100010025】

学生选课管理系统 二、需求描述 本系统是一个单机版的小型的学生选课管理系统&#xff0c;在本系统中&#xff0c;开发了一个面向管理员、学生和教师这三个对象的教务平台&#xff0c;对学生提供的服务有登录、选课、、修改登录密码、和查询成绩这几个服务&#xff0c;所选课…

第二季5:配置视频捕获(step3:VI部分)

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 前言 本文将详细介绍博文第二季3&#xff1a;sample_venc.c的整体分析提及的“配置视频捕获”。 该部分主要涉及以下步骤&#xff1a; 5、配置MIPI6、初始化ISP7、运行ISP线程8、配置开启VI 设备捕…

Mybatis 参数处理器注入配置解析流程

参数处理器的作用 Mybatis作为一个ORM框架&#xff0c; 其最原始的本质就是JDBC&#xff0c;对于JDBC的使用步骤中有2步和参数处理器有关&#xff0c; 就是给预处理器PreparedStatement 设置参数以及通过结果集获取字段值。 这两个步骤在Mybatis中已经成为框架底层逻辑流程&am…

【K8S系列】第十一讲:包管理神器-Helm

目录 序言 1.背景介绍 1.1 k8s 简单介绍 1.2 k8s部署挑战 2.Helm 2.1 Helm介绍 2.1 使用优势&#xff1a; 3.Helm模块 3.1 Helm 3.1.1 安装Helm 3.2 Chart 3.2.1 Chart 基本介绍 3.2.2 Chart目录结构 3.3 Repoistory 3.4 Config 3.5 Release 4.投票 序言 当…

Windows及Linux系统查找某个端口和文件被占用

概述 开发中很常见的问题&#xff0c;每次遇到这个问题&#xff0c;都是去Google搜索&#xff0c;不一定能搜到满意的答案&#xff0c;有点耗时&#xff0c;故记录一下&#xff0c;得到本文。 端口被占用&#xff0c;导致IDEA启动应用失败。又或者某个文件被某个未知的应用使…

c#入门-抽象类

抽象类 有些类存在的意义就是为了让别的类继承。自己本身不应该具有实例。例如 class 单位 {public int 生命; } class 建筑 : 单位 {public int 护甲; } class 英雄 : 单位 {public int 护盾; } class 小兵 : 单位 {public int 经验; }可以使用abstract把他声明为抽象类。 抽…

Linux查找find命令全面剖析

Linux查找find命令全面剖析 1. 文件查找 在文件系统上查找符合条件的文件 1.1 简述 locate 命令 非实时查找(数据库查找) 依赖于事先构建的索引&#xff0c;索引的构建是在系统较为空闲时自动进行(周期性任务) 手动更新数据库(updatedb)&#xff0c;索引构建过程需要遍历整…

【物理应用】基于Matlab模拟13自由度摩托车模型

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

Python使用Selenium WebDriver的入门介绍及安装教程

Selenium WebDriver 入门一、什么是Selenium WebDriver二、安装Selenium WebDriver2.1 安装selenium类库2.2 安装浏览器驱动2.3 配置环境变量三、编写第一个Selenium脚本一、什么是Selenium WebDriver WebDriver 以本地化方式驱动浏览器&#xff0c;就像用户在本地或使用 Sele…

[附源码]Nodejs计算机毕业设计基于Java网上玩具商店Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

R语言基于协方差的SEM结构方程模型中的拟合指数

在实践中&#xff0c; 因子负载较低&#xff08;或测量质量较差&#xff09;的模型的拟合指数要好于因子负载较高的模型。 最近我们被客户要求撰写关于SEM的研究报告&#xff0c;包括一些图形和统计输出。例如&#xff0c;如果两个模型具有相同的错误指定级别&#xff0c;并且…

漫游Linux块IO

前言 在计算机的世界里&#xff0c;我们可以将业务进行抽象简化为两种场景——计算密集型和IO密集型。这两种场景下的表现&#xff0c;决定这一个计算机系统的能力。数据库作为一个典型的基础软件&#xff0c;它的所有业务逻辑同样可以抽象为这两种场景的混合。因此&#xff0…

云原生时代数据库运维体系演进

作者&#xff1a;vivo 互联网服务器团队- Deng Song 本文根据邓松老师在“2022 vivo开发者大会"现场演讲内容整理而成。 数据库运维面临着大规模数据库实例难以有效运维、数据库难以做好资源弹性伸缩以及个人隐私数据安全难以保障这三个方面的挑战。对此&#xff0c;vivo给…

redis之事务分析

写在前面 本文一起看下redis提供的事务功能。 1&#xff1a;事务的ACID A(Atomic)原子性&#xff0c;C&#xff08;Consitency&#xff09;一致性&#xff0c;I&#xff08;Isolation&#xff09;隔离性&#xff0c;D&#xff08;Durability&#xff09;持久性&#xff0c;其…

kubernetes学习之路--BadPods(Part1)

摘要&#xff1a;对Pod配置进行实战学习&#xff0c;以BadPods项目为例学习危险配置。 目录 一.BadPods介绍及使用 二.BadPods配置学习 2.1 less1--Everything allowed 基本操作学习 2.2 less1--Everything allowed 渗透学习 一.BadPods介绍及使用 项目地址&#xff1a;h…

西门子KTP1200触摸屏右上角出现黄色感叹号_报警指示器的组态与应用

西门子KTP1200触摸屏右上角出现黄色感叹号_报警指示器的组态与应用 设备运行时产生报警时通常会在画面右上角有个指示器在闪烁提示报警产生。 本次和大家分享报警指示器的组态和具体使用方法。 报警指示器的组态。 报警指示器使用警告三角来表示报警处于未决状态或要求确认。如…

数字验证学习笔记——SystemVerilog芯片验证15 ——随机约束和分布

一、随机和约束 1.1 随机 定向测试能找到你认为可能存在的缺陷&#xff0c;而随机测试可以找到你没有想到的缺陷。随机测试相对于定向测试可以减少相当多的代码量&#xff0c;而产生的激励较定向测试也更多样。 1.2 约束 我们想要的随机自由是一种合法的随机&#xff0c;需…