找考题网-背景图
问答题

【说明】
本流程图实现从成绩文件生成学生成绩一览表。
某中学某年级的学生成绩数据(分数)登录在成绩文件10中,其记录格式见表1:
               表1
学号 姓名 课程1成绩 课程2成绩 …… 课程6成绩
  由该成绩文件生成见表2的学生成绩一览表。生成的学生成绩一览表按学号升序排列。表中的名次是指该生相应课程在年级中的名次。
                 表2
学号 姓名 课程1 课程2 …… 课程6
成绩 名次 成绩 名次 …… …… 成绩 名次
  流程图中的顺序文件F0是学生成绩文件,F0文件经处理1处理后产生顺序文件F,然后经过处理2至处理4对文件F进行处理和更新。在处理5中,仅对文件F的纪录进行学生成绩一览表的编排输出,不进行排序和增加名次等处理。
【问题2】
简述处理2、处理3和处理4作何种处理,若有排序处理则需指明排序的键及序(升序或降序)。
【流程图】

【参考答案】

课程代码按升序排列、成绩按降序排列
热门试题

问答题【说明】 下面的程序先构造Point类,再顺序构造Ball类。由于在类Ball中不能直接存取类Point中的xCoordinate及yCoordinate属性值,Ball中的toString方法调用Point类中的toStrinS方法输出中心点的值。在MovingBsll类的toString方法中,super.toString调用父类Ball的toString方法输出类Ball中声明的属性值。 【Java代码】 Point.java文件 public class Point private double xCoordinate; private double yCoordinate; public Point() public Point(double x,double y) xCoordinate=x; yCoordinate=y; public String toStrthg() return ( +Double.toString(xCoordinate)+ , +Double.toString(yCoordinate)+ ) ; other methods Ball.java文件 public class Ball private (1) ; 中心点 private double radius; 半径 private String color; 颜色 public Ball() public Ball(double xValue, double yValue, double r) 具有中心点及其半径的构造方法 center= (2) ; 调用类Point中的构造方法 radius=r; public Ball(double xValue, double yValue, double r, String c) 具有中心点、半径和颜色的构造方法 (3) ; 调用3个参数的构造方法 color=c; public String toString() return A ball with center +center.toString() + ,radius +Double.toString(radius)+ ,color +color; other methods class MovingBall (4) private double speed; public MovingBall() public MoyingBall(double xValue, double yValue, double r, String c, double s) (5) ; 调用父类Ball中具有4个参数的构造方法 speed=s; public String toString() return super.toString()+ ,speed +Double.toString(speed); other methods public class test public static void main(String args[]) MovingBall mb=new MovingBall(10,20,40, green ,25); System.out.println(mb);

问答题例如:设散列函数为Hash(Key)=Key mod 7,记录的关键字序列为15,14,21,87,97,293,35,24,149,19,63,16,103,77,5,153,145,356,51,68,705,453,建立的散列文件内容如图所示。 为简化起见,散列文件的存储单位以内存单元表示。 函数InsertToHashTable(int NewElemKey)的功能是:将元素NewEIemKey插入散列桶中,若插入成功则返回0,否则返回-1。 采用的散列函数为Hash(NewElemKey)=NewElemKey % P,其中P为设定的基桶数目。 函数中使用的预定义符号如下: #define NULLKEY -1 *散列桶的空闲单元标识* #define P 7 *散列文件中基桶的数目* #define ITEMS 3 *基桶和溢出桶的容量* typedef struct BucketNode *基桶和溢出桶的类型定义* int KcyData[ITEMS]; struct BucketNode *Link; BUCKET; BUCKET Bucket[P]; *基桶空间定义* [函数] int lnsertToHashTable(int NewElemKey) *将元素NewElemKey插入散列桶中,若插入成功则返回0,否则返回-1* *设插入第一个元素前基桶的所有KeyData[]、Link域已分别初始化为NULLKEY、 NULL* int Index; *基桶编号* int i,k; BUCKET *s,*front,*t; (1) ; for(i=0; i<ITEMS;i++) *在基桶查找空闲单元,若找到则将元素存入* if(Bucket[Index].KeyData[i]=NULLKEY) Bucket[Index].KeyData[i]=NewElemKey; break; if( (2) ) return 0; *若基桶已满,则在溢出桶中查找空闲单元,若找不到则申请新的溢出桶* (3) ; t=Bucket[Index].Link; if(t!=NULL) *有溢出桶* while (t!=NULL) for(k=0; k<ITEMS; k++) if(t->KeyData[k]=NULLKEY) *在溢出桶链表中找到空闲单元* t->KeyData[k]=NewElemKey; break; *if* front=t; if( (4) )t=t->Link; else break; *while* *if* if( (5) ) *申请新溢出桶并将元素存入* s=(BUCKET*)malloe(sizeof(BUCKET)); if(!s) return-1; s->Link=NULL; for(k=0; k<ITEMS; k++) s->KeyData[k]=NULLKEY; s->KeyData[0]=NewElemKey; (6) ; *if* return 0; *InsertToHashTable*