首页 > 其他分享 >mvc架构的简单实践----用户注册的实现

mvc架构的简单实践----用户注册的实现

时间:2024-11-04 22:58:59浏览次数:1  
标签:用户注册 int xa st ---- ya mvc include dis

mvc架构的简单实践----用户注册的实现

蒟蒻本人今天学习了mvc三层架构,以下是使用本架构开发的一个简单的实例

主线任务---案例详细

1.我们要再mysql中创建一个表来存储账号密码

2.本次开发使用mvc三层架构来实现,分为web层service层和dao层首先要配置环境包括目录的创建和mybatis的配置和pom文件导入坐标

3.在dao层我们要设计两个对于数据库的操作,一个是根据用户名来查询用户是否已经被注册,和插入一个用户.这里sql语句较为简单所以使用注解开发

4.第二步是service层的开发,创建UserService,来封装对于数据库的操作.

5.第三步是web层这里包含两部分一部分有servlet来作负责数据的逻辑处理的数据的传输,另外一部分由jsp,和jstl标签和el表达式来实现.我还在其中添加了错误信息的提示嘿嘿

支线任务---图论拆点问题

今天写了一道拆点问题,用到了dp,状态压缩,bfs的知识.简单给大家分享一下.这道题是acwing上的一道题大兵瑞恩

本题为了解决找到取钥匙的最短路的问题,需要将图分层,对于不同的状态处于不同的层级,通过位运算将
判断状态的复杂度压缩到O(1).同时拿到钥匙要改变自身状态,遇到门只有状态足够才可以过去

#include<iostream>
#include<cstring>
#include<string>
#include<algorithm>
#include<queue>
#include<map>
#include<unordered_map>
#include<stack>
#include<vector>
typedef long long LL;
using namespace std;
#define INF 0x3f3f3f3f
typedef pair<int,int>PII;
#define x first
#define y second
const int N=20;

int dis[1<<12][N][N];
int n,m,p,k,s;
int pa[120][120];
int mp[12][12];
int dx[4]={0,0,1,-1},dy[4]={1,-1,0,0};

void bfs(int x,int y){
	queue<PII>q;
	q.push({0,0});
	dis[0][1][1]=0;
	if(mp[1][1]){
		dis[mp[1][1]][1][1]=0;
		q.push({mp[1][1],0});
	}
	
	while(q.size()){
		PII t=q.front();
		q.pop();
		int st=t.x;
		int po=t.y;
		int poy=t.y/10+1;
		int pox=t.y%10+1;
		for(int i=0;i<4;i++){
			int xa=pox+dx[i],
			    ya=poy+dy[i];
			if(xa<=0||xa>n||ya<=0||ya>m)
				continue; 
			int pos=xa-1+(ya-1)*10;
	        if((pa[po][pos]==0)||(pa[po][pos]!=-1&&((st>>pa[po][pos])&1)==0))continue;
			if(dis[st][xa][ya]!=-1)continue;
			dis[st][xa][ya]=dis[st][pox][poy]+1;
			q.push({st,pos});
			if(mp[xa][ya]){
			    int se=st|mp[xa][ya];
				dis[se][xa][ya]=dis[st][xa][ya];
				q.push({se,pos});
			}
		}
		
	}
	int mi=1e9;
	for(int i=0;i<(1<<(p+1));i++){
		if(dis[i][n][m]==-1)continue;
		else mi=min(mi,dis[i][n][m]);
	}
	if(mi==1e9)cout<<-1<<endl;
	else cout<<mi<<endl;
}
int main(){
	memset(dis,-1,sizeof dis);
	memset(pa,-1,sizeof pa);
	cin>>n>>m>>p;
	cin>>k;
	int x1,x2,y1,y2,d;
//	dis[0][1][1]=0;
	for(int i=0;i<k;i++){	
		cin>>x1>>y1>>x2>>y2>>d;
		int f1=(x1-1+(y1-1)*10);
		int f2=((y2-1)*10+x2-1);
		pa[f1][f2]=d;
		pa[f2][f1]=d;
	}
	cin>>s;
	for(int i=0;i<s;i++){
		cin>>x1>>y1>>d;
		mp[x1][y1]|=(1<<d);
	}
    bfs(1,1);
	
	return 0;
}

