程序代码

  • 格式:doc
  • 大小:72.00 KB
  • 文档页数:12

#include

#include

#include

#include

using namespace std;

struct students //定义学生信息结构体

{

char name[20];//名字

int age;//年龄

char num[10];//学号

char classes[10];//班级

float chinas;//大学语文

float math;//高等数学

float spott;//体育

}stu;//定义一个学生信息

class people //人员类

{

public:

void maopao();//排序

void display();//浏览

};

class student:public people//学生类

{

public:

void display();//学生使用菜单

void menu();//查看菜单

void namemenu();//名字查看

void nummenu();//学号查看

void exits();//关闭程序

};

class manager:public student//管理员类

{

public:

void display();//管理员使用菜单

void adds();//添加

void amend();//修改信息

void deletes(); //删除信息

};

void student::display()//学生使用菜单

{ char c;

do

{

cout<<"********************* 学生管理系统 (学生)********************"<

cout<<"****对不起!您只能对本人信息进行操作!(查询/浏览) "<

cout<<"**** 1.查询个人信息

"<

cout<<"**** 2.浏览全部信息

"<

cout<<"**** 3.关闭 "<

cout<<"请选择操作:";

cin>>c;getchar();

system("cls");

if(c<'0'||c>'4')

cout<<"选择错误!"<

}while(c<'0'||c>'4');

switch(c)

{

case '1':student::menu();student::display();break;

case '2':people::display();student::display();break;

case '3':student::exits();break;

}

}

void student::menu() //查看菜单

{

char c;

FILE *fp;

if(!(fp=fopen("jgq.txt","r")))

cout<<"没有文件,";

else

{

do

{

cout<<"请选择您的查找方式: 1 按姓名; 2 按学号;" <

cout<<"请选择操作:";

cin>>c; getchar();

system("cls");

if(c!='1'&&c!='2')

cout<<"输入错误!"<

}while(c!='1'&&c!='2');

fclose(fp);

if(c=='1') student::namemenu();

else

student::nummenu();

}

cout<<"按回车键继续。。。。";

getchar();

system("cls");

}

void student::nummenu()//学号查看

{

bool i=0;

FILE *fp;

if(!(fp=fopen("jgq.txt","r")))

cout<<"没有文件,";

else

{

char num[10];

cout<<"请输入您要查询的学生学号:";

cin>>num;getchar();

while(fread(&stu,sizeof(stu),1,fp))

{

if(!strcmp(num,stu.num))

{

cout<<"名字:"<<<<"年龄:"<

<<"高等数学:"<

i=1;

}

}

if(i==0)

{

cout<<"没有该学生的记录,";

}

fclose(fp);

}

}

void student::namemenu()//名字查看

{

FILE *fp;

fp=fopen("jgq.txt","r");

int i=0,c=0;

char name[20]; cout<<"请输入您要查询的学生姓名:";

cin>>name;getchar();

system("cls");

while(fread(&stu,sizeof(stu),1,fp))

{

if(!strcmp(name,))

{

i++;

cout<

<<"高等数学:"<

}

}

if(i==0)

cout<<"没有该学生的记录!"<

else if(i>1)

{

rewind(fp);

cout<<"请输入您要查询的学生姓名的编号:";

cin>>c;getchar();

i=1;

system("cls");

while(fread(&stu,sizeof(stu),1,fp))

{

if(!strcmp(name,))

{

if(i==c)

cout<<"名字:"<<<<"年龄:"<

<<"高等数学:"<

i++;

}

}

}

fclose(fp);

}

void student::exits()//关闭实现

{

cout<<"感谢使用,正在关闭文件";

}

void people::display()//浏览实现

{ int i=0;

FILE *fp;

if(!(fp=fopen("jgq.txt","r")))

cout<<"没有文件,按回车键跳回主菜单。。。";

else

{

while(fread(&stu,sizeof(stu),1,fp))

{

i++;

cout<

<<" 高等数学:"<

}

fclose(fp);

cout<<"按任意键回到主菜单。。。";

}

getchar();

system("cls");

}

void people::maopao()//排序实现

{

int i=0;

FILE *fp;

fp=fopen("jgq.txt","r");

while(fread(&stu,sizeof(stu),1,fp))

i++;

struct students *sd=new struct students[i];

rewind(fp);

i=0;

while(fread((sd+i),sizeof(stu),1,fp))

i++;

fclose(fp);

for(int a=0;a

for(int b=0;b

if((sd[b].chinas+sd[b].math+sd[b].spott)>(sd[b+1].chinas+sd[b+1].math+sd[b+1].spott))

{

stu=sd[b];

sd[b]=sd[b+1];

sd[b+1]=stu;

}