试卷详情
-
中级软件设计师下午试题-40
-
[简答题]【说明】本程序将两个从小到大的有序链表合成一个新的从小到大的有序链表。链表的每一项由类Node描述,而链表由类List描述。类List的成员函数有以下几个。
①createList( ):创建从小到大的有序链表。
②multiplyList(List L1,List L2):将链表L1和链表L2合并。
③print( );打印链表。
# include <iostream.h>
class List;
class Node
friend class List;
public:
Node(int data)
(1) ;
private:
int data;
Node *next;
;
class List
public:
List( ) list = NULL;
void multiplyList(List L1, List L2);
void createList( );
void print( );
private:
Node *list;
;
void List::createList( )
Node *p, *u, *pm;
int data;
list = NULL;
while (1)
cout<<"输入链表的一项: (小于零,结束链表)"<<end1;
cin >> data;
if(data<0)break; //小于零,结束输入
p = list;
while (p != NULL && data > p->data) //查找插入点
pre = p;
p = p->next;
u= (2) :
if(p==list)
lis
-
[简答题]【说明】
某教学管理系统的用户是教学管理人员、教师和学生。系统主要提供学生选课管理和学生成绩管理两方面的功能。
(1)学生选修课管理
主要功能是管理新学期开始时,学生对选修的课程进行选课注册工作。新学期开始后的前两周为学生试听、选课注册时间;允许校内各院系学生跨专业跨年级选修课程;学生可以在校园网的任何一个终端进行选课。
①新学期选修课程表生成:各学院教学管理人员在新学期开始前,将准备开设的选修课程名称、课程代码、总课时、上课时间、学分、任课教师和上课教室录入系统,供学生选课使用。新学期开学两周后,系统自动将实际选课学生少于10人的课程停开,并删除该课程;教学管理人员打印学生选课注册名单和开课通知书,送交有关部门和任课教师。
②学生选课注册:新学期开学前两周为学生试听、选课注册时间,并允许改变或取消注册申请。学生调用待选课程表,系统显示课程名、课程代码、任课教师、上课时间、总课时、上课教室、学分和本课程已选修人数。学生所选几门课程在上课时间上不能冲突;若一门课程实际选课学生已达到40人时,停止选课。当学生退出系统时,系统提示该学生所选的几门课程、任课教师、上课时间、教室、学分和学分总计。
③选修课程查询:选修课程表信息查询,用户是教师、学生和教学管理人员。系统显示课程名、课程代码、任课教师、上课时间、总课时、上课教室、学分和本课程已选修人数。查询关键词可为学院名称、专业、授课教师等。
学生选课情况查询:教师和教学管理人员可以查看学生的选课情况。查询关键词可以为学生姓名(学号)、课程名称(课程代码)、授课教师等。学生只能查自己所选课程内容,不允许查其他同学选课情况。
教师简历查询:用户是学生、教师和教学管理人员。查询关键词可为教师姓名、性别、职称、年龄等单关键词或组合关键词。
④信息统计与报表生成:各学院教学管理人员对学生选课注册信息进行统计(按课程、专业等),打印汇总报表。
⑤把学生选课注册信息传送到财务管理系统,计算学生应交纳的费用。
(2)学生成绩管理
①学生考试成绩录入:各学院教学管理人员将学生考试成绩录入系统。录入学生成绩时,系统自动检查财务系统传来的选课交费信息,核对该学生是否已经交纳本门课程的费用,没有交纳费用者,不给成绩。
-
[简答题]【说明】本程序实现功能:读入两个整数,第1个数除以第2个数,声明当除数为零时抛出异常类DivideByZeroException。
public class DivideByZeroException (1)
public DivideByZeroException ( )
super("Attcmpted to divide by zero");
import java.io. *;
public class Example
private static int quotient(int numerator, in)/”t denominator) throws
DivideByZeroException
if (denominator==0)
throw (2) ;
return(numerator / denominator);
public static void main(String args[])
int number1=0, number2=0, result0;
try
System.out.print1n("Enter the first number:");
number1 = Integer. valueOf(Keyboard.getString( )).intValue( );
System.out.print1n("Enter the second number:");
number2 = Integer. Va1ueOf(Keyboard.getString( )).intValue( );
result = quotient(number1,number2);
catch (NumberFormatException e)
System.out.print1n("Invalid integer entered!");
Syst
-
[多项选择]【说明】下面是一个用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] <
-
[简答题]【说明】
(1)流程图描述某大型商店商品销售的数据处理流程。
(2)商店设有若干柜台,同一种商品可能在几个柜台上销售,各柜台每天提供一组日销售数据,其格式如下:
日期、柜台号、商品代码、销售数量、商品代码、销售数量……
(3)数据处理系统每日产生一份反映各柜台当日销售金额和商店日销售金额的“日销售金额报告”,必要时还产生一份“商品请购报告”,给出那些低于最低库存量的商品代码、商品名称、最低库存量和实际库存量。处理过程中产生存档的“日销售文件”和临时工作文件“日销售量文件”和“旧销售金额文件”。
(4)系统中所用到的数据均来自数据文件。
(5)流程图中的商品库存文件的记录已按关键字“商品代码”排序。
【问题1】
①指出商品库存文件的记录中必须包括哪些数据项
②分别指出在日销售文件,日销售量文件和日销售金额文件的记录中至少应包括哪些数据项,同时不产生数据冗余
③错误清单可能指出哪些错误
-
[多项选择]【说明】
有如下关系数据库:
S(SNO,SN,STATUS,CITY)
P(PNO,PN,COLORS,WEIGHT)
J(JNO,JN,CITY)
SPJ(SNO,PNO,JNO,QTY)
其中,S为供应单位,P为零件,J为工程项目,SPJ为工程订购零件的订单,其语义为:某供应单位供应某种零件给某个工程,请用SQL完成下列操作。
【问题1】
求为工程J1提供红色零件的供应商代号。