数据结构课程设计--考试报名管理

来源:互联网 发布:php游戏开发教程 编辑:程序博客网 时间:2024/03/29 07:30
/*       * Copyright (c) 2016, 烟台大学计算机与控制工程学院       * All rights reserved.       * 文件名称:cgh22.project    * 作者:陈光辉      * 完成日期:2016年12月29日       * 版本号:VC++6.0        * 问题描述:本程序是一个有关于考试报名管理系统。实现了增加、删除、修改、查询、显示、排序等功能。*/


头文件ks.h

#include <iomanip> #include<malloc.h>#include<iostream>using namespace std;typedef struct datatype{char KH[12];                  //考生考号char XM[12];                  //考生姓名char XB[4];                   //性别char NL[4];                   //年龄char JG[20];                  //籍贯char KSLB[10];                //考试类别}DataType;                    //为结构体命名                                        typedef struct LNode             //节点类型{DataType data;                                  struct LNode * next;}LinkList;  LinkList * InsetList(LinkList *&p) ;            //     1 添加  int ListLength(LinkList *p);                    //     2 统计  void FindElem(LinkList *p);                     //     3 查找  void SortList(LinkList *&p);                    //     4 排序  LinkList * ReList(LinkList *&p);                //     5 修改  LinkList * DelList(LinkList *&p);               //     6 删除  void DispList(LinkList *p);                     //     7 输出信息
ks.cpp文件

