c++程序: 实现一个单门课程成绩管理系统。进入系统时,用户可选择身份:1.教师;2学生。 以教师身份进入后,如果上次已保存了数据,可将文件中数据读取出来,并允许修改部分数据。如果未保存数据,则允许教师录入新的数据。具体功能包括: 可录入或修改课程信息,包括:课程编号、课程名称; 可录入或修改课程的评分项目 (数量任意,不低于3项),包括:项目名称、所占分比例(需进行合法性检测,各项目比例之和为100%);示例如下: 项目名称 所占比例 实验 30% 作业 20% 期中考试 20% 期末考试 30% 注: 一旦录入学生成绩后,评分项目不允许修改;未录入成绩数据时,允许进行修改。 3.可录入、修改、刑除学生(学生数量不限)读门课程的各项成绩,并按照其比例自动算出总成绩;学生基本信息包括学号、姓名;示例如下: 学号:201901 姓名:张三 实验:60 作业:70 期中考试:60 期未考试:80 信息显示功能。可显示课程信息、评分项目信息、所有学生的成绩单。 5.能够将上述数据保存在文件中,二进制、文本文件均可。(课程信息和评 分项目信息可保存一个文件,成绩单可保存一个文件;也可全部保存为


以下是一个C++实现的单门课程成绩管理系统的示例程序: ```cpp #include <iostream> #include <fstream> #include <vector> using namespace std; struct Course { int courseNumber; string courseName; }; struct GradeItem { string itemName; float itemPercentage; }; struct Student { int studentNumber; string studentName; vector<float> grades; }; vector<Course> courses; vector<GradeItem> gradeItems; vector<Student> students; void saveData() { ofstream file("data.txt", ios::out | ios::binary); // Save courses int courseCount = courses.size(); file.write(reinterpret_cast<const char*>(&courseCount), sizeof(int)); for (const Course& course : courses) { file.write(reinterpret_cast<const char*>(&course), sizeof(Course)); } // Save grade items int gradeItemCount = gradeItems.size(); file.write(reinterpret_cast<const char*>(&gradeItemCount), sizeof(int)); for (const GradeItem& gradeItem : gradeItems) { file.write(reinterpret_cast<const char*>(&gradeItem), sizeof(GradeItem)); } // Save students int studentCount = students.size(); file.write(reinterpret_cast<const char*>(&studentCount), sizeof(int)); for (const Student& student : students) { file.write(reinterpret_cast<const char*>(&student), sizeof(Student)); } file.close(); } void loadData() { ifstream file("data.txt", ios::in | ios::binary); if (!file) { cout << "No saved data found." << endl; return; } // Load courses int courseCount; file.read(reinterpret_cast<char*>(&courseCount), sizeof(int)); courses.resize(courseCount); for (Course& course : courses) { file.read(reinterpret_cast<char*>(&course), sizeof(Course)); } // Load grade items int gradeItemCount; file.read(reinterpret_cast<char*>(&gradeItemCount), sizeof(int)); gradeItems.resize(gradeItemCount); for (GradeItem& gradeItem : gradeItems) { file.read(reinterpret_cast<char*>(&gradeItem), sizeof(GradeItem)); } // Load students int studentCount; file.read(reinterpret_cast<char*>(&studentCount), sizeof(int)); students.resize(studentCount); for (Student& student : students) { file.read(reinterpret_cast<char*>(&student), sizeof(Student)); } file.close(); } void enterCourseInfo() { Course course; cout << "Enter course number: "; cin >> course.courseNumber; cin.ignore(); cout << "Enter course name: "; getline(cin, course.courseName); courses.push_back(course); } void enterGradeItems() { gradeItems.clear(); int gradeItemCount; cout << "Enter the number of grade items: "; cin >> gradeItemCount; cin.ignore(); for (int i = 0; i < gradeItemCount; i++) { GradeItem gradeItem; cout << "Enter item name: "; getline(cin, gradeItem.itemName); cout << "Enter item percentage: "; cin >> gradeItem.itemPercentage; cin.ignore(); gradeItems.push_back(gradeItem); } } void enterStudentGrades() { Student student; cout << "Enter student number: "; cin >> student.studentNumber; cin.ignore(); cout << "Enter student name: "; getline(cin, student.studentName); student.grades.resize(gradeItems.size()); for (int i = 0; i < gradeItems.size(); i++) { cout << "Enter grade for " << gradeItems[i].itemName << ": "; cin >> student.grades[i]; } students.push_back(student); } void displayCourseInfo() { cout << "Course Information:" << endl; for (const Course& course : courses) { cout << "Course Number: " << course.courseNumber << endl; cout << "Course Name: " << course.courseName << endl; cout << endl; } } void displayGradeItems() { cout << "Grade Item Information:" << endl; for (const GradeItem& gradeItem : gradeItems) { cout << "Item Name: " << gradeItem.itemName << endl; cout << "Item Percentage: " << gradeItem.itemPercentage << "%" << endl; cout << endl; } } void displayStudentGrades() { cout << "Student Grades:" << endl; for (const Student& student : students) { cout << "Student Number: " << student.studentNumber << endl; cout << "Student Name: " << student.studentName << endl; cout << "Grades:" << endl; for (int i = 0; i < gradeItems.size(); i++) { cout << gradeItems[i].itemName << ": " << student.grades[i] << endl; } cout << endl; } } void showMenu() { cout << "1. Enter course information" << endl; cout << "2. Enter grade items" << endl; cout << "3. Enter student grades" << endl; cout << "4. Display course information" << endl; cout << "5. Display grade items" << endl; cout << "6. Display student grades" << endl; cout << "7. Save data" << endl; cout << "8. Exit" << endl; } int main() { loadData(); int choice; do { showMenu(); cout << "Enter your choice: "; cin >> choice; cin.ignore(); switch (choice) { case 1: enterCourseInfo(); break; case 2: enterGradeItems(); break; case 3: enterStudentGrades(); break; case 4: displayCourseInfo(); break; case 5: displayGradeItems(); break; case 6: displayStudentGrades(); break; case 7: saveData(); break; case 8: cout << "Exiting..." << endl; break; default: cout << "Invalid choice. Please try again." << endl; } cout << endl; } while (choice != 8); return 0; } ``` 该程序使用了结构体来表示课程、评分项目和学生,使用了向量(vector)来存储数据。程序将数据保存在一个名为"data.txt"的二进制文件中,可以在每次启动程序时加载数据,并可以在用户选择保存数据时将数据写入文件。用户可以通过选择菜单选项来进行不同的操作,包括录入课程信息、评分项目和学生成绩,显示课程信息、评分项目和学生成绩,和保存数据。 [2024-05-24 10:20:03 | AI写代码神器 | 4293点数解答]
- c++程序: 实现一个单门课程成绩管理系统。进入系统时,用户可选择身份:1.教师;2学生。 以教师身份进入后,如果上次已保存了数据,可将文件中数据读取出来,并允许修改部分数据。如果未保存数据,则允许教师录入新的数据。具体功能包括: 可录入或修改课程信息,包括:课程编号、课程名称; 可录入或修改课程的评分项目 (数量任意,不低于3项),包括:项目名称、所占分比例(需进行合法性检测,各项目比例之和为100%);示例如下: 项目名称 所占比例 实验 30% 作业 20% 期中考试 20% 期末考试 30% 注: 一旦录入学生成绩后,评分项目不允许修改;未录入成绩数据时,允许进行修改。 3.可录入、修改、刑除学生(学生数量不限)读门课程的各项成绩,并按照其比例自动算出总成绩;学生基本信息包括学号、姓名;示例如下: 请录入“c++编程”课程成绩 学号:201901 姓名:张三 实验:60 作业:70 期中考试:60 期未考试:80 信息显示功能。可显示课程信息、评分项目信息、所有学生的成绩单。 5.能够将上述数据保存在文件中,二进制、文本文件均可。(课程信息和评 分项目信息可保存一个文件,成绩单(6361点数解答 | 2024-05-24 02:01:02)332
- c++程序: 实现一个单门课程成绩管理系统。进入系统时,用户可选择身份:1.教师;2学生。 以教师身份进入后,如果上次已保存了数据,可将文件中数据读取出来,并允许修改部分数据。如果未保存数据,则允许教师录入新的数据。具体功能包括: 可录入或修改课程信息,包括:课程编号、课程名称; 可录入或修改课程的评分项目 (数量任意,不低于3项),包括:项目名称、所占分比例(需进行合法性检测,各项目比例之和为100%);示例如下: 项目名称 所占比例 实验 30% 作业 20% 期中考试 20% 期末考试 30% 注: 一旦录入学生成绩后,评分项目不允许修改;未录入成绩数据时,允许进行修改。 3.可录入、修改、刑除学生(学生数量不限)读门课程的各项成绩,并按照其比例自动算出总成绩;学生基本信息包括学号、姓名;示例如下: 学号:201901 姓名:张三 实验:60 作业:70 期中考试:60 期未考试:80 信息显示功能。可显示课程信息、评分项目信息、所有学生的成绩单。 5.能够将上述数据保存在文件中,二进制、文本文件均可。(课程信息和评 分项目信息可保存一个文件,成绩单可保存一个文件;也可全部保存为(4293点数解答 | 2024-05-24 10:20:03)262
- c++程序编写: 实现一个单门课程成绩管理系统。进入系统时,用户可选择身份:1.教师;2学生。 以教师身份进入后,如果上次已保存了数据,可将文件中数据读取出来,并允许修改部分数据。如果未保存数据,则允许教师录入新的数据。具体功能包括: 可录入或修改课程信息,包括:课程编号、课程名称; 可录入或修改课程的评分项目 (数量任意,不低于3项),包括:项目名称、所占分比例(需进行合法性检测,各项目比例之和为100%);示例如下: 项目名称 所占比例 实验 30% 作业 20% 期中考试 20% 期末考试 30% 注: 一旦录入学生成绩后,评分项目不允许修改;未录入成绩数据时,允许进行修改。 3.可录入、修改、刑除学生(学生数量不限)读门课程的各项成绩,并按照其比例自动算出总成绩;学生基本信息包括学号、姓名;示例如下: 学号:201901 姓名:张三 实验:60 作业:70 期中考试:60 期未考试:80 信息显示功能。可显示课程信息、评分项目信息、所有学生的成绩单。 5.能够将上述数据保存在文件中,二进制、文本文件均可。(课程信息和评 分项目信息可保存一个文件,成绩单可保存一个文件;也可全部保(68点数解答 | 2024-05-24 10:17:09)212
- 编写三个系别的学生类:英语系,计算机系,文学系(要求通过继承学生类),各系有以下成绩: 英语系:演讲,期末考试,期中考试; 计算机系:操作能力,英语写作,期中考试,期末考试; 文学系:演讲,作品,期末考试,期中考试; 其中,综合成绩方法通过接口规定 各系总分评测标准: 英语系: 演讲 50% 期末考试 25% 期中考试 25% 计算机系: 操作能力 40% 英语写作 20% 期末考试 20% 期中考试 20% 文学系: 演讲 35% 作品 35% 期末考试 15% 期中考试 15% 定义一个可容纳6个学生的学生类数组,给该数组装入各系学生(每系2个)的对象,然后按如下格式输出数组中的信息: 学号:XXXXXXXX 姓名:XXX 性别:X 年龄:XX 综合成绩:XX (1215点数解答 | 2025-05-13 18:55:25)94
- c语音 定义一个结构体student,其中包含的成员为char no[10];char name[10];float score。设有5个学生,从键盘输入其信息,按成绩的升序排序。并输出这5个学生排序后的信息。 输入格式: "%s%s%f" 输出格式: "请输入第%d位同学的信息:姓名 学号 成绩\n" "%s,%s,%.0f\n" 输入样例: 张三 10001 98↙ 李四 10002 100↙ 王五 10003 95↙ 赵六 10004 99↙ 钱七 10005 93↙ 输出样例: 请输入第1位同学的信息:姓名 学号 成绩↙ 请输入第2位同学的信息:姓名 学号 成绩↙ 请输入第3位同学的信息:姓名 学号 成绩↙ 请输入第4位同学的信息:姓名 学号 成绩↙ 请输入第5位同学的信息:姓名 学号 成绩↙ 钱七,10005,93↙ 王五,10003,95↙ 张三,10001,98↙ 赵六,10004,99↙ 李四,10002,100↙(373点数解答 | 2024-10-30 00:37:20)266
- 定义一个结构体student,其中包含的成员为char no[10];char name[10];float score。设有5个学生,从键盘输入其信息,按成绩的升序排序。并输出这5个学生排序后的信息。 输入格式: "%s%s%f" 输出格式: "请输入第%d位同学的信息:姓名 学号 成绩\n" "%s,%s,%.0f\n" 输入样例: 张三 10001 98 李四 10002 100 王五 10003 95 赵六 10004 99 钱七 10005 93 输出样例: 请输入第1位同学的信息:姓名 学号 成绩 请输入第2位同学的信息:姓名 学号 成绩 请输入第3位同学的信息:姓名 学号 成绩 请输入第4位同学的信息:姓名 学号 成绩 请输入第5位同学的信息:姓名 学号 成绩 钱七,10005,93 王五,10003,95 张三,10001,98 赵六,10004,99 李四,10002,100(354点数解答 | 2024-10-30 18:45:58)206
- c语言定义一个结构体student,其中包含的成员为char no[10];char name[10];float score。设有5个学生,从键盘输入其信息,按成绩的升序排序。并输出这5个学生排序后的信息。 输入格式: "%s%s%f" 输出格式: "请输入第%d位同学的信息:姓名 学号 成绩\n" "%s,%s,%.0f\n" 输入样例: 张三 10001 98↙ 李四 10002 100↙ 王五 10003 95↙ 赵六 10004 99↙ 钱七 10005 93↙ 输出样例: 请输入第1位同学的信息:姓名 学号 成绩↙ 请输入第2位同学的信息:姓名 学号 成绩↙ 请输入第3位同学的信息:姓名 学号 成绩↙ 请输入第4位同学的信息:姓名 学号 成绩↙ 请输入第5位同学的信息:姓名 学号 成绩↙ 钱七,10005,93↙ 王五,10003,95↙ 张三,10001,98↙ 赵六,10004,99↙ 李四,10002,100↙(373点数解答 | 2024-10-31 19:49:58)192
- c语音定义一个结构体student,其中包含的成员为char no[10];char name[10];float score。设有5个学生,从键盘输入其信息,按成绩的升序排序。并输出这5个学生排序后的信息。 输入格式: "%s%s%f" 输出格式: "请输入第%d位同学的信息:姓名 学号 成绩\n" "%s,%s,%.0f\n" 输入样例: 张三 10001 98↙ 李四 10002 100↙ 王五 10003 95↙ 赵六 10004 99↙ 钱七 10005 93↙ 输出样例: 请输入第1位同学的信息:姓名 学号 成绩↙ 请输入第2位同学的信息:姓名 学号 成绩↙ 请输入第3位同学的信息:姓名 学号 成绩↙ 请输入第4位同学的信息:姓名 学号 成绩↙ 请输入第5位同学的信息:姓名 学号 成绩↙ 钱七,10005,93↙ 王五,10003,95↙ 张三,10001,98↙ 赵六,10004,99↙ 李四,10002,100↙(326点数解答 | 2025-01-01 20:11:47)183
- 题目描述 某测试会根据考生的分数,划分四个等级,具体规则是: 60 60 分以下:不合格 60 60 分及以上 ~ 80 80 分以下:合格 80 80 分及以上 ~ 90 90 分以下:良好 90 90 分及以上 ~ 100 100 分:优秀 输入格式 一行,一个数 a a 表示某考生的分数。 输出格式 输出对应的等级 input1 复制 59.5 output1 复制 不合格 input2 复制 89.9 output2 复制 良好 数据规模与约定 对于 100 % 100% 的数据, 0 ≤ a ≤ 100 0≤a≤100。(234点数解答 | 2025-08-31 12:55:23)34
- 题目描述 某测试会根据考生的分数,划分四个等级,具体规则是: 60 60 分以下:不合格 60 60 分及以上 ~ 80 80 分以下:合格 80 80 分及以上 ~ 90 90 分以下:良好 90 90 分及以上 ~ 100 100 分:优秀 输入格式 一行,一个数 a a 表示某考生的分数。 输出格式 输出对应的等级 input1 复制 59.5 output1 复制 不合格 input2 复制 89.9 output2 复制 良好 数据规模与约定 对于 100 % 100% 的数据, 0 ≤ a ≤ 100 0≤a≤100。 语言方向:C++ 系统环境:Windows(259点数解答 | 2025-08-31 12:55:38)48
- 按照 2个student类(number,name,englishscore,mathscore,computerscore) 1个studentxw类(number,name,englishscore,mathscore,computerscore,responsibility) 1个studentbz类(number,name,englishscore,mathscore,computerscore,responsibility) 顺序输入数据。 提示:1、可以采用 scanner.nextline()读取一行数据,2、然后利用字符串的“分割字符串”方法split(",")(参考课本p112)将拿到的一行数据进行分割,得到字符串数组,3、通过调用包装类integer的parseint()方法和包装类double的parsedouble()方法将字符串数组中的某个字符串转换为int类型和double 类型。(参考课本p133)。 输入案例: 101,lisi,70,70,70 101,zhaoliu,70,70,70 102,zhangsan,90,90,(684点数解答 | 2024-10-20 10:07:05)207
- https://chatgpt.com/?q=%E5%8F%AF%E5%A4%9A%E5%9C%A8%E6%95%99%E7%8C%B4%E5%B0%8F%E5%AE%9D%E8%AE%A4%E8%AF%86%E6%95%B0%E4%BD%8D%EF%BC%8C%E4%B8%AA%E3%80%81%E5%8D%81%E3%80%81%E7%99%BE%E3%80%81%E5%8D%83%E3%80%81%E4%B8%87%E2%80%A6%E2%80%A6%E5%8F%AF%E5%A4%9A%E4%BB%8E%E5%B7%A6%E5%88%B0%E5%8F%B3%EF%BC%8C%E4%BB%8E%E9%AB%98%E4%BD%8D%E5%88%B0%E4%BD%8E%E4%BD%8D%EF%BC%8C%E5%86%99%E4%B8%8B%E4%BA%86%E4%B8%80%E4%BA%9B%E6%95%B0%E5%AD%97%EF%BC%8C%E8%AE%A9%E7%8C%B4%E5%B0%8F%E5%AE%9D%E6%8B%BC%E5%87%BA%E4%B8%80%E4%B8%AA(395点数解答 | 2025-04-05 11:50:38)139