鱼C论坛

 找回密码
 立即注册
查看: 780|回复: 1

[已解决]报错,找不出原因

[复制链接]
发表于 2021-9-19 19:50:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. #include<iostream>
  2. #include<fstream>
  3. #include<cstring>
  4. #include <stdlib.h>
  5. #include <conio.h>
  6. #include<vector>
  7. using namespace std;
  8. int n;

  9. class Student
  10. {public:
  11.         char sname[20];
  12.         char snum[20];
  13.         char sclass[20];
  14.         void input();
  15. };
  16. /*--------------------------学生登陆-----------------------------*/
  17. void Student::input()
  18. {
  19.         cout<<"请输入您的姓名:"; cin>>sname;
  20.         cout<<"请输入您的学号:"; cin>>snum;
  21.         cout<<"请输入您的班级:"; cin>>sclass;
  22.         cout<<"登陆成功!输入任意字符继续";  getch();
  23.        
  24.                 }
  25. /*--------------------------学生,教师类模板-----------------------------*/
  26. template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7>
  27. class Lesson
  28. {public:
  29.         Lesson(){};
  30.         ~Lesson(){};
  31.         T1 tname[100];//教师姓名
  32.         T4 tnumber[100];//教师编号
  33.         T5 tele[100]; //电话
  34.         T2 tlesson[100];//班级名称
  35.         T6 snumber[50];//班级编号
  36.         T7 syard[100];//所在院系
  37.         T3 grade;//评教分数
  38.         void display();
  39.         void input();
  40.         void show();
  41. };

  42. /*--------------------------输出函数-----------------------------*/
  43. template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7>
  44. void Lesson<T1,T2,T3,T4,T5,T6,T7>::show()
  45. {
  46.         cout<<"教师姓名:"<<tname<<endl;
  47.         cout<<"教师编号:"<<tnumber<<endl;
  48.         cout<<"电话:"<<tele<<endl;
  49.         cout<<"班级名称:"<<tlesson<<endl;
  50.         cout<<"班级编号 :"<<snumber<<endl;
  51.         cout<<"所在院系 :"<<syard<<endl;
  52.         cout<<"评教分数:"<<grade<<endl;
  53. }
  54. /*--------------------------评学类-----------------------------*/
  55. class System
  56. {public:
  57.         System(){};
  58.         ~System(){};
  59.         void add();
  60.         int lname(char *x);
  61.         void find();
  62.         void change();
  63.         void dele();
  64.         void menu();
  65.         void display();//显示
  66.         void save();
  67.         void read();
  68. };
  69.         vector<Lesson<char,char,char,char,char,char,double> >v;
  70. /*--------------------------输入函数-----------------------------*/
  71. template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7>
  72. void Lesson<T1,T2,T3,T4,T5,T6,T7>::input()
  73. {
  74.         cout<<"请输入教师姓名:";                cin>>tname;
  75.         cout<<"请输入教师编号:";                cin>>tnumber;
  76.         cout<<"请输入电话:";                        cin>>tele;  
  77.         cout<<"请输入班级名称:";                 cin>>tlesson;
  78.         cout<<"请输入班级编号 :";      cin>>snumber;
  79.         cout<<"请输入所在院系 :";      cin>>syard;
  80.         cout<<"请输入打分(0-100):";        cin>>grade;
  81.         try{                                                                                                                //异常处理
  82.                 if(grade<0||grade>100)        throw 0;
  83.                 else
  84.                 cout<<endl;}
  85.         catch(int)
  86.         {cout<<"输入数据错误,请重新输入";}
  87.         cout<<endl;
  88. }
  89. /*--------------------------读取函数-----------------------------*/
  90. void System::read()
  91. {
  92.     Lesson<char,char,char,char,char,char,double> ch;
  93.     ifstream infile("sys.txt",ios::binary);
  94.     if(!infile){
  95.         cout<<"文件打不开"<<endl;
  96.     }
  97.     infile.read((char*)&ch,sizeof(ch));
  98.     while(!infile.eof())
  99.     {
  100.     v.push_back(ch);
  101.     infile.read((char*)&ch,sizeof(ch));

  102.                cout<<"教师姓名:"<<ch.tname<<endl;
  103.                cout<<"教师编号:"<<ch.tnumber<<endl;
  104.                 cout<<"电话:"<<ch.tele<<endl;
  105.         cout<<"班级名称:"<<ch.tlesson<<endl;
  106.         cout<<"班级编号 :"<<ch.snumber<<endl;
  107.                 cout<<"所在院系 :"<<ch.syard<<endl;
  108.         cout<<"评教分数:"<<ch.grade<<endl;
  109.         cout<<endl;

  110.     }
  111.     infile.close();
  112.     cout<<"读取成功"<<endl;
  113.         getch();
  114. }
  115. /*--------------------------保存函数-----------------------------*/
  116. void System::save()
  117.         {
  118.                
  119.                
  120.       ofstream outfile("sys.txt",ios::binary);
  121.           Lesson<char,char,char,char,char,char,double>t;
  122.           vector<Lesson<char,char,char,char,char,char,double> >::iterator ap;
  123.           if(!outfile)
  124.                   cout<<"文件不能被打开"<<endl;
  125.     else
  126.     {
  127.             for(ap=v.begin();ap!=v.end();ap++)
  128.         {
  129.                 t=*ap;
  130.              outfile.write((char*)&t,sizeof(t));
  131.              cout<<"保存成功"<<endl;
  132.         }
  133.         outfile.close();
  134.         getch();
  135.     }

  136. }
  137. void System::display()
  138. {
  139.         for(int i=0;i<n;i++)
  140.         {v[i].show();}
  141.     cout<<"输入任意字符继续";        getch();
  142. }
  143. /*--------------------------主菜单-----------------------------*/
  144. void System::menu()
  145. {
  146.         cout<<"--------------*评 教 管 理 系 统*-------------"<<endl;
  147.     cout<<"--------------*$1. 学生登陆界面*--------------"<<endl;
  148.     cout<<"--------------*$2. 增加评教信息*--------------"<<endl;
  149.     cout<<"--------------*$3. 更改评教信息*--------------"<<endl;
  150.     cout<<"--------------*$4. 查找评教信息*--------------"<<endl;
  151.     cout<<"--------------*$5. 显示评教信息*--------------"<<endl;
  152.     cout<<"--------------*$6. 删除评教信息*--------------"<<endl;
  153.     cout<<"--------------*$7. 保存相关数据*--------------"<<endl;
  154.     cout<<"--------------*$8. 读取相关数据*--------------"<<endl;
  155.     cout<<"--------------*$9. 退出评教系统*--------------"<<endl;
  156. }
  157. /*--------------------------添加数据-----------------------------*/
  158. void System::add()
  159. {
  160.         string h="y";
  161.         do{
  162.         Lesson<char,char,char,char,char,char,double>l;
  163.         l.input();
  164.         n++;
  165.         v.push_back(l);
  166.         cout<<"是否继续添加(y/n)?";
  167.         cin>>h;
  168.         }while(h=="y");
  169.         cout<<"添加成功!输入任意字符继续";
  170.         getch();
  171. }
  172. /*--------------------------查找课程-----------------------------*/
  173. int System::lname(char *x)
  174. {
  175.         int i;
  176.     for(i=0;i<n;i++)
  177.     {
  178.         if(strcmp(v[i].tlesson,x)==0)
  179.         {  return i;}
  180.     }
  181.     return -1;
  182. }

  183. void System::find()
  184. {
  185.         char x[20];
  186.         int a;
  187.         cout<<"请输入要查找的教师名称:";        cin>>x;
  188.         a=lname(x);
  189.         if(a!=-1)
  190.         v[a].show();
  191.         else
  192.         cout<<"没有找到相关教师信息"<<endl;
  193.         cout<<"输入任意字符继续";
  194.         getch();
  195. }
  196. /*--------------------------更改数据-----------------------------*/
  197. void System::change()
  198. {
  199.         char b[20];
  200.         int k;
  201.         cout<<"请输入需要修改的教师名称:";        cin>>b;
  202.         k=lname(b);
  203.         if(k!=-1){
  204.         cout<<"已找到,请输入新的信息:"<<endl;
  205.         v[k].input();}
  206.         cout<<"输入任意字符继续:";
  207.     getch();
  208. }
  209. /*--------------------------删除数据-----------------------------*/
  210. void System::dele()
  211. {
  212.         char c[20];
  213.         int d;
  214.         cout<<"请输入要删除的教师名称:";        cin>>c;
  215.         d=lname(c);
  216.         if(d!=-1)
  217.         {for(;d<n-1;d++)
  218.         {strcpy(v[d].tname,v[d+1].tname);
  219.     strcpy(v[d].tlesson,v[d+1].tlesson);
  220.     v[d].grade==v[d+1].grade;
  221.         }
  222.         n--;
  223.         }
  224.         else
  225.     cout<<"输入错误,找不到该教师信息"<<endl;
  226.     cout<<"输入任意字符继续";
  227.     getch();
  228. }
  229. /*--------------------------主函数-----------------------------*/
  230. int main()
  231. {       
  232.         Student x;
  233.         System y;
  234.         int a;
  235.         string ss="y";
  236.         do{
  237.                 system("cls");
  238.                 cout<<"欢迎进入评教管理系统"<<endl;
  239.             y.menu() ;
  240.                 cout<<"请输入相应阿拉伯数字:";
  241.             cin>>a;
  242.             switch(a)
  243.             {
  244.                     case 1:x.input();break;
  245.                     case 2:y.add();break;
  246.                     case 3:y.change();break;
  247.                     case 4:y.find();break;
  248.                     case 5:y.display();break;
  249.                     case 6:y.dele();break;
  250.                     case 7:y.save();break;
  251.                         case 8:y.read();break;
  252.                     case 9:ss="n";break;
  253.                 }
  254.                 }while(ss=="y");
  255.         return 0;
  256. }
复制代码





求大神解救!
最佳答案
2021-9-19 21:05:11
本帖最后由 jhq999 于 2021-9-19 21:19 编辑

Lesson<char,char,char,char,char,char,double>替换成Lesson<char,char,char,char,char,char,char>

或者

cout<<"请输入所在院系 :";     cin>>syard;
改成
cout<<"请输入所在院系 :";     cin>>(char*)syard;




你输入的不可能是double类型数组的指针吧?
1.png
屏幕截图 2021-09-19 194805.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-9-19 21:05:11 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jhq999 于 2021-9-19 21:19 编辑

Lesson<char,char,char,char,char,char,double>替换成Lesson<char,char,char,char,char,char,char>

或者

cout<<"请输入所在院系 :";     cin>>syard;
改成
cout<<"请输入所在院系 :";     cin>>(char*)syard;




你输入的不可能是double类型数组的指针吧?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-26 14:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表