学生选修课程系统

来源:互联网 发布:按键精灵数组输出 编辑:程序博客网 时间:2024/04/29 06:58

#include<conio.h>

#include<stdlib.h>

#include<iostream>

#include<fstream>

#include<string>

#include  <windows.h>

using namespace std;

class Course

{private:  int courseNumber;

     string courseName;

     string courseKind;

     int coursePeriod;

     int schoolPeriod;

         int experimentPeriod;

     float credithour;

     string courseterm;

public:   void CourseInfoInput();    //信息输入

     void CourseInfoOutPut();   //信息输出

   void Search();             //查找信息

   void SearchByCredithour(float); //按照学分查找

   void SearchByCourseKind(string); //按照课程;类型查找

       void SearchByCourseName(string);};

void echo(char* szStr,int t=50)

{ for(int i=0;i<strlen(szStr);i++)

{cout<<szStr[i]; Sleep(t);}}    //动态输出结果

const char* coursefile="C:\\course.txt";   //将课程信息定位到C盘下的course.txt中!!!!!!!!!

void Course::CourseInfoInput()          //课程信息的录入

{ofstream outcoursefile;             //创建一个文件输出流对象 

outcoursefile.open(coursefile); 

if(!outcoursefile)                  //判断文件是否存在

{cout << "文件打开失败!"<< endl;   return ;}

while(1)                           //无限循环,给出指定条件退出

{   cout<<"******************************课程信息*******************"<<endl;

cout<<"**              按任意键开始信息录入                   **"<<endl;

cout<<"**             输入q退出                              **"<<endl;

        cout<<"*********************************************************"<<endl;

if(getch()=='q')

{break;}

cout<<"请输入课程编号: ";        cin>>courseNumber;

cout<<"请输入课程名称:";         cin>>courseName;

cout<<"请输入课程性质:";         cin>>courseKind;

cout<<"请输入总学时:";           cin>>coursePeriod;

cout<<"请输入授课学时:";         cin>>schoolPeriod;

cout<<"请输入实验&上机学时:";   cin>>experimentPeriod;

cout<<"请输入学分:";           cin>>credithour;

        cout<<"请输入开课学期:";       cin>>courseterm;

outcoursefile<<"\t\t\t\t"<<courseNumber<<" "<<courseName<<" "<<courseKind<<" "<<coursePeriod<<" "<<schoolPeriod<<" "<<experimentPeriod<<" "<<credithour<<" "<<courseterm<<endl; }

outcoursefile.close();                   //关闭输出流文件 

}

void Course::CourseInfoOutPut()         //课程信息的浏览

{   ifstream incoursefile;              //创建输入流文件对象

incoursefile.open(coursefile);      //打开

if(!incoursefile)                  //判断文件存在

{cout << "文件读取失败";       return ;}

cout <<" 课程编号|课程名称|课程性质|总学时|授课学时|实验上机学时|学分|开课学期\n";

string arrcourse[100][100];         //定义一个string类型的二维数组,用来保存从文本内读取的信息

int line=0;

memset(arrcourse,0,sizeof(arrcourse));  //将数组清空

while(!incoursefile.eof())              //文件不为空的条件设置

{for(int j=0;j<8;j++)

{incoursefile>>arrcourse[line][j];}

line++;} 

for(int i=0;i<line;i++)

{for(int j=0;j<8;j++)

{cout << arrcourse[i][j] <<"\t";}

cout << endl;}

incoursefile.close();}

void Course::SearchByCredithour(float tempch)

