zoukankan      html  css  js  c++  java
  • 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.程序执行结果截图

    反复课程不同意选择。

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

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

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

     

     

  • 相关阅读:
    微信 token ticket jsapi_ticket access_token 获取 getAccessToken get_jsapi_ticket方法
    PHP 日志 记录 函数 支持 数组 对象 新浪 sae 环境 去掉 空格 换行 格式化 输出 数组转字符串
    原生 原始 PHP连接MySQL 代码 参考mysqli pdo
    PHP 数字金额转换成中文大写金额的函数 数字转中文
    使用PHPMailer发送带附件并支持HTML内容的邮件
    设置输出编码格式 header 重定向 执行时间 set_time_limit 错误 报告 级别 error_reporting
    html5 bootstrap pannel table 协议 公告 声明 文书 模板
    指向指针的指针
    二级指针
    c语言:当指针成为参数后
  • 原文地址:https://www.cnblogs.com/yxwkf/p/3877143.html
Copyright © 2011-2022 走看看