• 工作总结
  • 工作计划
  • 心得体会
  • 领导讲话
  • 发言稿
  • 演讲稿
  • 述职报告
  • 入党申请
  • 党建材料
  • 党课下载
  • 脱贫攻坚
  • 对照材料
  • 主题教育
  • 事迹材料
  • 谈话记录
  • 扫黑除恶
  • 实施方案
  • 自查整改
  • 调查报告
  • 公文范文
  • 思想汇报
  • 当前位置: 雅意学习网 > 文档大全 > 工作计划 > 正文

    教师评学管理系统

    时间:2020-07-26 13:20:06 来源:雅意学习网 本文已影响 雅意学习网手机站

     教师评学管理系统:

     (上传时间 :2012/7/17)

     注:本题目源码仅供参考,直接套用者后果自负。

     涉及知识:运算符重载、链表、友元、输入输出流等。

      #### GUIDIAN ####

     要求:

     该系统主要处理教师评学信息。

     班级信息主要包括:班级编号、班级名称、所在院系、评学成绩等内容。

     教师信息主要包括:编号、姓名、电话等内容。

     完成以下的操作:班级信息、教师信息、评学信息的录入、修改、删除和查询。

     提示:

     建立学校类、教师类、班级类、评学类 学校、教师、班级、评学信息的初始化 学校、教师、班级、评学信息的添加、修改、删除、查找 学校、教师、班级、评学信息的输出 对评学信息按评学成绩排序

     使用方法:按照注释分别加入到各个头文件中。

     附录:源程序

      //ChainChart.h #ifndef CHAINCHART_H #define CHAINCHART_H #include"School.h"

     //链表类

     class Node { public:

      Mate m;

     Teacher t;

     School s;

     Evaluate e;

      Node *next;

     };

      class List { private:

     char School[32];

      char Name[32];

     char Tel[32];

     int Number;

      int Mark;

     public:

     Node *head;

     List();

     bool Tof();

     //判断 d

     void Paixu();

     //排序 d

     void Del(); // 删除 d

     void Add();

     //增加 d

     void Find();

     //查询 d

     void Fix();

     //修改 d

     void Insert();//插入 d

     void Print();

     //打印 d

     int Length();

     //长度判断 d

     void Save();//保存 d

     void Load();//载入 d

      };

     #endif

     //school.h #ifndef SCHOOL_H #define SCHOOL_H

      //学校类 #include<ostream.h> class Mate { private:

     char Department[32];

     double Mark;

     public:

      char Name[32];

     int Number;

     void Set();

     void Show();

     void Set(float);

      friend ostream &operator << (ostream & stream,Mate &m)

     {

      cout<<m.Number<<"\t"<<m.Name<<"\t"<<m.Department<<"\t";

     return stream;

     } };

     class Teacher { private: char Tel[32];

      public:

     int Number;

     char Name[32];

     void Show();

     void Set(char * ,char * ,int);

      friend ostream &operator << (ostream & stream,Teacher &t)

     {

     cout<<t.Number<<"\t"<<t.Name<<"\t"<<t.Tel<<"\t";

     return stream;

     } };

     class School {

     char Name[32];

     public:

     void Set(char *);

      void Show();

     friend ostream &operator << (ostream & stream,School &s)

     {

      cout<<s.Name<<"\t";

     return stream;

     } };

     class Evaluate {

     public:

     void Set();

     void Show();

      double Mark;

     double Record();

      friend ostream &operator << (ostream & stream,Evaluate &e)

     {

      cout<<e.Mark<<"\t";

     return stream;

     } }; #endif

     //C C hainchart.cpp

     #include "ChainChart.h "

     #include "School.h" #include <iostream.h> #include <stdio.h>

     #include <stdio.h>

      List::List() {

      head=new Node;

      head->next=NULL; };

     bool List::Tof()

     // 判断是否继续输入 {

     char

     tof;

     cout<<"************* 继续输入信息? yes:y no:n *************"<<endl;

     cin>>tof;

     if(tof=="n")

     {return true;}

     else if(tof=="y")

     {return false;}

     else {return Tof();}

     };

     int List::Length() //求链表的长度 {

     int sum=0;

     Node *cur;

     cur=head->next;

     while(cur!=NULL)

     {cur=cur->next ;sum++;}

     return sum; }; void

     List::Add() //加入新链表 {

     Node *pre;

     Node *nw=new Node;

     head->next=nw;

     nw->next=new Node;

     char tof;

     cout<<"---------下面开始录入:-------"<<endl;

     cout<<endl;

     cout<<"输入您(老师)的学校:"<<endl;

     cin>>School;

     cout<<"输入您的编号:"<<endl;

     cin>>Number;

     cout<<"输入您的电话:"<<endl;

     cin>>Tel;

     cout<<"输入您的名字:"<<endl;

     cin>>Name;

      nw->s.Set(School);

     //录入学校名字

     nw->t.Set(Name,Tel,Number);//录入老师信息

      cout<<"---------------------------------您是

     "<<Name<<"

     老师,下面录入班级信息--------"<<endl; cout<<endl;

      nw->m.Set();//录入班级的信息

      cout<<"是否直接录入这个班级的成绩 y/n"<<endl;

      cin>>tof;

      if(tof=="y")

      {

      nw->e.Set();//录入评学成绩

      }

     else if(tof=="n")

      {

     nw->e.Mark=nw->e.Record();

     }

     pre=nw;

      nw=nw->next;

      if(Tof())

     {

      pre->next=NULL;

     nw=NULL;

     cout<<"

      ##########评学信息录入完毕,下面进行下一步操作!##########"<<endl;

     cout<<endl;

     return;

     };

     while(true)

     {

     nw->s.Set(School);

     //录入学校名字

     nw->t.Set(Name,Tel,Number);//录入老师信息

     cout<<"--------------------------------您是

     "<<Name<<"

     老师下面录入班级信息----------"<<endl; cout<<endl;

      nw->m.Set();//录入班级的信息

     cout<<"是否直接录入这个班级的成绩 y/n"<<endl;

      cin>>tof;

     if(tof=="y")

      {

      nw->e.Set();//录入评学成绩

      }

     else if(tof=="n")

      {

      nw->e.Mark=nw->e.Record();

     }

     nw->next=new Node;

      pre=nw;

      nw=nw->next;

     if(Tof())

     {

     pre->next=NULL;

     nw=NULL;

     cout<<endl;

      cout<<"

      ##########评学信息录入完毕,下面进行下一步操

     作!##########"<<endl;

      cout<<endl; cout<<endl; cout<<endl;

      return;

     }

     }

      pre->next=NULL;

     delete nw;

      cout<<endl;

     cout<<"

      ##########评学信息录入完毕,下面进行下一步操作!##########"<<endl;

     cout<<endl;

      };

      void List::Paixu()

      //链表排序 {

      Node *cur,*pre,*tem,*tem2;

      if(head->next->next==NULL)

     {return;} //把 if 语句放进去就不执行,i 很小

     for(int i=0;i<Length()-1;i++)

     //注意 i 的值

     {

      cur=head->next;

      tem=head;

     pre=cur;

     cur=cur->next;

      for(int j=0;j<Length()-1;j++)

      {

      if(pre->e.Mark>cur->e.Mark )

     {

      pre->next=cur->next;

      cur->next=pre;

      tem->next=cur;

      tem2=cur;

      cur=pre;

      pre=tem2;

     }

      if(j==Length()-2)

     //防止排序越界

     {break;}

     pre=pre->next;

     cur=cur->next;

     tem=tem->next;

      }

      }

     cout<<"---------------------------排序成功--------------------------------"<<endl;

      cur->next=NULL; };

      void List::Print() //链表打印 {

      Node *cur;

      cur=head->next;

      int i=1;

     if(head->next==NULL)

      {cout<<"表中还没有人,怎么打印"<<endl;return;}

      cout<<endl; cout<<endl;

      cout<<"-----------------------------"<<"下面开始打印各个信息"<<"--------------------------------"<<endl;

      cout<<endl;

     cout<<"序号"<<"

      "<<"学校"<<"

     "<<"老师编号"<<"

      "<<"名字"<<"

      "<<"电话"<<"

      "<<"班级编号"<<"

     "<<"名称"<<"

     "<<"学院"<<"

     "<<"成绩"<<endl;

     if(cur->next==NULL)

      {

      cout<<i<<"\t"<<cur->s<<cur->t<<cur->m<<cur->e<<endl;

     cout<<endl;

      cout<<"------------------------"<<"打印完毕,请继续下一步操作"<<"------------------------------"<<endl;

      return;

      }

     while(cur->next!=NULL)

      {

      cout<<i<<"\t"<<cur->s<<cur->t<<cur->m<<cur->e<<endl;

      cur=cur->next;

     i++;

      }

      cout<<i<<"\t"<<cur->s<<cur->t<<cur->m<<cur->e<<endl;

     cout<<"------------------------"<<"打印完毕,请继续下一步操作"<<"------------------------------"<<endl; };

      //chainchart2.cpp

     #include "ChainChart.h " #include "School.h" #include<iostream.h> #include<string.h> #include<fstream.h>

     void List::Insert() {

     Node *cur,*nw;

     cur=head;

     if(cur->next==NULL)

     {cout<<" 表中没有人,请先加入!"<<endl;}

      while(cur->next!=NULL)

      {

     cur=cur->next;

     }

     nw=new Node;

     cur->next=nw;

     cout<<"输入您的学校:"<<endl;

     cin>>School;

     cout<<"输入老师的编号:"<<endl;

     cin>>Number;

     cout<<"输入老师的电话:"<<endl;

     cin>>Tel;

     cout<<"输入老师的名字:"<<endl;

     cin>>Name;

      nw->s.Set(School);

     //录入学校名字

     nw->t.Set(Name,Tel,Number);//录入老师信息

     nw->m.Set();//录入班级的信息

      nw->e.Set();//录入评学成绩

     nw->next=NULL; }

      void List::Del()

      //删除函数 {

      int Number;

     Node *cur,*pre;

      cout<<"输入要删除班级的编号"<<endl;

      cin>>Number;

      int j=0;

      if(head==NULL)

      {

      cout<<"表是空的,不能删除"<<endl;

     return;

      }

      cur=pre=head;

      while(j<Length())

      {

      pre=cur;

     cur=cur->next;

     if(cur->m.Number==Number)

     {

      if(head==cur)

      {head=head->next;}

      //如果是头指针指向的节点,则还要重新添加引导

      else{pre->next=cur->next;}

      cout<<"这个班级的信息已经删除!"<<endl;

      return;

     }

     j++;

      }

      cout<<"找不到这个班的编号,请重新输入!"<<endl;

      Del();

      };

     void List::Find()

      //查找函数 {

      Node *cur;

      cur=head->next;

      cout<<"输入要查找的班级编号"<<endl;

      cin>>Number;

      int j=0;

     if(head==NULL)

      {

      cout<<"表是空的,不能查找"<<endl;

     return;

      }

      cur=head;

     while(j<Length())

      //按学号查找

      {

      cur=cur->next;

     if(cur->m.Number==Number)

     {

     cout<<"已经找到,下面输出信息"<<endl;

      cout<<"学校"<<"

     "<<"老师编号"<<"

      "<<"名字"<<"

      "<<"电话"<<"

      "<<"班级编号"<<"

     "<<"名称"<<"

     "<<"学院"<<"

     "<<"成绩"<<endl;

     cout<<cur->s<<cur->t<<cur->m<<cur->e<<endl;

      return;

     }

     j++;

      }

      cout<<"%%%%%%找来找去,找不到这班%%%%%%%"<<endl;

     return;

      };

     void List::Fix() {

     int i=0;

     char choose;

     char Nam[32];

     int Num;

     int Number;

     char Name[32];

     char Tel[32];

     char School[32];

     Node *cur;

      cur=head->next;

      while(1)

     {

     cout<<"请输入修改的目标,修改班级信息:1

     修改老师信息:2"<<endl;

      cin>>choose;

      i=0;

     cur=head->next;

     if(choose=="1")

     {

      i=0;

     cout<<"请输入班级的编号:"<<endl;

     cin>>Num;

     cout<<"请输入班级的名称:"<<endl;

      cin>>Nam;

      cur=head->next;

     while(i<Length())

     {

     if(cur->m.Number==Num&&strcmp(Nam,cur->m.Name)==0)

      {

     cout<<"下面录入这个班级要修改的信息:"<<endl;

      cur->m.Set();

      cout<<"班级信息修改成功!"<<endl;

      i=0;

      return;

      }

      i++;

     cur=cur->next;

      if(i==Length()-1)

     {cout<<"查不到这个班,请重新输入"<<endl;i=0;break;}

     }

      }

      else if( choose=="2")

     {

     i=0;

     cur=head->next;

     cout<<"请输入老师的编号:"<<endl;

     cin>>Num;

     cout<<"请输入老师的姓名:"<<endl;

      cin>>Nam;

     cout<<" ----------下面录入老师要修改的信息:-----------"<<endl;

      cout<<"输入您的学校:"<<endl;

      cin>>School;

      cout<<"输入老师的编号:"<<endl;

      cin>>Number;

      cout<<"输入老师的电话:"<<endl;

      cin>>Tel;

      cout<<"输入老师的名字:"<<endl;

      cin>>Name;

     while(i<Length())

      {

      if(cur->t.Number==Num&&strcmp(Nam,cur->t.Name)==0)

     {

     cur->s.Set(School);

     //录入学校名字

     cur->t.Set(Name,Tel,Number);//录入老师信息

     if(i==Length()-1)

     {cout<<"********老师信息修改成功!********"<<endl;i=0;return;}

     }

     i++;

     cur=cur->next;

     if(i==Length())

     {cout<<"%%%%%%%查不到这个老师,请重新输入%%%%%%"<<endl;i=0;break;}

     }

     }

     else

      {cout<<"%%%%%%%%信息输入不正确,请重新输入!%%%%%"<<endl;}

     } };

      void List::Save() {

     Node *cur;

     ofstream out("data.txt",ios::binary);

     cur=head->next;

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

     {

      cout<<cur->s<<cur->t<<cur->m<<cur->e<<endl;

      out.write((char *)cur,sizeof(*cur));

      cur=cur->next;

     }

     cout<<"写入文件成功!"<<endl;

     out.close();

      };

      void List::Load() {

     Node *cur,*pre,*nw;

     head=new Node;

     nw=new Node;

     head->next=nw;

     pre=nw;

     cur=nw;

      ifstream in("data.txt",ios::binary);

     while(in)

      {

     in.read((char *)cur, sizeof(*cur));

      if(!in)

      {break;}

      nw=new Node;

     cur->next=nw;

      pre=cur;

      cur=cur->next;

      }

      pre->next=NULL;

     cout<<"读出文件成功!"<<endl;

     in.close(); };

     //S S chool.cpp

     #include "School.h" #include <iostream.h> #include <iomanip> #include<ostream> #include<cstring>

     void School::Set(char *p) {

      strcpy(Name,p);

     };

     void School::Show() {

     cout<<"学校:"<<Name<<endl; };

      void Evaluate::Set() {

     cout<<"请输入这个班级的成绩"<<endl;

      cin>>Mark;

     cout<<"这位班级的信息输入完毕!"<<endl;

     cout<<"-----------------------------------"<<endl;

      };

     void Evaluate::Show () {

     cout<<"成绩:"<<Mark<<endl; };

     void Teacher::Set(char *p,char *q,int n) {

      strcpy(Tel,q);

     strcpy(Name,p);

     Number=n;

     };

     void Teacher::Show() {

     cout<<"老师的名字:"<<"\t"<<"老师的电话:"<<"\t"<<"老师的编号:"<<"\t"<<endl;

     cout<<Name<<"\t"<<Tel<<"\t"<<Number<<"\t"<<endl;

     };

     void Mate::Set() {

     cout<<"输入此班级的编号"<<endl;

     cin>>Number;

      cout<<"输入这个班级的名称"<<endl;

     cin>>Name;

     cout<<"输入这个班级的学院"<<endl;

     cin>>Department; };

     void Mate::Show() {

      cout<<"班级编号"<<"\t"<<"班级名称"<<"\t"<<"班级学院"<<"\t"<<endl;

     cout<<Number<<"\t"<<Name<<"\t"<<Department<<"\t"<<endl;

     };

     double Evaluate::Record() {

     char a[4];

     double mark=0;

     cout<<"下面开始对班级评分:"<<endl;

      cout<<"这班级学生的到课情况:

      1:好 2:一般 3:差 "<<endl; //25

      cin>>a[0];

     cout<<"这班级学生的上课情况:

      1:好 2:一般 3:差 "<<endl; //25

      cin>>a[1];

     cout<<"这班级学生的作业情况:

      1:好 2:一般 3:差 "<<endl; //25

      cin>>a[2];

     cout<<"这班级学生的考试情况:

      1:好 2:一般 3:差 "<<endl; //25

      cin>>a[3];

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

     {

      switch(a[i])

      {

      case "1" : mark+=25;break;

      case "2" : mark+=20;break;

      case "3" : mark+=10;break;

      }

     }

     cout<<"这位班级的信息输入完毕!"<<endl;

      cout<<"-----------------------------------"<<endl; return mark; } //main.cpp

     #include<iostream.h> #include"ChainChart.h" #include"School.h" #include<iomanip.h> #include<stdlib.h> int menu() {

     //显示主菜单

     char c;

     cout << "-------------------------------------\n";

     cout << "

     教师评学管理系统

      v1.0*\n";

     cout << "

     *\n";

     cout << " | -

     1. 录入评学信息*\n";

     cout << " | -

     2. 添加评学信息*\n";

     cout << " | -

     3. 修改评学信息*\n";

     cout << " | -

     4. 班级信息排序*\n";

     cout << " | -

     5. 查找班级信息*\n";

     cout << " | -

     6. 删除班级信息*\n";

     cout << " | -

     7. 打印班级信息*\n";

     cout << " | -

     8. 保存班级信息*\n";

      cout << " | -

     9. 读取班级信息*\n";

     cout << " | -

     0. 退出*\n";

     cout << "------------------------------------*\n";

     cout << "\n 请输入(0~9): ";

     do { //键盘输入循环

      cin.get(c);

     } while(c<"0" || c>"9");

     return c-48; }

      void main()

     //主函数 {

      char choice;

     List l;

     for(;;) { //循环,直到键盘输入结束代码

      choice = menu();

      switch(choice) { //根据键盘输入,调用相应的功能

      case 1: l.Add();break;

      case 2: l.Insert();break;

      case 3: l.Fix();break;

      case 4: l.Paixu();break;

      case 5: l.Find();break;

      case 6:

     l.Del();break;

      case 7:

     l.Print();break;

      case 8:

     l.Save();break;

      case 9:

     l.Load();break;

      case 0: exit(0);

      }

     }

    推荐访问:管理系统 教师

    • 文档大全
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章