傅少杰太没实力辣

3 comments

  • @ 2024-5-22 22:19:41

    #include #include #include #define MAX 1000 //定义学生数组最大容量 using namespace std;

    //设计学生信息结构体 struct person { long num;//学号 string name;//姓名 int sex;//性别 int age;//年龄 int math;//数学 int chinese;//语文 int english;//英语 int number;//总分 };

    //学生成绩管理系统 struct personbook { person parry[MAX];//学生数组最大容量 int M_size;//当前容量 };

    //1、菜单界面 void showmenu() { cout << "" << endl; cout << "*****1、 学生成绩录入 *****" << endl; cout << "*****2、 浏览学生成绩 *****" << endl; cout << "*****3、 删除学生成绩 *****" << endl; cout << "*****4、 查找学生信息 *****" << endl; cout << "*****5、 统计学生信息 *****" << endl; cout << "*****6、 学生信息排序 *****" << endl; cout << "*****7、 清空学生信息 *****" << endl; cout << "*****0、 退出管理系统 *****" << endl; cout << "" << endl; cout <<endl; cout << "请输入菜单序号*"<<endl; }

    //添加学生信息 void addperson(personbook * abs) { person parry[MAX];

    ofstream outfile("学生成绩管理系统.dat",ios::app);//创建或打开文件,以输出方式打开文件
    if(!outfile)
    {
    	cerr<<"open error!"<<endl;
    	exit(1);
    }
    
    //判断学生成绩管理系统是否已经满了
    if (abs->M_size == MAX)
    {
        cout << "学生成绩管理系统已满,无法添加!" << endl;
        return;
    }
    else 
    {
    	//添加学生学号
    	//long num;
    	cout<<"请输入学号:"<<endl;
    	cin >> parry[abs->M_size].num;
        abs->parry[abs->M_size].num;
    	outfile<<parry[abs->M_size].num<<'\t';
        //添加学生姓名
        //string name;
        cout << "请输入姓名:" << endl;
        cin >> parry[abs->M_size].name;
        abs->parry[abs->M_size].name;
    	outfile<<parry[abs->M_size].name<<'\t';
        //性别
        //int sex;
        cout << "请输入性别:" << endl;
        cout << "1--男" << endl;
        cout << "2--女" << endl;
        while (true) 
    	{
        cin >> parry[abs->M_size].sex;
        if (parry[abs->M_size].sex == 1 || parry[abs->M_size].sex == 2) 
    	{
            abs->parry[abs->M_size].sex;
    		outfile<<parry[abs->M_size].sex<<'\t';
            break;
        }
        else
    	{
            cout << "无效输入,请重新输入" << endl;
        }
        }
       //输入年龄
        //int age;
        cout << "请输入年龄:" << endl;
        cin >>parry[abs->M_size].age;
        abs->parry[abs->M_size].age;
    	outfile<<parry[abs->M_size].age<<'\t';
    	//输入数学成绩
    	//int math;
    	cout<<"请输入数学"<<endl;
    	cin>> parry[abs->M_size].math; 
    	abs->parry[abs->M_size].math;
    	outfile<<parry[abs->M_size].math<<'\t';
        //输入语文成绩
        //int chinese;
        cout << "请输入语文:" << endl;
        cin >> parry[abs->M_size].chinese;
        abs->parry[abs->M_size].chinese;
    	outfile<<parry[abs->M_size].chinese<<'\t';
        //输入英语成绩
        //int english;
        cout << "请输入英语:" << endl;
        cin >> parry[abs->M_size].english;
        abs->parry[abs->M_size].english;
    	outfile<<parry[abs->M_size].english<<'\t';
    	//总分
        //int number;
        /*cout << "请输入英语/:" << endl;*/
        parry[abs->M_size].number=parry[abs->M_size].math + parry[abs->M_size].chinese + parry[abs->M_size].english;
        abs->parry[abs->M_size].number;
    	outfile<<parry[abs->M_size].number<<'\n';
        abs->M_size++;
        cout << "添加成功!" << endl;
    	
    	system("pause");
        system("cls");//清屏
    }
    outfile.close();//关闭文件
    

    }

    //显示学生成绩信息 void showperson(personbook * abs) { person parry[MAX];

    ifstream infile("学生成绩管理系统.dat",ios::in||ios::out);//创建或打开文件,以输入方式打开文件
    if(!infile)
    {  
    	cerr<<"open error!"<<endl;
    	exit(1);
    }
    //system("pause");
    system("cls");
    
    if (abs->M_size == 0)  //判断学生成绩管理系统中人数是否为0,如果为0,提示记录为空;如果不为0,显示记录的学生信息信息
    {
        cout << "还未添加学生信息" << endl;
    	system("pause");
        system("cls");
    }
    else 
    {
        for (int i = 0; i < abs->M_size; ++i) 
    	{
    		infile>>parry[i].num>>parry[i].name>>parry[i].sex>>parry[i].age>>parry[i].math>>parry[i].chinese>>parry[i].english>>parry[i].number;
    
    		cout << "学号:" << parry[i].num << "\t";
            cout << "姓名:" << parry[i].name << "\t";
            cout << "性别:" << (parry[i].sex==1?"男":"女") << "\t";//三步运算符
            cout << "年龄:" << parry[i].age << "\t";
    		cout<<  "数学: " << parry[i].math<<"\t";
            cout << "语文:" << parry[i].chinese << "\t";
            cout << "英语:" << parry[i].english << "\t";
    		cout << "总分:" << parry[i].number << endl;
        }
    }
    infile.close();//关闭文件
    system("pause");
    system("cls");
    

    }

    //查找学生成绩实现步骤 int isexist(personbook * abs,string name) { person parry[MAX];

    ifstream infile("学生成绩管理系统.dat",ios::in||ios::out);//创建或打开文件,以输入方式打开文件
    if(!infile)
    {  
    	cerr<<"open error!"<<endl;
    	exit(1);
    }
    
    for (int i=0; i < MAX; ++i)
    {
    	infile>>abs->parry[i].name;
        if (name == abs-> parry[i].name)
    	{
            return i;
        }
    }
    return -1;//如果没查到就返回-1  
    infile.close();//关闭文件
    

    }

    //删除学生信息 void deleteperson(personbook * abs) {

    cout << "请输入您要删除的学生信息" << endl;
    string name;
    cin >> name;
    int ret = isexist(abs,name);
    if (ret == -1) 
    {
        cout << "查无此人" << endl;
    }
    else
    {
        for (int i = ret; i < abs->M_size; ++i) 
    	{
            abs->parry[i] = abs->parry[i + 1];//数据前移
        }
        abs->M_size--;
        cout << "删除成功" << endl;
    }
    system("pause");
    system("cls");
    

    }

    //查找学生信息信息 void findperson( personbook * abs) { person parry[MAX];

    ifstream infile("学生成绩管理系统.dat",ios::in||ios::out);//创建或打开文件,以输入方式打开文件
    if(!infile)
    {  
    	cerr<<"open error!"<<endl;
    	exit(1);
    }
    cout << "请输入您要查找的人:" << endl;
    string name;
    cin >> name;
    int ret = isexist(abs,name);
    if (ret != -1) 
    {
    	infile>>abs->parry[ret].num>>abs->parry[ret].name>>abs->parry[ret].sex>>abs->parry[ret].age>>abs->parry[ret].math>>abs->parry[ret].english>>abs->parry[ret].english>>abs->parry[ret].number;
    
    	cout << "学号:" << abs->parry[ret].num << "\t";
        cout << "姓名:" << abs->parry[ret].name << "\t";
        cout << "性别:" << (abs->parry[ret].sex == 1 ? "男" : "女") << "\t";//三步运算符
        cout << "年龄:" << abs->parry[ret].age << "\t";
    	cout<<  "数学: " << abs->parry[ret].math<<"\t";
        cout << "语文:" << abs->parry[ret].chinese << "\t";
        cout << "英语:" << abs->parry[ret].english << "\t";
    	cout << "总分:" << abs->parry[ret].number << endl;
    }
    else 
    {
        cout << "查无此人" << endl;
    }
    system("pause");
    system("cls");
    infile.close();//关闭文件
    

    }

    //统计某分数段的所有学生数量 void statistics(personbook* abs) { person parry[MAX];

    ifstream infile("学生成绩管理系统.dat",ios::in||ios::out);//创建或打开文件,以输入方式打开文件
    if(!infile)
    {  
    	cerr<<"open error!"<<endl;
    	exit(1);
    }
    cout<<"根据总分进行统计,请输入你要统计的分数段"<<endl;
    int num_min;
    int num_max;
    int x=0;//统计数量
    cout<<"请输入最低分数:";
    cin>>num_min;
    cout<<"请输入最高分数:";
    cin>>num_max;
    for (int i=0; i < MAX; ++i)
    {
    	infile>>abs->parry[i].num>>abs->parry[i].name>>abs->parry[i].sex>>abs->parry[i].age>>abs->parry[i].math>>abs->parry[i].chinese>>abs->parry[i].english>>abs->parry[i].number;
        if (num_min < abs->parry[i].number && num_max >= abs->parry[i].number)
    	{
    		x++;
    		cout<<x<<"  ";
    		cout << "学号:" << abs->parry[i].num << "\t";
            cout << "姓名:" << abs->parry[i].name << "\t";
    	    cout << "性别:" << (abs->parry[i].sex == 1 ? "男" : "女") << "\t";//三步运算符,水平制表
    	    cout << "年龄:" << abs->parry[i].age << "\t";
    		cout<<  "数学: " <<abs->parry[i].math<<"\t";
    		cout << "语文:" << abs->parry[i].chinese << "\t";
    		cout << "英语:" << abs->parry[i].english << "\t";
    		cout << "总分:" << abs->parry[i].number << endl; 
        }
    }
    cout<<endl;
    cout<<"该分数段共有  "<<x<<"人"<<endl;
    system("pause");
    system("cls");
    infile.close();//关闭文件
    

    }

    //学生信息排序 //按照总成绩从高到低排序 void sortPerson(personbook * abs) { person parry[MAX]; int zongfeng[MAX]; int num;

    ifstream infile("学生成绩管理系统.dat",ios::in||ios::out);//创建或打开文件,以输入方式打开文件
    if(!infile)
    {  
    	cerr<<"open error!"<<endl;
    	exit(1);
    }
    
    for (int i=0; i < abs->M_size; ++i)
    {
    	infile>>abs->parry[i].num>>abs->parry[i].name>>abs->parry[i].sex>>abs->parry[i].age>>abs->parry[i].math>>abs->parry[i].chinese>>abs->parry[i].english>>abs->parry[i].number;
    
    	zongfeng[i]=abs->parry[i].number;
    }
    
    //冒泡排序
    for(int m=0;m<abs->M_size-1;++m)
    	for(int n=0;n<abs->M_size-m;++n)
    	{
    		if(zongfeng[n]<zongfeng[n+1])
    		{
    			num = zongfeng[n];
    			zongfeng[n] = zongfeng[n+1];
    			zongfeng[n+1]=num;
    		}
    	}
    for (int j=0; j < abs->M_size; ++j)
    for (int i=0; i < abs->M_size; ++i)
    {
    	infile>>abs->parry[i].num>>abs->parry[i].name>>abs->parry[i].sex>>abs->parry[i].age>>abs->parry[i].math>>abs->parry[i].chinese>>abs->parry[i].english>>abs->parry[i].number;
    	if(zongfeng[j]==abs->parry[i].number)
    	{
    		cout << "学号:" << abs->parry[i].num << "\t";
    		cout << "姓名:" << abs->parry[i].name << "\t";
    		cout << "性别:" << (abs->parry[i].sex == 1 ? "男" : "女") << "\t";//三步运算符,水平制表
    		cout << "年龄:" << abs->parry[i].age << "\t";
    		cout<<  "数学: " <<abs->parry[i].math<<"\t";
    		cout << "语文:" << abs->parry[i].chinese << "\t";
    		cout << "英语:" << abs->parry[i].english << "\t";
    		cout << "总分:" << abs->parry[i].number << endl; 
    
    	}
    }
    infile.close();//关闭文件
    system("pause");
    system("cls");
    

    }

    //清空学生信息 void cleanPerson(personbook * abs) { while(true) { cout << "如果确定清空学生信息" << endl; cout << "1--是" << endl; cout << "2--否" << endl; int flag; cin >> flag; if (flag == 1) { abs->M_size = 0; ofstream outfile("学生成绩管理系统.dat",ios::out);//创建或打开文件,以输出方式打开文件 outfile.close();//关闭文件 cout << "学生信息已清空" << endl; break; } else if(flag == 2) { break; } else { cout << "无效输入,请重新输入" << endl; break; } } system("pause"); system("cls"); }

    //主函数 int main() { personbook abs;//初始化学生成绩管理系统 abs.M_size = 0;

    int select = 0;
    while (true)//无限循环
    {
    	showmenu();
    	cin >> select;
    	system("cls");
    	
    	switch (select) 
    {
    case 1:
        addperson(&abs);
        break;
    case 2:
    	showperson(&abs);
    	break;
    case 3:
        deleteperson(&abs);
        break;
    case 4:
        findperson(&abs);
        break;
    case 5:
    	statistics(&abs);
    	break;
    case 6:
    	sortPerson(&abs);
    	break;
    case 7:
    	cleanPerson(&abs);
    	break;
    case 0:
        cout << "欢迎下次使用" << endl;
        return 0;
        break;
    }
    }
    return 0;
    

    }

    • @ 2024-5-22 22:11:33

      对呀,人家好像几个月没上线了

      • @ 2024-5-22 21:24:58

        他好像已经退了

        • 1