学生信息系统(支持课)

来源:互联网 发布:电话号码归属地数据库 编辑:程序博客网 时间:2024/04/29 20:33
#include <iostream>#include <fstream>#include <string.h>#include <stdio.h>#include <stdlib.h>#include <iomanip>using namespace std;//银行中最大的账户数量#define MAXACCOUNTNUMBER 200struct Student{    int stunum;    string name;    string sex;    int age;    double score;    int state;//代表学生状态 1为正常 0为删除};Student A[MAXACCOUNTNUMBER];int size=0;void welcome();//欢迎界面void menu();//菜单界面void increase();//增加学生void search();//找学生并显示信息void delet();//删除学生void show();//显示成绩单void sort();//排序输出void change();//改变学生信息void Save();//保存学生信息void read();//读入学生信息int main(){   welcome();   menu();   return 0;}void read(){   //读文件ifstream infile("成绩.txt",ios::in);        //文件目标if(!infile){cerr<<endl<<"open error!"<<endl<<endl;exit(1);}    while(infile>>A[size].stunum>>A[size].name>>A[size].sex>>A[size].age>>A[size].score>>A[size].state) //依次检索文件{size++;}infile.close();}void welcome(){   read();   cout<<'\t'<<'\t'<<'\t'<<"+----------------------------------+"<<endl;   cout<<'\t'<<'\t'<<'\t'<<"|                                  |"<<endl;   cout<<'\t'<<'\t'<<'\t'<<"|         欢迎登陆学生系统         |"<<endl;   cout<<'\t'<<'\t'<<'\t'<<"|                                  |"<<endl;   cout<<'\t'<<'\t'<<'\t'<<"+----------------------------------+"<<endl;}void menu(){    int chose;    cout <<"请选择以下命令:"<<endl;    cout<<'\t'<<"*--------------------------------------*"<<endl;    cout<<'\t'<<"1.增加学生信息         2.查找学生信息"<<endl;    cout<<'\t'<<"3.删除学生信息         4.显示学生信息"<<endl;    cout<<'\t'<<"5.学生成绩排序         6.修改学生信息"<<endl;    cout<<'\t'<<"0.退出                               "<<endl;    cout<<'\t'<<"*--------------------------------------*"<<endl;    cin>>chose;    switch(chose)    {    case 0:        cout<<"谢谢使用!";        exit(1);    case 1:        increase();       break;    case 2:        search();        break;    case 3:        delet();        break;    case 4:        show();        break;    case 5:        sort();         break;    case 6:        change();        break;    default:        cout<<endl;        cout<<"您输入的指令有误!  系统退出!"<<endl;        cout<<endl;        exit(1);       break;    }}void increase(){    cout<<"请输入学号、姓名、性别、年龄、成绩:"<<endl;    size=size+1;    cin>>A[size].stunum>>A[size].name>>A[size].sex>>A[size].age>>A[size].score;    A[size].state=1;    Save();    cout<<"增加成功,按任意键返回!"<<endl;    fflush(stdin);    getchar();    menu();}void search(){    int num,chose,i;    string sname;    cout<<"请输入查找方式:"<<endl;    cout<<"1.学号查找:"<<endl;    cout<<"2.姓名查找:"<<endl;    cin>>chose;    if(chose==1)    {        cout<<"请输入学号:"<<endl;        cin>>num;        for(i=0; i<=size; i++)        {            if((num==A[i].stunum)&&(A[i].state=1))            {                cout<<"学号      姓名      性别    年龄     成绩"<<endl;                cout<<A[i].stunum<<"      "<<A[i].name<<"     "<<A[i].sex<<"    "<<A[i].age<<"           "<<A[i].score<<endl;                cout<<endl<<"查询成功,按任意键返回"<<endl;        fflush(stdin);        getchar();        menu();                break;            }        }        if((num!=A[i].stunum)||(A[i].state=0))        {            cout<<"查无此人!"<<endl;            cout<<endl<<"按任意键返回"<<endl;            fflush(stdin);            getchar();            menu();        }       }else if(chose==2)    {        cout<<"请输入姓名:"<<endl;        cin>>sname;        for(i=0; i<=size; i++)        {            if(sname==A[i].name)            {                cout<<"学号      姓名        性别       年龄      成绩"<<endl;                cout<<A[i].stunum<<setw(10)<<A[i].name<<setw(10)<<A[i].sex<<setw(10)<<A[i].age<<setw(12)<<A[i].score<<endl;                cout<<endl<<"查询成功,按任意键返回"<<endl;        fflush(stdin);        getchar();        menu();                break;            }        }        if((sname!=A[i].name)||(A[i].state=0))        {            cout<<"查无此人!"<<endl;            cout<<endl<<"按任意键返回"<<endl;            fflush(stdin);            getchar();            menu();        }    }else    {        cout<<"选择错误请注意!";        cout<<endl<<"按任意键返回"<<endl;        fflush(stdin);        getchar();        menu();    }}void delet(){    int num,i;    cout<<"请输入要删除的同学的学号:"<<endl;    cin>>num;    for(i=0; i<=size; i++)    {        if(num==A[i].stunum)        {            A[i].state=0;            Save();            cout<<"删除成功!"<<endl;            cout<<endl<<"按任意键返回"<<endl;            fflush(stdin);            getchar();            menu();            break;        }    }    if((num!=A[i].stunum)||(A[i].state=0))        {            cout<<"查无此人!"<<endl;            cout<<endl<<"按任意键返回"<<endl;            fflush(stdin);            getchar();            menu();        }}void show(){    int i;    cout<<"学号      姓名        性别       年龄      成绩"<<endl;    for(i=0; i<=size; i++)    {        if(A[i].state==1)        {            cout<<A[i].stunum<<setw(10)<<A[i].name<<setw(10)<<A[i].sex<<setw(10)<<A[i].age<<setw(12)<<A[i].score<<endl;        }    }    cout<<endl<<"按任意键返回"<<endl;    fflush(stdin);    getchar();    menu();}void sort(){    int i,j,chose;    Student t;    cout<<"请输入排序方式:"<<endl;    cout<<"1.学号排序(升序)"<<endl;    cout<<"2.成绩排序(降序)"<<endl;    cin>>chose;    if(chose==1)    {        for(i=0; i<size-1; i++)        {            for(j=i+1; j<size; j++)            {                if(A[i].stunum>A[j].stunum)                {                    t=A[i];                    A[i]=A[j];                    A[j]=t;                }            }        }        show();    }else if (chose==2)    {        for(i=0; i<size-1; i++)        {            for(j=i+1; j<size; j++)            {                if(A[i].score<A[j].score)                {                    t=A[i];                    A[i]=A[j];                    A[j]=t;                }            }        }         show();    }else    {        cout<<"选择错误请注意!";        cout<<endl<<"按任意键返回"<<endl;        fflush(stdin);        getchar();        menu();    }}void change(){    int num,i;    int stunum1;    string name1;    string sex1;    int age1;    double score1;    cout<<"请输入您要修改的学生的学号";    cin>>num;    for(i=0; i<=size; i++)    {        if(num==A[i].stunum)        {            cout<<"请重新输入学号、姓名、性别、年龄、成绩:"<<endl;           cin>>stunum1>>name1>>sex1>>age1>>score1;           A[i].stunum=stunum1;           A[i].name=name1;           A[i].sex=sex1;           A[i].age=age1;           A[i].score=score1;           A[i].state=1;           Save();           cout<<"修改成功!"<<endl;           show();            break;        }        else        {            cout<<"查无此人!"<<endl;            menu();        }    }}//保存文件void Save(){ofstream outfile("成绩.txt",ios::out);if(!outfile){cout<<endl<<"open error!"<<endl;exit(1);}else{for(int i=0;i<=size;i++)                    //依次写入文件{    outfile<<A[i].stunum<<"     "<<A[i].name<<"      "<<A[i].sex<<"     "<<A[i].age<<"      "<<A[i].score<<endl;}outfile.close();}}


心得:越编越想完善。。。可总是到不了自己想要的程度。。。

           慢慢来一切会好的。

           周末把周二的程序补上。。还在研究中

        链表依旧不太懂。。

        时间程序也没写。。。

       喵。。。

  事情的最后一定是好的,如果它不好就代表还没到最后。。。。

0 0
原创粉丝点击