使用VC6打开考生文件夹下的源程序文件modi3.cpp。学校教务处要为任课老师开发一个学生管理系统,需求如下: (1)学生的信息是要受到严密保护和限制的,包括姓名、五个英文字符的学号,以及精确到小数点后一位的一科成绩,只有任课老师可以修改,如果学生升学了,比如由本科升到研究生,原来的信息还有效,而只需添加研究生的必要信息,不过现在不必马上实现,但应当有所考虑。 (2)学生的所有信息可以查看,但也只有学生自己才有这个权利。 (3)学生的信息可以从文件中读取来构造信息库,需要把信息输出到屏幕以便核实,但这需要任课老师来完成。 (4)老师能提供所教学生的完整信息列表,同时可按成绩高低排序。 (5)为了便于学校评定奖学金,需要单独查找成绩最高的同学(一般不采用把成绩单全部排列后来选取,可能这比较耗费时间,虽然要求不太合理,但要按用户的需求操作,同时需要指出的是,如果成绩最高者有数名,需要一一列出)。 (6)由于学校的机器比较老,内存严重不足,每个老师带的学生数不一样,但也不会超过50人。 以上功能的程序框架已经形成,考生需要按照需求来逐个实现。 (1)请在注释//********1********之后添加适当的语句,以便实现功能需求(1)。 (2)请在注释//********2********处添加适当的语句,成绩单排序功能。 (3)请在注释//********3********处实现查找成绩最高学生名单。 无需修改main()主函数,当得到下面的结果,该系统可能被采用。 输入的学生信息: 姓名 学号 成绩 周华 0001 78.5 李强 0002 98 刘星 0003 89 贺兰 0004 78 周红 0005 76.5 赵邦 0006 85 高俊 0007 98 排序后的学生信息: 姓名 学号 成绩 李强 0002 98 高俊 0007 98 刘星 0003 89 赵邦 0006 85 周华 0001 78.5 贺兰 0004 78 周红 0005 76.5 查询成绩最高的学生信息: 高俊 0007 98 李强 0002 98 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。1 #include2 #include3 #include4 #define NMAX 505 class Teacher;6 class Student7 {8 public:9 Student(char *name=''未知'',char *number=''00000'',double mark=0.0)10 {11 int len=strlen(name);12 m name=new char[len+1];13 strcpy(m_name,name);14 strcpy(m_number,number);15 m_mark=mark;16 }17 ~Student()18 {19 delete[]m_name;20 }21 void DisplayMsg()22 {23 cout24 }25 protected:26 char *m_name;27 char m_number[5];28 double m_mark;29 //********1********3031 };32 class Teacher33 {34 public:35 Teacher(){);36 ~Teacher(){37 for(int i=0;i38 {39 delete m_pStu[i];40 m_pStu[i]=NULL;41 }42 };43 int BestScore(Student*pS[]);44 void InputScore();45 void Display();46 void SortScore();47 Drotected:48 Student*m_pStu[NMAX];49 double m_average;50 int m_count;51 };52 void Teacher::InputScore()53 {54 ifstream in(''data.txt'');55 assert(in);56 char name[20];57 char number[5];58 double mark=0;59 m_count=0;60 cout61 for( int i=0; !in.eof();i++){62 in>>name;63 in>>number;64 in>>mark;65 m_count++;66 m_pStu[i]=new Student(name,number,mark);67 cout68 }69 }70 void Teacher::SortScore()71 {72 double sum=0;73 for(int i=0; i74 {75 int index=i;76 for(int j=i+l;j77 {78 if(m_pStu[j]->m mark>m_pStu[index]->m_mark)79 index=j;80 }81 //********2********82 if()83 {84 Student *ps=m_pStu[i];85 m_pStu[i]=m_pStu[index];86 m_pStu[index]=ps;87 }88 }89 }90 void Teacher::Display()91 {92 cout93 for(int j=0; j94 {95 m_pStu[j]->DisplayMsg();96 }97 }98 int Teacher::BestScore(Student*pS[])99 {100 int index=0;101 int count=1;102 //********3********103104 for(int j=1;j105 {106 if(m_pStu[j]->m mark>m_pStu[index]->m_mark)107 {108 count=1;109 index=j;110 pS[count++]=m_pStu[index];111 }112 else if(m_pStu[j]>m_mark==m_pStu[index]->m_mark)113 {114 index=j;115 pS[count++]=m_pStu[index];116 }117 }118 return count;119 }120 void main()121 {122 Teacher Teacher;123 Student *pStudent[NMAX];124 cout125 Teacher.InputScore();126 Teacher.SortScore();127 cout128 Teacher.Display();129 cout130 int n=Teacher.BestScore(pStudent);131 while(n--)132 {133 pStudent[n]->DisplayMsg();134 }135 }
使用VC6打开考生文件夹下的源程序文件modi3.clap,其中定义了用于表示学生学号的类CStudcntlD,但类CStudentID的定义并不完整。 运行结果为: 学生的学号为:200805 学生名为:李伟 删除学生学号为:200805 请按要求完成下列操作,将类CStudentlD的定义补充完成: (1)定义class CStudentlD类的私有数据成员IDvalue表示学生的学号,为long型的数据。请在注释//********1********之后添加适当的语句。 (2)完成默认构造函数CSmdentlD的定义,使CStudentlD对象的默认值为:id=0,并把学生的学号赋给IDvalue,并输出“赋给学生的学号:”及学号。请在注释//********2********之后添加适当的语句。 (3)完成默认析构函数CStudentlD的定义,使CStudentlD析构时输出“删除学号:”及学号。请在注释//********3********之后添加适当的语句。 (4)完成默认构造函数CStudentlnfo的定义。对应两个默认参数:要求定义char stName[],其默认值为“no name”,定义long stID,其默认值设为0,并使它们赋值给相应的类数据成员。请在注释//********4********之后添加适当的语句。 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。1 #include2 #include3 class CStudentID4 {5 //********1********定义私有数据成员67 public:8 //********2********定义默认构造函数910 {11 IDvalue=id;12 cout13 }14 //********3********定义析构函数1516 {17 cout18 }19 };20 class CStudentInfo21 {22 private:23 CStudentID id;24 char name[20];25 public:26 //********4********定义默认构造函数完成数据成员初始化2728 {29 cout30 strcpy(name,stName);31 }32 };33 void main()34 {35 CStudentInfost(''李伟'',200805);36 }
请打开考生文件夹下的解决方案文件proj2,其中有矩阵基类MatrixBase、矩阵类Matrix和单位阵UnitMatrix的定义,还有main函数的定义。请在横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为: 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 注意:只能在横线处填写:适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。#includeiostreamusing namespace std;//矩阵基础类,一个抽象类class MatrixBase{ int rows,cols;public: MatrixBase(int rows,int cols):rows(rows),cols(cols){) int getRows()const{return rows;) //矩阵行数 int getCols()const{return cols;} //矩阵列数 virtual double getElement(int r,int c)const=0;//取第i个元素的值 void show()const{//分行显示矩阵中所有元素 for(int i=0 ; irows;i++){ coutendl; for(int j=0 ; jcols ; j++)//********found******** cout____________" "; } } }; //矩阵类 class Matrix:public Matrix-Base{ double*val;public://********found******** Matrix(int rows,int cols,double m[]=NULL):___________{//********found********val=______________;for(int i=0;irows*cols;i++) val[i]=(m==NULL?0.0:m[i]); } ~Matrix(){delete[]val;) double getElement(int r,int c)const{return val[r*getCols()+c];}};//单位阵(主对角线元素都是1,其余元素都是0的方阵)类class UnitMatrix:public MatrixBase{public: UnitMatrix(int rows):MatrixBase(rows,rows){}//单位阵行数列数相同 double getElement(int r,int c)const{//********found********if(____________)return 1.0;returnR 0.0 ; }};int msin(){ MatrixBase*m; double d[][5]={{1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7}}; m=new Matfix(3,5,(double*)d); m-show(); delete m; coutendl; m=new UnitMatrix(6); m-show(); delete m; return 0 ;}
操作题使用 VC6 打开考生文件夹 proj1 下的工程 proj1, 其中有沙发 类 Sofa 和主函数 main 的定义
操作题使用 VC6 打开考生文件夹 proj1 下的工程 proj1, 其中定义了一个 CD 类
应用题使用 VC6 打开考生文件夹 proj3 下的工程 proj3, 其中声明了 MyString 类, 它是一个用于表示字符串的类
应用题使用 VC6 打开考生文件夹 proj2 下的工程 proj2, 其中有元素类 Element 和队列类 Queue 的定义
应用题使用VC++6.0打开考生文件夹下的源程序文件3.cpp
应用题使用VC++6.0打开考生文件夹下的源程序文件3.cpp,其中定义了用于表示矩形的CRect类,但类CRect的定义并不完整
应用题使用 VC6 打开考生文件夹 proj3 下的工程 proj3, 其中定义了一个字符串变量类 StringVar
应用题使用VC6打开考生文件夹下的源程序文件2.cpp
应用题使用 VC6 打开考生文件夹 proj2 下的工程 proj2, 其中有两个类: 一是销售类(sale), 用于表示按照一件商品的基本价格进行销售; 另一个是打折销售类(DiscountSale), 用于表示在基本价格基础上按一个折扣比例进行销售
应用题使用VC++6.0打开考生交件夹下的源程序文件2.cpp
单选题数据库管理系统是位于用户与操作系统之间的一个数据管理软件,以下不属于它的基本功能的是( )。
单选题有如下程序:
#include
usingnamespacestd;
classTestClass
{public:
virtualvoidfunl()
{coutfun1();
p->fun2();
return0;}
该程序执行后的输出结果是( )。
单选题下列关系运算中,能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是
____
。
单选题有如下函数模板定义: template<class T> T func(T x,T y){return x*x+y*y;} 在下列对func的调用中,错误的是( )。
