n=0,cin>>c[n++]是什么意思?还有输入成绩的一些问题

本文解决了一个使用C语言进行成绩等级输出时出现的问题,通过更正字符串使用方式解决了警告信息,确保了输出正确。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题1:n=0,cin>>c[n++]是什么意思?


回答:


n=0;是给变量赋值;
cin >> c[n++];


等价于
cin >> c[n] ;从控制台输入一个值,放入数组变量c的第n个单元;
n++; 相当于n=n+1。


问题2:简单的成绩等级对应c程序,输出有问题,请问下,哪里出错了呢?


可执行,但是如果输入99结果显示>,反正不输出ABCDE
#include <stdio.h>
int main()
{
float grade;
char level;
printf("shu ru cheng ji \n");
scanf_s("%f",& grade);
if (grade >= 90) level = "A";
else if (grade >= 80) level = "B";
else if (grade >= 70) level = "C";
else if (grade >= 60) level = "D";
else  level = "E";
printf("the level is %c", level);
system("pause");
return 0;
}


错误列表显示:
警告C4047“=”:“char”与“char [2]”的间接级别不同


回答:


"A"代表字符串,'A'这个才是字符,把双引号改成单引号
 
模仿#include <iostream> #include <iomanip> #include <string> #include <fstream> using namespace std; const int MAX = 1000;//添加最大教师数,想添加多少自己可以随便改 class Teacher//设计教师类 { private: string number;//教师编号 string name;//姓名 string category;//职称 string courses;//认教课程 string clas;//班级 int ClassQuantity;//班级数目 int TheoryHour;//理论课时 int ExperimentHour;//实验课时 double TotalCoursesHour;//单个教学任务总课时 public: string ReturnNumber();//返回教师编号 string ReturnName();//返回教师姓名 double ReturnTotalCoursesHour();//返回单个教学任务总课时 string ReturnCategory();//返回职称 string ReturnCourses();//返回任教课程 string ReturnClass();//返回班级 int ReturnClassQuantity();//返回班级数目 int ReturnTheoryHour();//返回理论课时 int ReturnExperimentHour();//返回实验课时 void changenumber(string str);//修改编号 void changename(string str);//修改教师姓名 void changecategory(string str);//修改职称 void changecourses(string str);//修改认教课程 void changeclass(string str);//修改班级 void changeclassquantity(int n);//修改班级数目 void changetheoryhour(int n);//修改理论课程 void changeexprimenthour(int n);//修改实验课时 void changetotalcourseshour(double n);//修改单个教学任务总课时 void show();//显示教师基本信息 }; void main()//////////////////////////主函数///////////////////////// { void menu();//菜单 void add(Teacher *, int *);//添加教师 void change(Teacher *, int );//修改教师信息 void delete_(Teacher *, int *);//删除教师 void statistics(Teacher *, int );//教师工作量统计 void search(Teacher *, int );//教师查询 void ShowAll(Teacher *, int );//显示所有教师信息 void readfile(Teacher *teacher, int *n);//从文件读取数据 void save(Teacher *teacher, int n);//数据保存到文件 int n;//输入选项 int list = 0;//教师人数 Teacher teacher[MAX];//教师对象数组 menu(); cin >> n; while (1) { switch (n) { case 1: add(teacher, &list); break; case 2: if (list == 0) cout << "没有任何教师,请先添加...\n"; else change(teacher, list); break; case 3: if (list == 0) cout << "没有任何教师,请先添加...\n"; else delete_(teacher, &list); break; case 4: if (list == 0) cout << "没有任何教师,请先添加...\n"; else statistics(teacher, list); break; case 5: if (list == 0) cout << "没有任何教师,请先添加...\n"; else search(teacher, list); break; case 6: if (list == 0) cout << "没有任何教师,请先添加...\n"; else ShowAll(teacher, list); break; case 7: readfile(teacher, &list); break; case 8: if (list == 0) cout << "没有任何教师,请先添加...\n"; else save(teacher, list); break; case 0: { cout << "欢迎再次使用! Bye!\n"; exit (0); } default : { cout << "输入有误!\n"; exit (0); } } cout << "您的选择(回车确认):"; cin >> n; } } void menu()//菜单 { cout << "\t\t==============================================\n"; cout << "\t\t= =\n"; cout << "\t\t= 欢 迎 使 用 =\n"; cout << "\t\t= 教师工作量管理系统 =\n"; cout << "\t\t= ------------------------------------ =\n"; cout << "\t\t= 1.添加教师 =\n"; cout << "\t\t= 2.修改教师信息 =\n"; cout << "\t\t= 3.删除授课教师 =\n"; cout << "\t\t= 4.教师工作量统计 =\n"; cout << "\t\t= 5.教师查询 =\n"; cout << "\t\t= 6.显示所有教师 =\n"; cout << "\t\t= 7.文件读取 =\n"; cout << "\t\t= 8.数据保存到文件 =\n"; cout << "\t\t= 0.退出 =\n"; cout << "\t\t= =\n"; cout << "\t\t==============================================\n\n"; cout << "您的选择(回车确认):"; } string Teacher :: ReturnNumber()//返回教师编号 { return number; } string Teacher :: ReturnName()//返回教师姓名 { return name; } double Teacher :: ReturnTotalCoursesHour()//返回单个教学任务总课时 { return TotalCoursesHour; } string Teacher :: ReturnCategory()//返回职称 { return category; } string Teacher :: ReturnCourses()//返回任教课程 { return courses; } string Teacher :: ReturnClass()//返回班级 { return clas; } int Teacher :: ReturnClassQuantity()//返回班级数目 { return ClassQuantity; } int Teacher :: ReturnTheoryHour()//返回理论课时 { return TheoryHour; } int Teacher :: ReturnExperimentHour()//返回实验课时 { return ExperimentHour; } void Teacher :: changenumber(string str)//修改编号 { number = str; } void Teacher :: changename(string str)//修改教师姓名 { name = str; } void Teacher :: changecategory(string str)//修改职称 { category = str; } void Teacher :: changecourses(string str)//修改认教课程 { courses = str; } void Teacher :: changeclass(string str)//修改班级 { clas = str; } void Teacher :: changeclassquantity(int n)//修改班级数目 { ClassQuantity = n; } void Teacher :: changetheoryhour(int n)//修改理论课程 { TheoryHour = n; } void Teacher :: changeexprimenthour(int n)//修改实验课时 { ExperimentHour = n; } void Teacher :: changetotalcourseshour(double n)//修改单个教学任务总课时 { TotalCoursesHour = n; } void Teacher :: show() { if (ClassQuantity == 2) TotalCoursesHour = 1.5 * (TheoryHour + ExperimentHour);//计算单个教学任务总课时 if (ClassQuantity == 3) TotalCoursesHour = 2 * (TheoryHour + ExperimentHour);//计算单个教学任务总课时 if (ClassQuantity >= 4) TotalCoursesHour = 2.5 * (TheoryHour + ExperimentHour);//计算单个教学任务总课时 cout << "编号: " << number << endl; cout << "姓名: " << name << endl; cout << "职称: " << category << endl; cout << "认教课程: " << courses << endl; cout << "班级: " << clas << endl; cout << "班级数目: " << ClassQuantity << endl; cout << "理论课时: " << TheoryHour << endl; cout << "实验课时: " << ExperimentHour << endl; cout << "单个教学任务总课时: " << TotalCoursesHour << endl << endl; } void add(Teacher *teacher, int *n) { int i = *n; int m1, m2, m3; double md; string str; while (1) { cout << "编号(如果想结束添加就在此处输入q回车): "; cin >> str; if (str == "q") break; teacher[i].changenumber(str); cout << "姓名: "; cin >> str; teacher[i].changename(str); cout << "职称: "; cin >> str; teacher[i].changecategory(str); cout << "认教课程: "; cin >> str; teacher[i].changecourses(str); cout << "班级: "; cin >> str; teacher[i].changeclass(str); cout << "班级数目: "; cin >> m1; while (!cin)//由于班级数目是一个整数,这里要防止输入的不是一个整数,从而避免由此产生的不可预料的情况发生,下同 { cout << "您输入的不是整数,请输入一个整数:"; cin.sync(); cin.clear(); cin >> m1; } teacher[i].changeclassquantity(m1); cout << "理论课时: "; cin >> m2; while (!cin)//防止输入的不是一个整数 { cout << "您输入的不是一个整数,请输入一个整数:"; cin.sync(); cin.clear(); cin >> m2; } teacher[i].changetheoryhour(m2); cout << "实验课时: "; cin >> m3; while (!cin)//防止输入的不是一个整数 { cout << "您输入的不是一个整数,请输入一个整数:"; cin.sync(); cin.clear(); cin >> m3; } teacher[i].changeexprimenthour(m3); if (m1 == 2 || m1 == 1) md = 1.5 * (m2 + m3);//计算单个教学任务总课时 if (m1 == 3) md = 2 * (m2 + m3);//计算单个教学任务总课时 if (m1 >= 4) md = 2.5 * (m2 + m3);//计算单个教学任务总课时 teacher[i].changetotalcourseshour(md);//设置单个教学任务总课时 i++; } *n = i;//更新教师人数 } void change(Teacher *teacher, int n) { int i, m, k; double kd; string number, name, str; cout << "按哪种方式查找:\n"; cout << "1.按编号查找\n"; cout << "2.按姓名查找\n"; cin >> m; if (m == 1) { cout << "输入要修改的教师编号:"; cin >> number; for (i = 0; i < n; i++) if (teacher[i].ReturnNumber() == number) { cout << "该教师信息如下:\n"; teacher[i].show(); break; } } if (m == 2) { cout << "输入该教师姓名:"; cin >> name; for (i = 0; i < n; i++) if (teacher[i].ReturnName() == name) { cout << "该教师信息如下:\n"; teacher[i].show(); break; } } if (i == n) cout << "抱歉,没有找到该编号!\n"; else { cout << "可修改项目如下:\n"; cout << "1.编号" << endl; cout << "2.姓名" << endl; cout << "3.职称" << endl; cout << "4.认教课程" << endl; cout << "5.班级" << endl; cout << "6.班级数目" << endl; cout << "7.理论课时" << endl; cout << "8.实验课时" << endl; cout << "9.单个教学任务总课时" << endl; cout << "您要修改哪一项:"; cin >> m; switch (m) { case 1: cout << "输入新编号:"; cin >> number; teacher[i].changenumber(number); break; case 2: cout << "输入新姓名:"; cin >> name; teacher[i].changename(name); break; case 3: cout << "输入新职称:"; cin >> str; teacher[i].changecategory(str); break; case 4: cout << "输入新认教课程:"; cin >> str; teacher[i].changecourses(str); break; case 5: cout << "输入新班级:"; cin >> str; teacher[i].changeclass(str); break; case 6: cout << "输入新班级数目:"; cin >> k; while (!cin)//由于班级数目是一个整数,防止输入的不是一个整数而带来的各种问题,下同 { cout << "您输入的不是整数,请输入一个整数:"; cin.sync(); cin.clear(); cin >> k; } teacher[i].changeclassquantity(k); break; case 7: cout << "输入新理论课时:"; cin >> k; while (!cin)//防止输入的不是一个整数 { cout << "您输入的不是整数,请输入一个整数:"; cin.sync(); cin.clear(); cin >> k; } teacher[i].changetheoryhour(k); break; case 8: cout << "输入新实验课时:"; cin >> k; while (!cin)//防止输入的不是一个整数 { cout << "您输入的不是整数,请输入一个整数:"; cin.sync(); cin.clear(); cin >> k; } teacher[i].changeexprimenthour(k); break; case 9: cout << "输入新单个教学任务总课时:"; cin >> kd; while (!cin)//防止输入的不是一个整数 { cout << "您输入的不是整数,请输入一个整数:"; cin.sync(); cin.clear(); cin >> k; } teacher[i].changetotalcourseshour(kd); break; default : { cout << "输入有误!\n"; exit (0); } } cout << "修改成功!\n"; } } void delete_(Teacher *teacher, int *n) { string number; int i, j, k = 0, f = 0; cout << "输入要删除教师的编号:"; cin >> number; for (i = 0; i < *n; i++) if (teacher[i].ReturnNumber() == number) { for (j = 0; j < *n; j++) if (j != i) teacher[k++] = teacher[j]; f = 1; break; } if (!f) cout << "该编号不存在!\n"; else { cout << "删除成功!\n"; *n = k;//更新教师人数 } } void statistics(Teacher *teacher, int n) { int i; double total = 0.0; for (i = 0; i < n; i++) total += teacher[i].ReturnTotalCoursesHour();//叠加单个教学任务总课时 cout << "所有教师一个学期的教学工作量: " << total << endl; } void search(Teacher *teacher, int n) { int i, m; string number, name; cout << "按哪种方式查找:\n"; cout << "1.按编号查找\n"; cout << "2.按姓名查找\n"; cin >> m; if (m == 1) { cout << "输入要修改的教师编号:"; cin >> number; for (i = 0; i < n; i++) if (teacher[i].ReturnNumber() == number) { cout << "该教师信息如下:\n"; teacher[i].show(); break; } } if (m == 2) { cout << "输入该教师姓名:"; cin >> name; for (i = 0; i < n; i++) if (teacher[i].ReturnName() == name) { cout << "该教师信息如下:\n"; teacher[i].show(); break; } } if (i == n) cout << "抱歉,没有找到该编号!\n"; } void ShowAll(Teacher *teacher, int n) { int i = 0; while (i < n) { teacher[i].show(); i++; } } void readfile(Teacher *teacher, int *n) { int i = *n, m; double md; string str; ifstream infile; infile.open("teacher.txt"); if (!infile.is_open()) { cout << "文件打开失败!\n"; exit (0); } while (1) { infile >> str; if (infile.eof()) break; teacher[i].changenumber(str); infile >> str; teacher[i].changename(str); infile >> str; teacher[i].changecategory(str); infile >> str; teacher[i].changecourses(str); infile >> str; teacher[i].changeclass(str); infile >> m; teacher[i].changeclassquantity(m); infile >> m; teacher[i].changetheoryhour(m); infile >> m; teacher[i].changeexprimenthour(m); infile >> m; teacher[i].changetotalcourseshour(m);//设置单个教学任务总课时 i++; } *n = i; cout << "文件读取成功!\n"; infile.close();//关闭文件 } void save(Teacher *teacher, int n) { int i = 0; ofstream outfile; outfile.open("teacher.txt"); if (!outfile.is_open()) { cout << "文件打开失败!\n"; exit (0); } while (i < n)//将全部信息写入到文件 { outfile << teacher[i].ReturnNumber() << endl; outfile << teacher[i].ReturnName() << endl; outfile << teacher[i].ReturnCategory() << endl; outfile << teacher[i].ReturnCourses() << endl; outfile << teacher[i].ReturnClass() << endl; outfile << teacher[i].ReturnClassQuantity() << endl; outfile << teacher[i].ReturnTheoryHour() << endl; outfile << teacher[i].ReturnExperimentHour() << endl; outfile << teacher[i].ReturnTotalCoursesHour() << endl; i++; } cout << "数据保存到文件成功!\n"; outfile.close();//关闭文件 }编写“学生选课系统” 课程基本信息:课程名,课时,开课学期,学分 专业选修课信息包括:课程名,课时,开课学期,学分,所属专业; 公共选修课信息包括:课程名,课时,开课学期,学分,面向专业,开课系部。 学生信息:学号,姓名,专业,选课信息 功能要求: (1)课程信息的维护:查询课程信息情况、增加课程信息、删除课程信息、更新课程信息。 (2)学生信息的维护:查询学生信息情况、增加学生信息、删除学生信息、更新学生信息。 (3)选课:每人每学期选课不能超过4门;同一学期选修同一门课程的学生人数不能超过100人。只能选自己专业的专业选修课或面向自己专业的公共选修课。 (4)选课信息:记录学生的选课情况,属性为:课程名,选课时间(学期),成绩。 (5)统计模块包括:每个学生选修课程的门数,每门课程选修的学生人数。
06-11
再次模仿#include <iostream> #include <iomanip> #include <string> #include <fstream> using namespace std; const int MAX = 1000;//添加最大教师数,想添加多少自己可以随便改 class Teacher//设计教师类 { private: string number;//教师编号 string name;//姓名 string category;//职称 string courses;//认教课程 string clas;//班级 int ClassQuantity;//班级数目 int TheoryHour;//理论课时 int ExperimentHour;//实验课时 double TotalCoursesHour;//单个教学任务总课时 public: string ReturnNumber();//返回教师编号 string ReturnName();//返回教师姓名 double ReturnTotalCoursesHour();//返回单个教学任务总课时 string ReturnCategory();//返回职称 string ReturnCourses();//返回任教课程 string ReturnClass();//返回班级 int ReturnClassQuantity();//返回班级数目 int ReturnTheoryHour();//返回理论课时 int ReturnExperimentHour();//返回实验课时 void changenumber(string str);//修改编号 void changename(string str);//修改教师姓名 void changecategory(string str);//修改职称 void changecourses(string str);//修改认教课程 void changeclass(string str);//修改班级 void changeclassquantity(int n);//修改班级数目 void changetheoryhour(int n);//修改理论课程 void changeexprimenthour(int n);//修改实验课时 void changetotalcourseshour(double n);//修改单个教学任务总课时 void show();//显示教师基本信息 }; void main()//////////////////////////主函数///////////////////////// { void menu();//菜单 void add(Teacher *, int *);//添加教师 void change(Teacher *, int );//修改教师信息 void delete_(Teacher *, int *);//删除教师 void statistics(Teacher *, int );//教师工作量统计 void search(Teacher *, int );//教师查询 void ShowAll(Teacher *, int );//显示所有教师信息 void readfile(Teacher *teacher, int *n);//从文件读取数据 void save(Teacher *teacher, int n);//数据保存到文件 int n;//输入选项 int list = 0;//教师人数 Teacher teacher[MAX];//教师对象数组 menu(); cin >> n; while (1) { switch (n) { case 1: add(teacher, &list); break; case 2: if (list == 0) cout << "没有任何教师,请先添加...\n"; else change(teacher, list); break; case 3: if (list == 0) cout << "没有任何教师,请先添加...\n"; else delete_(teacher, &list); break; case 4: if (list == 0) cout << "没有任何教师,请先添加...\n"; else statistics(teacher, list); break; case 5: if (list == 0) cout << "没有任何教师,请先添加...\n"; else search(teacher, list); break; case 6: if (list == 0) cout << "没有任何教师,请先添加...\n"; else ShowAll(teacher, list); break; case 7: readfile(teacher, &list); break; case 8: if (list == 0) cout << "没有任何教师,请先添加...\n"; else save(teacher, list); break; case 0: { cout << "欢迎再次使用! Bye!\n"; exit (0); } default : { cout << "输入有误!\n"; exit (0); } } cout << "您的选择(回车确认):"; cin >> n; } } void menu()//菜单 { cout << “\t\t==============================================\n”; cout << “\t\t= =\n”; cout << “\t\t= 欢 迎 使 用 =\n”; cout << “\t\t= 教师工作量管理系统 =\n”; cout << “\t\t= ------------------------------------ =\n”; cout << “\t\t= 1.添加教师 =\n”; cout << “\t\t= 2.修改教师信息 =\n”; cout << “\t\t= 3.删除授课教师 =\n”; cout << “\t\t= 4.教师工作量统计 =\n”; cout << “\t\t= 5.教师查询 =\n”; cout << “\t\t= 6.显示所有教师 =\n”; cout << “\t\t= 7.文件读取 =\n”; cout << “\t\t= 8.数据保存到文件 =\n”; cout << “\t\t= 0.退出 =\n”; cout << “\t\t= =\n”; cout << “\t\t==============================================\n\n”; cout << “您的选择(回车确认):”; } string Teacher :: ReturnNumber()//返回教师编号 { return number; } string Teacher :: ReturnName()//返回教师姓名 { return name; } double Teacher :: ReturnTotalCoursesHour()//返回单个教学任务总课时 { return TotalCoursesHour; } string Teacher :: ReturnCategory()//返回职称 { return category; } string Teacher :: ReturnCourses()//返回任教课程 { return courses; } string Teacher :: ReturnClass()//返回班级 { return clas; } int Teacher :: ReturnClassQuantity()//返回班级数目 { return ClassQuantity; } int Teacher :: ReturnTheoryHour()//返回理论课时 { return TheoryHour; } int Teacher :: ReturnExperimentHour()//返回实验课时 { return ExperimentHour; } void Teacher :: changenumber(string str)//修改编号 { number = str; } void Teacher :: changename(string str)//修改教师姓名 { name = str; } void Teacher :: changecategory(string str)//修改职称 { category = str; } void Teacher :: changecourses(string str)//修改认教课程 { courses = str; } void Teacher :: changeclass(string str)//修改班级 { clas = str; } void Teacher :: changeclassquantity(int n)//修改班级数目 { ClassQuantity = n; } void Teacher :: changetheoryhour(int n)//修改理论课程 { TheoryHour = n; } void Teacher :: changeexprimenthour(int n)//修改实验课时 { ExperimentHour = n; } void Teacher :: changetotalcourseshour(double n)//修改单个教学任务总课时 { TotalCoursesHour = n; } void Teacher :: show() { if (ClassQuantity == 2) TotalCoursesHour = 1.5 * (TheoryHour + ExperimentHour);//计算单个教学任务总课时 if (ClassQuantity == 3) TotalCoursesHour = 2 * (TheoryHour + ExperimentHour);//计算单个教学任务总课时 if (ClassQuantity >= 4) TotalCoursesHour = 2.5 * (TheoryHour + ExperimentHour);//计算单个教学任务总课时 cout << "编号: " << number << endl; cout << "姓名: " << name << endl; cout << "职称: " << category << endl; cout << "认教课程: " << courses << endl; cout << "班级: " << clas << endl; cout << "班级数目: " << ClassQuantity << endl; cout << "理论课时: " << TheoryHour << endl; cout << "实验课时: " << ExperimentHour << endl; cout << "单个教学任务总课时: " << TotalCoursesHour << endl << endl; } void add(Teacher *teacher, int *n) { int i = *n; int m1, m2, m3; double md; string str; while (1) { cout << "编号(如果想结束添加就在此处输入q回车): "; cin >> str; if (str == "q") break; teacher[i].changenumber(str); cout << "姓名: "; cin >> str; teacher[i].changename(str); cout << "职称: "; cin >> str; teacher[i].changecategory(str); cout << "认教课程: "; cin >> str; teacher[i].changecourses(str); cout << "班级: "; cin >> str; teacher[i].changeclass(str); cout << "班级数目: "; cin >> m1; while (!cin)//由于班级数目是一个整数,这里要防止输入的不是一个整数,从而避免由此产生的不可预料的情况发生,下同 { cout << "您输入的不是整数,请输入一个整数:"; cin.sync(); cin.clear(); cin >> m1; } teacher[i].changeclassquantity(m1); cout << "理论课时: "; cin >> m2; while (!cin)//防止输入的不是一个整数 { cout << "您输入的不是一个整数,请输入一个整数:"; cin.sync(); cin.clear(); cin >> m2; } teacher[i].changetheoryhour(m2); cout << "实验课时: "; cin >> m3; while (!cin)//防止输入的不是一个整数 { cout << "您输入的不是一个整数,请输入一个整数:"; cin.sync(); cin.clear(); cin >> m3; } teacher[i].changeexprimenthour(m3); if (m1 == 2 || m1 == 1) md = 1.5 * (m2 + m3);//计算单个教学任务总课时 if (m1 == 3) md = 2 * (m2 + m3);//计算单个教学任务总课时 if (m1 >= 4) md = 2.5 * (m2 + m3);//计算单个教学任务总课时 teacher[i].changetotalcourseshour(md);//设置单个教学任务总课时 i++; } *n = i;//更新教师人数 } void change(Teacher *teacher, int n) { int i, m, k; double kd; string number, name, str; cout << "按哪种方式查找:\n"; cout << "1.按编号查找\n"; cout << "2.按姓名查找\n"; cin >> m; if (m == 1) { cout << "输入要修改的教师编号:"; cin >> number; for (i = 0; i < n; i++) if (teacher[i].ReturnNumber() == number) { cout << "该教师信息如下:\n"; teacher[i].show(); break; } } if (m == 2) { cout << "输入该教师姓名:"; cin >> name; for (i = 0; i < n; i++) if (teacher[i].ReturnName() == name) { cout << "该教师信息如下:\n"; teacher[i].show(); break; } } if (i == n) cout << "抱歉,没有找到该编号!\n"; else { cout << "可修改项目如下:\n"; cout << "1.编号" << endl; cout << "2.姓名" << endl; cout << "3.职称" << endl; cout << "4.认教课程" << endl; cout << "5.班级" << endl; cout << "6.班级数目" << endl; cout << "7.理论课时" << endl; cout << "8.实验课时" << endl; cout << "9.单个教学任务总课时" << endl; cout << "您要修改哪一项:"; cin >> m; switch (m) { case 1: cout << "输入新编号:"; cin >> number; teacher[i].changenumber(number); break; case 2: cout << "输入新姓名:"; cin >> name; teacher[i].changename(name); break; case 3: cout << "输入新职称:"; cin >> str; teacher[i].changecategory(str); break; case 4: cout << "输入新认教课程:"; cin >> str; teacher[i].changecourses(str); break; case 5: cout << "输入新班级:"; cin >> str; teacher[i].changeclass(str); break; case 6: cout << "输入新班级数目:"; cin >> k; while (!cin)//由于班级数目是一个整数,防止输入的不是一个整数而带来的各种问题,下同 { cout << "您输入的不是整数,请输入一个整数:"; cin.sync(); cin.clear(); cin >> k; } teacher[i].changeclassquantity(k); break; case 7: cout << "输入新理论课时:"; cin >> k; while (!cin)//防止输入的不是一个整数 { cout << "您输入的不是整数,请输入一个整数:"; cin.sync(); cin.clear(); cin >> k; } teacher[i].changetheoryhour(k); break; case 8: cout << "输入新实验课时:"; cin >> k; while (!cin)//防止输入的不是一个整数 { cout << "您输入的不是整数,请输入一个整数:"; cin.sync(); cin.clear(); cin >> k; } teacher[i].changeexprimenthour(k); break; case 9: cout << "输入新单个教学任务总课时:"; cin >> kd; while (!cin)//防止输入的不是一个整数 { cout << "您输入的不是整数,请输入一个整数:"; cin.sync(); cin.clear(); cin >> k; } teacher[i].changetotalcourseshour(kd); break; default : { cout << "输入有误!\n"; exit (0); } } cout << "修改成功!\n"; } } void delete_(Teacher *teacher, int *n) { string number; int i, j, k = 0, f = 0; cout << "输入要删除教师的编号:"; cin >> number; for (i = 0; i < *n; i++) if (teacher[i].ReturnNumber() == number) { for (j = 0; j < *n; j++) if (j != i) teacher[k++] = teacher[j]; f = 1; break; } if (!f) cout << "该编号不存在!\n"; else { cout << "删除成功!\n"; *n = k;//更新教师人数 } } void statistics(Teacher *teacher, int n) { int i; double total = 0.0; for (i = 0; i < n; i++) total += teacher[i].ReturnTotalCoursesHour();//叠加单个教学任务总课时 cout << "所有教师一个学期的教学工作量: " << total << endl; } void search(Teacher *teacher, int n) { int i, m; string number, name; cout << "按哪种方式查找:\n"; cout << "1.按编号查找\n"; cout << "2.按姓名查找\n"; cin >> m; if (m == 1) { cout << "输入要修改的教师编号:"; cin >> number; for (i = 0; i < n; i++) if (teacher[i].ReturnNumber() == number) { cout << "该教师信息如下:\n"; teacher[i].show(); break; } } if (m == 2) { cout << "输入该教师姓名:"; cin >> name; for (i = 0; i < n; i++) if (teacher[i].ReturnName() == name) { cout << "该教师信息如下:\n"; teacher[i].show(); break; } } if (i == n) cout << "抱歉,没有找到该编号!\n"; } void ShowAll(Teacher *teacher, int n) { int i = 0; while (i < n) { teacher[i].show(); i++; } } void readfile(Teacher *teacher, int *n) { int i = *n, m; double md; string str; ifstream infile; infile.open("teacher.txt"); if (!infile.is_open()) { cout << "文件打开失败!\n"; exit (0); } while (1) { infile >> str; if (infile.eof()) break; teacher[i].changenumber(str); infile >> str; teacher[i].changename(str); infile >> str; teacher[i].changecategory(str); infile >> str; teacher[i].changecourses(str); infile >> str; teacher[i].changeclass(str); infile >> m; teacher[i].changeclassquantity(m); infile >> m; teacher[i].changetheoryhour(m); infile >> m; teacher[i].changeexprimenthour(m); infile >> m; teacher[i].changetotalcourseshour(m);//设置单个教学任务总课时 i++; } *n = i; cout << "文件读取成功!\n"; infile.close();//关闭文件 } void save(Teacher *teacher, int n) { int i = 0; ofstream outfile; outfile.open("teacher.txt"); if (!outfile.is_open()) { cout << "文件打开失败!\n"; exit (0); } while (i < n)//将全部信息写入到文件 { outfile << teacher[i].ReturnNumber() << endl; outfile << teacher[i].ReturnName() << endl; outfile << teacher[i].ReturnCategory() << endl; outfile << teacher[i].ReturnCourses() << endl; outfile << teacher[i].ReturnClass() << endl; outfile << teacher[i].ReturnClassQuantity() << endl; outfile << teacher[i].ReturnTheoryHour() << endl; outfile << teacher[i].ReturnExperimentHour() << endl; outfile << teacher[i].ReturnTotalCoursesHour() << endl; i++; } cout << "数据保存到文件成功!\n"; outfile.close();//关闭文件 }编写“学生选课系统” 课程基本信息:课程名,课时,开课学期,学分 专业选修课信息包括:课程名,课时,开课学期,学分,所属专业; 公共选修课信息包括:课程名,课时,开课学期,学分,面向专业,开课系部。 学生信息:学号,姓名,专业,选课信息 功能要求: (1)课程信息的维护:查询课程信息情况、增加课程信息、删除课程信息、更新课程信息。 (2)学生信息的维护:查询学生信息情况、增加学生信息、删除学生信息、更新学生信息。 (3)选课:每人每学期选课不能超过4门;同一学期选修同一门课程的学生人数不能超过100人。只能选自己专业的专业选修课或面向自己专业的公共选修课。 (4)选课信息:记录学生的选课情况,属性为:课程名,选课时间(学期),成绩。 (5)统计模块包括:每个学生选修课程的门数,每门课程选修的学生人数。
最新发布
06-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值