(12)高校信息查询系统“基本要求:+ 以高校为基本单位进行信息存放,高校信息包括:编号、学校名称、地址、省份、建校时间等。+功能要求:+ 1》能够对高校信息进行维护:新建、修改、删除操作;“ 2)按照高校任意信息进行查询,“ 3)以文件形式保存相关信息,可以读取默认文件中的信息进行查询等操作。C++实现
时间: 2024-02-03 07:04:31 浏览: 21
以下是一个简单的C++实现,实现了高校信息的存储、增删改查和文件读写功能。具体实现可根据需求进行修改和完善。
```
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
// 高校信息结构体
struct School {
int id; // 编号
string name; // 学校名称
string address; // 地址
string province;// 省份
int year; // 建校时间
// 构造函数
School(int _id, string _name, string _address, string _province, int _year) {
id = _id;
name = _name;
address = _address;
province = _province;
year = _year;
}
};
// 保存高校信息至文件
void saveToFile(vector<School>& schools) {
ofstream outfile("schools.txt");
for (auto school : schools) {
outfile << school.id << " " << school.name << " " << school.address << " "
<< school.province << " " << school.year << endl;
}
outfile.close();
}
// 从文件中读取高校信息
vector<School> readFromFile() {
vector<School> schools;
ifstream infile("schools.txt");
int id, year;
string name, address, province;
while (infile >> id >> name >> address >> province >> year) {
schools.push_back(School(id, name, address, province, year));
}
infile.close();
return schools;
}
// 添加高校信息
void addSchool(vector<School>& schools) {
int id, year;
string name, address, province;
cout << "请输入高校编号: ";
cin >> id;
cout << "请输入高校名称: ";
cin >> name;
cout << "请输入高校地址: ";
cin >> address;
cout << "请输入高校所在省份: ";
cin >> province;
cout << "请输入高校建校时间: ";
cin >> year;
schools.push_back(School(id, name, address, province, year));
cout << "添加成功!" << endl;
}
// 修改高校信息
void updateSchool(vector<School>& schools) {
int id, year;
string name, address, province;
cout << "请输入待修改高校编号: ";
cin >> id;
for (auto& school : schools) {
if (school.id == id) {
cout << "请输入高校名称: ";
cin >> name;
cout << "请输入高校地址: ";
cin >> address;
cout << "请输入高校所在省份: ";
cin >> province;
cout << "请输入高校建校时间: ";
cin >> year;
school.name = name;
school.address = address;
school.province = province;
school.year = year;
cout << "修改成功!" << endl;
return;
}
}
cout << "未找到该高校信息!" << endl;
}
// 删除高校信息
void deleteSchool(vector<School>& schools) {
int id;
cout << "请输入待删除高校编号: ";
cin >> id;
for (auto it = schools.begin(); it != schools.end(); ++it) {
if (it->id == id) {
schools.erase(it);
cout << "删除成功!" << endl;
return;
}
}
cout << "未找到该高校信息!" << endl;
}
// 按照编号查询高校信息
void queryById(vector<School>& schools) {
int id;
cout << "请输入待查询高校编号: ";
cin >> id;
for (auto school : schools) {
if (school.id == id) {
cout << "编号: " << school.id << endl;
cout << "名称: " << school.name << endl;
cout << "地址: " << school.address << endl;
cout << "省份: " << school.province << endl;
cout << "建校时间: " << school.year << endl;
return;
}
}
cout << "未找到该高校信息!" << endl;
}
// 按照名称查询高校信息
void queryByName(vector<School>& schools) {
string name;
cout << "请输入待查询高校名称: ";
cin >> name;
for (auto school : schools) {
if (school.name == name) {
cout << "编号: " << school.id << endl;
cout << "名称: " << school.name << endl;
cout << "地址: " << school.address << endl;
cout << "省份: " << school.province << endl;
cout << "建校时间: " << school.year << endl;
return;
}
}
cout << "未找到该高校信息!" << endl;
}
// 按照地址查询高校信息
void queryByAddress(vector<School>& schools) {
string address;
cout << "请输入待查询高校地址: ";
cin >> address;
for (auto school : schools) {
if (school.address == address) {
cout << "编号: " << school.id << endl;
cout << "名称: " << school.name << endl;
cout << "地址: " << school.address << endl;
cout << "省份: " << school.province << endl;
cout << "建校时间: " << school.year << endl;
return;
}
}
cout << "未找到该高校信息!" << endl;
}
// 按照省份查询高校信息
void queryByProvince(vector<School>& schools) {
string province;
cout << "请输入待查询高校省份: ";
cin >> province;
for (auto school : schools) {
if (school.province == province) {
cout << "编号: " << school.id << endl;
cout << "名称: " << school.name << endl;
cout << "地址: " << school.address << endl;
cout << "省份: " << school.province << endl;
cout << "建校时间: " << school.year << endl;
}
}
cout << "未找到该省份的高校信息!" << endl;
}
int main() {
vector<School> schools = readFromFile();
int choice;
while (true) {
cout << "请选择操作:\n";
cout << "1.添加高校信息\n";
cout << "2.修改高校信息\n";
cout << "3.删除高校信息\n";
cout << "4.按照编号查询高校信息\n";
cout << "5.按照名称查询高校信息\n";
cout << "6.按照地址查询高校信息\n";
cout << "7.按照省份查询高校信息\n";
cout << "0.退出程序\n";
cin >> choice;
switch (choice) {
case 1:
addSchool(schools);
saveToFile(schools);
break;
case 2:
updateSchool(schools);
saveToFile(schools);
break;
case 3:
deleteSchool(schools);
saveToFile(schools);
break;
case 4:
queryById(schools);
break;
case 5:
queryByName(schools);
break;
case 6:
queryByAddress(schools);
break;
case 7:
queryByProvince(schools);
break;
case 0:
return 0;
default:
cout << "输入无效,请重新输入!" << endl;
break;
}
}
return 0;
}
```