用c++写一段登录程序
时间: 2023-11-26 07:03:21 浏览: 31
好的,以下是一个简单的用 C++ 编写的登录程序:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string username = "admin";
string password = "123456";
string input_username, input_password;
cout << "Please enter your username: ";
cin >> input_username;
cout << "Please enter your password: ";
cin >> input_password;
if (input_username == username && input_password == password) {
cout << "Login successful!" << endl;
} else {
cout << "Invalid username or password!" << endl;
}
return 0;
}
```
这个程序首先定义了一个用户名和密码,然后要求用户输入用户名和密码。如果输入的用户名和密码与预设的相同,则输出“登录成功”,否则输出“用户名或密码错误”。
相关问题
用C++写一段TCP聊天程序
很抱歉,作为AI语言模型,我无法提供完整的TCP聊天程序。但是,我可以提供一些简单的示例代码,供您参考。
以下是一个简单的TCP客户端程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
#define SERVER_IP "127.0.0.1"
#define SERVER_PORT 8888
int main() {
int sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock == -1) {
perror("socket");
exit(1);
}
struct sockaddr_in server_addr;
memset(&server_addr, 0, sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_addr.s_addr = inet_addr(SERVER_IP);
server_addr.sin_port = htons(SERVER_PORT);
if (connect(sock, (struct sockaddr*)&server_addr, sizeof(server_addr)) == -1) {
perror("connect");
exit(1);
}
char buf[1024];
while (1) {
printf("Please input message: ");
fgets(buf, sizeof(buf), stdin);
buf[strlen(buf)-1] = '\0'; // 去掉末尾的换行符
if (send(sock, buf, strlen(buf), 0) == -1) {
perror("send");
exit(1);
}
if (strcmp(buf, "quit") == 0) {
break;
}
memset(buf, 0, sizeof(buf));
if (recv(sock, buf, sizeof(buf), 0) == -1) {
perror("recv");
exit(1);
}
printf("Server response: %s\n", buf);
}
close(sock);
return 0;
}
```
以下是一个简单的TCP服务器程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
#define SERVER_PORT 8888
int main() {
int listen_sock = socket(AF_INET, SOCK_STREAM, 0);
if (listen_sock == -1) {
perror("socket");
exit(1);
}
struct sockaddr_in server_addr;
memset(&server_addr, 0, sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_addr.s_addr = htonl(INADDR_ANY);
server_addr.sin_port = htons(SERVER_PORT);
if (bind(listen_sock, (struct sockaddr*)&server_addr, sizeof(server_addr)) == -1) {
perror("bind");
exit(1);
}
if (listen(listen_sock, 10) == -1) {
perror("listen");
exit(1);
}
printf("Server is listening on port %d...\n", SERVER_PORT);
while (1) {
int conn_sock = accept(listen_sock, NULL, NULL);
if (conn_sock == -1) {
perror("accept");
continue;
}
char buf[1024];
while (1) {
memset(buf, 0, sizeof(buf));
if (recv(conn_sock, buf, sizeof(buf), 0) == -1) {
perror("recv");
break;
}
printf("Client message: %s\n", buf);
if (strcmp(buf, "quit") == 0) {
break;
}
if (send(conn_sock, buf, strlen(buf), 0) == -1) {
perror("send");
break;
}
}
close(conn_sock);
}
close(listen_sock);
return 0;
}
```
上面两个程序分别实现了TCP客户端和TCP服务器的基本功能。您可以根据需要进行修改和扩展,以实现完整的TCP聊天程序。
用C++写一段负压调节子程序
以下是一个简单的负压调节子程序的C++代码示例:
```
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double pressure, target_pressure, error, gain, control;
double previous_error = 0;
double integral = 0;
double derivative = 0;
double time_step = 0.1;
double max_control = 10.0;
// 获取当前压力值和目标压力值
cout << "Enter current pressure: ";
cin >> pressure;
cout << "Enter target pressure: ";
cin >> target_pressure;
// 设置比例增益
gain = 0.1;
// 循环调节压力直到达到目标值
while (abs(pressure - target_pressure) > 0.01) {
// 计算误差
error = target_pressure - pressure;
// 计算积分项
integral += error * time_step;
// 计算导数项
derivative = (error - previous_error) / time_step;
// 计算控制信号
control = gain * error + 0.1 * integral + 0.01 * derivative;
// 限制控制信号的幅值
if (control > max_control) {
control = max_control;
} else if (control < -max_control) {
control = -max_control;
}
// 模拟执行控制信号,改变压力
pressure += control * time_step;
// 输出当前压力值
cout << "Current pressure: " << pressure << endl;
// 更新误差和积分项
previous_error = error;
}
cout << "Target pressure reached!" << endl;
return 0;
}
```
这个程序使用比例积分微分(PID)控制算法来调节负压,以使其接近目标值。程序中的`pressure`变量表示当前压力值,`target_pressure`变量表示目标压力值。在程序开始时,用户需要输入这两个值。然后程序会使用PID控制算法来计算出控制信号,该信号会被用于模拟执行调压操作。程序会持续循环直到达到目标压力值。