C++大学选课系统课程设计 第3页
return 0;
p = p->Next;
while(p)
{
if(strcmp(p->cname,N)==0)
return 1;
p = p->Next;
}
return 0;
}
/////////////////////////////////////////////////////////////////////////////////////////////
struct studentdb
{
student stu;
studentdb *Next;
};
struct studentname
{
char tname[20]; //学生的名字
float result; //学生所得的该课程分数
studentname *Next;
};
/////////////////////////////////////////////////////////////////////////////////////////////
//课程类
class subject
{
public:
subject()
{
first = NULL;
maxstudent=30;
activestudnet=0;
}
float readcredit(); //得到课程的学分
void getcredit(float a); //设置学分
float getaverage(); //得到学生的平均成绩
float getresult(char N[]); //查找某个学生的成绩
void getkname(char N[]); //读出课程的名称
void setkname(char N[]); //读入课程的名称
studentname *retfirst()
{
return first; //返回根结点
}
void findstudent(studentdb *P); //根据该课程的名称,寻找选这课程的学生
int retactivestudent()
{
return activestudnet; //返回实际学生数
}
int retmaxstudent()
{
return 30; //返回最多学生数30
}
void clractivestudnet()
{
activestudnet = 0; //从文件中读出来后将实际学生数清零
}
private:
int maxstudent; //最多学生数
int activestudnet; //实际学生数
studentname *first; //学生名单
float credit; //该课程的学分
float averagerusult; //该课程的平均成绩
char kname[20]; //该课程的名称
};
float subject::readcredit ()
{
return credit;
}
void subject::getcredit (float a)
{
credit=a;
}
float subject::getaverage()
{
float k = 0.0;
studentname *p;
p=first->Next;
if(p==NULL)
return 0;
while(p)
{
k = k + p->result;
p = p->Next ;
}
return k/activestudnet;
}
float subject::getresult (char N[])
{
studentname *p;
p = first;
while(p)
{
if(strcpy(p->tname ,N)==0)
return p->result;
p = p->Next ;
}
return -1;
}
void subject::getkname (char N[])
{
strcpy(N,kname);
}
void subject::setkname (char N[])
{
strcpy(kname,N);
}
void subject::findstudent(studentdb *P)
{
studentname *newcode = new studentname;
newcode->Next=NULL;
first = newcode;
studentname *T = first;
studentdb *K = P->Next;
while(K)
{
course *Y = K->stu.retroot();
if(Y ==NULL)
{
K = K->Next;
continue;
}
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] 下一页