首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi3.cpp。学校教务处要为任课老师开发一个学生管理系统,需求如下: (1)学生的信息是要受到严密保护和限制的,包括姓名、五个英文字符的学号,以及精确到小数点后一位的一科成绩,只有任课老师可以修改,如果学
使用VC6打开考生文件夹下的源程序文件modi3.cpp。学校教务处要为任课老师开发一个学生管理系统,需求如下: (1)学生的信息是要受到严密保护和限制的,包括姓名、五个英文字符的学号,以及精确到小数点后一位的一科成绩,只有任课老师可以修改,如果学
admin
2017-09-20
86
问题
使用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
周华000l 78.5
贺兰 0004 78
周红0005 76.5
查询成绩最高的学生信息:
高俊0007 98
李强0002 98
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include
#include
#include
#define NMAX 50
class Teacher;
class Student
{
public:
student(char *name=“未知
”,char *number=“0 0 0 0 0”,double
mark=0.0)
{
int len=strlen(name);
m name=new char[len+1];
strcpy(m name,name);
strcpy(m number,number);
m mark=mark;
}
Student()
{
delete[]m name;
}
void DisplayMsg()
{
cout<
number<<“\t”<
}
protected:
char *m name;
char m number[5];
double m mark;
∥********1********
};
C1as s Teacher
{
public:
Teacher(){);
~Teacher(){
for(int i=0;i
{
delete m pStu
;
m pStu
=NULL;
}
};
int BestScore(Student*pS[]);
void InputScore();
void Display();
void SortScore();
protected:
Student*m pStu[NMAX];
double m average;
int m count;
};
void Teacher::InputScore()
{
ifstream in(“data.txt”);
assert(in);
char name[20];
char number[5];
double mark=0;
m count=0;
cout<<“姓名\t”<<“学号\t”<<“成绩\t”<
for( int i=0; !in.eof();i++){
in>>name;
in>>number;
in>>mark;
m—count++;
m pStu
=new Student
(name,number,mark);
cout<
<<“\t”<
}
}
void Teacher::SortScore()
{
double sum=0;
for(int i=0; i
{
int index=i;
for(int j=i+1;J
j++1
{
if(m_pStu[j]>m—mark>
m_pStu[index]->m—mark)
index=j;
}
∥********2********
if()
{
Student*ps=m pStu
;
m_pStu
=m_pStu
[index];
m.pStu[index]=ps;
}
}
}
void Teacher::Display()
{
cout<<“姓名\t”<<“学号\t”<<“成绩\t”<
for(int j=0;j
{
m_pStu[j]一>DisplayMsg();
}
}
int Teacher::BestScore(Student
*pS[])
int index=0;
int count=1;
∥********3********
for(int j=1; j
{
if(m_pStu[j卜>m—mark>
m pStu[index]一>m mark)
{
count=1;
index=j;
pS[count++]=m pStu
[index];
}
else if(m_pstu[j]>m—mark
=m_pStu[index]一>m_mark)
{
index=j;
pS[count++]=m pStu
[index];
}
}
return count;
}
void main()
{
Teacher Teacher;
Student*pStudent[NMAX];
cout<<“输入的学生信息:”<
Teacher.InputScore();
Teacher.SortScore();
cout<
Teacher.Display();
cout<
int n=Teacher.BestScore
(pStudent);
while(n一一)
{
pStudent[n]一>
9isplayMsg();
}
}
选项
答案
(1)添加语句:friend ClasS Teacher; (2)将“if()”补充完整为: if(i ndex!:j) (3)添加语句:pS[0]=m pStu[0];
解析
类Student含有三个成员变量:姓名、五个英文字符的学号和精确到小数点后一位的一科成绩,类Teacher含有Student对象数组的指针Student*m_pStu[NMAX]、m_average和m—count三个成员变量,类Teacher有多个成员函数,完成学生数据输入、排序、查找最好成绩和打印等功能。
转载请注明原文地址:https://kaotiyun.com/show/ZUAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
假定要动态分配一个类型为Worker的具有n个元素的数组,并由r指向这个动态数组,则使用的语句是【 】。
设有定义char str[80];以下不能将输入数据first\nsecond\n<CR>读取到数组str中的语句是
以下不能够读入空格字符的语句是
以下程序运行后,输出结果是 #define PT 5.5 #define S(x)PT* x * x main() {int a=1,b=2; printf("%4.lf\n",S(a+b); }
下列数据结构中按“先进先出”原则组织数据的是
阅读下列程序:#include<iostream.h>voidfun(intn){intx(5);staticinty(10);if(n>0){++x;++y;cou
类MyClass的定义如下,若要对value赋值,则下面语句正确的是()。classMyClass{public:MyClass(){}MyClass(inti){value=newint(i);}
C++语言本身没有定义I/O操作,但I/O操作包含在C++实现中。C++标准库iostream提供了基本的I/O类。I/O操作分别由两个类istream和()提供。
以下程序的执行结果是_______。#include<iostream.h>#include<fstream.h>#include<stdlib.h>voidmain(){charch:fstre
fstream、ifstream和ofstream文件流类的成员函数______关闭文件。
随机试题
通信中使用的传输介质分为有线介质和无线介质。有线介质有______、同轴电缆和光纤等,无线介质有无线电波、微波、红外线和激光等。
WhenIbeginplanningtomovetoAucklandtostudy,mymotherwasworriedaboutalackofjobsandculturaldifferences.Ignorin
角膜基质为角膜中最厚的一层,约占角膜的90%。主要由大量的胶原纤维平行排列,形成与表面平行的胶原板层结构。()
患者,男,70岁。发热,咳嗽l周。查体:体温38°C,血压80/50mmHg(10.6/6.7kPa),左肺下可闻及湿l罗音。下列哪项处理是错误的()
此患儿为以下哪种先心病对于此种类型先心病目前最先进的治疗方法是
建设单位提交的材料符合规定的,交通运输主管部门或者其委托的建设工程质量监督机构应当在()个工作日内为其办理工程质量监督手续,出具公路水运工程质量监督管理受理通知书。
商业银行应当在法人和集团层面建立与规模、业务复杂程度和风险状况相适应的压力测试体系,并将其纳入各个层次的风险管理活动,成为风险管理体系的有机组成部分。()
2011年,我国规模以上电子信息制造业主营业务成本占主营业务收入的比重达到88.7%,比2010年提高0.6个百分点。行业中亏损企业2497个,同比增长36.7%,企业亏损面达16.6%,亏损企业亏损额同比增长52.9%。2011年,我国规模
关于地球生物演化史,下列哪组排序是正确的?()
Ihavenopaperwithm%now.Couldyoulendme______?
最新回复
(
0
)