#include"ks.h"                               //                  1.报名信息添加函数 尾插法//===========================================================LinkList * InsetList(LinkList *&p)                                        {LinkList *L=p;while(L->next!=NULL)L=L->next;LinkList *q;q=(LinkList *)malloc(sizeof(LinkList));cout<<"考号:";cin>>q->data.KH;cout<<"姓名:";cin>>q->data.XM;cout<<"性别:";cin>>q->data.XB;cout<<"年龄:";cin>>q->data.NL;cout<<"籍贯:";cin>>q->data.JG;cout<<"考试类别:";cin>>q->data.KSLB;                                    q->next=L->next;L->next=q;                                          return p;}//===========================================================   //                  2.报名表人数统计//========================================================= int ListLength(LinkList *p){int n=0;LinkList *L=p;while(L->next!=NULL){n++;L=L->next;}return n; }//===========================================================   //                     3.考生信息的查询//===========================================================void FindElem(LinkList *p){  LinkList *L=p;char y[99999];cout<<"请输入需查询者的考号\n";     cin>>y;while(L!=NULL&&(strcmp(L->data.KH,y)!=0))//||strcmp(L->data.XM,y)!=0))                      { L=L->next;}if(L!=NULL){cout<<"------------------------------------------------------------------------------------------------------------------------\n";cout<<"考生号     姓名     性别     年龄        籍贯                           考试类别 \n";cout<<setiosflags(ios::left)<<setw(11)<<L->data.KH<<setiosflags(ios::left)<<setw(9)<<L->data.XM<<setiosflags(ios::left)<<setw(9)<<L->data.XB<<setiosflags(ios::left)<<setw(12)<<L->data.NL                       <<setiosflags(ios::left)<<setw(31)<<L->data.JG<<setiosflags(ios::left)<<setw(0)<<L->data.KSLB<<endl;cout<<"------------------------------------------------------------------------------------------------------------------------\n";}elsecout<<"查无此人\n";                                                             }//===========================================================//                  4.报名表信息排序 冒泡                                 //===========================================================void SortList(LinkList *&p)       {LinkList *L=p->next,*q,*r;if(L!=NULL){r=L->next;L->next=NULL;   L=r;while(L!=NULL){r=L->next;q=p;while(q->next!=NULL && strcmp(q->next->data.KH,L->data.KH)<0)q=q->next;L->next=q->next;q->next=L;L=r;}}cout<<"排序完成\n";DispList(p);}//===========================================================//                      5.信息修改//===========================================================LinkList * ReList(LinkList *&p){ LinkList *L;L=p->next;if(L!=NULL){char y[12];cout<<"请输入需修改人的考号\n";  cin>>y;                                                  while(strcmp(L->data.KH,y)!=0)//||strcmp(L->data.XM,y)!=0){L=L->next;}for(;;){cout<<"修改哪类信息\n";   cout<<"1.考号 2.姓名 3.性别 4.年龄 5.籍贯 6.考试类别 其它整数退出"; int x;cin>>x;if(x==1) {cin>>L->data.KH;cout<<"修改完毕\n";}if(x==2){cin>>L->data.XM;cout<<"修改完毕\n";}if(x==3) {cin>>L->data.XB;cout<<"修改完毕\n";}if(x==4) {cin>>L->data.JG;cout<<"修改完毕\n";}if(x==5){cin>>L->data.KSLB;cout<<"修改完毕\n";} else break;}cout<<"确认更改后信息:\n";cout<<"考生号     姓名     性别     年龄        籍贯                           考试类别 \n";cout<<setiosflags(ios::left)<<setw(11)<<L->data.KH<<setiosflags(ios::left)<<setw(9)<<L->data.XM<<setiosflags(ios::left)<<setw(9)<<L->data.XB<<setiosflags(ios::left)<<setw(12)<<L->data.NL                       <<setiosflags(ios::left)<<setw(31)<<L->data.JG<<setiosflags(ios::left)<<setw(0)<<L->data.KSLB<<endl;}else cout<<"表为空\n"; return p;}//===========================================================//                    6.考生信息的删除//===========================================================LinkList * DelList(LinkList *&p){LinkList *m=p,*s;char y[12];cout<<"请输入需删除者的考号\n";        cin>>y;   //if(m!=NULL)while(m!=NULL&&(strcmp(m->next->data.KH,y)!=0))//||strcmp(m->next->data.XM,y)!=0))                      m=m->next;if(m==NULL){cout<<"未找到此考生\n";return NULL;}      s=m->next;  if(s==NULL)   return 0;  m->next=s->next;  free(s);   return p;}//===========================================================//                    7.考生信息表的输出                                                       //==========================================================void DispList(LinkList *p){LinkList *L;L=p->next;cout<<"考生报名信息表输出:\n";cout<<"---------------------------------------------------------------------------------------------------------\n";cout<<"考生号     姓名     性别     年龄        籍贯                           考试类别 \n";while(L!=NULL){ cout<<setiosflags(ios::left)<<setw(11)<<L->data.KH<<setiosflags(ios::left)<<setw(9)<<L->data.XM<<setiosflags(ios::left)<<setw(9)<<L->data.XB<<setiosflags(ios::left)<<setw(12)<<L->data.NL                       <<setiosflags(ios::left)<<setw(31)<<L->data.JG<<setiosflags(ios::left)<<setw(0)<<L->data.KSLB<<endl; L=L->next;}cout<<"---------------------------------------------------------------------------------------------------------\n";cout<<"                  输出结束\n";}
主函数main.cpp

#include"ks.h"#include<iomanip>#include<iostream>using namespace std;int main(){   LinkList *p;int  xz;p=(LinkList *)malloc(sizeof(LinkList));p->next=NULL;for(;;){cout<<"      考生报名管理系统       \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<<"        0.安全退出系统       \n";cout<<"=============================\n";cout<<"       请选择0-7进行操作      \n";cout<<"                                                                                    陈光辉 计156-1\n";cin>>xz;  if(xz==0)  {  cout<<"        您已安全退出系统       \n";  break;  }  switch(xz)  {     case 0:  cout<<"          谢谢使用\n   ";  break;  case 1:  {  int K=1;  while(K==1)  {  InsetList(p) ;     cout<<"是否继续添加?(1/0)\n";   cin>>K;  }  break;  }  case 2:     cout<<"当前报名人数为:"<<ListLength(p)<<endl;    break;  case 3:     FindElem(p);       break;  case 4:   SortList(p);      break;  case 5:  ReList(p);        break;  case 6:    DelList(p);       break;  case 7:  DispList(p);    break;  default:   cout<<"输错啦!!!重输= =\n";  }  }  return 0;}




0 0
原创粉丝点击