{ifstream incoursefile;              //创建输入流文件对象

incoursefile.open(coursefile); //打开

if(!incoursefile)                  //判断文件存在

{cout << "文件读取失败";   return ;}

string arrcourse[100][100];         //定义一个string类型的二维数组,用来保存从文本内读取的信息

int line=0;

memset(arrcourse,0,sizeof(arrcourse));  //将数组清空

while(!incoursefile.eof())              //文件不为空的条件设置

{incoursefile>>arrcourse[line][0]>>arrcourse[line][1]>>arrcourse[line][2]>>arrcourse[line][3]>>arrcourse[line][4]>>arrcourse[line][5]>>arrcourse[line][6]>>arrcourse[line][7];    //文件流读取数据

line++;}

cout<< "课程编号|课程名称|课程性质|总学时|授课学时|实验上机学时|学分|开课学期\n";

for(int i=0;i<line;i++)

{if(atof(arrcourse[i][6].c_str())==tempch)   //比较

{cout <<"   "<<arrcourse[i][0] <<"  \t "<< arrcourse[i][1]<<" \t " << arrcourse[i][2]<<"  \t  "<< arrcourse[i][3]<< "\t  " << arrcourse[i][4]<<"  \t  "<<arrcourse[i][5]<<" \t\t "<<arrcourse[i][6]<< "\t "<<arrcourse[i][7]

<<"\n*********************************************************"<< endl;}}

cout << "\n\n";

incoursefile.close();}

void Course::SearchByCourseKind(string strtemp)///课程类型查询

{   ifstream incoursefile;              //创建输入流文件对象

    incoursefile.open(coursefile);//打开

if(!incoursefile)                  //判断文件存在

{cout << "文件读取失败";    return ;}

string arrcourse[100][100];

int line=0;

memset(arrcourse,0,sizeof(arrcourse));

while(!incoursefile.eof())

{incoursefile>>arrcourse[line][0]>>arrcourse[line][1]>>arrcourse[line][2]>>arrcourse[line][3]

>>arrcourse[line][4]>>arrcourse[line][5]>>arrcourse[line][6]>>arrcourse[line][7];

line++;}

cout<< "课程编号|课程名称|课程性质|总学时|授课学时|实验上机学时|学分|开课学期\n";

for(int i=0;i<line;i++)

{if(arrcourse[i][2]==strtemp)

{cout <<"   "<<arrcourse[i][0] <<"  \t "<< arrcourse[i][1]<<" \t " << arrcourse[i][2]<<"  \t  "<< arrcourse[i][3]<< "\t  " << arrcourse[i][4]<<"  \t  "<<arrcourse[i][5]<<" \t\t "<<arrcourse[i][6]<< "\t "<<arrcourse[i][7]

<<"\n************************************************************"<< endl;}}

cout << "\n\n";}

void Course::SearchByCourseName(string strtemp1)

{   ifstream incoursefile;              //创建输入流文件对象  

   incoursefile.open(coursefile);//打开  

if(!incoursefile)                  //判断文件存在

{cout << "文件读取失败";   return ;}

string arrcourse[100][100];

int line=0;

memset(arrcourse,0,sizeof(arrcourse));

while(!incoursefile.eof())

{ incoursefile>>arrcourse[line][0]>>arrcourse[line][1]>>arrcourse[line][2]>>arrcourse[line][3]>>arrcourse[line][4]>>arrcourse[line][5]>>arrcourse[line][6]>>arrcourse[line][7];

line++;}

cout<< "课程编号|课程名称|课程性质|总学时|授课学时|实验上机学时|学分|开课学期\n";

for(int i=0;i<line;i++)

{if(arrcourse[i][1]==strtemp1)

{cout <<"   "<<arrcourse[i][0] <<"  \t "<< arrcourse[i][1]<<" \t " << arrcourse[i][2]<<"  \t  "<< arrcourse[i][3]<< "\t  " << arrcourse[i][4]<<"  \t  "<<arrcourse[i][5]<<" \t\t "<<arrcourse[i][6]<< "\t "<<arrcourse[i][7]

<<"\n*************************************************************"<< endl;}}

cout << "\n\n";}

void Course::Search()

{while(1)

{   cout << "选择查询方式:" << endl;

cout << "(1).按课程类型查询" << endl;

cout << "(2).按课程名称查询"<<endl;

        cout << "(3).按学分查询" << endl;

cout << "(0).返回"<< endl;

int i;   cin>>i;

switch(i)

{case 1:    cout << "请输入课程类型:\n";

      char strtmp[100];               cin >> strtmp;

      SearchByCourseKind(strtmp);    break;

case 2:    cout<<"请输入课程名称:\n";

      char strtmp1[100];               cin>>strtmp1;

                SearchByCourseName(strtmp1);    break;

case 3:   cout << "请输入学分:\n";

     float ftemp;     cin >> ftemp;

         SearchByCredithour(ftemp);    break;}

if(i==0)   {break;}  }  }

