用code blocks写公园门票
时间: 2024-10-16 12:21:22 浏览: 5
Code::Blocks是一个集成开发环境(IDE),常用于C++等语言的开发。下面是一个简单的例子,展示如何使用Code::Blocks创建一个计算公园门票价格的小程序:
```cpp
#include <iostream>
using namespace std;
// 定义票价函数
double calculate_ticket_price(int age) {
if (age <= 6) { // 免费
return 0;
} else if (age <= 18 || age >= 65) { // 成人和老人票
return 20.00;
} else { // 儿童票
return 10.00;
}
}
int main() {
int visitor_age;
cout << "请输入游客年龄:";
cin >> visitor_age;
double ticket_cost = calculate_ticket_price(visitor_age);
cout << "游客的门票价格是:" << ticket_cost << "元" << endl;
return 0;
}
```
在这个程序中,我们首先包含了必要的输入输出库,然后定义了一个`calculate_ticket_price`函数根据年龄段计算票价。在`main`函数里,用户输入年龄,然后调用这个函数并显示结果。
相关问题
CODE BLOCKS使用
CODE.Blocks是一款非常流行的集成开发环境(IDE),它专为初学者设计,特别是针对那些学习计算机科学和编程的学生。这款软件以其直观的界面、丰富的教学资源和对多种编程语言的支持而受到好评。它通常包含代码编辑器、调试工具、构建系统以及一些基本的代码片段库,方便用户快速上手编程,并提供了一个友好的环境来进行实验和学习常见的编程语言,如Python、JavaScript、C++等。
使用CODE.Blocks,新手可以轻松地创建项目,编写、运行代码,查看错误提示,并通过内置教程一步步学习编程知识。此外,它的自动补全功能和代码模板可以帮助提高编码效率。如果你是个编程入门者或需要寻找一款适合教育用途的IDE,CODE.Blocks是一个不错的选择。
code blocks用TCP实现大小写转换
以下是使用 TCP 实现大小写转换的示例代码,使用 Code::Blocks 编译运行:
Server 端:
```c
#include <stdio.h> // printf, fgets
#include <stdlib.h> // exit
#include <string.h> // strlen, strcmp, memset
#include <ctype.h> // toupper, tolower
#include <winsock2.h> // socket, bind, listen, accept, recv, send, closesocket, WSACleanup
#define PORT 8888 // 服务器端口号
#define BUFFER_SIZE 1024 // 缓冲区大小
int main() {
WSADATA wsaData;
SOCKET listenSocket, clientSocket;
struct sockaddr_in serverAddr, clientAddr;
int clientAddrLen = sizeof(clientAddr);
int ret, i;
char buffer[BUFFER_SIZE];
// 初始化 Winsock
ret = WSAStartup(MAKEWORD(2, 2), &wsaData);
if (ret != 0) {
printf("WSAStartup failed with error: %d\n", ret);
exit(1);
}
// 创建监听 Socket
listenSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (listenSocket == INVALID_SOCKET) {
printf("socket failed with error: %d\n", WSAGetLastError());
WSACleanup();
exit(1);
}
// 绑定 Socket 和地址
memset(&serverAddr, 0, sizeof(serverAddr));
serverAddr.sin_family = AF_INET;
serverAddr.sin_addr.s_addr = htonl(INADDR_ANY);
serverAddr.sin_port = htons(PORT);
ret = bind(listenSocket, (struct sockaddr*)&serverAddr, sizeof(serverAddr));
if (ret == SOCKET_ERROR) {
printf("bind failed with error: %d\n", WSAGetLastError());
closesocket(listenSocket);
WSACleanup();
exit(1);
}
// 开始监听
ret = listen(listenSocket, SOMAXCONN);
if (ret == SOCKET_ERROR) {
printf("listen failed with error: %d\n", WSAGetLastError());
closesocket(listenSocket);
WSACleanup();
exit(1);
}
printf("Server is listening on port %d...\n", PORT);
// 循环接收客户端连接并处理请求
while (1) {
// 接收客户端连接
clientSocket = accept(listenSocket, (struct sockaddr*)&clientAddr, &clientAddrLen);
if (clientSocket == INVALID_SOCKET) {
printf("accept failed with error: %d\n", WSAGetLastError());
closesocket(listenSocket);
WSACleanup();
exit(1);
}
printf("Client %s:%d connected.\n", inet_ntoa(clientAddr.sin_addr), ntohs(clientAddr.sin_port));
// 接收并处理客户端请求
i = 0;
while (1) {
ret = recv(clientSocket, &buffer[i], 1, 0);
if (ret == SOCKET_ERROR) {
printf("recv failed with error: %d\n", WSAGetLastError());
closesocket(clientSocket);
break;
} else if (ret == 0) {
printf("Client %s:%d disconnected.\n", inet_ntoa(clientAddr.sin_addr), ntohs(clientAddr.sin_port));
closesocket(clientSocket);
break;
} else {
if (buffer[i] == '\r' || buffer[i] == '\n') {
buffer[i] = '\0';
if (strcmp(buffer, "quit") == 0) {
printf("Client %s:%d disconnected.\n", inet_ntoa(clientAddr.sin_addr), ntohs(clientAddr.sin_port));
closesocket(clientSocket);
break;
} else {
for (int j = 0; j < i; j++) {
if (islower(buffer[j])) {
buffer[j] = toupper(buffer[j]);
} else if (isupper(buffer[j])) {
buffer[j] = tolower(buffer[j]);
}
}
send(clientSocket, buffer, strlen(buffer), 0);
i = 0;
memset(buffer, 0, sizeof(buffer));
}
} else {
i++;
if (i >= BUFFER_SIZE) {
printf("recv buffer overflow.\n");
closesocket(clientSocket);
break;
}
}
}
}
}
// 关闭监听 Socket
closesocket(listenSocket);
// 清理 Winsock
WSACleanup();
return 0;
}
```
Client 端:
```c
#include <stdio.h> // printf, fgets
#include <stdlib.h> // exit
#include <string.h> // strlen, memset
#include <ctype.h> // toupper, tolower
#include <winsock2.h> // socket, connect, recv, send, closesocket, WSACleanup
#define PORT 8888 // 服务器端口号
#define BUFFER_SIZE 1024 // 缓冲区大小
int main() {
WSADATA wsaData;
SOCKET clientSocket;
struct sockaddr_in serverAddr;
int ret, i;
char buffer[BUFFER_SIZE];
// 初始化 Winsock
ret = WSAStartup(MAKEWORD(2, 2), &wsaData);
if (ret != 0) {
printf("WSAStartup failed with error: %d\n", ret);
exit(1);
}
// 创建 Socket
clientSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (clientSocket == INVALID_SOCKET) {
printf("socket failed with error: %d\n", WSAGetLastError());
WSACleanup();
exit(1);
}
// 设置服务端地址
memset(&serverAddr, 0, sizeof(serverAddr));
serverAddr.sin_family = AF_INET;
serverAddr.sin_addr.s_addr = inet_addr("127.0.0.1"); // 服务端 IP 地址
serverAddr.sin_port = htons(PORT);
// 连接服务端
ret = connect(clientSocket, (struct sockaddr*)&serverAddr, sizeof(serverAddr));
if (ret == SOCKET_ERROR) {
printf("connect failed with error: %d\n", WSAGetLastError());
closesocket(clientSocket);
WSACleanup();
exit(1);
}
printf("Connected to server %s:%d.\n", inet_ntoa(serverAddr.sin_addr), ntohs(serverAddr.sin_port));
// 循环发送请求并接收响应
while (1) {
printf("Enter a message (or 'quit' to exit): ");
fgets(buffer, BUFFER_SIZE, stdin);
buffer[strlen(buffer) - 1] = '\r';
buffer[strlen(buffer)] = '\n';
ret = send(clientSocket, buffer, strlen(buffer), 0);
if (ret == SOCKET_ERROR) {
printf("send failed with error: %d\n", WSAGetLastError());
closesocket(clientSocket);
break;
} else {
i = 0;
memset(buffer, 0, sizeof(buffer));
while (1) {
ret = recv(clientSocket, &buffer[i], 1, 0);
if (ret == SOCKET_ERROR) {
printf("recv failed with error: %d\n", WSAGetLastError());
closesocket(clientSocket);
break;
} else if (ret == 0) {
printf("Server disconnected.\n");
closesocket(clientSocket);
break;
} else {
if (buffer[i] == '\r' || buffer[i] == '\n') {
buffer[i] = '\0';
printf("Server response: %s\n", buffer);
i = 0;
memset(buffer, 0, sizeof(buffer));
break;
} else {
i++;
if (i >= BUFFER_SIZE) {
printf("recv buffer overflow.\n");
closesocket(clientSocket);
break;
}
}
}
}
if (strcmp(buffer, "quit") == 0) {
break;
}
}
}
// 关闭 Socket
closesocket(clientSocket);
// 清理 Winsock
WSACleanup();
return 0;
}
```
阅读全文