c语言通过民族查找学生信息,学生信息管理系统

#includeusing namespace std;

class student

{

protected:

int number;

char name[20];

char sex[6];

char place[20];

char nation[6];

char birth[20];

char party[10];

char id[20];

float score[4];

public:

student *next;

student(){ }

~student(){ }

char* getname(){ return name; }

int getnumber(){ return number;}

double getscore(int i) { return score[i];}

float getg(){ return (score[0]+score[1]+score[2]+score[3]+score[4]); }

void input()

{ int e=1;

cout<>number;

cout<>name;

do

{ lable:cout<>sex;

if(strcmp(sex,"男")==0 || strcmp(sex,"女")==0)

{ cout<>place;

cout<>nation;

cout<>birth;

cout<>party;

cout<>id;

cout<>score[0];

cout<>score[1];

cout<>score[2];

cout<>score[3];

cout<>score[4];

e=0;

}

else

{

cout<>number>>name>>sex>>place>>nation>>birth>>party>>id

>>score[0]>>score[1]>>score[2]>>score[3]>>score[4];

is.get();

}

void output()

{

cout

~school(){ delete head; }

void input();

void mend();

void del();

int find(student **p,int num,char *pn="^");

void found();

void show();

void count();

void save();

void begin();

void clear();

char mainmenu();

int getkey(){ return key;}

void setkey(int k){ key=k; }

private:

student *head;

int key;

};

//录入函数

void school::input()

{

student *p,*p2=NULL;

p=head;

int n;

while(p->next)

p=p->next;

while(n)

{

p2=new student;

p2->input();

p->next=p2;

p2->next=NULL;

p=p->next;

school::setkey(1);

cout<>n;

}

}

//子查找函数

int school::find(student **p1,int num,char *pn)

{

student *p;

p=head;

while(p->next)

{

(*p1)=p;

if( (p->next)->getnumber()==num||!strcmp( (p->next)->getname(),pn ) )

return 1;

p=p->next;

}

return 0;

}

//查找函数

void school::found()

{

student *p;

int num=-1,n=9;

char name[20]="^";

do

{

cout<>n;

}while(n<1||n>2);

if(n==1)

{

cout<>num;

}

if(n==2)

{

cout<>name;

}

if(!find(&p,num,name) )

{

coutoutput();

}

//删除函数

void school::del()

{

student *p,*p2;

int num;

cout<>num;

if( !find(&p,num,"^") )

{

coutoutput();

p2=p->next;

p->next=p2->next;

delete p2;

school::setkey(1);

}

//显示函数

void school::show()

{

student *p;

p=head;

while(p->next)

{

(p->next)->output();

p=p->next;

}

}

//修改函数

void school::mend()

{

student *p;

int num=-1,n;

char name[20]="^";

do

{

cout<>n;

}while(n<1||n>2);

if(n==1)

{

cout<>num;

}

if(n==2)

{

cout<>name;

}

if( !find(&p,num,name) )

{

coutoutput();

(p->next)->input();

school::setkey(1);

}

//保存函数

void school::save()

{ student *p;

p=head;

ofstream os("student.txt",ios::out);

if (school::getkey()==1)

{

while(p->next)

{

(p->next)->output(os);

p=p->next;

}

}

cout<>num;

is.seekg(t);

if(num<0)

{

is.close();

return;

}

p2=new student;

p2->input(is);

p->next=p2;

p2->next=NULL;

p=p->next;

}

}

//清空函数

void school::clear()

{

student *p,*p2;

p=head->next;

while( p )

{

p2=p;

p=p->next;

delete p2;

}

}

//统计函数

void school::count()

{

student *p;

p=head;

int n=0;

double g[5]={0,0,0,0,0};

float j[5]={0,0,0,0,0};

while(p->next)

{

p=p->next;

n++;

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

{

g[i]=g[i]+( p->getscore(i) );

(p->getscore(i) )>=60? j[i]++ : 0 ;

}

}

cout<>n;

return n[0];

}

//主函数

void main()

{school pp;

int k=1;

char n;

pp.begin();

while(k==1)

{n=pp.mainmenu();

switch(n)

{case 1:pp.input(); break;

case 2:pp.show(); break;

case 3:pp.found(); break;

case 4:pp.del(); break;

case 5:pp.mend(); break;

case 6:pp.count(); break;

case 7:pp.save(); break;

case 0:

if(pp.getkey()==1)

{cout<>k;

if(k==1)

pp.save();

}

pp.clear();

k=0;

break;

}

}

}

//源程序结束

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值