ASP.NET信息安全研究所设备管理系统的设计与实现
以研究所的设备管理系统为背景,以研究所设备管理模式为研究对象,开发了设备管理系统。设备管理系统是设备管理与计算机技术相结合的产物,根据系统的功能需求分析与定义的数据模式,分析了应用程序的主要功能和系统实现的主要技术。系统主要包括后台数据库的开发和前端应用程序的开发两个方面。考虑了当前设备管理的相关问题,探讨了系统实现的主要相关技术:如数据库技术、C#等。该系统考虑了实际开发的设备管理系统的开发环境、系统流程,主要完成设备类型管理、设备查询、设备档案管理、用户类型管理、用户档案管理,设备征订,设备借用,设备罚款,设备归还以及相应的数据修改,添加,修改等功能。
关键词:管理系统;设备流通;设备管理;用户管理
2.1 系统功能需求
设备管理系统的功能只在具体实现上与研究所的设备管理模式密切相关,总体目标主要是管理设备的各种基本属性数据和设备生命周期中的各种技术档案,改变目前设备资料的管理方式,系统完成日常的查询,统计等各种工作,实现资料电子化管理,把技术人员从大量复杂的统计,汇总等各种工作中解脱出来,实时、准确地为管理人员提供各种数据支持,为决策提供依据,减少决策的盲目性,减少失误。具体地,本文主要体现在以下几个方面:
1.设备的管理:包括设备的类型、设备的借用时间、设备是否在库、设备的修改、删除及查询的处理等;
2.用户的管理:包括用户的姓名,证件,借用日期和归还日期,用户借用设备的权限(这一部分有些功能是预留的待开发功能模块)等操作;
3.设备的流通管理:包括设备征订,设备借用,设备归还,逾期清单,设备罚款等操作。
3.1 系统结构设计
根据对系统要求完成的功能,将系统的功能模块设计为如图1所示。
图1 系统总体功能模块结构图
5.1 主界面
此界面的主要功能是提供所有其他界面的激活功能,界面如图3所示:
在这个界面,可以通过连接进入到其他各个功能模块,具体实现如下:
//----------------------查询MDI子窗体是否存在--------------------------
private bool checkChildFrmExist(string childFrmName)
{ foreach(Form childFrm in this.MdiChildren){
if(childFrm.Name == childFrmName) {//用Name判断,如果存在则将他激活
if(childFrm.WindowState == FormWindowState.Minimized)
childFrm.WindowState = FormWindowState.Normal;
childFrm.Activate();
图3 信息安全研究所设备管理系统主界面
return true;} }
return false; }
private void menuItem2_Click(object sender, System.EventArgs e)
{//通过窗体名称查询该窗体是否已经存在,如存在则显示,否则就新创建一个
if (this.checkChildFrmExist("ReaderClassify")==true)
{ return; }
ReaderClassify newFrm = new ReaderClassify();
newFrm.MdiParent = this;
newFrm.Show(); }
在调用其他界面之前,首先要连接数据库。原程序如下:
tringstrConn=@"DataSource=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|libbook.mdf; Integrated Security=True;Connect Timeout=30;User Instance=True";
SqlConnection cn = new SqlConnection(strConn);
cn.Open();
SqlCommand cmd = cn.CreateCommand();
对于数据库来说,Connection对象是唯一与外界沟通的管道,负责应用程序与数据库服务器实际的链接操作,所以所有对数据库做处理的操作,例如Command数据库之间的沟通都必须依赖与Connection对象。
Cn的含义是定义了一个变量,用来存放数据库连接所创建的对象。
Cn.open()则真正实现了数据库的连接。
在对数据库操作完后,一定要用Close方法关闭Connection对象与数据库的链接,使用该方法时会切断Connection对象与数据库之间的传送通道,并且所有依赖该Connection对象的Command对象都会立即被切断关联;在使用Close方法切断Connection对象与数据库之间的链接之后,可以调用Open方法再次打开该对象;如果Connection对象与数据库正在进行事物处理,那么调用Close方法会造成执行上的错误且所有未完全更新的数据将会丢失,同时Command对象也会自动关闭且丢失相关未更新数据。
5.2 用户管理
- 用户类别设置:
用户类别设置包括了用户的不同类型,用户类型查询,显示全部用户类型,添加新的用户类型,删除用户类型,用户借设备的各种限制。添加用户类型时,为了减少数据的复杂,如果所添类型在数据库中已有,则不在数据库中重复记录。当然在数据库中如果没有该用户类型就记录该类型到数据库中。添加类型信息包括:用户类型,可借设备数,可借特殊设备数,续借次数,借用范围,如图4所示。具体实现如下:
图4 用户类别设置界面
if(
e.Button.ToolTipText == "新增")
{
cmOrders.AddNew();
txt2.Text = "用户类别";
txt3.Text = "1";
txt4.Text = "1";
txt5.Text = "1";
SetModifyMode(true);}
if(e.Button.ToolTipText == "修改")
{SetModifyMode(true);}
if(e.Button.ToolTipText == "删除") {
DialogResult result=MessageBox.Show("确认删除?","删除数据", MessageBoxButtons.OKCancel);
if(result==DialogResult.OK)
if(cmOrders.Count > 0) { //立即从数据集中删除
cmOrders.RemoveAt(cmOrders.Position);
da1.Update(dataSet11); }
- 用户档案管理:
用户档案管理包括了用户编号,姓名查询,显示全部用户,添加用户信息,删除用户信息。添加一个新的用户信息时,为了减少数据的复杂,如果所添用户信息数据库中已有则不再数据库中重复记录。当然在数据库中如果没有该用户信息则记录该信息到数据库中。添加用户信息包括:编号,姓名,性别,类型,出生日期,有效证件,证件号码,联系方式,登记日期,有限期至,操作员,备注,设备借用次数,特殊设备借用次数,是否挂失,如图5所示:
具体实现如下:
int maxID=1;//计算新编号
object result=cmd.ExecuteScalar();
if(
result!=System.DBNull.Value) {
maxID=Convert.ToInt32(result)+1;}
int length=maxID.ToString().Length;
switch(length) {
case 1:txt5.Text="000"+maxID.ToString();break;
case 2: txt5.Text="00"+maxID.ToString();break;
case 3: txt5.Text="0"+maxID.ToString();break;
图5 用户档案管理界面
case 4: txt5.Text=maxID.ToString();break;}
cmb2.SelectedIndex=0;//选择默认类型 }
5.3 设备管理
- 设备类别设置:
设备类别设置分类按照所属类型进行分类:交换设备,服务器,安全性设备,传输,其他设备。可以进行设备设置,更改设备类型名称,可以借用的天数,类型编号,如图6所示:
图6 设备类别设置界面
具体实现如下:
int maxID = 1;//计算新编号
object result = cmd.ExecuteScalar();//返回查询中返回的第一行第一列
if (result != System.DBNull.Value) {
maxID = Convert.ToInt32(result) + 1; }
int length = maxID.ToString().Length;//数值转字符
switch (length) {
case 1:txt3.Text = "00" + maxID.ToString();break;
case 2: txt3.Text = "0" + maxID.ToString();break;
case 3:txt3.Text = maxID.ToString();break; }
txt4.Text = "1";//设置默认可借天数 }
- 设备档案管理:
设备档案管理包括了设备类型,查询设备,显示全部设备,添加设备类型,删除设备分类以及设备信息。添加设备时,为了减少数据的复杂,如果所添加设备在数据库中已有则不再在数据库中重复记录。当然在数据库中如果没有该设备就记录该设备到数据库中。添加设备信息包括:设备编号,设备名,类型,是否在库,公司,批号,加工厂,价格,重量,仓库名称,现存量,库存总量,入库时间,操作员,简介,借出次数,是否注销,如图7所示:
图7 设备档案管理界面
具体实现如下:
cmOrders = (CurrencyManager)BindingContext[dataSet11, "设备信息"];
//设置【加工厂】,【仓库名称】,【类型】三个下拉列表框设置下拉列表
setCombo("select distinct 类型名称from 设备类型", cmb1);
setCombo("select distinct 加工厂名称from 加工厂", cmb2);
setCombo("select distinct 仓库名称from 仓库", cmb3); }
int maxID=1;//计算新编号
object result=cmd.ExecuteScalar();
if(result!=System.DBNull.Value) {
maxID=Convert.ToInt32(result)+1;}
int length=maxID.ToString().Length;
switch(length)//生成新的编码{
case 1:txt5.Text="000000"+maxID.ToString();break;
case 2:txt5.Text="00000"+maxID.ToString();break;
case 3:txt5.Text="0000"+maxID.ToString();break;
case 4:txt5.Text="000"+maxID.ToString();break;
case 5:txt5.Text="00"+maxID.ToString();break;
case 6:txt5.Text="0"+maxID.ToString();break;} }
5.4 流通管理
1.设备征订:
设备征订可以对已有的设备进行征订,通过设备编号来进行征订,征订编号从以被征订的编号开始算起,依次往后加一位,实现顺序排列,如图8所示。具体实现如下:
//-----------显示设备编号时同时显示设备名称--------------
private void txt4_TextChanged(object sender, System.EventArgs e) {
if (txt4.ReadOnly == false || txt4.Text.Trim() == ""){
return; }
//------------调出设备选择窗体,选择设备-------------
private void cmb1_DropDown(object sender, System.EventArgs e) {
cmb1.Text = "";//清空原有设备名
Selectequip newfrm = new Selectequip();//调出新窗口选择设备
newfrm.Text = "双击表格选择设备";
newfrm.ShowDialog();
txt4.Text = equipID;//读入选择的设备信息
图8 设备征订界面
cmb1.Text = equipName; }
//-----------调用储存过程,提交设备征订----------
private void btnSusbribe_Click(object sender, System.EventArgs e) {
SqlCommand cmd = cn.CreateCommand();
cmd.CommandText = "exec sf_设备征订";
try
{cmd.ExecuteNonQuery();
dataSet11.设备征订.Clear();//刷新数据集
da1.SelectCommand.Parameters[0].Value = "%";
da1.SelectCommand.Parameters[1].Value = "%";
da1.Fill(dataSet11); return; }
在这个征订界面中还有嵌入了另外一个查询选择界面,从这个选择界面里面可以选择要进行征订的设备,如图9所示:
具体实现如下:
//-------------双击选择设备-----------------
private void dataGrid1_DoubleClick(object sender, System.EventArgs e) {
int curRow = dataGrid1.CurrentCell.RowNumber;
equipSubscribe.equipID = dataGrid1[curRow, 0].ToString();
equipSubscribe.equipName = dataGrid1[curRow, 1].ToString();
this.Close();}
图9 设备选择界面
2.设备借用:
设备借用模块用户可以借用需要的设备,管理员输入用户号的条形码或编号,然后系统自动调出用户的信息,操作员再输入设备的编号或条形码就可以得到需要借用的设备。点击确定就可以借用该设备。如果点取消借设备则借设备不成功。如果再输入了设备编号而未确定是否借设备就点击退出,系统会提示有设备正在借用,退出无法保存。相同的设备只能借用一次,如果再次输入同样的设备编号系统会提示此设备以借用。如果输入的编号无对应的设备,系统也会提示,如图10所示。具体实现如下:
图10 设备借用界面
if (rbt1.Checked)//判断根据编号查询用户信息还是根据条形码
{cmd.CommandText = "select a.姓名,a.类型,b.设备数量,a.编号from 用户信息a,用户类型b" + " where (a.类型=b.类型)and(a.编号='" + txt1.Text.Trim() + "')"; } else {
cmd.CommandText = "select a.姓名,a.类型,b.设备数量,a.编号from 用户信息a,用户类型b" + " where (a.类型=b.类型)and(a.条形码='" + txt1.Text.Trim() + "')"; }
SqlDataReader dr = cmd.ExecuteReader();//执行查询,并读入用户数据
dr.Read(); return; }
//--------------按回车借设备---------------
private void txt5_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) {
if (e.KeyChar == 13 && txt5.Text.Trim() != "")//获取与按下键相同的字符
{this.borrowequip();//用户借设备 } }
//------------用户借设备-------------
private void borrowequip(){
if (this.totalCount >= Convert.ToInt32(txt4.Text.Trim()))//如果借设备达到上限,则不允许再借
{ MessageBox.Show("已经达到最大借设备数量,请先归还设备后再借设备", "借设备数量达到上限", MessageBoxButtons.OK, MessageBoxIcon.Information);
groupBox2.Enabled = false; return; }{
cmd.CommandText = "select 编号,设备名,加工厂,价格,类型from 设备信息where 编号='" + txt5.Text.Trim() + "'"; }
//计算归还时间
int days = Convert.ToInt32(cmd.ExecuteScalar());
DateTime returnTime = System.DateTime.Now.AddDays(days);//获取当前时间
aRow["应还时间"] = returnTime.ToString();
tblequips.Rows.Add(aRow);//增加新借设备记录
totalCount++; }
3.逾期清单:
模块的主要功能是看到哪些用户的设备逾期了,如图11所示:
具体实现如下:
private void Overdueequip_Load(object sender, System.EventArgs e)
{ da1.SelectCommand.Parameters[0].Value = "%%";
da1.SelectCommand.Parameters[1].Value = "%%";
da1.SelectCommand.Parameters[2].Value = "%%";
da1.Fill(dataSet21);}
图11 逾期清单界面
4.设备归还:
int overDays = 365 * (System.DateTime.Now.Year - rTime.Year) + System.DateTime.Now.DayOfYear - rTime.DayOfYear; //计算过期天数
//根据过期天数计算罚金,台实例中定为每天.2元
decimal fee = (decimal)0.2 * overDays; return (fee); }
图12 设备归还界面
5.设备罚款:
设备罚款模块提供了一个罚款平台,但用户的设备借用逾期时,就会进行相应的罚款,如图13所示。
具体实现如下:
//-----------收取罚款-----------
private void btnPenalty_Click(object sender, System.EventArgs e) {
if (txt4.Text.Trim() == "")
{MessageBox.Show("请输入实收罚款金额", "输入金额", MessageBoxButtons.OK, MessageBoxIcon.Error);
return; }
图13 设备罚款界面
decimal money = Convert.ToDecimal(txt4.Text.Trim());//应收罚款金额
stringpenaltyID=dataGrid1[dataGrid1.CurrentCell.RowNumber,0].ToString().Trim();//罚款记录编号
相关文章:
ASP.NET信息安全研究所设备管理系统的设计与实现
摘 要 以研究所的设备管理系统为背景,以研究所设备管理模式为研究对象,开发了设备管理系统。设备管理系统是设备管理与计算机技术相结合的产物,根据系统的功能需求分析与定义的数据模式,分析了应用程序的主要功能和系统实现的主…...
<网络安全>《81 微课堂<安全产品微简介(1)>》
1 简单的了解复杂的安全产品 产品简要防火墙网络区域边界上部署,主要作用是隔离阻断。安全审计一般包括网络日志的分析、网络流量的监控和用户行为的跟踪等。发现网络中的潜在问题和漏洞。入侵检测IDS实时监控和检测网络中的异常活动和入侵行为。入侵防御IPS防病毒…...
【6D位姿估计】FoundationPose 跑通demo 训练记录
前言 本文记录在FoundationPose中,跑通基于CAD模型为输入的demo,输出位姿信息,可视化结果。 然后分享NeRF物体重建部分的训练,以及RGBD图为输入的demo。 1、搭建环境 方案1:基于docker镜像(推荐…...
Python 中 “yield“ 的不同行为
在我们使用Python编译过程中,yield 关键字用于定义生成器函数,它的作用是将函数变成一个生成器,可以迭代产生值。yield 的行为在不同的情况下会有不同的效果和用途。 1、问题背景 在 Python 中,“yield” 是一种生成器࿰…...
迅睿CMS中实现关键词搜索高亮
在迅睿CMS系统中实现关键词搜索高亮是提升用户体验和搜索效果的重要手段。当用户搜索某个关键词时,将搜索结果中的关键词高亮显示,可以帮助用户更快速地定位到所需信息。 关键词高亮的实现 在迅睿CMS中,你可以使用内置的dr_keyword_highlig…...
晶振的精度与稳定性有什么关系?
晶振的精度和稳定性是电子设备中非常重要的参数,它们受到多种因素的影响,主要包括: 精度的影响因素: 温度变化:晶体的温度系数会使得频率随温度变化而变化,通常在0C到55C的工业标准温度范围内,…...
【C】137 只出现一次的数字
给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。 解法一 #include <stdio.h>int singleNumber(i…...
51单片机入门:DS1302时钟
51单片机内部含有晶振,可以实现定时/计数功能。但是其缺点有:精度往往不高、不能掉电使用等。 我们可以通过DS1302时钟芯片来解决以上的缺点。 DS1302时钟芯片 功能:DS1302是一种低功耗实时时钟芯片,内部有自动的计时功能&#x…...
Redis-5 分布式锁
一.为什么要使用分布式锁? 传统的互斥锁synchronized只能作用于同一台虚拟机上的线程,在使用服务器集群部署的情况下,互斥锁就会失效,因此要采用分布式锁来处理不同服务器上的线程访问同一资源的情况。 二.redis的分布式锁是如何…...
音转文工具,9.8k star! 【送源码】
我们经常会遇到将音频转为文字的情况,比如在开会时录音的会议纪要、上课时录下的老师讲课内容。虽然网上也有一些在线的工具可以将音频转为文字,但是考虑到数据安全和费用问题,使用起来也不是很方便。 今天了不起给大家介绍一款开源工具——…...
【首次发布】华为 OD 机试 C卷抽中题库清单(真题库),目前华为OD机考以C卷为主,特殊情况会发送D卷
本篇博客为大家整理华为 OD 考友反馈 C 卷抽中题,经过 1 个的考友复盘,目前已经收录 100 题目,预计在有 2 周可以收集完整。 所有题目,都有考友截图反馈,同时欢迎大家机考过后,提供橡皮擦真题,获…...
【进程等待】waitpid的参数pid | status的位图位操作WIFEXITEDWEXITSTATUS宏
目录 waitpid pid status status位图 status按位操作 输入型参数和输入型参数 宏WIFEXITED&WEXITSTATUS options&非阻塞等待 上篇进程等待我们介绍到怎样去进程等待。我们介绍了wait函数&阻塞等待。本篇我们将介绍waitpid函数的参数pid和status。 waitp…...
unity---常用API
1. Vector3:结构体由x、y、z这3个数值组成,表示一个向量 magnitude变量返回该向量的长度normalized变量返回 magnitude 为 1 时的该向量zero静态变量Vector3(0, 0, 0)one静态变量Vector3(1, 1, 1)forward静态变量Vector3(0, 0, 1)back静态变量Vector3(0…...
设计模式: 模板模式
目录 一,模板模式 二,特点 三,组成部分 四,实现步骤 五,案例 一,模板模式 模板模式(Template Pattern)是一种行为型设计模式,它在超类中定义了一个算法的骨架&#…...
[虚拟机+单机]梦幻契约H5修复版_附GM工具
本教程仅限学习使用,禁止商用,一切后果与本人无关,此声明具有法律效应!!!! 教程是本人亲自搭建成功的,绝对是完整可运行的,踩过的坑都给你们填上了 视频演示 [虚拟机单…...
头文件相互包含 前向声明
当两个类需要相互访问对方的成员或方法时,通常意味着它们之间存在某种依赖关系。这种依赖关系可能源于类的设计或功能需求。以下是一个简单的例子,展示了当两个类需要相互访问对方成员或方法时,如何使用包含对方头文件的方式来解决循环包含的…...
七款好用的上网行为管理软件推荐 |有没有好用的上网行为管理系统
七款好用的上网行为管理软件推荐 |有没有好用的上网行为管理系统 员工上班刷视频! 员工上班炒股! 员工上班干副业! 碰见这种情况怎么办?当然是用电脑监控软件来监视员工的一举一动了,那么这样的软件有哪些呢&#…...
centos7-bcc 安装
检查 内核信息 确保安装的kernel-dev 和内核版本一致!!! rpm -qa|grep kernel kernel-tools-3.10.0-1160.92.1.el7.x86_64 kernel-devel-3.10.0-1160.92.1.el7.x86_64 kernel-headers-3.10.0-1160.92.1.el7.x86_64 kernel-3.10.0-1160.92.1.el7.x86_64 kernel-tools-libs-3.1…...
5.06号模拟前端面试8问
5.06号模拟前端面试8问 1.promise如何实现then处理 在JavaScript中,Promise 是一个代表异步操作最终完成或失败的对象。它有三种状态:pending(等待),fulfilled(完成),rejected&…...
解读Inscode AI:开启代码智能化的新时代
导语: 近年来,人工智能技术的迅猛发展已经深刻地影响着各个行业,而在软件开发领域,Inscode AI的出现无疑将给代码智能化带来一场革命。本文将为大家解读Inscode AI的特点和应用,探索其如何改变我们的软件开发方式。 一…...
快速了解Vuex
Vuex Vuex使用Vuex Vuex 📌vuex 是一个专为 Vue.js 应用程序开发的状态管理库 📌vuex 可以在多个组件之间共享数据,并且共享的数据是响应式的,即数据的变更能及时渲染到模板 📌vuex 采用集中式存储管理所有组件的状态…...
vue管理系统导航中添加新的iconfont的图标
1.在官网上将需要的图标,加入项目中,下载 2.下载的压缩包中,可以选择这两个,复制到项目目录中 3.如果和之前的iconfont有重复,那么就重新命名 4.将这里的.ttf文件,也重命名为自己的 5.在main文件中导入 6.在…...
Docker的介绍及与传统虚拟化技术的区别
Docker是一个开源的应用容器引擎,它使得开发者可以将应用及其依赖包打包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上。Docker基于Go语言开发,它的出现极大地简化了应用程序的部署、管理和扩展。 以下是Docker…...
06.Git远程仓库
Git远程仓库 #仓库种类,举例说明 github gitlab gitee #以这个仓库为例子操作登录码云 https://gitee.com/projects/new 创建仓库 选择ssh方式 需要配置ssh公钥 在系统上获取公钥输入命令:ssh-keygen 查看文件,复制公钥信息内…...
Anaconda安装和深度学习环境的安装(TensorFlow、Pytorch)
换了新电脑,重新装一下anaconda这些编程环境。好久没装过了,自己也需要查查资料,然后记录一下,分享给别人。 目标,三个环境:1.anaconda基础环境(包含xgboost和lightgbm),…...
元素设置 flex:1,但是会被内部长单词宽度超出拉伸
初始布局如上图,left中是代码编辑器,实际上是个文本域,当输入长文本过长时,left宽度会被拉伸。 右侧容器被挤压。 解决方案:width:0; .left{flex:1; width:0} 当输入长文本过长时,…...
win11 安装oracle11g详细流程及问题总结
1.安装包下载地址 本案例操作系统, Oracle 11g下载-Oracle 11g 64位/32位下载官方版(附详细的安装图解教程) - 多多软件站多多为大家免费提供Oracle 11g下载,包含64位/32位官方版本,并附详细的Oracle 11g安装图解教程,同时希望能…...
自我模拟面试
在面试中,你如何面对面试官呢? 我认为,对于面试官提出的问题,如果你不会,那就是不会。你的思考过程,实际上就是将你平时所学的,所了解的,在脑海中进行一次复习,就像当别…...
头歌java面向对象基础
第一关类的定义 package step1;// ---------------------Begin------------------------ public class Student{String name"李四";int age18;public void speak(){System.out.println("我爱学习");} }// ---------------------End----------------------…...
PMP课程知识点很多,无法入手,该如何学习?
回顾整个学习过程,我花费了不少时间,但也学到了系统的项目管理知识,考试结果也让我感到满意。在学习过程中,我认为以下几点非常重要: 1、需要对课本进行整体阅读,以便对内容有一个整体印象; 2…...
建网站外包公司/南昌seo排名优化
当我在pythonidle中运行这些代码时,我得到了一个警告,如何解决这个问题?在WARNING:root:Cannot locate objid nnn# -*- coding: utf-8 -*-from pdfminer.pdfinterp import PDFResourceManager, process_pdffrom pdfminer.converter import Te…...
网站建设价钱/贵州二级站seo整站优化排名
嵌入式介绍与应用1 概念桌面对比2 特点3 发展历史3.1 计算机发展3.2 嵌入式发展4 开发能力要求5 应用6 规模参考1 概念 嵌入式系统由硬件和软件组成。是能够独立进行运作的器件。其软件内容只包括软件运行环境及其操作系统。硬件内容包括信号处理器、存储器、通信模块等在内的…...
类似美团网的网站是怎么做的/黄山网站seo
今天看到《编码:隐匿在计算机软硬件背后的语言》的第十二章:二进制加法器。讲述了全加器,半加器的原理以及如何实现加法。实现加法时所使用的全加器,半加器中包含的所有逻辑门在C语言中都有相应的运算符,就想着能不能利…...
h5制作方法/seo网站优化方案摘要
文章目录第一题、01-Number-sequence第二题.02-Number Sequence - Part 2第三题:NUMBER SEQUENCE – PART 3第四题:NUMBER SEQUENCE – PART 4第五题:第六题:17-templer-03-en1.lab2的内容为上次课堂练习的内容,把做过…...
贵阳企业网站建设/网络销售好做吗
mybatis需要定位到执行哪条sql语句: 针对注解通过Mapper.java的全限定类名加方法名定位,例如: package com.xh.mapper; import com.xh.Admin; //接口方法必须与xml的id相同 xml代替注解作用 public interface AdminMapper {Select("se…...
淘宝建设网站的目的是什么/搜索引擎有哪些技巧
使用vscode编写html时, 期望用google浏览器 打开页面 弹出了报错 其实就是用cmd命令 去打开chrome, 但是环境变量中没有找到 1.把 chrome的安装目录 添加到系统环境变量中 C:\Users\系统当前的用户名\AppData\Local\Google\Chrome\Application\chrome.exe 百度搜索的时候有看…...