void Students()

{  int n,j,a,w=1,flag=0,i=3;

   char s[8];     char password[]="19911219";

   do   {cout<<("\n\nEnter password:");

          j=0;

while(1)

{   a=getch();  if(a==13)   break;

s[j]=a;   j++;

 cout<<("*");}

s[j]='\0';       

 if(!strcmp(s,password))              //进行密码匹配验证

         {  flag=1;  break;}

       else

        {cout<<("\n\nError! You only have %d times! Enter again:\n",i-1)<<endl;    i--; } }

while(i>0);

   if(!flag)

      {cout<<("谢谢您的使用,你已3次输入密码错误!")<<endl;       //输入密码超过了3次!!

        exit(0);                                //自动退出

 }

     Course Excourse;

while(1)

{   echo (" \n\t********************************************************\n",10);

echo (   "\t**            学生登录系统                           **\n",10);

echo (   "\t**      请选择操作:                                  **\n",10);

    echo (   "\t**             (1).浏览课程信息                       **\n",10);

echo (   "\t**             (2).查询课程信息                       **\n",10);

echo (   "\t**             (0).退出系统                           **\n",10);

echo (   "\t*******************************************************\n",10);

        cin>>n;  switch(n)

        { case 1:Excourse.CourseInfoOutPut();break;

        case 2:Excourse.Search();break;

  case 0:exit(0); }  }

      while(w==1);  }

void Mangers()

{ int n,j,a,w=1,flag=0,i=3;

   char s[8];

   char password[]="19911219";

   do   { cout<<("\n\nEnter password:");   j=0;

while(1)

{  a=getch();

if(a==13)    break;    s[j]=a;    j++;     cout<<("*");}

s[j]='\0';       

 if(!strcmp(s,password))              //进行密码匹配验证

         {  flag=1;   break;    }

       else {   cout<<("\n\nError! You only have %d times! Enter again:\n",i-1);   i--;   } 

     }

while(i>0);

   if(!flag)

      {cout<<("\n谢谢您的使用,你已3次输入密码错误!")<<endl;       //输入密码超过了3次!! 

exit(0);                                //自动退出  

}

Course Excourse;    while(1)

{   echo(" \n\t********************************************************\n",10);

echo( "\t**          管理员登录系统                              **\n",10);

echo("\t**      请选择操作:                                      **\n",10);

echo( "\t**           (1).录入课程信息                            **\n",10);

echo("\t**           (2).浏览课程信息                            **\n",10);

echo("\t**           (3).查询课程信息                            **\n",10);

echo( "\t**          (0).退出系统                                **\n",10);

    echo( "\t**********************************************************\n",10);

       int n; cin>>n;    switch(n)

        { case 1:Excourse.CourseInfoInput();break;

  case 2:Excourse.CourseInfoOutPut();break;

        case 3:Excourse.Search();break;

  case 0:exit(0);}   }

while(w==1);   }

int  main()

{for(int i=0;i<1;i++)

{system("color 7A");   Sleep(100);          system("color 0C");   Sleep(100);

system("color 18");   Sleep(100);           system("color 3D");   Sleep(100);

system("color 4E");   Sleep(100);           system("color 5F");   Sleep(100);

system("color 69");   Sleep(100);           system("color 2B");   Sleep(100);

}

int n,w=1;    do{system("cls");

        echo( "\t\t************************MENU***********************\n",10);

          echo( "\t\t***           t1.以管理员身份登录                  **\n",10);

         echo( "\t\t***           t2.以学生身份登录                    **\n",10);

  echo( "\t\t***           t3.退出                              **\n",10);

          echo( "\t\t****************************************************\n",10);

            cout<<("Chiose your number(1-3):[ ]\b\b");// \b倒退一个字符

       cin>>n;      switch(n)

{ case 1:Mangers() ;break;

 case 2:Students();break;

 case 3:w=0;break;    default:;}    }

    while(w==1);   return 0;}

原创粉丝点击