⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c++学生管理系统(原创).txt

📁 用c编写的小程序
💻 TXT
📖 第 1 页 / 共 2 页
字号:
  cout<<"请输入学生的新名字:"<<endl;
  cin>>pStd->name;
  cout<<"请输入学生的座号"<<endl;
  cin>>pStd->num;
  cout<<"请输入学生的语文分数"<<endl;
  cin>>pStd->chinaNum;
  cout<<"请输入学生的数学分数"<<endl;
  cin>>pStd->mathNum;
  cout<<"请输入学生的英语分数"<<endl;
  cin>>pStd->englishNum;
    }
 else
 {
  return ;
 }
} 

void Sort(student *&head, char type,char maxOrMin)
{ 
/*参数说明: 
type=='1' 按 语文   排列 
type=='2' 按 数学   排列
type=='3' 按 英语   排列
type=='4' 按 总分   排列
type=='5' 按 平均分 排列
type=='6' 按 座号   排列   
 */
 student *pHead,*pH;
    pHead=pH=head;
 int len=GetLength(head);
    float *array=new float[len];
 int i;
 int x=0;
 
 float num=0;
 
 while(head)
 { 
  Count(head);
 if(type=='1')
 { 
  num=head->chinaNum;
 }
 else if(type=='2')
 { 
  num=head->mathNum;
 }
 else if(type=='3')
 {
  num=head->englishNum;
 }
 else if(type=='4')
 {
  num=head->result;
 }
 else if(type=='5')
 {
  
  num=head->average;
 }
 else if(type=='6')
 {
  num=head->num;
 }
 array[x]=num;
 x++;
 head=head->next;
 }
 
 head=pHead;
 if(maxOrMin=='1')
 {
  for( i=1; i<len; i++)
  {
   for(int j=0; j<len-i; j++)
   {
    if(array[j]<array[j+1])
    {
     float num;
     num=array[j];
     array[j]=array[j+1];
     array[j+1]=num;
    }
   }
  }
    }
 else 
 {
  for( i=1; i<len; i++)
  {
   for(int j=0; j<len-i; j++)
   {
    if(array[j]>array[j+1])
    {
     float num;
     num=array[j];
     array[j]=array[j+1];
     array[j+1]=num;
    }
   }
  }
 }

 int pos=1; 
 
 for(i=0; i<len; i++)
 {
  head=pHead;
  while(head)
  { 
   if(type=='1')
   {
    num=head->chinaNum;
   }
   else if(type=='2')
   {
    num=head->mathNum;
   }
   else if(type=='3')
   {
    num=head->englishNum;
   }
   else if(type=='4')
   {
    num=int(head->result);
   }
   else if(type=='5')
   {
    num=int(head->average);
   }
   else if(type=='6')
   {
    num=int(head->num);
   }

   int n=0;
   if(int(array[i])==int(num))
   {
  
      if(int(array[i])!=int(array[i+1]))
      {
        if(n==0)
    {
     n=pos;
    }
       head->pos=pos;
    pos++; 
      }
    else
    { 
  
     head->pos=n;
    }
   }
   head=head->next;
  }
 }
 head=pH;
 delete []array;
}

void Count(student *&head)
{
 head->result=head->chinaNum+head->englishNum+head->mathNum;
 head->average=head->result/3;
}

void DeleteAll(student* &head)
{
 student *cp,*np;

    cp=head;
 while(cp)
 {
       np=cp->next;
    delete cp;
    cp=np;
 }
 head=NULL;
}

