#include "iostream"
#include "fstream"
#include "iomanip"
#include "string"
using namespace std;
bool equal(char *a,char *b,int n)//判断两个字符串是否一样
{
int temp=0;
for(int i=0;i
>temp;
count++;
}
else break;
}
f1.close();
return count/n;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct binfo//学生基本信息
{
char num[8],name[8],sex[8],flatnum[4],telenum[11];//学号,姓名,宿舍号,电话号码
};
struct sinfo//学生课程信息
{
char num[8],jectnum[8],jectname[20];//学号,课程编号,课程名称
double xuefen,usualscore,labscore,testscore,comscore,turexuefen;//学分,平时成绩,实验成绩,卷面成绩,综合成绩,实得学分
double subxufen,subscore;
};
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class studentb
{
friend ostream &operator;<<(ostream &os;,studentb &st;);
friend istream &operator;>>(istream &is;,studentb &st;);
public:
studentb();
void dele();//删除信息
void displayb1(ostream &os;);//查询基本信息
void displayb(ostream &os;);
void displaypart();
void inputb(istream &is;);
char* getnum();
char* getname();
private:
binfo b;//基本信息
};
void studentb::displaypart()
{
cout<<"学号:"<>b.num>>b.name>>b.sex>>b.flatnum>>b.telenum;
}
/////////////////////////////////////////////////////////////////////////////////////////
class students
{
public:
students(){};
void inputs(istream &is;);
void displays();
void displays1();
void displays(ostream &os;);
void inputsubxuefen(double x);
void inputsubscore(double x);
char *getnum();
double getxuefen();
double getcomscore();
void cal();
private:
sinfo s;
};
void students::inputsubscore(double x)
{
s.subscore=x;
}
void students::inputsubxuefen(double x)
{
s.subxufen=x;
}
double students::getcomscore()
{
return s.comscore;
}
double students::getxuefen()
{
return s.turexuefen;
}
void students::cal()
{
if(s.labscore==-1)
s.comscore=s.usualscore*0.3+s.testscore*0.7;
else
s.comscore=s.usualscore*0.15+s.labscore*0.15+s.testscore*0.7;
if(s.comscore<60) s.turexuefen=0;
else s.turexuefen=s.xuefen;
}
char* students::getnum()
{
return s.num;
}
void students::inputs(istream &is;)
{ if(is==cin)
cout<<"请输入学号,课程编号,课程名称,学分,平时成绩,实验成绩,卷面成绩:"<>s.num>>s.jectnum>>s.jectname>>s.xuefen>>s.usualscore>>s.labscore>>s.testscore;
cal();
}
void students::displays1()
{
cout<<"学号:"<sptr[j+1].getxuefen())//升序
{
temp=sptr[j];
sptr[j]=sptr[j+1];
sptr[j+1]=temp;
}
}
displays();
}
void allstudents::sortcomscore(int n)
{
int i,j;
students temp;
if(n==0)
{
for(i=1;isptr[j+1].getcomscore())//升序
{
temp=sptr[j];
sptr[j]=sptr[j+1];
sptr[j+1]=temp;
}
}
displays();
}
void allstudents::deles(char *ch)
{
int temp=strlen(ch);
ofstream f("B.txt");
for(int i=0;i>x;
switch(x)
{
case 1:
{
if(m!=0)
{
cout<<"请输入要查找学生的姓名或学号(两位学号例如:01 姓名例如:张三):";
cin>>ch;
cout<>ch;
stb.searchpart(ch);//查询学号为ch的学生的基本信息
sts.searchs(ch);//查询学号为ch的学生的所有课程信息
}break;
case 3:
{
int temp1,count=0;
cout<<"请输入要录入的课程数:";cin>>temp1;
while(count>temp1;
if(temp1==1)
{
cout<>temp2;
sts.sortxuefen(temp2);
sts.print();
}
if(temp1==2)
{
cout<>temp2;
sts.sortcomscore(temp2);
sts.print();
}
}break;
case 5:
{
char num[8];
cout<<"请输入要删除信息的学生的学号:";cin>>num;
stb.deleb(num);
sts.deles(num);
cout<<"学生信息已删除!"<
2022-08-29 10:12:03
959KB
学生管理系统
1