程序代码
- 格式: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;
}