void ChaXun(string str,student *head)
{
 Sort(head,'4','1');
 cout<<"欢迎使用查询功能"<<endl<<endl;
 cout<<"请输入你要按什么查询    1->一般查询     2->查找最多    3->查找最少"<<endl;
 string s;
 cin>>s;
 while(s[0]!='1'&&s[0]!='2'&&s[0]!='3')
 {
  cout<<"你输入错误,请重新输入."<<endl;
  cin>>s;
 }
 
 if(s[0]=='1')
 {
  cout<<"按什么查询?"<<endl;
  cout<<"1->姓名 2->座号 3->语文成绩 4->数学成绩 "
   <<"5->英语成绩 6->总分 7->平均分 8->排名"<<endl;
  cin>>str;
  
  while(str[0]!='1' && str[0]!='2' &&
   str[0]!='3' && str[0]!='4' &&
   str[0]!='5' && str[0]!='6' &&
   str[0]!='7' && str[0]!='8' )
  {
   cout<<"你输入错误,请重新输入."<<endl;
   cin>>str;
  }
  char findStr[30];
  cout<<"请输入要查找的关键字或关键数:"<<endl;
  cin>>findStr;  
  switch(str[0])
  {
   
  case '1':
   Find(head,findStr,'1');
   break;
  case '2':
   Find(head,findStr,'2');
   break;
  case '3':
   Find(head,findStr,'3');
   break;
  case '4':
   Find(head,findStr,'4');
   break;
  case '5':
   Find(head,findStr,'5');
   break;
  case '6':
   Find(head,findStr,'6');
   break;
  case '7':
   Find(head,findStr,'7');
   break;
  case '8':
   Find(head,findStr,'8');
   break;
  }
 }
 else if(s[0]=='2')
 { 
  cout<<"请输入要按什么查询?"<<endl;
  cout<<"1->语文成绩 2->数学成绩 "
   <<"3->英语成绩 4->总分 5->平均分 6->排名"<<endl;
  string s;
  cin>>s;
  switch(s[0])
  {
  case '1':
   FindMaxOrMin(head,'1','1');
   break;
  case '2':
   FindMaxOrMin(head,'2','1');
   break;
  case '3':
   FindMaxOrMin(head,'3','1');
   break;
  case '6':
   FindMaxOrMin(head,'6','1');
   break;
        case '5':
   FindMaxOrMin(head,'5','1');
   break;
  default:
   FindMaxOrMin(head,'4','1');
   break;
  }
 }
 else if(s[0]=='3')
 {
  cout<<"请输入要按什么查询?"<<endl;
  cout<<"1->语文成绩 2->数学成绩 "
   <<"3->英语成绩 4->总分 5->平均分 6->排名"<<endl;
  string s;
  cin>>s;
  switch(s[0])
  {
  case '1':
   FindMaxOrMin(head,'1','2');
   break;
  case '2':
   FindMaxOrMin(head,'2','2');
   break;
  case '3':
   FindMaxOrMin(head,'3','2');
   break;
  case '6':
   FindMaxOrMin(head,'6','2');
   break;
  case '5':
   FindMaxOrMin(head,'5','2');
   break;
  default:
   FindMaxOrMin(head,'4','2');
   break;
  }
 }
}  
  
長髮為伱而留 
 
 
 
  
 引用删除4楼  長髮為伱而留 
  评论时间:2007年3月11日 15时34分 
void ZengJia(string str, student* &head)
{
 student *pNew=new student;
 cout<<"欢迎使用增加功能"<<endl<<endl;
 cout<<"请输入新学生的名字 :"<<endl;
 cin>>pNew->name;
 cout<<"请输入新学生的座号 :"<<endl;
 cin>>pNew->num;
 cout<<"请输入他的语文分数 :"<<endl;
 cin>>pNew->chinaNum;
 cout<<"请输入他的数学分数"<<endl;
 cin>>pNew->mathNum;
 cout<<"请输入他的英语分数"<<endl;
 cin>>pNew->englishNum;
 
 cout<<"插入记录的 (1->最前面  2->最后面)"<<endl;
 cin>>str;
 while(str[0]!='1' && str[0]!='2')
 {
  cout<<"你输入错误,请重新输入."<<endl;
  cout<<"插入记录的 (1->最前面  2->最后面)"<<endl;
  cin>>str;
 }
 if(str[0]=='1')
 {
  InsertFront(head,pNew);
 }
 else if(str[0]=='2')
 {
  InsertRear(head,pNew); 
 }
 cout<<"新学生增加成功."<<endl;
 
}

void ShanChu(string str, student *&head)
{
 char delStr[30];
 cout<<"欢迎使用删除功能"<<endl<<endl;
 cout<<"1->查询删除   2->全部删除"<<endl;
 cin>>str;
 while(str[0]!='1' && str[0]!='2')
 {
  cout<<"输入错误,请重新输入."<<endl;
  cin>>str;
 }
 if(str[0]=='1')
 {
  cout<<"请输入要删除的关键字"<<endl;
  cin>>delStr;
  cout<<"1->删除第一条找到的记录      2->删除所有找到的记录"<<endl;
  cin>>str;
  while(str[0]!='1'&&str[0]!='2')
  {
   cout<<"你输入错误,请重新输入."<<endl;
   cin>>str;
  }
  cout<<"你真的要删除吗?     1->删除 2->取消"<<endl;
  string s;
  cin>>s;
  if(str[0]=='1')
  {
   if(str[0]=='1')
   {
    Delete(head,delStr,1);
    
   }
   else
   {
    Delete(head,delStr,2);
   }
  }
  else
  {
   cout<<"你已经取消删除了."<<endl;
  }
 }
 else
 {
  cout<<"你真的要删除全部数据吗?这样会使你的数据全部丢失哦."<<endl;
  cout<<"1->全部删除    2->取消删除"<<endl;
  cin>>str;
  if(str[0]=='1')
  {
   DeleteAll(head);
  }
  else
  {
   cout<<"你已经取消删除了."<<endl;
  }
 }

 
}

