zoukankan      html  css  js  c++  java
  • 每日总结

    今天完成了小学期的第一个项目,颇为麻烦,在网上搞懂了结构体的输入输出运算符重载,方便了不少,附代码:

    #include <iostream>
    #include <string>
    #include <fstream>
    using namespace std;
    string file;
    struct StudentInfo
    {
    long num;
    string name;
    int s[3];
    int sum;
    int asum;
    friend istream & operator >> (istream&, StudentInfo &t)
    {
    cin>>t.num>>t.name>>t.s[0]>>t.s[1]>>t.s[2]>>t.sum>>t.asum;
    return cin;
    }
    friend ostream & operator << (ostream &, StudentInfo &t)
    {
    cout<<t.num<<" "<<t.name<<" "<<t.s[0]<<" "<<t.s[1]<<" "<<t.s[2]<<" "<<t.sum<<" "<<t.asum<<endl;
    return cout;
    }

    };
    class StudentManage
    {
    private:
    StudentInfo st[100];
    public:
    void one();
    void two();
    void three();
    void four();
    void five();
    void six();
    void seven();
    void eight();
    void nine();
    void ten();
    void eleven();
    };
    void change(StudentInfo a,StudentInfo b)
    {
    StudentInfo c;
    c.num=a.num;
    c.name=a.name;
    c.s[0]=a.s[0];
    c.s[1]=a.s[1];
    c.s[2]=a.s[2];
    c.sum =a.sum ;
    c.asum =a.asum ;
    a.num=b.num;
    a.name=b.name;
    a.s[0]=b.s[0];
    a.s[1]=b.s[1];
    a.s[2]=b.s[2];
    a.sum =b.sum ;
    a.asum =b.asum ;
    b.num=c.num;
    b.name =c.name ;
    b.s [0]=c.s [0];
    b.s [1]=c.s [1];
    b.s [2]=c.s[2];
    b.sum =c.sum ;
    b.asum =c.asum ;
    }
    void StudentManage::one()
    {
    cout<<"请输入想要创建的文件路径:"<<endl;
    cin>>file;
    ofstream outfile;
    outfile.open("file",ios::trunc);
    outfile.close();
    }
    void StudentManage::two()
    {
    cout<<"请输入想要读取的文件路径:"<<endl;
    ifstream infile;
    infile.open(file);
    for(int i=0;i<100;i++)
    {
    infile>>st[i];
    }
    infile.close();
    }
    void StudentManage::three()
    {
    for(int i=0;i<100;i++)
    {
    cout<<st[i]<<endl;
    }
    }
    void StudentManage::four()
    {
    cout<<"输入多少位同学呢:"<<endl;
    int n;
    cin>>n;
    for(int i=0;i<n;i++)
    {
    cout<<"请输入第"<<i<<"位同学的学号,姓名,语文成绩,数学成绩,英语成绩:"<<endl;
    cin>>st[i];
    }
    }
    void StudentManage::five()
    {
    cout<<"请输入删除同学的学号:"<<endl;
    long n;
    cin>>n;
    for(int i=0;i<100;i++)
    {
    int temp=0;
    if(st[i].num ==n)
    {
    for(int j=i;j<100;j++)
    {
    st[j].name =st[j+1].name ;
    st[j].num =st[j+1].num ;
    st[j].s[0]=st[j+1].s [0];
    st[j].s [1]=st[j+1].s [1];
    st[j].s [2]=st[j+1].s [2];
    }
    break;
    }
    }
    }
    void StudentManage::six()
    {
    int temp=0;
    long num1;
    cout<<"输入想修改同学的学号:"<<endl;
    cin>>num1;
    for(int i=0;i<100;i++)
    {
    if(st[i].num ==num1)
    {
    cout<<"输入姓名,语文成绩,数学成绩,英语成绩:"<<endl;
    cin>>st[i].name >>st[i].s [0]>>st[i].s [1]>>st[i].s [2];
    temp=1;
    }
    }
    if(temp==0) cout<<"学号不正确!"<<endl;
    }
    void StudentManage::seven()
    {
    cout<<"输入想要查询的学号:"<<endl;
    long num1;
    int temp=0;
    cin>>num1;
    for(int i=0;i<100;i++)
    {
    if(st[i].num ==num1)
    {
    cout<<st[i];
    temp=1;
    }
    }
    if(temp==0) cout<<"学号不正确!"<<endl;
    }
    void StudentManage::eight()
    {
    for(int i=0;i<100;i++)
    {
    st[i].sum =st[i].s [0]+st[i].s [1]+st[i].s [2];
    st[i].asum =st[i].sum /3;
    }
    }
    void StudentManage::nine()
    {
    char a,b;
    cout<<"请选择:A、按学号排列 B、按总分排列"<<endl;
    cin>>a;
    cout<<"请选择: A、升序 B、降序"<<endl;
    cin>>b;
    if(a=='A')
    {
    if(b=='A')
    {
    for(int i=0;i<100;i++)
    {
    for( int j=i+1;i<100;j++)
    {
    StudentInfo c;
    if(st[i].num>st[j].num)
    {
    change(st[i],st[j]);
    }
    }
    }
    }
    if(b=='B')
    {
    for(int i=0;i<100;i++)
    {
    for( int j=i+1;i<100;j++)
    {
    StudentInfo c;
    if(st[i].num<st[j].num)
    {
    change(st[i],st[j]);
    }
    }
    }
    }
    }
    if(a=='B')
    {
    if(b=='A')
    {
    for(int i=0;i<100;i++)
    {
    for( int j=i+1;i<100;j++)
    {
    StudentInfo c;
    if(st[i].sum>st[j].sum)
    {
    change(st[i],st[j]);
    }
    }
    }
    }
    if(b=='B')
    {
    for(int i=0;i<100;i++)
    {
    for( int j=i+1;i<100;j++)
    {
    StudentInfo c;
    if(st[i].num<st[j].num)
    {
    change(st[i],st[j]);
    }
    }
    }
    }
    }
    }
    void StudentManage::ten()
    {
    cout<<"输入文件名:"<<endl;
    cin>>file;
    ofstream outfile;
    outfile.open("file",ios::trunc);
    for(int i=0;i<100;i++)
    {
    outfile<<st[i]<<endl;
    }
    outfile.close();
    }
    void StudentManage::eleven()
    {
    cout<<"输入插入的学号,姓名,以及成绩:"<<endl;
    StudentInfo c;
    cin>>c;
    c.sum =c.s [0]+c.s [1]+c.s [2];
    c.asum =c.sum /3;
    cout<<"请重新排序:"<<endl;
    }
    //istream& operator >>(istream& input,StudentInfo& c)
    //{
    // input>>c.num >>c.name >>c.s [0]>>c.s [1]>>c.s [2]>>c.sum >>c.asum ;
    // return input;
    //}
    //ostream& operator << (ostream& output,StudentInfo& c)
    //{
    // output<<c.num <<" "<<c.name <<" "<<c.s [0]<<" "<<c.s[1]<<" "<<c.s [2]<<" "<<c.sum <<" "<<c.asum ;
    // return output;
    //}
    int main()
    {
    cout<<"**************学生成绩管理系统**************"<<endl;
    cout<<endl<<"请选择:"<<endl;
    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<<"****** 10.数据导入 "<<endl;
    cout<<"****** 11.数据插入 "<<endl;
    cout<<"****** 0.退出 "<<endl;
    int temp;
    cin>>temp;
    StudentManage a;
    while(temp)
    {
    switch (temp)
    {
    case '1': a.one ();break;
    case '2': a.two ();break;
    case '3': a.three ();break;
    case '4': a.four ();break;
    case '5': a.two ();a.five ();a.ten ();break;
    case '6': a.two ();a.six ();a.ten ();break;
    case '7': a.two ();a.seven ();a.ten ();break;
    case '8': a.two ();a.eight ();a.ten ();break;
    case '9': a.two ();a.nine ();a.ten ();break;
    case '10': a.ten ();break;
    case '11': a.two ();a.eleven ();a.ten ();break;
    }
    cout<<"继续选择:"<<endl;
    cin>>temp;
    };
    return 0;
    }

  • 相关阅读:
    Java基于数据源的数据库访问
    新手接触java
    完成了第一个java
    Mysql服务器相互作用的通讯协议包括TCP/IP,Socket,共享内存,命名管道
    SQL 根据IF判断,SET字段值
    MyBatis SQL 生成方法 增删改查
    JAVA 文件转字节数组转字符串
    Word内容修改,以及转PDF
    SpringBoot编辑代码时不重启服务
    java 图片转换工具
  • 原文地址:https://www.cnblogs.com/ldy2396/p/14159314.html
Copyright © 2011-2022 走看看