做网站卖东西赚钱,wordpress cosy主题,phpstudy配置wordpress,网站开发 周期这个代码实现了一个简单的数据仓库#xff0c;其中数据被存储在一个3x3的二维数组中。用户可以通过控制台界面与这个数据仓库进行交互#xff0c;可以选择查看数据或者修改数据。
基础版源码#xff1a;
#include stdio.h#define HOUSESIZE 3
int arr[HOUSESIZE][… 这个代码实现了一个简单的数据仓库其中数据被存储在一个3x3的二维数组中。用户可以通过控制台界面与这个数据仓库进行交互可以选择查看数据或者修改数据。
基础版源码
#include stdio.h#define HOUSESIZE 3
int arr[HOUSESIZE][HOUSESIZE] { 0 }; // 初始化所有元素为0void printHouseData() {for (int x 0; x HOUSESIZE; x) {for (int y 0; y HOUSESIZE; y) {printf(%d , arr[x][y]);}printf(\n);}
}void changeHouseData(int row, int column, int value) {if (row 1 row HOUSESIZE column 1 column HOUSESIZE) {arr[row - 1][column - 1] value;}else {printf(输入的行列值超出范围\n);}
}int main() {printf(欢迎使用数据仓库\n);printf(请选择功能\n);printf(1.查看数据仓库\n);printf(2.修改数据仓库数据\n);printf(输入0退出程序\n);int userinput;while (1) {scanf(%d, userinput);if (userinput 0) {break; // 允许用户通过输入0来退出程序}switch (userinput) {case 1:printHouseData();break;case 2:int row, column, value;printf(请输入你要改变数据的行、列、值用空格分隔\n);if (scanf(%d %d %d, row, column, value) ! 3) {printf(输入错误请重新输入\n);continue; // 输入错误时跳过本次循环重新提示用户输入}changeHouseData(row, column, value);break;default:printf(输入错误请重新选择功能\n);break;}}return 0;
}
这个程序只是一个比较简单的部分
不能实现数据永久存储程序后数据就没了造成。
如果想做成可以永久存储数据的仓库则需要加一个函数能够使它以txtxtxt形式存储到系统当中。
每次程序运行后都会读取数据。 升级版源码
#include stdio.h// ... 其他代码保持不变 ...void saveHouseDataToFile(const char* filename) {
FILE* file fopen(filename, w); // 打开文件进行写入
if (file NULL) {
perror(Error opening file);
return;
}for (int x 0; x HOUSESIZE; x) {
for (int y 0; y HOUSESIZE; y) {
fprintf(file, %d , arr[x][y]); // 将每个元素写入文件
}
fprintf(file, \n); // 每行结束后写入换行符
}fclose(file); // 关闭文件
}// ... 其他代码保持不变 ...int main() {
// ... 其他代码保持不变 ...// 假设我们想在程序结束时保存数据到文件
saveHouseDataToFile(house_data.txt);return 0;
}
从文件读取数据
接下来您需要添加一个函数来从文件中读取数据并初始化 arr 数组。这可以通过使用 fscanf 函数来实现。
#include stdio.h// ... 其他代码保持不变 ...void loadHouseDataFromFile(const char* filename) {
FILE* file fopen(filename, r); // 打开文件进行读取
if (file NULL) {
perror(Error opening file);
return;
}for (int x 0; x HOUSESIZE; x) {
for (int y 0; y HOUSESIZE; y) {
if (fscanf(file, %d, arr[x][y]) ! 1) {
perror(Error reading file);
fclose(file);
return;
}
}
}fclose(file); // 关闭文件
}int main() {
// 在程序开始时从文件加载数据
loadHouseDataFromFile(house_data.txt);// ... 其他代码保持不变 ...return 0;
} 注意事项 错误处理在实际应用中您需要更详细地处理文件操作可能发生的错误。上面的示例代码只是简单地打印了错误信息但在生产环境中您可能需要更复杂的错误处理逻辑。 文件路径确保您知道文件将保存在哪里以及程序有权限在那里读写文件。 数据完整性如果文件中的数据不完整或格式不正确加载数据的过程可能会失败。您应该添加适当的检查来确保数据的完整性。 文件格式上面的示例使用纯文本格式存储数据这对于简单的程序可能足够了。但对于更复杂的应用程序您可能需要使用更复杂的文件格式或序列化技术如JSON、XML或二进制格式。 安全性当处理文件时安全性是一个重要的考虑因素。确保您的程序不会受到恶意文件或意外输入的影响。
这个程序也可以使用Java来写 java源码
import java.util.Scanner;public class HouseData {private static final int HOUSESIZE 3;private static int[][] arr new int[HOUSESIZE][HOUSESIZE]; // 初始化所有元素为0public static void printHouseData() {for (int x 0; x HOUSESIZE; x) {for (int y 0; y HOUSESIZE; y) {System.out.print(arr[x][y] );}System.out.println();}}public static void changeHouseData(int row, int column, int value) {if (row 1 row HOUSESIZE column 1 column HOUSESIZE) {arr[row - 1][column - 1] value;} else {System.out.println(输入的行列值超出范围);}}public static void main(String[] args) {Scanner scanner new Scanner(System.in);System.out.println(欢迎使用数据仓库);System.out.println(请选择功能);System.out.println(1.查看数据仓库);System.out.println(2.修改数据仓库数据);System.out.println(输入0退出程序);int userInput;while (true) {userInput scanner.nextInt();if (userInput 0) {break; // 允许用户通过输入0来退出程序}switch (userInput) {case 1:printHouseData();break;case 2:System.out.println(请输入你要改变数据的行、列、值用空格分隔);int row scanner.nextInt();int column scanner.nextInt();int value scanner.nextInt();changeHouseData(row, column, value);break;default:System.out.println(输入错误请重新选择功能);break;}}scanner.close();}
}