⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gafg.txt

📁 一个高校学籍管理系统 源代码完成了以下功能: 1)能够从屏幕上读取一个学生的信息并将信息存入到数据文件中。 2)能够将指定的信息从文件中删除。 3)能够按编号、姓名对学生的信息进行检索并将检索
💻 TXT
字号:
高校学籍管理系统
要求完成以下功能:
1)能够从屏幕上读取一个学生的信息并将信息存入到数据文件中。
2)能够将指定的信息从文件中删除。
3)能够按编号、姓名对学生的信息进行检索并将检索结果显示在屏幕上。
4)可以统计全部学生的总成绩,及其在班上的排名。
5)能够统计各科的平均成绩及及格率。
6)要求有错误提示功能,例如性别只能输入男女,输入错误提示重新输入。
7)如果检索不到相应的信息应提示用户。


#include<iostream>
#include<string>
#include<fstream>

#include<iomanip>                     
using 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[3];
public:                             
student *next;                     
student(){ }                     
~student(){ }                       
char* getname(){ return name; }               
int getnumber(){ return number;}
double getscore(int i) { return score;}
float getg(){ return (score[0]+score[1]+score[2]); }
void input()
{
int e=1;
cout<<"\t\t\t按提示输入:"<<endl;
cout<<"\t\t输入编号: ";
cin>>number;
cout<<"\t\t输入姓名: ";
cin>>name;
do
{
  cout<<"\t\t输入性别: ";
  cin>>sex;
  if(strcmp(sex,"男")==0 || strcmp(sex,"女")==0)
  {
    cout<<"\t\t输入籍贯: ";
    cin>>place;
    cout<<"\t\t输入民族: ";
    cin>>nation;
    cout<<"\t\t输入生日: ";
    cin>>birth;
    cout<<"\t\t输入政治面貌: ";
    cin>>party;
    cout<<"\t\t输入身份证号: ";
        cin>>id;
    cout<<"\t\t输入数学分数: ";
    cin>>score[0];
    cout<<"\t\t输入英语分数: ";
    cin>>score[1];
    cout<<"\t\t输入计算机分数: ";
    cin>>score[2];
    e=0;
  }
    else
  {
    cout<<"\t\t\t无此类型性别!重新输入!"<<endl;
    e=1;
  }
}while(e);
  return ;
}
void input(ifstream & is)                   
{
is>>number>>name>>sex>>place>>nation>>birth>>party>>id
  >>score[0]>>score[1]>>score[2];
is.get();                         
}
void output()
{
cout<<"学生基本信息如下:"<<endl;
  cout<<"编号:"<<number
    <<" 姓名:"<<name
    <<" 性别:"<<sex
    <<" 籍贯:"<<place
    <<" 民族:"<<nation
    <<" 生日:"<<birth
    <<" 政治面貌:"<<party<<endl
    <<"身份证号:"<<id
    <<" 数学:"<<score[0]
    <<" 英语:"<<score[1]
    <<" 计算机:"<<score[2]
    <<" 总分:"<<getg()<<endl<<endl;
}
void output(ofstream & os)               
{
os<<setw(6)<<number
  <<setw(15)<<name
    <<setw(6)<<sex
  <<setw(20)<<place
  <<setw(6)<<nation
  <<setw(20)<<birth
  <<setw(20)<<party
  <<setw(20)<<id
  <<setw(6)<<score[0]
  <<setw(6)<<score[1]
  <<setw(6)<<score[2]<<endl;
}
};

class school                           
{
public:                               
school(){ head=new student; head->next=NULL; key=0; }
~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<<"\t\t\t按1继续,按0返回 : ";
  cin>>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<<"\t\t1:按编号查找,2:按姓名查找: ";
  cin>>n;
}while(n<1||n>2);
if(n==1)
{
cout<<"\t\t\t输入编号: ";
  cin>>num;
}
if(n==2)
{
cout<<"\t\t\t输入姓名: ";
cin>>name;
}
if(!find(&p,num,name) )
{
cout<<"\t\t找不到你要查找的内容!"<<endl;
return;
}
(p->next)->output();
}
//删除函数
void school::del()
{
student *p,*p2;
int num;
cout<<"\t\t\t输入编号: ";
cin>>num;
if( !find(&p,num,"^") )
{
cout<<"\t\t找不到你要删除的内容!"<<endl;
return;
}
(p->next)->output();
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<<"\t\t1:按编号修改,2:按姓名修改: ";
  cin>>n;
}while(n<1||n>2);
if(n==1)
{
cout<<"\t\t\t输入编号: ";
  cin>>num;
}
if(n==2)
{
cout<<"\t\t\t输入姓名: ";
cin>>name;
}
if( !find(&p,num,name) )
{
cout<<"\t\t找不到你要修改的内容!"<<endl;
return;
}
(p->next)->output();
(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<<"\t\t\t文件已保存! "<<endl;
school::setkey(0);
}
//初始化函数
void school::begin()
{
student *p,*p2;
p=head;
clear();
long t;
ifstream is("student.txt",ios::in); 
if(!is)
{
ofstream os("student.txt",ios::out);
os.close();
return ;
}
int num=-1;
while(1)
{
    num=-1;
  t=is.tellg();
  is>>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[3]={0,0,0};
float j[3]={0,0,0};
while(p->next)
{
  p=p->next; 
  n++;
  for(int i=0;i<3;i++)
  { 
  g=g+( p->getscore(i) );
  (p->getscore(i) )>=60? j++ : 0 ;
}
}
cout<<"\t\t\b\b\b\b数学总分:"<<g[0]<<" 平均分:"<<g[0]/n
<<" 及格率:"<<j[0]/n<<endl<<"\t\t\b\b\b\b英语总分:"<<g[1]
<<" 平均分:"<<g[1]/n<<" 及格率:"<<j[1]/n<<endl
<<"\t\t\b\b\b\b计算机总分: "<<g[2]<<" 平均分: "<<g[2]/n
<<" 及格率:"<<j[2]/n<<endl;
}
//主选菜单函数
char school::mainmenu()
{
char n[6];
cout<<"\n\n       ☆☆☆☆欢迎进入高校学籍管理系统☆☆☆☆"<<endl<<endl;
<<"     * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl
<<"     * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl
<<"     * *         1:   录入学生信息           * *"<<endl
<<"     * *         2:   显示学生信息           * *"<<endl
<<"     * *         3:   查找学生信息           * *"<<endl
<<"     * *         4:   删除学生信息           * *"<<endl
<<"     * *         5:   修改学生信息           * *"<<endl
<<"     * *         6:   统计学生成绩           * *"<<endl
<<"     * *         7:   保存学生信息           * *"<<endl
<<"     * *         0:   退出系统               * *"<<endl
<<"     * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl
<<"     * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl
<<"                 请选择:";
cin>>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<<"\t\t\t是否保存? 1 : 保存 0:不保存 : ";
  cin>>k;
  if(k==1)
    pp.save();
  }
  pp.clear();
  k=0;
  break;
}
}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -