「已注销」 2022-12-15 11:10 采纳率: 91.2%
浏览 48
已结题

学生管理系统,错误显示是将一个无效参数传递给另一个无效参数,请问应该怎么修改

img

img

#include <iostream>
#include <string>
#include<stdlib.h>
#include <fstream>
#include <iomanip>      //包含setw函数
#include<vector>        //运用vector创建数组对象
const int N = 1000;     //学生的人数
static int n = 0;               //n为学生总人数,t控制循环
int t = 1;               
using namespace std;
class Student {                    //创建学生类
    public:
        string name;                    //姓名
        string gender;                    //性别
        string num;                        //学号
        int grade;                        //年级
        string college;                    //学院
        string system;                    //系
        int stuclass;                    //班级
        int dorm;                        //宿舍
        int English;                    //英语成绩
        int Maths;                        //数学成绩
        int Program;                    //编程成绩
        Student()
        {

        }
        Student(string name, string gender, string num, int grade, string college, string system, int stuclass, int dorm,int English, int Maths,int Program)
        {
            this->name = name;
            this->gender = gender;
            this->num = num;
            this->grade = grade;
            this->college = college;
            this->system = system;
            this->stuclass = stuclass;
            this->dorm = dorm;
            this->English = English;
            this->Maths = Maths;
            this->Program = Program;
        }
        ~Student()
        {}
        void show1()              //输出信息
        {
            cout << left << setw(10) << name;
            cout << left << setw(6) << gender;
            cout << left << setw(12) << num;
            cout << left << setw(6) << grade;
            cout << left << setw(6) << college;
            cout << left << setw(6) << system;
            cout << left << setw(6) << stuclass;
            cout << left << setw(6) << dorm;
            cout << left << setw(6) << English;
            cout << left << setw(6) << Maths;
            cout << left << setw(6) << Program;
        }
        
        static void show2()    //输出信息的名称
        {
            cout << left << setw(10) << "姓名";
            cout << left << setw(6) << "性别";
            cout << left << setw(12) << "学号";
            cout << left << setw(6) << "年级";
            cout << left << setw(6) << "院校";
            cout << left << setw(6) << "系";
            cout << left << setw(6) << "班级";
            cout << left << setw(6) << "英语";
            cout << left << setw(6) << "数学";
            cout << left << setw(6) << "编程";
        }
};

void menu()                        //输出菜单
{
    printf("-----------------------------------------------------\n");
    printf("---------------->>学生信息管理系统<<-----------------\n");
    printf("--------------------->>主菜单<<----------------------\n");
    printf("-----------------------------------------------------\n");
    printf("*     1、增加学生信息     *    2、显示学生信息      *\n");
    printf("-----------------------------------------------------\n");
    printf("**    3、修改学生信息   *     4、查询学生信息      **\n");
    printf("-----------------------------------------------------\n");
    printf("**    5、删除学生信息   *     6、排序学生信息      **\n");
    printf("-----------------------------------------------------\n");
    printf("**    7、退出系统       *                          **\n");
    printf("-----------------------------------------------------\n");
}


void writeFile(vector<Student> &stu)                            //写入学生信息
{
    ofstream ofs;
    ofs.open("D:\\林再\\学习\\大二\\面向对象的程序设计课程实践\\学生管理系统\\学生信息.txt", ios::out);
    for (int i = n; i <= stu.size()+n; i++)
    {
        
        ofs << stu[i].name << " " << stu[i].gender << " " << stu[i].num << " "
            << stu[i].grade << " " << stu[i].college << " " << stu[i].system << " "
            << stu[i].dorm << " " << stu[i].English << stu[i].Maths << stu[i].Program << endl;
    }
    ofs.close();
}
void readFile(vector<Student> &stu)                             //读取学生信息
{
    ifstream ifs;                                               //创建流对象
    ifs.open("学生信息.txt", ios::in);                          //打开文件
    if (!ifs.is_open())                                         //判断文件是否打开成功
    {
        cout << "文件打开失败" << endl;
        return;
    }
    for (int i = 0; i < stu.size(); i++)
    {
        ifs >> stu[i].name >> stu[i].gender >> stu[i].num >> stu[i].grade >> stu[i].college
            >> stu[i].system >> stu[i].dorm >> stu[i].English >> stu[i].Maths >> stu[i].Program;
    }
    ifs.close();
}

void increase()                    //增加学生信息
{
    cout << "----------------欢迎来到增加学生信息-----------------" << endl;
    cout << "请输入待添加的学生人数:" << endl;
    int x;                      //等待添加的学生人数
    cin >> x;
    int flag, i = n, j;
    vector <Student> stu(x);
    if (x > 0)
    {
        do
        {
            flag = 1;
            while (flag != 0)    //判断学号是否重复
            {
                flag = 0;
                printf("请输入第%d位学生的学号:\n", i + 1);
                cin >> stu[i].num;
                for (j = 0; j < i; j++)
                {
                    if (stu[i].num == stu[j].num)
                    {
                        cout << "该学号已经存在,请重新输入!" << endl;
                        flag = 1;
                        break;
                    }
                }
                printf("请输入第%d位学生姓名  性别  学号  年级  学院  系  班级  宿舍  英语成绩  数学成绩  编程成绩:\n", i + 1);
                cin >> stu[i].name >> stu[i].gender >> stu[i].num >> stu[i].grade >> stu[i].college
                    >> stu[i].system >> stu[i].dorm >> stu[i].English >> stu[i].Maths >> stu[i].Program;
                writeFile(stu);
                i++;
            }
            n += x;
            cout << "添加成功!" << endl;
            system("pause");
        } while (i < x + n);
    }
}

//主函数
int main()
{
    int number;
    while (1)
    {
        menu();
        printf("请输入菜单编号:");
        cin >> number;
        switch (number)
        {
            
            case 1:increase(); break;    //增加学生信息
            //case 2:display(); break;    //显示当前信息
            //case 3:modify(); break;    //修改学生信息
            //case 4:search(); break;    //查询学生信息
            //case 5:dele(); break;    //删除学生信息
            //case 6:sort(); break;    //排序学生信息
            //case 7:exit(0); break;    //退出
            default:printf("输入有误!");
        }

    }
    return 0;
}

  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2022-12-15 11:15
    关注

    错误指向哪一行啊?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月23日
  • 已采纳回答 12月15日
  • 修改了问题 12月15日
  • 创建了问题 12月15日

悬赏问题

  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 wpf界面一直接收PLC给过来的信号,导致UI界面操作起来会卡顿
  • ¥15 init i2c:2 freq:100000[MAIXPY]: find ov2640[MAIXPY]: find ov sensor是main文件哪里有问题吗
  • ¥15 运动想象脑电信号数据集.vhdr
  • ¥15 三因素重复测量数据R语句编写,不存在交互作用
  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了