主观

阅读下列C++程序和程序说明,将应填入(n)处的字句写在对应栏内。

 【说明】设单链表的结点类和链表类的定义如下,链表不带有表头结点。请填空:

 #include<iostream.h>

 #include<assert.h>

 template<class T>class List;

 template<class T>class ListNOde{

   friend (1);

 private:

   T data;

   ListNode<T> *link;

 public:

   ListNode():link(NULL)()

   ListNOde(const T& item,ListNOde<T>*next=NULL)

   :data(item),link(next){}

 };

 template<class T>class List{

 private:

   ListNode<T>*first;

   void createList(T A[],int n,int i,ListNOde<T>*&p);

   void printList(ListNOde<T>*p);

 public:

   List();

   ~List();

   friend ostream& operator<<(ostream& ost,List<T>&L);

   friend istream& operator>>(istream& ist,List<T>&L);

 };

 template<class T>

 istream& operator>>(istream& ist,List<T>&1){

   int i,n;  ist>>n;

   T A[n];

   for(i=0;i<n;i++) (2);

   createList(A,n,0,first);

 }

 template<class T>

 void List<T>::createList(TA[],int n,int i,ListNOde<T>*& p){

 //私有函数:递归调用建立单链表

   if(i==n)p=NULL;

   else{

   p=new ListNode<T>(A[i]);

   assert(p !=NULL);

   createList((3));

   }

 }

 template<class T>

 ostream& operator<<(ostream& ost,List<T>& L){

   (4);

 }

 template<class T>

 void List<T>::printList(ostream& ost,ListNode<T>*p){

   if(p!=NULL){

    ost<<p->data;

     (5);

   }

 }

参考答案
您可能感兴趣的试题

阅读下列Java程序和程序说明,将应填入(n)处的字句写在对应栏内。

 【说明】本程序ExceptionTester实现功能:读入两个整数,第1个数除以第2个数,之后输出。若第2个数为0,则自动进行异常处理。

 程序如下:

  (1);

 public class ExceptionTester{

 public static void main(String args[]){

   int  result;

   int  number[]=new int[2];

   boolean valid;

   for(int i=0;i<2;i++){

    valid=(2);

    while(!valid){

      try{

       System.out.println("Enter number"+(i+1));

       number[i]=Integer.valueOf(Keyboard.getString()).intValue();

       valid=true;

      }catch(NumberFormatExceptione){

       System.out.println("Invalid integer entered.Please try again.");

      }

    }

   }

   by{

   result=number[0]/number[1];

   System.out.print(number[0]+"/"+number[1]+"="+result);

   }catch((3)){

    System.out.println("Second number is 0,cannot do division!");

   }

  }

 }

 其中,Keyboard类的声明为:

 impon java.io.*;

 public class Keyboard{

 static BufferedReader inputStream=new (4) 

       (new InputStreamReader(System.in));

 public static int getInteger(){

   try{

     return(Integer,valueOf(inputStream.readLlne().trim()).intValue());

   }catch(Exceptione){

     e.printStackTrace();

     return 0;

   }

 }

 public (5) {

   by{

   return(inputStream.readLine());

   } catch(IOExceptione)

    {return "0";}

   }

 }

阅读下列C++程序和程序说明,将应填入(n)处的字句写在对应栏内。

 【说明】设单链表的结点类和链表类的定义如下,链表不带有表头结点。请填空:

 #include<iostream.h>

 #include<assert.h>

 template<class T>class List;

 template<class T>class ListNOde{

   friend (1);

 private:

   T data;

   ListNode<T> *link;

 public:

   ListNode():link(NULL)()

   ListNOde(const T& item,ListNOde<T>*next=NULL)

   :data(item),link(next){}

 };

 template<class T>class List{

 private:

   ListNode<T>*first;

   void createList(T A[],int n,int i,ListNOde<T>*&p);

   void printList(ListNOde<T>*p);

 public:

   List();

   ~List();

   friend ostream& operator<<(ostream& ost,List<T>&L);

   friend istream& operator>>(istream& ist,List<T>&L);

 };

 template<class T>

 istream& operator>>(istream& ist,List<T>&1){

   int i,n;  ist>>n;

   T A[n];

   for(i=0;i<n;i++) (2);

   createList(A,n,0,first);

 }

 template<class T>

 void List<T>::createList(TA[],int n,int i,ListNOde<T>*& p){

 //私有函数:递归调用建立单链表

   if(i==n)p=NULL;

   else{

   p=new ListNode<T>(A[i]);

   assert(p !=NULL);

   createList((3));

   }

 }

 template<class T>

 ostream& operator<<(ostream& ost,List<T>& L){

   (4);

 }

 template<class T>

 void List<T>::printList(ostream& ost,ListNode<T>*p){

   if(p!=NULL){

    ost<<p->data;

     (5);

   }

 }

阅读下列C程序和程序说明,将应填入(n)处的字句写在对应栏内。

