有一个向量vector<vector<string> >kosz;
,它包含具有不同数量元素的向量。需要将每个向量的元素分成对,但同时需要遍历所有可能的连接选项,例如,第一个元素与第二个元素是一对,第一个元素与第三对是第二对,第二对与第三对是另一对,依此类推。因此,您需要对所有内容进行排序并计算所有向量中相同对的数量。也就是说,例如,有一个向量kosz {{a,b,c,d}, {b,c,d}
。结果应该是这样的:{a,b} - 1 раз, {b,c} - 2 раза, {c,d} - 2 раза, {b,d} - 1 раз,
....好吧,并且本着这种精神。我只能弄清楚如何将向量拆分成对,但要对所有选项进行排序,就不是这样了。
Alex's questions
表单最初是不可见的,单击按钮时会打开。表单中有字段,input
需要在其中一个字段中插入日期(每次打开这个表单,日期必须是最新的,即表单一打开,发现日期是页面加载时形成并且不再更改),看起来如此:
<el-form :model="Phonebook_user" label-width="140px">
<el-form-item label="Users date">
<el-input id="data_field" v-model="time" disabled/>
</el-form-item>
<el-form-item label="Users numer">
<el-input v-model="Phonebook_user.numer"/>
</el-form-item>
<el-form-item label="Users name">
<el-input v-model="Phonebook_user.name"/>
</el-form-item>
<el-form-item label="Users info">
<el-input v-model="Phonebook_user.info"/>
</el-form-item></el-form>
对于日期,我使用time: this.getTime()
函数本身:
getTime: function() {
var dat = new Date()
this.time = dat.toUTCString()
return this.time
}
然后如何将此日期添加到 Phonebook_user 类?
有一个服务器,在输入登录名和密码时,会返回一个状态200 Ok
。我还需要它以响应正确的登录名和密码,响应将以表单形式出现,JSON
例如,字段data
。我该怎么做?这是 SpringSecurity 本身:
@Override
protected void configure(final HttpSecurity http) throws Exception {
http
.cors()
.and()
.authorizeRequests()
.anyRequest().authenticated()
.and()
.exceptionHandling()
.authenticationEntryPoint((req, res, e) -> res.setStatus(401))
.and()
.formLogin()
.successHandler((req, res, e) -> res.setStatus(200))
.failureHandler((req, res, e) -> res.setStatus(401))
.and()
.csrf().disable();
}
执行POST
请求时,密码必须以散列形式存储在数据库中。怎么做?这是我自己POST
:
@PostMapping("api/names/users")
public ResponseEntity<?> createPerson(@RequestBody Person newPerson) {
logger.info("Success_Post");
return new ResponseEntity<Person>(personRepository.save(newPerson), HttpStatus.OK);
这是课程Person
:
public class Person {
@Id
private String id;
private String name;
private String email;
private String password;
private String old;
(geters and setters)
有一个存储数据库的服务器。通过邮递员我做 POST 并body
指定数据类型json
,我记录了类型"name":"John", "password":"123"
,一切都很好,它应该可以工作。但是当我使用 axios.post 时,请求正文以空的形式发送到服务器,即创建了一个具有任意 id 和空字段的对象。这是方法本身:
postPerson: function() {
const url = 'http://localhost:8080/api/names/users'
axios.post(url, {
body: this.new_person,
dataType: 'json',
'Access-Control-Allow-Origin': 'localhost:8080',
'Access-Control-Allow-Methods': 'GET,PUT,POST,DELETE'
})
.then(response => { this.info = response.data })
}
这是我输入的内容body
:
new_person: {
id: 'Jonny',
Email: '@asd',
password: '123',
old: '22'
}
我向服务器发出请求get
并获得 json 格式的响应。response.data
看起来像这样:[ { "name": "mike", "password": "2345", "old": "12" }, { "name": "5c251688a3df283bb8630cc6", "password": "2345", "old": "12"}, { "name": "John", "password": "2345", "old": "20" ]
.如何显示,例如,所有的名字,或所有的密码等。这是方法本身:
getPerson: function() {
const url = 'http://localhost:8080/api/names'
axios.get(url, {
dataType: 'json',
'Access-Control-Allow-Origin': 'localhost:8080',
'Access-Control-Allow-Methods': 'GET,PUT,POST,DELETE' })
.then(response => {
return (this.info = response.data)
})
我创建了一个方法PUT
,创建了一个控制器并尝试更正数据库中的数据,但PUT
我收到了一个请求Bad Request, Required request body is missing
。帮我找出问题所在
@PutMapping(value = "api/names/{username}")
public ResponseEntity<?> updatePerson(@RequestBody Person person, @PathVariable String username){
Optional<Person> currentPerson = personRepository.findById(username);
person.setOld(person.getOld());
person.setEmail(person.getEmail());
person.setPassword(person.getPassword());
personRepository.save(person);
return new ResponseEntity<Person>(person, HttpStatus.OK);
}
有一个类Person
,就有一个领域name
。我将这些数据写入 Mongo,但在输出中,我想要的不是由 1 写下的类,而是name
它们的所有字段,而是在List<String>
. 这是代码
@RestController
public class Post_Get {
@Autowired
private PersonRepository personRepository;
private List<String> persons = new ArrayList<>();
@PostMapping("api/names")
public void post (@RequestParam("username") String name) {
Person person = new Person(name);
personRepository.save(person);
}
@GetMapping("api/names")
public List<Person> get () {
return personRepository.findAll();
}
}
我有一个执行 POST 和 GET 的 RestController。我需要将返回的数据显示为 json。
public List<Persons> Names_List = new ArrayList<>();
@RestController
public class Post_Get {
public List<String> Names_List = new ArrayList<>();
@PostMapping(value = "api/names")
public String post (@RequestParam(value = "username", required = true, defaultValue = "None") String names) {
Names_List.add(names);
return " Saved:" + names;
}
@GetMapping(value = "api/names", produces = "application/json")
public String get(String result) {
return "Names - " + Names_List.toString();
}
}
有一个 writeToFile 方法将必要的数据写入 .txt 文件,问题是每次都会覆盖文本,但我需要添加它。
public void writeToFile(def directory, def fileName, def extension, def infoList) {
new File("$directory/$fileName$extension").withWriter { out ->
infoList.each {
out.println it
}
这是我测试该方法的代码
def directory = 'C:/Task_1'
def c
def txtFileInfo = []
txtFileInfo << "Ваши данные - ${U_id}"
txtFileInfo << "И ваши данные... - ${B_num}"
writeToFile(directory, "info", ".txt", txtFileInfo
将文本中的每个字母替换为字母表中 n 个字符之后的字母的程序。编译时出现错误 cannot convert const char * to char* (swears at input_text)
#include "pch.h"
#include <iostream>
using namespace std;
int main()
{
char *input_text;
char *output_text;
input_text = "bla bla";
int n = 5;
int count = 0;
for (int i = 0; input_text[i] != 0; i++)
{
count++;
}
int input_text_lenght = count;
output_text = new char[input_text_lenght];
for (int k = 0; k < input_text_lenght; k++)
{
output_text[k] = input_text[k] + n;
}
cout << "input_text ... " << input_text << endl;
cout << "output_text ... " << output_text << endl;
delete[] output_text;
return 0;
}
DDDDDRRRPC 有多种格式。单独的 C、P、RRR、DDDDDD。如何实施?我刚学Java,好像有%的帮助下可以,但是我自己没有成功
有一个 CmoTime 变量,其中不断生成 0,尽管它似乎不是CmoTime = TimeGenerator(true, OrderInterval, Precision);
(例如,对于这样的数字 OrderInterval=0.06,Precision=0.01)。这是 TimeGenerator 本身 (Interval=0.01, Precition(Tochnost)=100)
private double TimeGenerator(bool FirstOrder, double Tochnost, double Interval)
{
double NewTime;
int GenerationInterval = (int)(Interval * Precition(Tochnost) + 1);
// только если это не первая заявка
if (!FirstOrder)
{
// исключение генерации нуля => повторяющееся время
do
{
NewTime = (double)(rand.Next() % GenerationInterval) / Precition(Tochnost);
} while (NewTime == 0);
}
else NewTime = (double)(rand.Next() % GenerationInterval) / Precition(Tochnost);
return Math.Round(NewTime, ChisloZnakov(Tochnost));
}
我写了一个程序,按下开始按钮后,程序就挂了,就是这样。没有错误出现。请帮助解决问题。我认为原因在于这一行Precision = Convert.ToDouble(comboBoxPrecision.SelectedItem.ToString(), NumberFormatInfo.InvariantInfo);
。它将值 0.01 转换为 Double
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class WorkForm : Form
{
private int InOrders;
private int ServiceOrders;
private int NumOfChannels;
private double Precision = 0;
private double OrderInterval;
private double ChannelInterval;
private int TotalTime;
private double CmoTime;
private ulong NumOfOrders = 0;
private ulong ServedOrders;
private int CmoPosition;
private int[] ChannelBusy;
private double[] ServiceTimeOfChannel;
private Random rand = new Random();
// функция которая преобразовывает точность для дальнейшего использования в программе и функциях
private int Precition(double e)
{
int Tochnost = 0;
if (e == 0.1)
Tochnost = 10;
if (e == 0.01)
Tochnost = 100;
if (e == 0.001)
Tochnost = 1000;
return Tochnost;
}
// Число знаков для округления исходя из точности
private int ChisloZnakov(double Prec)
{
int a = 0;
if (Prec == 0.1)
a = 1;
if (Prec == 0.01)
a = 2;
if (Prec == 0.001)
a = 3;
return a;
}
// функция которая возвращает интервал времени между заявками, либо интер. времени обслуж. канала
private double OrdersInterval(int NumOfOrders, double Tochnost)
{
int CelayaChast;
double Ostatok;
CelayaChast = Precition(Tochnost) / NumOfOrders;
Ostatok = (Precition(Tochnost) / (double)NumOfOrders - CelayaChast) * 10;
if (Ostatok >= 5)
CelayaChast++;
return (double)(CelayaChast / (double)Precition(Tochnost));
}
// генератор моментов времени
private double TimeGenerator(bool FirstOrder, double Interval, double Tochnost)
{
double NewTime;
int GenerationInterval = (int)(Interval * Precition(Tochnost) + 1);
// только если это не первая заявка
if (!FirstOrder)
{
// исключение генерации нуля => повторяющееся время
do
{
NewTime = (double)(rand.Next() % GenerationInterval) / Precition(Tochnost);
} while (NewTime == 0);
}
else
NewTime = (double)(rand.Next() % GenerationInterval) / Precition(Tochnost);
return Math.Round(NewTime, ChisloZnakov(Tochnost));
}
// проверяет наличие новой заявки
private bool NewOrder(double TimeOfCmo, double IntervalOfOrder, ulong NumberOfOrders)
{
if (TimeOfCmo >= IntervalOfOrder * (NumberOfOrders))
{
return true;
}
else return false;
}
// проверка системы в текущий момент времени
private void CmoCheck(int TotalTime, double CmoTime, int NumOfChannels)
{
int i = 0;
if (CmoPosition != 0)
{
while (i < NumOfChannels)
{
if (ChannelBusy[i] == 1)
{
if (((ServiceTimeOfChannel[i] <= CmoTime) && (CmoTime <= TotalTime)) || ((CmoTime > TotalTime) && (ServiceTimeOfChannel[i] <= TotalTime)))
{
ChannelBusy[i] = 0;
ServiceTimeOfChannel[i] = 0;
CmoPosition--;
richTextBox1.Text += (i + 1).ToString() + "-й канал обслужил заявку" + "\n";
ServedOrders++;
}
}
i++;
}
}
}
// запись заявок в каналы и генерация времени обслуживания в канале + окончание обслуживания
private void CmoWork(double CmoTime, int NumOfChannels, double ChannelInterval, double e)
{
double ChannelWorkTime;
int i = 0;
// если система свободна, то запись осуществляется в первый канал
if (CmoPosition == 0)
{
ChannelBusy[0] = 1;
ChannelWorkTime = TimeGenerator(false, ChannelInterval, e);
ServiceTimeOfChannel[0] = CmoTime + ChannelWorkTime;
CmoPosition++;
InfoOrder(CmoTime, 0, ChannelWorkTime);
}
else // иначе, идет запись в первый свободный канал
{
if (CmoPosition != NumOfChannels)
{
while (i < NumOfChannels)
{
if (ChannelBusy[i] == 0)
{
ChannelBusy[i] = 1;
ChannelWorkTime = TimeGenerator(false, ChannelInterval, e);
ServiceTimeOfChannel[i] = CmoTime + ChannelWorkTime;
CmoPosition++;
InfoOrder(CmoTime, i, ChannelWorkTime);
break;
}
i++;
}
}
else
{
richTextBox1.Text += "Заявка не может быть принята на обслуживание - КАНАЛЫ ЗАНЯТЫ" + "\n";
richTextBox1.Text += "Состояние СМО: " + CmoPosition.ToString() + "\n";
for (i = 0; i < NumOfChannels; i++)
{
richTextBox1.Text += "Состояние " + (i + 1).ToString() + "-го канала : " + Convert.ToString(ChannelBusy[i]) + "\n";
richTextBox1.Text += "Время окончания обслуживания в " + (i + 1).ToString() + " канале: " + Convert.ToString(ServiceTimeOfChannel[i]) + "\n";
}
}
}
}
// информация о поступившей заявке
private void Info(double CmoTime, ulong NumOfOrders)
{
richTextBox1.Text += "Время поступления " + NumOfOrders.ToString() + "-й заявки: " + CmoTime.ToString() + "\n";
}
private void InfoOrder(double CmoTime, int Index, double TimeOfChannel)
{
richTextBox1.Text += "Заявка принята на обслуживание: " + CmoTime.ToString() + " в " + (Index + 1).ToString() + "-й канал" + "\n";
richTextBox1.Text += "Время обслуживания заявки в канале: " + TimeOfChannel.ToString() + "\n";
richTextBox1.Text += "Время окончания обслуживания: " + ServiceTimeOfChannel[Index].ToString() + "\n";
}
// конструктор формы
public WorkForm()
{
InitializeComponent();
}
private void btnExit_Click_1(object sender, EventArgs e)
{
Application.Exit();
}
// ПУСК
private void btnStart_Click_1(object sender, EventArgs e)
{
// Считывание данных
if (TBoxOrders.Text != "" && TBoxOrderService.Text != "" && TBoxChannels.Text != "" && comboBoxPrecision.Text != "" && TBoxCmoWork.Text != "")
{
this.Enabled = false;
InOrders = Convert.ToInt32(TBoxOrders.Text);
ServiceOrders = Convert.ToInt32(TBoxOrderService.Text);
NumOfChannels = Convert.ToInt32(TBoxChannels.Text);
Precision = Convert.ToDouble(comboBoxPrecision.SelectedItem.ToString(), NumberFormatInfo.InvariantInfo);
richTextBox1.Text = "";
int i = 0;
// установление размерности массивов
ChannelBusy = new int[NumOfChannels];
ServiceTimeOfChannel = new double[NumOfChannels];
TotalTime = Convert.ToInt32(TBoxCmoWork.Text);
// Перевод системы в первоначальное состояние (обнуление всех переменных)
CmoTime = 0;
CmoPosition = 0;
NumOfOrders = 0;
ServedOrders = 0;
while (i <= NumOfChannels - 1)
{
ChannelBusy[i] = 0;
ServiceTimeOfChannel[i] = 0;
i++;
}
// Генерация поступления первой заявки
CmoTime = TimeGenerator(true, OrderInterval, Precision);
richTextBox1.Text += "\n" + "-----------------------" + "\n";
richTextBox1.Text += "Текущее время СМО :" + CmoTime.ToString();
richTextBox1.Text += "\n" + "-----------------------" + "\n";
NumOfOrders++;
Info(CmoTime, NumOfOrders);
CmoCheck(TotalTime, CmoTime, NumOfChannels);
CmoWork(CmoTime, NumOfChannels, ChannelInterval, Precision);
// Последующая работа системы
do
{
// Генерация следующих моментов времени СМО
CmoTime = Math.Round((CmoTime + TimeGenerator(false, OrderInterval, Precision)), ChisloZnakov(Precision));
richTextBox1.Text += "\n" + "-----------------------" + "\n";
richTextBox1.Text += "Текущее время СМО :" + CmoTime.ToString();
richTextBox1.Text += "\n" + "-----------------------" + "\n";
// Проверка системы в текущий момент времени
CmoCheck(TotalTime, CmoTime, NumOfChannels);
// Появление новой заявки
if ((NewOrder(CmoTime, OrderInterval, NumOfOrders)) && (CmoTime <= TotalTime))
{
NumOfOrders++;
Info(CmoTime, NumOfOrders);
CmoWork(CmoTime, NumOfChannels, ChannelInterval, Precision);
}
} while (CmoTime < TotalTime);
richTextBox1.Text += "Количество поступивших заявок: " + NumOfOrders.ToString() + "\n";
richTextBox1.Text += "Количество обслуженных заявок: " + ServedOrders.ToString() + "\n";
this.Enabled = true;
this.Focus();
btnResult.Enabled = true;
}
else MessageBox.Show("Все поля обязательны для заполнения!");
}
// проверка вводимых значений
private bool Check(string Txt)
{
try
{
Convert.ToInt32(Txt);
}
catch (Exception)
{
MessageBox.Show("Вводимое значение должно быть целым числом");
return false;
}
return true;
}
// ввод входящего потока
private void TBoxOrders_TextChanged_1(object sender, EventArgs e)
{
TBoxOrderService.Enabled = true;
}
// ввод интенсивности обслуживания
private void TBoxOrderService_TextChanged_1(object sender, EventArgs e)
{
TBoxChannels.Enabled = true;
}
// ввод количества каналов
private void TBoxChannels_TextChanged_1(object sender, EventArgs e)
{
TBoxCmoWork.Enabled = true;
}
// выбор точности
private void comboBoxPrecision_TextChanged_1(object sender, EventArgs e)
{
Precision = Convert.ToDouble(comboBoxPrecision.SelectedItem.ToString());
TBoxOrders.Enabled = true;
}
// завершение ввода входящего потока
private void TBoxOrders_Leave_1(object sender, EventArgs e)
{
if (TBoxOrders.Text != "" && (btnExit.ContainsFocus == false))
{
if (Check(TBoxOrders.Text))
{
InOrders = Convert.ToInt32(TBoxOrders.Text);
OrderInterval = OrdersInterval(InOrders, Precision);
labelOrdersInterval.Text = OrderInterval.ToString() + " ед.вр.";
}
else TBoxOrders.Focus();
}
}
// завершение ввода интенсивности обслуживания
private void TBoxOrderService_Leave_1(object sender, EventArgs e)
{
if (TBoxOrderService.Text != "" && (btnExit.ContainsFocus == false))
{
if (Check(TBoxOrderService.Text))
{
ServiceOrders = Convert.ToInt32(TBoxOrderService.Text);
ChannelInterval = OrdersInterval(ServiceOrders, Precision);
labelChannelInterval.Text = ChannelInterval.ToString() + " ед.вр.";
}
else TBoxOrderService.Focus();
}
}
// завершение ввода количества каналов
private void TBoxChannels_Leave_1(object sender, EventArgs e)
{
if (TBoxChannels.Text != "" && (btnExit.ContainsFocus == false))
{
if (Check(TBoxChannels.Text))
{
NumOfChannels = Convert.ToInt32(TBoxChannels.Text);
}
else TBoxChannels.Focus();
}
}
// ОТЧЕТ
private void btnResult_Click_1(object sender, EventArgs e)
{
ResultForm FResult = new ResultForm(this, NumOfChannels, Precision, TotalTime, NumOfOrders, ServedOrders);
FResult.Show();
}
private void WorkForm_Load_1(object sender, EventArgs e)
{
btnResult.Enabled = false;
}
private void comboBoxPrecision_SelectedIndexChanged(object sender, EventArgs e)
{
}
}
}
有一个代码,在 ComboBoxPrecision 中我选择了一个值(0.01),当转换为 Double 时,会弹出一个错误。问题是什么?(错误出现在第 4 行)
InOrders = Convert.ToInt32(TBoxOrders.Text);
ServiceOrders = Convert.ToInt32(TBoxOrderService.Text);
NumOfChannels = Convert.ToInt32(TBoxChannels.Text);
Precision = Convert.ToDouble(comboBoxPrecision.SelectedItem.ToString());
richTextBox1.Text = "";
有一个从 1 到 500 的数组。在其中,您需要将数字分成对,以便这些数字的总和是质数。在它显示正确的前3个数字之后,其余的都是不可理解的(太大,即不等于简单的数字)。
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
void amount(int array[], int &lenAr);
int main(void)
{
setlocale(LC_ALL, "Russian");
int a, length_array;
length_array = 500;
int *arr = new int[length_array];
a = 1;
for (int i = 0; i < 500; i++) {
arr[i] = a + i;
}
amount(arr, length_array);
system("pause");
return 0;
}
void amount(int array[], int &lenAr)
{
int *result = new int[500];
int n, i;
int alpha, delta;
bool isPrime = true;
for (int r = 0; r < 500; r++) {
alpha = r;
delta = alpha + 1;
n = array[alpha] + array[delta];
for (i = 2; i <= (sqrt(abs(n))); i++) {
if (n%i == 0) {
isPrime = false;
}
}
if (isPrime) {
result[r] = n;
}
}
cout << "Все числа" << endl;
for (int counter = 0; counter < lenAr; counter++)
{
cout << array[counter] << " ";
}
cout << endl << "Простые числа" << endl;
for (int counter = 0; counter < 30; counter++)
{
cout << result[counter] << " ";
}
cout << endl;
delete[] array;
delete[] result;
}
有 1, 2, 3 ... N ( N <= 500000 ) 中的数字。编写一个程序,将数字分成对,使它们的总和是质数。我不知道如何正确执行此分配,请告诉我。据我所知,我写了,但竞选活动根本不是。
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
int i,a;
int A[500000];
for (i = 1; i <= 500000; i++)
a = A[i];
a += A[i + 1];
if ((a%a == 1) && (a % 1 == 1))
cout << a;
system("pause");
}
有 2 个实数,x 和 y,它们是从键盘输入的。需要检查点是否落入给定区域,该区域是图片。如果是,则满足一个方程,如果不是,则满足另一个方程。我需要帮助检查点是否命中,我不知道该怎么做
#include "stdafx.h"
#include <iostream>
using namespace std;
void main()
{
setlocale(LC_ALL, "Russian");
float x, y, p; char n;
m1: cout << "Ввкдите кординаты точек:";
cout << "\n\t x="; cin >> x;
cout << "\t y="; cin >> y;
if (y >= 0 && x >= 0 && x*x + y * y <= 1 || y >= 0 && x <= 0 && x*x + y * y <= -1)
p = sin(x);
else p = x+2*y;
cout << "\t p=" << p;
cout << "\nПродолжить?: Y/N -> "; cin >> n;
if (n == 'Y') goto m1;
else cout << "Конец\n";
system("PAUSE");
}
] 1