void PaiMing(string str, student* head)
{
 string s;
 cout<<"欢迎使用排名功能"<<endl<<endl;
 cout<<"排名选择:    1->升序   2->降序"<<endl;
 cin>>s;
 cout<<"请输入要按什么排名?"<<endl;
 cout<<"1->语文成绩 2->数学成绩 3->英语成绩 "
  <<"4->总分 5->平均分 6->座号"<<endl;
 
 cin>>str;
 
 while(str[0]!='1' && str[0]!='2' &&
  str[0]!='3' && str[0]!='4' &&
  str[0]!='5' && str[0]!='6'  )
 {
  cout<<"你输入错误,请重新输入."<<endl;
  cin>>str;
 }
 cout<<"姓名:"<<setw(8)<<"座号:"<<setw(10)
     <<"语文分数:"<<setw(10) <<"数学分数:"
     <<setw(10)<<"英语分数:"<<setw(8)<<"总分数:"
     <<setw(8)<<"平均分:"<<setw(6)<<"名次:"<<endl<<endl; 
 if(s[0]=='2')
 {
  switch(str[0])
  {
   
  case '1':
   Sort(head,'1','1');
   break;
  case '2':
   Sort(head,'2','1');
   break;
  case '3':
   Sort(head,'3','1');
   break;
  case '4':
   Sort(head,'4','1');
   break;
  case '5':
   Sort(head,'5','1');
   break;
  case '6':
   Sort(head,'6','1');
   break;
  }
 }
 else
 { 
 
  switch(str[0])
  {
   
  case '1':
   Sort(head,'1','2');
   break;
  case '2':
   Sort(head,'2','2');
   break;
  case '3':
   Sort(head,'3','2');
   break;
  case '4':
   Sort(head,'4','2');
   break;
  case '5':
   Sort(head,'5','2');
   break;
  case '6':
   Sort(head,'6','2');
   break;
  }
 
 }
  ShowList(head);
 return ;
}

void XianShi(string str, student *head)
{
 Sort(head,'4','1');
   
 string s;
 cout<<"欢迎使用显示功能"<<endl;
 cout<<"1->显示全部记录   2->显示记录数目"<<endl;
 cin>>s;
 if(s[0]=='2')
 {
  cout<<"记录的数目是:"<<GetLength(head)<<endl;
 }
 else
 {
  ShowList(head);
 }
}

void XuiGai(string str, student *&head)
{
 string s;
 student *std;
 cout<<"欢迎使用修改功能"<<endl;
 
 cout<<"请输入你要按什么查询"<<endl;
 cout<<"1->姓名 2->座号 3->语文成绩 4->数学成绩 "
  <<"5->英语成绩 "<<endl;
 cin>>str;
 
 while(str[0]!='1' && str[0]!='2' &&
  str[0]!='3' && str[0]!='4' &&
  str[0]!='5' )
 {
  cout<<"你输入错误,请重新输入."<<endl;
  cin>>str;
 }
 char findStr[30];
 cout<<"请输入要查找的关键字或关键数:"<<endl;
 cin>>findStr;  
 switch(str[0])
 {
  
 case '1':
  std=Find(head,findStr,'1');
  Reword(std);
  break;
 case '2':
  std=Find(head,findStr,'2');
  Reword(std);
  break;
 case '3':
  std=Find(head,findStr,'3');
  Reword(std);
  break;
 case '4':
  std=Find(head,findStr,'4');
  Reword(std);
  break;
 case '5':
  std=Find(head,findStr,'5');
  Reword(std);
  break;
 }
 Write(head);
 if(std!=NULL)
 {
  cout<<"修改成功."<<endl;
 }
}
  
  
長髮為伱而留 
 
 
 
  
 引用删除5楼  長髮為伱而留 
  评论时间:2007年3月11日 15时36分 
