开发一个简单的课表查询系统,实现以下基本功能: 【基本功能】 课表数据文件。每个课表的信息包括:学期、专业班级、时间、科目、教室等基本信息。 能够按给定班级、时间等信息进行查找并显示相关信息。 能够添加、删除或修改课表中的课程信息。 能够按照学期或班级信息对课表进行排序,并存入文件中。 【扩展功能】 可以按照自己对课表查询系统的需求理解进行扩展。比如:(1)权限处理 (2)模糊查询(3)综合查询(4)统计功能等。要求:运用多文件,用C++写出完整代码
时间: 2024-03-17 18:47:30 浏览: 22
好的,我会尽力回答您的问题。对于您的问题,我建议您采用以下的程序实现:
1. 设计一个课程信息的结构体,包含学期、专业班级、时间、科目、教室等基本信息。
2. 设计一个课程信息的文件存储方式,可以自定义文件后缀名,以便查找和管理。
3. 设计主菜单,包含添加、删除、修改、查询和排序等功能选项。
4. 添加功能:输入课程信息,将课程信息添加到文件中。
5. 删除功能:输入要删除的课程信息,从文件中删除该课程信息。
6. 修改功能:输入要修改的课程信息,修改该课程信息,并将修改后的信息重新写入文件。
7. 查询功能:输入班级、时间等信息,按照给定条件查询并显示相关信息。
8. 排序功能:按照学期或班级信息对课表进行排序,并存入文件中。
9. 扩展功能:根据需要可添加权限处理、模糊查询、综合查询、统计功能等。
下面是一个简单的示例代码,可能需要根据实际情况进行修改和完善:
```c++
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
// 课程信息结构体
struct Course {
string term;
string majorClass;
string time;
string subject;
string classroom;
};
// 文件后缀名
const string FILE_EXTENSION = ".kcb";
// 文件路径
string filePath;
// 读取课程信息文件
vector<Course> loadCourses() {
vector<Course> courses;
ifstream inFile(filePath);
if (inFile) {
Course course;
while (inFile >> course.term >> course.majorClass >> course.time >> course.subject >> course.classroom) {
courses.push_back(course);
}
}
inFile.close();
return courses;
}
// 保存课程信息文件
void saveCourses(vector<Course> courses) {
ofstream outFile(filePath);
if (outFile) {
for (Course course : courses) {
outFile << course.term << " " << course.majorClass << " " << course.time << " " << course.subject << " " << course.classroom << endl;
}
}
outFile.close();
}
// 添加课程信息
void addCourse() {
Course course;
cout << "请输入学期:" << endl;
cin >> course.term;
cout << "请输入专业班级:" << endl;
cin >> course.majorClass;
cout << "请输入上课时间:" << endl;
cin >> course.time;
cout << "请输入科目:" << endl;
cin >> course.subject;
cout << "请输入教室:" << endl;
cin >> course.classroom;
vector<Course> courses = loadCourses();
courses.push_back(course);
saveCourses(courses);
cout << "添加成功!" << endl;
}
// 删除课程信息
void deleteCourse() {
Course course;
cout << "请输入要删除的课程信息:" << endl;
cout << "学期 班级 上课时间 科目 教室" << endl;
cin >> course.term >> course.majorClass >> course.time >> course.subject >> course.classroom;
vector<Course> courses = loadCourses();
vector<Course>::iterator iter = find(courses.begin(), courses.end(), course);
if (iter != courses.end()) {
courses.erase(iter);
saveCourses(courses);
cout << "删除成功!" << endl;
} else {
cout << "没有找到要删除的课程信息!" << endl;
}
}
// 修改课程信息
void modifyCourse() {
Course course;
cout << "请输入要修改的课程信息:" << endl;
cout << "学期 班级 上课时间 科目 教室" << endl;
cin >> course.term >> course.majorClass >> course.time >> course.subject >> course.classroom;
vector<Course> courses = loadCourses();
vector<Course>::iterator iter = find(courses.begin(), courses.end(), course);
if (iter != courses.end()) {
cout << "请输入修改后的课程信息:" << endl;
cout << "学期 班级 上课时间 科目 教室" << endl;
cin >> iter->term >> iter->majorClass >> iter->time >> iter->subject >> iter->classroom;
saveCourses(courses);
cout << "修改成功!" << endl;
} else {
cout << "没有找到要修改的课程信息!" << endl;
}
}
// 查询课程信息
void queryCourse() {
string majorClass;
string time;
cout << "请输入查询条件:" << endl;
cout << "专业班级(全部则输入ALL):" << endl;
cin >> majorClass;
cout << "上课时间(全部则输入ALL):" << endl;
cin >> time;
vector<Course> courses = loadCourses();
if (majorClass == "ALL" && time == "ALL") {
for (Course course : courses) {
cout << course.term << " " << course.majorClass << " " << course.time << " " << course.subject << " " << course.classroom << endl;
}
} else if (majorClass == "ALL") {
for (Course course : courses) {
if (course.time == time) {
cout << course.term << " " << course.majorClass << " " << course.time << " " << course.subject << " " << course.classroom << endl;
}
}
} else if (time == "ALL") {
for (Course course : courses) {
if (course.majorClass == majorClass) {
cout << course.term << " " << course.majorClass << " " << course.time << " " << course.subject << " " << course.classroom << endl;
}
}
} else {
for (Course course : courses) {
if (course.majorClass == majorClass && course.time == time) {
cout << course.term << " " << course.majorClass << " " << course.time << " " << course.subject << " " << course.classroom << endl;
}
}
}
}
// 排序课程信息
void sortCourse() {
string option;
cout << "请选择排序方式:" << endl;
cout << "1. 按学期排序" << endl;
cout << "2. 按专业班级排序" << endl;
cin >> option;
vector<Course> courses = loadCourses();
if (option == "1") {
sort(courses.begin(), courses.end(), [](Course a, Course b) { return a.term < b.term; });
} else if (option == "2") {
sort(courses.begin(), courses.end(), [](Course a, Course b) { return a.majorClass < b.majorClass; });
}
saveCourses(courses);
cout << "排序成功!" << endl;
}
int main() {
cout << "欢迎使用课表查询系统!" << endl;
cout << "请输入课程信息文件路径(包含文件名和后缀名):" << endl;
cin >> filePath;
while (true) {
cout << "请选择操作:" << endl;
cout << "1. 添加课程信息" << endl;
cout << "2. 删除课程信息" << endl;
cout << "3. 修改课程信息" << endl;
cout << "4. 查询课程信息" << endl;
cout << "5. 排序课程信息" << endl;
cout << "6. 退出系统" << endl;
string option;
cin >> option;
if (option == "1") {
addCourse();
} else if (option == "2") {
deleteCourse();
} else if (option == "3") {
modifyCourse();
} else if (option == "4") {
queryCourse();
} else if (option == "5") {
sortCourse();
} else if (option == "6") {
break;
} else {
cout << "输入有误,请重新输入!" << endl;
}
}
cout << "感谢使用课表查询系统!" << endl;
return 0;
}
```
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)