标签:用户注册,int,xa,st,----,ya,mvc,include,dis
From: https://www.cnblogs.com/yuanshitianzun123/p/18526931

相关文章

  • P1088 [NOIP2004 普及组] 火星人
    [NOIP2004普及组]火星人题目描述人类终于登上了火星的土地并且见到了神秘的火星人。人类和火星人都无法理解对方的语言,但是我们的科学家发明了一种用数字交流的方法。这种交流方法是这样的,首先,火星人把一个非常大的数字告诉人类科学家,科学家破解这个数字的含义后,再把一个很小......
  • 实验3 类和对象_基础编程2
    任务1:button.hpp#pragmaonce#include<iostream>#include<string>usingstd::string;usingstd::cout;//按钮类classButton{public:Button(conststring&text);stringget_label()const;voidclick();private:string......
  • 架构师之路-学渣到学霸历程-41
    Nginx的常用模块说明今晚继续分享nginx的常用模块;最后分享多三个;实验出真知,努力才有结果,让我们都看看这个模块的是怎么使用的;1、stub_status模块讲解这个是状态查看模块,这个模块是可以直接输出nginx的基本状态信息语法:格式: stub_status;作用范围:server location实......
  • YoloV8提升训练速度
    ......
  • GESP4级考试语法知识(计数排序-桶排序)
    整数排列参考程序代码:#include<iostream>#include<cstring>usingnamespacestd;intmain(){ inta[101],n,i,j,k; memset(a,0,sizeof(a));//数组清0 cin>>n;//输入数字个数 for(i=1;i<=n;i++) { cin>>k;//输入一个数字,数字范围肯定......
  • GESP4级考试语法知识(插入排序)
    #include<iostream>usingnamespacestd;constintMAXN=10001;intmain(){ intn,i,j,k; floattemp,a[MAXN]; cin>>n; for(i=1;i<=n;i++) cin>>a[i];//输入n个数 for(i=1;i<=n;i++) { for(j=i-1;j>=1;j--)//在前面有序区间为a[i]找合适的插......
  • #Java-对象补充及字符串详讲
    0.类和对象深入解释在Java中,类(Class)和对象(Object)是两个核心概念,它们共同构成了面向对象编程(OOP)的基础。类(Class)定义:类是一个模板或蓝图,它描述了具有相同属性和行为的一组对象的共同特征。在Java中,类通过关键字class来定义。组成:类通常由成员变量(也称为属性或字段)和方......
  • WorkFlow源码剖析——Communicator之TCPServer(中)
    WorkFlow源码剖析——Communicator之TCPServer(中)前言上节博客已经详细介绍了workflow的poller的实现,这节我们来看看Communicator是如何利用poller的,对连接对象生命周期的管理。(PS:与其说Communicator利用的是poller,其实Communicator使用的是mpoller,上节在介绍poller时也提......
  • 动态内存分配
    一、为什么要有动态内存分配二、malloc和free栈区中的数据出了作用域就会销毁;而静态区中数据的生命周期与全局变量一致,出了作用域也不会被销毁,直至程序结束后才会销毁。malloc函数与free函数需要包含的头文件是<stdlib.h>①malloc②free#include<stdio.h>#includ......
  • SWJTU数电实验:可控分频计数器
    一、实验要求基本实验内容1、设计一个可控分频器,clk_in为分频器时钟输入(50MHz,已固定连接在PIN_90),sel为选择开关,clk_out[1:0]为分频器信号输出。当sel=0时,clk_out[0]=sn[3:0]Hz,clk_out[1]=sn[3:0]/2Hz;当sel=1时,clk_out[0]=sn[3:0]H......