• c++大作业--学籍管理系统--


    1.题目描写叙述

    学籍管理系统:
    依据信息管理系统的业务流程、要求以及所要实现的目标,完毕下面功能:
    (1)建立学生档案的管理和维护。实现计算机自己主动化管理体制。
    (2)建立学生成绩管理机制,在计算机的支持下高速的完毕学生成绩的查询和改动。
    (3)建立课程设置管理,在计算机的支持下实现课程的加入�、改动。
    (4)建立班级设置管理,在计算机的支持下实现班级的加入�、删除和改动。
    (5)实现系统的权限设置管理,保证系统安全性。(登录password输错3次不同意登录)

    (6)使用姓名学号查找学生信息。

    (7)将学生信息保存在文件里。
    2.分析思路

    使用类来储存学生信息,实现学生信息的管理改动。

    3. 输入:

    1,password的设置输入及登录输入。

    2,功能选择的输入。

    3,学生信息输入

    void sr()                   //////初始化输入学生信息 
       {  
           cout<<"请输入姓名"; 
           cin>>xm; 
            cout<<"请输入入学日期中间用空格隔开"; 
            time.shuru(); 
                   ll=shurupanduan(time.year,time.month,time.day);
                   if(ll==0)
                           time.shuru();  
           cout<<"请输入班级"; 
           cin>>bj; 
            cout<<"请输入课程(5门)中间用空格隔开"; 
           for(int i=0;i<5;i++) 
                  {
                         cin>>kc[i];
                         for(intj=0;j<i;j++)
                         {
                                while(kc[i]==kc[j])
                                {
                                       cout<<"您已经选过该课程请又一次输入"<<endl;
                                       cin>>kc[i];
                                }
                         }
                  }


    4.输出:

    1,学生信息的输出。

    2,学生信息的文件储存。

    5.程序代码:

    #include<iostream> 
    #include <string> 
    #include<conio.h>
    #include<iomanip> 
    #include<time.h>
    # include<fstream>
    void bangzhu();
    void bcxx(int);
    void dqsj();
    bool pdxhcf(int,int);
    int shurupanduan(int,int,int);
    int runnian(int );
    using namespace std; 
      struct sj 
       {
     
      intyear,month,day;                            ////////时间结构体 
     void shuru() 
     {cin>>year>>month>>day; 
     } 
      }; 
     class student                                 ////////////学生类 
     { 
     
            
     public : 
             string xm,kc[5]; 
       int bj,xh,cj[5],ll; 
       sj time;
           voidsrxhh()
           {
                  cout<<"请输入学号";
           cin>>xh;
           }
       
       void sr()                   //////初始化输入学生信息 
       {  
           cout<<"请输入姓名"; 
           cin>>xm; 
            cout<<"请输入入学日期中间用空格隔开"; 
            time.shuru(); 
                   ll=shurupanduan(time.year,time.month,time.day);
                   if(ll==0)
                           time.shuru();  
           cout<<"请输入班级"; 
           cin>>bj; 
            cout<<"请输入课程(5门)中间用空格隔开"; 
           for(int i=0;i<5;i++) 
                  {
                         cin>>kc[i];
                         for(intj=0;j<i;j++)
                         {
                                while(kc[i]==kc[j])
                                {
                                       cout<<"您已经选过该课程请又一次输入"<<endl;
                                       cin>>kc[i];
                                }
                         }
                  }
           system("cls");
           } 
             void chengji()                        ///////成绩录入 
             {
                           int i; 
                  for(i=0;i<5;i++) 
                  {
                             cout<<"请输入"<<kc[i]<<"的成绩"<<endl; 
                    cin>>cj[i];
                           } 
             } 
                      void chengjisc()                         ///////成绩输出 
             {
                                inti; 
                 for(i=0;i<5;i++) 
                  {
                                  cout<<kc[i]<<"  "; 
                      cout<<cj[i]<<' ';
                           } 
             } 
     
     }; 
       void cxkb(student t)
           {
                  intn;
          cout<<"继续查询课程表请输入1,结束请输入0"<<endl;
         cin>>n;
       if(n==1)
        for(int i=0;i<5;i++)
         cout<<t.kc[i]<<' ';
           }
      string mima()               ////////初始化设置password 
       {
              cout<<"****************************学籍管理系统*********************************"<<endl;
                  dqsj();
              cout<<"请设置password:"; 
        string mm1,mm2; 
       char ch; 
        while ((ch=_getch())!=13) 
           { 
       mm1+=ch; 
       cout<<"*"; 
           } 
        cout<<endl; 
       cout<<"请再次确认password:"; 
       while ((ch=_getch())!=13) 
           { 
      mm2+=ch; 
      cout<<"*"; 
           } 
        system("cls"); 
     if(mm1==mm2) 
     return mm1; 
     else 
      mima(); 
      } 
    int denglu(string mm)              /////////登陆程序 
    { 
                  cout<<"****************************学籍管理系统*********************************"<<endl;
                  dqsj();
       cout<<"请输入登录password:"; 
       string mm1,mm2,mm3; 
       char ch; 
     while ((ch=_getch())!=13)  
     { 
     mm1+=ch; 
     cout<<"*"; 
     }   
     system("cls");
          cout<<"****************************学籍管理系统*********************************"<<endl;
           dqsj();
       if(mm==mm1) 
           return 1; 
       else 
        {
                  cout<<"password错误,您还有两次机会,请重试"; 
          while ((ch=_getch())!=13) 
              { 
            mm2+=ch; 
             cout<<"*"; 
              } 
            system("cls"); 
        if(mm==mm2) 
           return 1; 
       else 
        {
                  cout<<"password错误,您另一次机会,请重试"; 
           while ((ch=_getch())!=13) 
                  { 
             mm3+=ch; 
               cout<<"*"; 
                  } 
            system("cls"); 
        if(mm==mm3) 
           return 1; 
       else 
        {
                  cout<<"password错误,请明天再试"; 
           return 0;
           } 
           } 
           } 
    } 
    student chazhaoxg(student t)  //信息改动
    {cout<<"改动姓名请输入1,改动入学时间请输入2,改动班级请输入3."<<endl; 
    cout<<"改动课程请输入4,改动成绩请输入5"; 
    int a,i; 
    string xk;
    cin>>a; 
    switch(a) 
    {
    case 1:cin>>t.xm;break; 
    case2:cin>>t.time.year>>t.time.month>>t.time.day;break; 
    case 3:cin>>t.bj;break; 
    case 4:for(i=0;i<5;i++)cin>>t.kc[i];break; 
    case 5:
           cout<<"请输入课程名"<<endl;
           cin>>xk;for(i=0;i<5;i++)
           {
                  if(t.kc[i]==xk)
                  {cout<<"请输入成绩"<<endl;
                  cin>>t.kc[i];
                  }
           }break; 
          } 
     
    return t; 
     
    } 
    void shuchuxinxi(student t)  //输出学生信息
    { 
       cout<<t.xh<<' '<<t.xm<<''<<t.time.year<<t.time.month<<t.time.day<<t.bj<<''; 
    } 
    student stu[500];
       int main()                       ////主函数.................. 
        {
                  intn=0,i,xh; 
       string mm,xm;  //password  
       mm=mima();  //password设置
       i=denglu(mm); 
       if(i) 
       {  
       int a;
           system("cls");
           while(1) 
           {
                         cout<<"****************************学籍管理系统*********************************"<<endl;
              dqsj();
                    bangzhu();
                    cin>>a;
              system("cls");
              cout<<"****************************学籍管理系统*********************************"<<endl;
              dqsj();
                  if(a==0) 
           break; 
           else 
           { 
               switch(a) 
                         {
                         case1:
                         stu[n].srxhh();     
                                while(!pdxhcf(n,stu[n].xh))
                                {
                                       cout<<"已存在该学生请又一次输入"<<endl;
                                       stu[n].srxhh();
                         }
                                stu[n].sr(),n++;
                                break; 
               case 2: 
                                for(i=0;i<n;i++)
                                {
                                       cout<<stu[i].xh<<'';
                                       cout<<stu[i].xm<<endl;
                                }
                                break; 
               case 3:
                                cout<<"请输入学号 ";
                                cin>>xh;
                                for(i=0;i<n;i++)
                                       if(stu[i].xh==xh)
                                              stu[i]=chazhaoxg(stu[i]);break; 
               case 6:
                                cout<<"请输入学号 ";
                                cin>>xh;
                                for(i=0;i<n;i++)
                                       if(stu[i].xh==xh)
                                              stu[i].chengji();break;
                         case7:
                                cout<<"请输入学号 ";
                                cin>>xh;
                                for(i=0;i<n;i++)
                                       if(stu[i].xh==xh)
                                              stu[i].chengjisc();
                                       break;
                         case4: 
                                cout<<"请输入学号 ";
                                cin>>xh;
                                for(i=0;i<n;i++)
                                       if(stu[i].xh==xh)
                                       {
                                              shuchuxinxi(stu[i]);
                                              cxkb(stu[i]);
                                       }break;
                         case5: 
                                cout<<"请输入姓名 ";
                                cin>>xm;
                                for(i=0;i<n;i++)
                                       if(stu[i].xm==xm)
                                       {shuchuxinxi(stu[i]);
                                       cxkb(stu[i]);
                                       }break;
           case 9:bangzhu();break;
                  case8:bcxx(n);break;
                  }
                  } 
     
        }
           } 
    return 0; 
       } 
    void bangzhu()                         //操作指令提示 
    { cout<<"请输入下面指令"<<endl<<endl;  
         
       cout<<"    1.加入�学生              "; 
        
       cout<<"    2.输出全部学生          "<<endl;
           cout<<"============================"; 
       cout<<"============================"<<endl; 
       cout<<"    3.输入学号改动学生信息  "; 
        
       cout<<"    4,用学号查找学生信息   "<<endl;
           cout<<"============================"; 
       cout<<"============================"<<endl;
           cout<<"    5,用姓名查找学生信息   " ; 
        
       cout<<"    6,成绩输入              "<<endl;
           cout<<"============================";  
       cout<<"============================"<<endl;
           cout<<"    7,成绩查询              "; 
       
           cout<<"    8,保存学生信息"<<endl;
           cout<<"============================"; 
       cout<<"============================"<<endl;
       cout<<"    9.菜单                  "; 
        
       cout<<"    0.结束本程序            "<<endl ;
           cout<<"============================"; 
       cout<<"============================"<<endl; 
    } 
    int shurupanduan(int a,int b,int c=1)   //推断输入年月日是否正确 
    {int l=1,q,ll; 
    if(a<=0||b<=0||b>12||c<0) 
    {l=0; 
    cout<<"您的输入有误请又一次输入"<<endl;}
     
    switch(b) 
    {
    case 1:q=31;break; 
    case 2:q=28;break; 
    case 3:q=31;break; 
    case 5:q=31;break; 
    case 7:q=31;break; 
    case 8:q=31;break; 
    case 10:q=31;break; 
    case 12:q=31;break; 
    case 4:q=30;break; 
    case 6:q=30;break; 
    case 9:q=30;break; 
    case 11:q=30;break;
    } 
    ll=runnian(a);
    if(ll)
    q++;
    if(c>q) 
    {
           l=0; 
       cout<<"您的输入有误请又一次输入"<<endl;}  
       return l;
    } 
     
    int runnian(int a) //推断是是否为闰年 
    {
           intl=0; 
       if((a%4==0&&a%100!=0)||(a%400==0)) 
      l=1; 
     return l; 
    } 
    void bcxx(int n)
    {
           cout<<"请输入文本名称和后缀名:";  
    char s[20]; 
    cin>>s;  
    ofstream outfile(s,ios::out); 
           inti=0;
           studentt;
           outfile<<"          学号"<<"  姓名"<<" 出生日期"<<" 班级"<<endl;
           for(i=0;i<n;i++)
           {
                  t=stu[i];
                 
     
                  outfile<<fixed<<setw(12)<<t.xh<<''<<fixed<<setw(6)<<t.xm<<' '
                         <<fixed<<setw(7)<<t.time.year<<t.time.month<<t.time.day<<""
                         <<fixed<<setw(4)<<t.bj<<''; 
           }
     
    }
    void dqsj()    //输出如今时间以及当前月份日历 
    {  
    time_t t = time(NULL);  
    struct tm  *local = localtime(&t);  
    int year = local -> tm_year + 1900;  
    int month = local -> tm_mon + 1;  
    int day = local -> tm_mday; 
    int hour = local -> tm_hour;  
    int minute = local -> tm_min;  
    int second = local -> tm_sec;
    cout <<"当前时间: "<<"   "<<year<<"年"<<month<<"月"<<day<<"日"<<'';
    cout <<endl<<"                "<<hour<<":"<<minute<<":"<<second<<endl<<endl; 
    }
    bool pdxhcf(int n,int a)//推断学号是否反复
    {
           booll=1;
           inti;
           for(i=0;i<n;i++)
           {
                  if(a==stu[i].xh)
                  {
                         l=0;
                  break;
                  }
           }
           returnl;
    }


     

    6.程序执行结果截图

    反复课程不同意选择。

    能够将学生信息保存到文件

    能够使用姓名和学号查询学生信息

    能够实现成绩的输入和改动

     

     

  • 相关阅读:
    类的空间问题
    面向对象初识
    collections模块,shelve模块
    一段水印文字的练习
    jquery选择器中(:button)的含义
    关于通过jquery来理解position的relative及absolute
    [小明学算法]1.动态规划--最长递增子序列问题
    [小明学算法]2.贪心算法----
    [Unity的序列化]2.技能编辑器的实现
    [Unity的序列化]1.什么是序列化
  • 原文地址:https://www.cnblogs.com/yxwkf/p/3877143.html
Copyright © 2020-2023  润新知