【说明】下面是一个用C编写的快速排序算法。为了避免最坏情况,取基准记录pivot时,采用从left、right和mid=[(left+right)/2]中取中间值,并交换到right位置的办法。数组a存放待排序的一组记录,数据类型为T,left和right是待排序子区间的最左端点和最右端点。

void quicksort (int a[], int left, int right) {

  int temp;

 if (left<right) {

  hat pivot = median3 (a, left, right);         //三者取中子程序

  int i = left, j = right-1;

  for(;;){

   while (i <j && a[i] < pivot) i++;

   while (i <j && pivot < a[j]) j--;

   if(i<j){

     temp = a[i]; a[j] = a[i]; a[i] = temp;

     i++; j--;

  }

   else break;

 }

  if (a[i] > pivot)

     {temp = a[i]; a[i] = a[right]; a[right] = temp;}

  quicksort( (1) );                  //递归排序左子区间

  quieksort(a,i+1 ,right);                //递归排序右子区间

}

}

void median3 (int a[], int left, int right)

{ int mid=(2);

 int k = left;

 if(a[mid] < a[k])k = mid;

 if(a[high] < a[k]) k = high;           //选最小记录

 int temp = a[k]; a[k] = a[left]; a[left] = temp; //最小者交换到 left

 if(a[mid] < a[right])

   {temp=a[mid]; a[mid]=a[right]; a[right]=temp;}

}

消去第二个递归调用 quicksort (a,i+1,right)。 采用循环的办法:

void quicksort (int a[], int left, int right) {

      int temp; int i,j;

    (3) {

       int pivot = median3(a, left, right);      //三者取中子程序

       i = left; j = righi-1;

       for (;; ){

       while (i<j && a[i] < pivot)i++;

       while (i<j && pivot <a[j]) j--;

       if(i <j) {

          temp = a[i]; a[j]; = a[i]; a[i]=temp;

          i++; j--;

     }

       else break;

    }

     if(a[i]>pivot){(4);a[i]=pivot;}

     quicksoft ((5));        //递归排序左子区间

     left = i+1;

   }

  }

阅读以下说明和图,回答问题1至问题3,将解答写在对应栏内。

 【说明】

 某教学管理系统的用户是教学管理人员、教师和学生。系统主要提供学生选课管理和学生成绩管理两方面的功能。

  (1)学生选修课管理

 主要功能是管理新学期开始时,学生对选修的课程进行选课注册工作。新学期开始后的前两周为学生试听、选课注册时间;允许校内各院系学生跨专业跨年级选修课程;学生可以在校园网的任何一个终端进行选课。

 ①新学期选修课程表生成:各学院教学管理人员在新学期开始前,将准备开设的选修课程名称、课程代码、总课时、上课时间、学分、任课教师和上课教室录入系统,供学生选课使用。新学期开学两周后,系统自动将实际选课学生少于10人的课程停开,并删除该课程;教学管理人员打印学生选课注册名单和开课通知书,送交有关部门和任课教师。

 ②学生选课注册:新学期开学前两周为学生试听、选课注册时间,并允许改变或取消注册申请。学生调用待选课程表,系统显示课程名、课程代码、任课教师、上课时间、总课时、上课教室、学分和本课程已选修人数。学生所选几门课程在上课时间上不能冲突;若一门课程实际选课学生已达到40人时,停止选课。当学生退出系统时,系统提示该学生所选的几门课程、任课教师、上课时间、教室、学分和学分总计。

 ③选修课程查询:选修课程表信息查询,用户是教师、学生和教学管理人员。系统显示课程名、课程代码、任课教师、上课时间、总课时、上课教室、学分和本课程已选修人数。查询关键词可为学院名称、专业、授课教师等。

 学生选课情况查询:教师和教学管理人员可以查看学生的选课情况。查询关键词可以为学生姓名(学号)、课程名称(课程代码)、授课教师等。学生只能查自己所选课程内容,不允许查其他同学选课情况。

 教师简历查询:用户是学生、教师和教学管理人员。查询关键词可为教师姓名、性别、职称、年龄等单关键词或组合关键词。

 ④信息统计与报表生成:各学院教学管理人员对学生选课注册信息进行统计(按课程、专业等),打印汇总报表。

 ⑤把学生选课注册信息传送到财务管理系统,计算学生应交纳的费用。

 (2)学生成绩管理

 ①学生考试成绩录入:各学院教学管理人员将学生考试成绩录入系统。录入学生成绩时,系统自动检查财务系统传来的选课交费信息,核对该学生是否已经交纳本门课程的费用,没有交纳费用者,不给成绩。

 ②成绩查询:教师和教学管理人员可查询学生各门课程的成绩。查询关键词可为学生姓名(学号),课程名(课程代码)等。学生只能查自己各门课程的成绩,不允许查其他同学成绩。

 ③成绩汇总与报表生成:教学管理人员对学生考试成绩信息进行统计(按学生、课程、专业等),打印汇总报表。向学校教务管理系统发送汇总信息表格等,不反馈信息。

 现在已建立教学管理最高层用例图,如下:

完成学生成绩管理子系统用例图。

¥

订单号:

遇到问题请联系在线客服

订单号:

遇到问题请联系在线客服