考试报名工作给各高校报名工作带来了新的挑战,给教务管理部门增加了很大的工作量。本项目是对考试报名管理的简单模拟,用控制台选项的选择方式完成下列功能:输入考生信息;输出考生信息;查询考生信息;添加考生信息;修改考生信息;删除考生信息。
项目功能要求:
本项目的实质是完成对考生信息的建立,查找,插入,修改,删除等功能。其中考生信息包括准考证号,姓名,性别,年龄和报考类别等信息。项目在设计时应首先确定系统的数据结构,定义类的成员变量和成员函数;然后实现各成员函数以完成对数据操作的相应功能;最后完成主函数以验证各个成员函数的功能并得到运行结果。(建议采用链表实现)
系统示例
#include <iostream>
#include <stdlib.h>#include <string>
using namespace std;
class Student
{
public:
Student *next;
void Init();
void Input();
void Insert();
void Delete();
void Lookup();
void Modify();
void Output();
private:
int id,age;
string name,sex,exam;
};
int count;
Student *head,*p,*q;
void Student::Init()
{
head=new Student;
head->next=NULL;
q=head;
}
void Student::Input()
{
cout<<"首先请建立考生信息系统!"<<endl;
cout<<"请输入考生人数:";
cin>>count;
cout<<"请依次输入考生的考号,姓名,性别,年龄及报考类别!"<<endl;
head->next=NULL;
q=head;
for(int i=0; i<count; i++)
{
p=new Student;
cin>>p->id>>p->name>>p->sex>>p->age>>p->exam;
p->next=NULL;
q->next=p;
q=p;
}
}
void Student::Insert()
{
cout<<"请输入您要插入的考生的位置:";
int n;
cin>>n;
cout<<"请以此输入要插入的考生的考号,姓名,性别,年龄及报考类别!"<<endl;
q=head;
while(--n)
{
q=q->next;
}
p=new Student;
cin>>p->id>>p->name>>p->sex>>p->age>>p->exam;
p->next=q->next;
q->next=p;
}
void Student::Delete()
{
cout<<"请输入要删除的考生的考号:";
int n;
cin>>n;
p=head;
while(p->next)
{
if(p->next->id==n)
{
q=p->next;
cout<<"您删除的考生信息是:"<<q->id<<"\t"<<q->name<<"\t"<<q->sex<<"\t"<<q->age<<"\t"<<q->exam<<endl;
p->next=q->next;
free(q);
return;
}
else
{
p=p->next;
}
}
cout<<"查无此人!"<<endl;
}
void Student::Lookup()
{
cout<<"请输入要查找的考生的考号:";
int n;
cin>>n;
p=head->next;
while(p)
{
if(p->id==n)
{
cout<<endl<<"考号\t姓名\t性别\t年龄\t报考类别"<<endl;
cout<<p->id<<"\t"<<p->name<<"\t"<<p->sex<<"\t"<<p->age<<"\t"<<p->exam<<endl;
return;
}
else
{
p=p->next;
}
}
cout<<"查无此人!"<<endl;
}
void Student::Modify()
{
cout<<"请输入要修改信息的考生的考号:";
int n;
cin>>n;
p=head->next;
while(p)
{
if(p->id==n)
{
cout<<"请以此输入该考生修改后的考号,姓名,性别,年龄及报考类别!"<<endl;
cin>>p->id>>p->name>>p->sex>>p->age>>p->exam;
return;
}
else
{
p=p->next;
}
}
cout<<"查无此人!"<<endl;
}
void Student::Output()
{
Student *p=head->next;
cout<<endl<<"考号\t姓名\t性别\t年龄\t报考类别"<<endl;
while(p)
{
cout<<p->id<<"\t"<<p->name<<"\t"<<p->sex<<"\t"<<p->age<<"\t"<<p->exam<<endl;
p=p->next;
}
}
int main()
{
Student s;
s.Init();
s.Input();
s.Output();
while(true)
{
cout<<"请选择您要进行的操作(1为插入,2为删除,3为查找,4为修改,5为统计,0为取消操作)";
int n;
cin>>n;
switch(n)
{
case 1:
s.Insert();
s.Output();
break;
case 2:
s.Delete();
s.Output();
break;
case 3:
s.Lookup();
break;
case 4:
s.Modify();
s.Output();
break;
case 5:
s.Output();
cout<<"当前考生总人数为"<<count<<endl;
break;
case 0:
exit(0);
}
}
return 0;
}