int Run()
{
 
 bool isLoad=false;
 student* head=NULL;
 student *pNew=new student;
 head=Read();
 SetTitle(false);
 if(head!=NULL)
 { Sort(head,'5','1');
  Count(head);
 
 }
 string str;
 SetTitle(false);
 
 cout<<"                          欢迎使用学生管理系统              "<<endl<<endl;
 
 cout<<"                    1->用户登陆            2->退出程序     "<<endl;
 cin>>str;
 if(str[0]=='2')
 {
  AboutMe();
  return 0;
 }
 else
 {
  isLoad=Enter('1');
  system("cls");
  
  if(isLoad==true)
  {
   SetTitle(true);
   cout<<"           恭喜,您输入的密码正确.可以对本系统的进行任何操作."<<endl;
  }
  else
  {
   cout<<"           Sorry,您输入的密码错误.你不能修改本系统的任何内容."<<endl;
  }
 }
begin:
 cout<<endl<<endl;
 cout<<"                       欢迎使用学生管理系统              "<<endl<<endl;
 cout<<"            1->增加功能                    2-查询功能"<<endl;
 cout<<"            3->删除功能                    4-排名功能"<<endl;
 cout<<"            5->显示功能                    6-修改功能"<<endl;
 cout<<"            7->用户设置                    8-退出程序"<<endl;
 cout<<"请输入您的选择: "<<endl;
 cin>>str;
 
 while(str[0]!='8')
 {
  if(isLoad==true && head!=NULL)
  {
   cout<<endl<<endl;
   if(str[0]=='1')
   {
    ZengJia(str, head);
    Sort(head,'4','1');
    Write(head);
   }
   else if(str[0]=='2')
   {
    ChaXun(str,head);
   }
   else if(str[0]=='3')
   {
    ShanChu(str,head);
    Sort(head,'4','1');
    Write(head);
   }
   else if(str[0]=='4')
   {
    PaiMing(str,head);
   }
   else if(str[0]=='5')
   { 
   XianShi(str,head);
   }
   else if(str[0]=='6')
   {
    XuiGai(str,head);
    Write(head);
   }
   else if(str[0]=='7')
   {
    cout<<"欢迎使用用户修改功能"<<endl;
    isLoad=Enter('2');
   }
   else if(str[0]=='8')
   {
    AboutMe();
    return 0;
   }
   else
   {
    cout<<"你输入错误,请重新输入."<<endl;
    goto begin;
   }
  }
  else if(isLoad==false && head!=NULL)
  {
   if(str[0]=='2')
   {
    ChaXun(str,head);
   }
   else if(str[0]=='4')
   {
    PaiMing(str,head);
   }
   else if(str[0]=='5')
   {
    XianShi(str,head);
   }
   
   else
   {
    cout<<"你不是管理员,不能进行此项功能."<<endl;
    cout<<"你只能进行  查询功能  显示功能   排名功能"<<endl;
    
   }
  }
  else if( head==NULL && isLoad==true)
  {
   cout<<"系统检查到你没有任何记录,不能进行任何操作,只能增加记录."<<endl;
   ZengJia(str, head);
   Write(head);
   head=Read();
   
  }
  else if( head==NULL && isLoad==false)
  {
   cout<<"因为你没有登陆,系统又检查到你没有任何记录,你不能进行任何操作."<<endl;
  } 
  
  cout<<endl<<endl;
  cout<<"按任何键继续进行操作."<<endl;
  getchar();
  getchar();
  system("cls");
  goto begin;
 }
 
 AboutMe();
 
 return 0;
}
  
  
長髮為伱而留 
 
 
 
  
 引用删除6楼  長髮為伱而留 
  评论时间:2007年3月11日 15时36分 
void SetTitle(bool isLoad)
{
 
 HWND hwnd=GetForegroundWindow();
 
 if(isLoad==false)
 {
  SetWindowText(hwnd,"                           学生管理系统(没有登陆)");
  
 }
 else
 {
  SetWindowText(hwnd,"                            学生管理系统(已经登陆)");
 }
 
 system("color a");
}

void AboutMe()
{
 
 char*pStr=  "                                        ┃                    \n"
  "                                        ┃                   \n"
  "                              ┏━━━━┻━━━━┓           \n"
  "                              ┃    关于作者      ┃          \n"
  "                    ┏━━━━┻━━━━━━━━━┻━━━━┓\n"
  "                    ┃                                      ┃\n"
  "                    ┃       Aauthor:BlueDream              ┃\n"
  "                    ┃       QQ:    281011131               ┃\n"
  "                    ┃       E-mail:CZW5744323@56.com       ┃\n"
  "                    ┃                                      ┃\n"
  "                    ┗━━━━━━━━━━━━━━━━━━━┛\n";
 system("cls");
 
 srand(time(0));
 for(int i=0; i<strlen(pStr); i++)
 {
  if(pStr[i]!=' ')
  {
   Sleep(20);
  }
  cout<<pStr[i];
 }
 cout<<"Good-bye ."<<endl;
 cout<<endl<<endl<<endl<<endl;
}
int main()
{  
 Run();
 return 0;
}  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -