任务一:编写程序计算购买图书的总价格:用户输入图书的定价和购买图书的数量,并分别保存到一个float和一个int类型的变量中,然后根据用户输入的定价和购买图书的数量,计算合计购书金额并输出。其中,图书销售策略为:正常情况下按9折出售,购书数量超过10本打85折,超过100本打8折。
要求:使用分支结构实现上述程序功能。
任务二:所谓回文数是从左至右与从右至左读起来都是一样的数字,如:121是一个回文数。编写程序,求出100—200的范围内所有回文数的和。
要求:使用循环结构语句实现,直接输出结果不计分。
任务三:分析下列数据的规律,编写程序完成如下所示的输出。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 要求:使用递归函数(或方法)实现,递归函数(或方法)有两个输入参数,返回值类型为整型。
【试题22】
任务一:根据如下要求计算机票优惠率,并输出。
输入:用户依次输入月份和需要订购机票的数量,分别保存到整数变量month和sum中。
计算规则如下:
航空公司规定在旅游的旺季7~9月份,如果订票数超过20张,票价优惠15%,20张以下,优惠5%;在旅游的淡季1~5月份、10月份、11月份,如果订票数超过20张,票价优惠30%,20张以下,优惠20%;其他情况一律优惠10%。
输出:根据输入月份和需要订购机票的数量,输出优惠率。 要求:使用分支结构实现上述程序功能。
任务二:计算π的近似值。
计算公式如下:
??4???1??111??????357?
要求:使用循环结构语句实现,直接输出结果不计分。
任务三:验证18位身份证号码并判断身份证主人的性别,身份证号码的规则为: ①前17位全部由数字组成,最后一位为数字或者字符’X’,一个字符ch为数字的条件为:ch>=’0’ && ch<=’9’;
②第17位数为奇数表示性别为男,偶数表示性别为女。
输入:从键盘输入一个18位的身份证号码保存到字符数组Card中。 输出:主人性别。 【试题23】
任务一:编写程序实现:输入一个整数,判断它能否被3、5、7整除,并输出以下信息之一:
21
? 能同时被3、5、7整除 ? 能同时被3、5整除 ? 能同时被3、7整除 ? 能同时被5、7整除
? 只能被3、5、7中的一个整除 ? 不能被3、5、7任一个整除 要求:使用分支结构语句实现。
任务二:使用冒泡排序法对数组中的整数按升序进行排序,如下所示: 原始数组:a[]={1,9,3,7,4,2,5,0,6,8} 排序后: a[]={0,1,2,3,4,5,6,7,8,9}
要求:综合使用分支、循环结构语句实现,直接输出结果不计分。
任务三:编程实现以下要求。n个人围坐成一个圆圈报数。第一个人报数1,第2个人报数2,依次类推,报数为m的人出列;接下来的人重新报数,出列人旁的下一个人报数1,第2个人报数2,依次类推,报数为m的人出列;直到圈中只剩下一个人,该人出列。例如:共有5个人,数到3出列,则出列顺序为:原先3号位置的人、原先1号位置的人、原先5号位置的人、原先2号位置的人、原先4号位置的人。
要求:用带有两个输入参数(一个总人数n,一个为计数m)的函数(或方法)实现,返回值类型为数组。 【试题24】
任务一:输入一个年度,判断是否是闰年。例如,2000是闰年,1900不是闰年,1904是闰年。
要求:使用分支结构语句实现。
提示:以下两个条件,只要满足任意一个,即是闰年:①能整除4且不能整除100 ;②能整除400。
任务二:输出杨辉三角形,如下图所示:
* *** ***** ******* ********* *********** *************
要求:使用循环结构语句实现,直接输出结果不计分。
任务三:编程实现判断一个字符串是否是“回文串”。所谓“回文串”是指一个字符串的第一位与最后一位相同,第二位与倒数第二位相同。例如:“159951”、“19891”是回文串,而“2011”不是。
要求:用带有一个输入参数的函数(或方法)实现,返回值类型为布尔类型。
【试题25】
22
任务一:输入一个百分制的成绩t,将其转换成对应的等级然后输出,具体转换规则如下:
90~100为A 80~89为B 70~79为C 60~69为D 0~59为E
要求:如果输入数据不在0~100范围内,请输出一行:“Score is error!”。
任务二:数列的定义如下:
数列的第一项为n,以后各项为前一项的平方根,输出数列的前m项的和。 要求:数列的各项均为正数。
任务三:多项式的描述如下:1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + ...,现在要求出该多项式的前n项的和。
要求:结果保留两位小数。
【试题26】
任务一:有一个长度为n(n<=100)的数列,该数列定义为从2开始的递增有序偶数,现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。
要求: m为大于等于3的整数。
任务二: 输入n(n<100)个整数,找出其中最小的数,将它与最先输入的数交换后输出这些数。
要求: 用数组解决任务。
任务三: 对于给定的一个字符串,统计其中数字字符出现的次数。 要求: 字符串只能由数字和字符组成。
【试题27】
任务一:有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
要求: 不能使用递归算法。
23
任务二:有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数x,请将该数插入到序列中,并使新的序列仍然有序。
要求: 将新的序列在一行输出。
任务三:某员工的工资都是正整数,单位元,人民币一共有100元、50元、10元、5元、2元和1元六种。最少需要准备多少张人民币,才能在发工资的时候都不用找零?
要求: 假设员工的工资为M元
【试题28】
任务一: 从键盘输入两个整数,输出两个整数的最小公倍数。 要求: 用循环语句实现
任务二: 从键盘输入三条边A,B,C的边长,请编程判断能否组成一个三角形。 要求: A,B,C <1000,如果三条边长A,B,C能组成三角形的话,输出YES,否则NO。
任务三:动物园饲养的食肉动物分大型动物和小型动物两类,规定老虎、狮子一类的大动物每次喂肉每头三斤,狐狸、山猫一类小动物每三头喂一斤.该动物园共有这两类动物100头,每次需喂肉100斤,编程输出大、小动物的数量。
要求:用循环语句实现
【试题29】
任务一: 小明今年3岁了, 现在他已经能够认识100以内的非负整数, 并且能够进行100以内的非负整数的加法计算。对于大于等于100的整数, 小明仅保留该数的最后两位进行计算, 如果计算结果大于等于100, 那么小明也仅保留计算结果的最后两位。
例如, 对于小明来说: 1) 1234和34是相等的 2) 35+80=15
要求:给定非负整数A和B,编程代表小明计算出A+B的值,并输出结果。
任务二:输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。 要求:用循环语句实现
任务三:在知识竞赛中,有10道判断题,评分规定:每答对一道题的两分,答错一道题要倒扣一分。小明答了全部题目,但最后只得了14分,编程求出他答错的题数。
24
要求:用循环语句实现
【试题30】
任务一:编写函数fun,它的功能是:求Fibonacci数列中大于t的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2) 例如:当t = 1000时,函数值为:1597。
要求: 用循环语句实现
任务二: 将一个字符串数组中存放的字符倒序存储,即原序列中最后一个字符在倒序后排到第一位,原序列倒数第二个字符在倒序后排到第二位,以此类推。
要求:不能借助第二个数组完成字符串数组倒序。
任务三:从键盘输入两个整数,输出两个整数的最大公约数。 要求: 用循环语句实现
【试题31】
任务一:在一个停车场内,汽车、摩托车共停了48辆,其中每辆汽车有4个轮子,每辆摩托车有3个轮子,这些车共有172个轮子,编程输出停车场内有汽车和摩托车的数量。
要求: 用循环语句实现
任务二:某运输队为超市运送暖瓶500箱,每箱装有6个暖瓶。已知每10个暖瓶的运费为5元,损坏一个不但不给运费还要赔10元,运后结算时,运输队共得1350元的运费。编程输出损坏暖瓶的个数。
要求:用循环语句实现
任务三:对于给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和。
要求:假设这段连续整数以M开头,N结束
【试题32】
任务一:定义盒子Box类,要求具有以下成员:长、宽、高分别为x,y,z,可设置盒子形状;可计算盒子体积;可计算盒子的表面积。
要求:盒子的体积和表面积定义为类的成员函数。
25
第一部分 抽查考试标准................................................................................................................. 3
一、适用专业 ........................................................................................................................... 3 二、抽查对象 ........................................................................................................................... 3 三、抽查目的 ........................................................................................................................... 3 四、抽查方式 ........................................................................................................................... 3 五、引用的技术标准或规范 ................................................................................................... 3 六、抽查内容与要求 ............................................................................................................... 3
1 程序设计 ..................................................................................................................... 3 2 数据库应用开发 ......................................................................................................... 4 3 桌面应用开发 ............................................................................................................. 4 4 Web应用开发 ............................................................................................................ 5 5 素养要求 ..................................................................................................................... 6 七、程序设计与应用开发规范 ............................................................................................... 6
1 代码组织与风格 ......................................................................................................... 6 2 注释规范 ..................................................................................................................... 7 3 命名 ............................................................................................................................. 8 4 声明 ............................................................................................................................. 9 5 类与接口 ................................................................................................................... 10 6 方法 ........................................................................................................................... 10 7 表达式与语句 ........................................................................................................... 10 8 错误与异常 ............................................................................................................... 10 9 文件目录组织 ........................................................................................................... 10
第二部分 试题选编 ...................................................................................................................... 12
第一章 程序设计试题 ........................................................................................................... 12
一、评分细则 ................................................................................................................. 12 二、实施条件 ................................................................................................................. 12 三、答题文件提交要求 ................................................................................................. 12 四、试题 ......................................................................................................................... 12 第二章 数据库应用开发试题 ............................................................................................... 27
一、评分细则 ................................................................................................................. 27 二、实施条件 ................................................................................................................. 27 三、答题文件提交要求 ................................................................................................. 27 四、试题 ......................................................................................................................... 27 第三章 桌面应用开发试题 ................................................................................................... 68
一、评分细则 ................................................................................................................. 68 二、实施条件 ................................................................................................................. 68 三、答题文件提交要求 ................................................................................................. 68 四、试题 ......................................................................................................................... 69 第四章 Web应用开发试题 ................................................................................................ 130
一、评分细则 ............................................................................................................... 130 二、实施条件 ............................................................................................................... 130 三、答题文件提交要求 ............................................................................................... 130 四、试题 ....................................................................................................................... 131
2
第一部分 抽查考试标准
一、适用专业
本标准适用于湖南省高等职业院校软件技术(590108)、计算机信息管理(590106)、游戏软件(590113)、软件开发与项目管理(590116)等专业。
二、抽查对象
高等职业院校全日制三年一期在校学生。抽查样本按该年级在校学生人数的10%随机抽取,样本不足10人的取10人、超过30人的取30人。
三、抽查目的
测试学生使用面向过程或面向对象方法进行程序设计的技能;按照数据库设计开发数据库应用的技能;按照软件工程规范、依据软件设计开发桌面应用和Web应用的技能。同时对学生在实际操作过程中的职业素养表现进行综合评价。
四、抽查方式
试题由考试系统随机抽取;要求被测学生在规定时间内独立完成测试任务;考试时长180分钟;评分采用百分制。
五、引用的技术标准或规范
GB/T 11457-2006 信息技术软件工程术语;
GB/T 8566-2007 信息技术软件生存周期过程标准;
GB/T 8567-2006 计算机软件文档编制规范。
六、抽查内容与要求
抽查内容包括程序设计、数据库应用开发、桌面应用开发、Web应用开发四个最基本的通用模块。要求学生能按照软件工程规范独立完成,并体现良好的职业精神与职业素养。
1 程序设计
本模块测试学生运用程序设计语言和开发工具进行程序设计的能力。要求会描述算法;能使用程序控制结构与语言机制解决程序逻辑问题;能对常用数据结构进行存储和操作;能实现一些基本算法。 1.1技能要求
? 能编写、编译、调试、运行程序;
? 能将流程图转化为程序代码,会使用流程图描述算法; ? 能使用数据类型、变量、常量、运算符、表达式编程; ? 能进行顺序、分支、循环三种控制结构的程序设计; ? 能使用函数实现程序功能;
? 能使用文件和标准设备,实现数据的输入和输出;
? 能对数组、链表、堆栈、队列等基本数据结构进行存储和操作; ? 能实现递归、查找、排序等常用算法;
? 会使用封装、继承、多态、类、接口、对象等语言机制,进行面向对象程序设计。 1.2评价标准
评价内容、配分及考核点见表1,总成绩满60分为合格。
3
表1 程序设计模块评价标准
评价内容 语法正确 功能实现 代码规范 配分 30分 60分 10分 考核点 源程序符合程序设计语言的语法规则,能通过编译或解释。 能利用程序控制结构与语言机制、常用数据结构与算法,实现各任务的业务逻辑。 程序代码符合程序设计与应用开发规范。 2 数据库应用开发 本模块主要检测学生是否具备安装、配置主流数据库管理系统的能力,根据设计构建数据表及关系的能力,使用不同数据库管理工具或SQL语句进行数据库的查询、优化的能力,完成对各种数据库对象管理的能力,备份、恢复数据库中数据的能力。 2.1技能要求
? 能在常用操作系统上安装、配置主流数据库管理系统;
? 能使用数据库管理工具在同构或异构的数据库间导入、导出数据; ? 能使用数据库管理工具备份、还原数据库; ? 能使用SQL语句创建、删除、重命名数据库; ? 能按照E-R图设计表结构、表关系;
? 能使用SQL语句创建、删除、重命名数据表; ? 能使用SQL语句修改数据表结构; ? 能使用SQL语句进行条件查询;
? 能实现连接查询、合并查询、分组查询、嵌套查询; ? 能使用常见数据库函数; ? 能对查询的结果集进行排序; ? 能基于查询结果创建新表;
? 能对数据表中的数据进行增加、删除、修改操作;
? 能使用SQL语句对表添加或删除主键、外键、唯一性、检查、默认等约束; ? 能使用SQL语句创建、修改、删除索引;
? 能使用SQL语句创建视图,能对视图进行查看、修改、删除、重命名操作; ? 能使用批处理、流程控制语句进行SQL编程; ? 能创建、查看、修改、删除、执行存储过程; ? 能开发应用DDL、DML触发器;
? 能创建事务并能使用事务实现并发控制。 2.2评价标准
评价内容、配分及考核点见表2,总成绩满60分为合格。
表2 数据库应用开发模块评价标准
评价内容 数据库对象管理 数据访问 代码规范 配分 55分 30分 15分 缩进统一,方便阅读;注释规范。 考核点 能正确管理数据库、数据表、视图、存储过程等数据库对象。 能正确使用SQL语句对数据库中的数据进行增、删、改、查操作。 SQL语句符合数据库开发规范,表、视图、存储过程等对象的命名规范,能做到见名知意;3 桌面应用开发 能根据用户需求,按照计算机软件开发规范进行桌面应用程序开发,程序界面友好、美
观、操作简单,程序业务逻辑符合用户要求,数据存储安全可靠。 3.1技能要求
? 能安装、配置开发环境;
? 能读懂用例图,理解用户需求;
? 能读懂类图、状态图、活动图、顺序图,理解详细设计;
4
? 能使用窗体、文本控件、单选框、复选框、标签、按钮、列表框、组合框、滚动条、
菜单、工具栏、状态栏、对话框、表格控件、文件对话框等常用控件设计程序界面; ? 能使用事件处理,实现用户和程序的交互; ? 能使用流实现文件的读写;
? 能使用流和套接字,实现网络的读写; ? 能使用多线程实现程序的并发处理; ? 能使用数组或集合对象实现数据的存取;
? 能使用JDBC、ADO.NET等方式建立与数据库的连接; ? 能对数据源中的数据进行增、删、改、查等操作; ? 能在数据库管理系统中创建数据库、表、约束和关系; ? 能运用开发工具对程序进行语法检查和跟踪调试; ? 能对程序进行单元测试和功能测试; ? 能打包、发布和部署应用程序。 3.2评价标准
评价内容、配分及考核点见表3,总成绩满60分为合格。
表3 桌面应用开发模块评价标准
评价内容 界面设计 数据库实现 配分 15分 30分 考核点 能根据用户需求,使用常用控件进行软件界面设计,界面美观、友好。 能根据项目要求正确创建数据库;能根据项目要求创建表以及表的约束与关系;能在表中添加有效的数据。 能按项目要求实现所有业务功能,程序运行正确;能对输入的数据进行有效性验证;能功能实现 35分 按项目要求正确显示程序运行结果;能正确地增加、修改、删除或查找数据源中的数据;能用文档记录功能测试结果并提交。 代码规范 10分 程序代码符合计算机软件开发规范,如类、实体、变量、属性、方法或函数命名规范,能做到见名知意;缩进统一,方便阅读;程序注释规范。 对程序进行调试,并编译通过;项目代码按功能要求正确运行;编译项目生成exe可执行程序或jar包。 调试、运行与打包 10分 4 Web应用开发 本模块要求学生能够运用建模语言和相关工具理解项目的需求和设计;能够安装、配置
开发环境;能够运用一种基于Web的编程语言;能够实现数据库编程;能够运用开发工具对程序进行调试和测试;能够将Web程序打包、发布和部署。 4.1技能要求
? 能安装、配置开发环境;
? 能使用HTML和CSS完成静态Web页面的设计和布局; ? 能使用脚本语言完成页面表单的数据校验和提交; ? 能读懂用例图,理解用户的需求;
? 能读懂类图、状态图、活动图、顺序图,理解详细设计,实现业务逻辑编程; ? 能在数据库管理系统中创建数据库、表、约束和关系; ? 能获取客户端页面提交的各种表单域数据; ? 能获取客户端页面运行环境常用参数; ? 能实现用户会话跟踪;
? 能使用Web服务器端内置对象;
? 能使用Web服务器端控件完成业务操作; ? 能将业务处理结果呈现给客户端; ? 能实现Web页面的跳转与重定向;
5
? 能使用数组或集合对象实现数据的存取; ? 能使用流实现文件的读写;
? 能使用JDBC、ADO.NET等方式建立与数据库的连接; ? 能对数据源中的数据进行增、删、改、查等操作;
? 能采用多层架构(表示层、业务逻辑层、数据访问层)完成Web应用开发; ? 能运用开发工具对程序进行语法检查和跟踪调试; ? 能对程序进行单元测试和功能测试; ? 能打包、发布和部署应用程序。 4.2评价标准
评价内容、配分及考核点见表4,总成绩满60分为合格。
表4 Web应用开发模块评价标准
评价内容 架构设计 数据库实现 配分 5分 考核点 能将Web应用正确地分成数据访问层、业务逻辑层、表示层。 20分 能按照项目要求正确的创建数据库;能按照数据库设计创建表以及表的约束;能添加正确的测试数据。 程序中无语法错误,业务功能正确,且全部实现,运行完好。能对表单中提交的数据进行有效性验证;功能实现 50分 能实现Web页面的正确的导航和跳转;能正确的完成用户数据的增加、修改、删除或查找;能正确的显示结果,用户操作界面友好。 部署运行 10分 Web应用端口号配置正确;项目代码正确部署到指定服务器目录下;能通过 “http://×××××/项目名称”访问网站,并能正确显示主页。 能按照规范要求进行程序结构的设计,包括类名规范、方法(或函数)命名规范、属性命名规范,能代码规范 15分 做到见名知意;代码书写规范,缩进统一,方便阅读;类的定义、方法的定义及重要的代码实现有规范的注释。 5 素养要求 遵纪守法,尊重知识产权,爱岗敬业,严守保密制度;实事求是、工作认真、尽职尽责、
一丝不苟、精益求精、具有良好的团队精神。
编码和注释能遵照本标准中的“程序设计与应用开发规范”;能根据配置管理要求进行源代码版本控制;能按时完成项目文档的编写;能按时完成程序Bug报告的提交;能按时完成程序功能的实现与测试;能及时汇报负责任务的进度。
对问题的答案具有强烈的渴求,不拘泥于固定的解题思维方式,具有丰富的想象力;保持最简单的就是最好的编码准则;善于总结,具有良好的学习能力。 爱护财产,具有安全意识。
七、程序设计与应用开发规范
本规范的目的是使软件开发人员能以标准的、规范的方式进行程序设计和应用开发。通过建立此规范,使每个开发人员养成良好的编码风格和习惯;并以此形成开发编码约定,提高程序的可靠性、可读性、可维护性和一致性等,增进团队间的交流,并保证软件产品的质量。
1 代码组织与风格
1.1 基本原则
1.1.1 代码的组织和风格的基本原则是:便于自己的开发,易于与他人的交流; 1.1.2 因个人习惯和编辑器等可以设置和形成自己的风格,但必须前后一致,并符合本规范的基本要求和原则;
1.1.3 如果程序设计语言的通用编码约定与本规范有相冲突的地方,则以程序设计语言的通用编码约定为准。 1.2 缩进
6
1.2.1 子功能块应当在其父功能块后缩进;
1.2.2 当功能块过多而导致缩进过深时,应当将子功能块提取出来作为子函数; 1.2.3 代码中以tab键(4个字符)缩进。 1.3 长度
1.3.1 为了便于阅读和理解,单个函数的有效代码长度应当尽量控制在100行以内(不包括注释行);
1.3.2 当一个功能模块过大时往往造成阅读困难,因此,应该使用子函数等将相应功能抽取出来,这也有利于提高代码的重用度; 1.3.3 单个类也不宜过大,当出现此类情况时当将相应功能的代码重构到其他类中,通过组合等方式来调用,建议单个类的长度包括注释行不超过1500行。尽量避免使用大类和长方法。
1.4 行宽
1.4.1 页宽应该设置为80字符,否则会导致在某些机器中无法以一屏来完整显示,但这一设置也可以灵活调整;
1.4.2 在任何情况下, 超长的语句应该在一个逗号后或一个操作符前折行。一条语句折行后,应该比原来的语句再缩进一个tab键,以便于阅读。 1.5 间隔
1.5.1 类、方法及功能块间等应以空行相隔,以增加可读性,但不得有无规则的空行;
1.5.2 操作符两端应当各空一个字符以增加可读性;
1.5.3 相对独立的功能模块之间可使用注释行间隔,并标明相应内容。 1.6 对齐
1.6.1 关系密切的行应对齐,对齐包括类型、修饰、名称、参数等各部分对齐;
1.6.2 连续赋值时,应当对齐操作符;
1.6.3 当方法参数过多时,应当在每个参数后(逗号后)换行并对齐;
1.6.4 当控制或循环中的条件比较长时,应当换行(操作符前)、对齐并注释各条件 1.6.5 变量定义最好通过添加空格形成对齐,同一类型的变量应放在一起。 1.7 括号
1.7.1 {} 中的语句应该单独作为一行;
1.7.2 当左括号\紧跟其语句后,右括号\永远单独作为一行且与其匹配行对齐,并尽量在其后说明其匹配的功能模块;
1.7.3 较长的方法以及类、接口等的右括号后应使用//end ...等标识其结束;
1.7.4 不要在程序中出现不必要的括号,但有时为了增加可读性和便于理解,可以使用括号限定相应项。
2 注释规范
2.1 基本原则
2.1.1 注释应该增加代码的清晰度。代码注释的目的是要使代码更易于被其他开发人员
理解;
2.1.2 避免使用装饰性注释内容; 2.1.3 保持注释的简洁;
2.1.4 注释信息不仅要包括代码的功能,还应给出原因; 2.1.5 不要为注释而注释;
2.1.6 除变量定义等较短语句的注释可用行尾注释外,其他注释当避免使用行尾注释。 2.2 文件、包或命名空间注释
7
在每个文件、包或命名空间的头部都应该包含该文件的功能、作用、作者、版权以及创建、修改记录等。
2.3 类、接口注释
在类、接口定义之前应当对其进行注释,包括类与接口的目的、作用、功能、继承于何种父类、实现的接口、实现的算法、使用方法等。 2.4 方法注释
2.4.1 对方法进行注释,以明确该方法功能、作用、各参数含义以及返回值等; 2.4.2 复杂的算法用/**/在方法内注解出; 2.4.3 参数注释时,应当注明其取值范围等;
2.4.4 对于返回值,应当注释出失败、错误、异常时的返回情况;
2.4.5 对于异常,应当注释出什么情况、什么时候、什么条件下会引发什么样的异常。 2.5 其他注释
2.5.1 应对重要的变量加以注释,以说明其含义等; 2.5.2 应对不易理解的分支条件表达式加注释; 2.5.3 不易理解的循环,应说明出口条件;
2.5.4 过长的方法实现,应将其语句按实现的功能分段加以概括性说明;
2.5.5 对于异常处理,应当注明正常情况及异常情况或者条件,并说明当异常发生时程序应当如何处理;
2.5.6 在switch语句中,每当一个case顺着往下执行时(因为没有break语句),通常应在break语句的位置添加注释。
3 命名
3.1基本原则
3.1.1 规范的命名能使程序更易阅读,从而更易于理解。它们也可以提供一些标识功能方面的信息,有助于更好的理解代码和应用; 3.1.2 使用可以准确说明变量、字段、类、接口、包或命名空间等的完整的英文描述符。严禁使用汉语拼音及不相关单词命名; 3.1.3 采用该领域的术语;
3.1.4 采用大小写混合,提高名字的可读性。一般应该采用小写字母,但是类和接口的名字的首字母,以及任何中间单词的首字母应该大写;名或命名空间全部小写;
3.1.5 尽量少用缩写,但如果一定要使用,当使用公共缩写和习惯缩写等,避免使用长名字(最好不超过25个字母)
3.1.6避免使用相似或者仅在大小写上有区别的名字; 3.1.7避免使用数字,但可用2代替to,用4代替for等。 3.2 文件、包或命名空间
3.2.1 文件名当与其类严格相同,所有单词首字母大写;
3.2.2 包名或命名空间一般以项目或模块名命名,少用缩写和长名,一律小写;
3.2.3 包名或命名空间按如下规则组成:[基本包/命名空间].[项目名].[模块名].[子模块名]...。 3.3 类、接口
类和接口的命名一般采用能确切反应该类、接口含义、功能等的名词,接口名可带I前缀或able、ible、er等后缀,类和接口名中所有单词首字母都必须大写。 3.4 字段 3.4.1 常量
采用完整的英文大写单词,在词与词之间用下划线连接,如:DEFAULT_VALUE 。
8
3.4.2 变量和参数
对不易清楚识别出该变量类型的变量应使用类型缩写作其前缀,如字符串使用strXXX,boolean使用isXXX,hasXXX等等。除第一个单词外其余单词首字母大写。 3.4.3 组件/部件
应采用完整的英文描述符命名组件(接口部件),遵循匈牙利命名法则。 3.4.4 集合
一个集合,应采用复数命名来表示集合中存放的对象类型。命名应采用完整的英文描述符,名字中所有非开头的单词的第一个字母应大写,适当使用集合缩写前缀。 3.4.5 其他
命名时应使用复数来表示它们代表多值。如:orderItems。 3.5 方法
3.5.1 方法的命名应采用完整的英文描述符,大小写混合使用:所有中间单词的第一个字母大写。方法名称的第一个单词常常采用一个有强烈动作色彩的动词。 取值类使用get前缀,设值类使用set前缀,判断类使用is(has)前缀;
3.5.2 方法参数建议顺序:(被操作者,操作内容,操作标志,其他?) 。 3.6 异常
异常类名由表示该异常类型的单词和Exception组成,如ActionException。异常实例一般使用e、ex等,在多个异常时使用该异常名或简写加E,Ex等组成。 3.7 数据库命名规范
3.7.1 所有数据库表名均以T开头,各单词之间使用“_”相连,各单词小写,如T_user_func_distribute;
3.7.2 字段名第一个字符必须是字母且为大写,各单词之间使用“_”相连,各单词小写。如Func_name;
3.7.3所有表名与字段名最多可以包含30 个字母数字字符,不能包含空格或特殊字符(如“!”),但可以包含“$”、“#”和“_”。
4 声明
4.1 基本原则
声明的基本原则是遵守各种程序设计语言规范,并遵从习惯用法。
4.2 包或命名空间
4.2.1 在导入包或使用命名空间时,应当完全限制代码所使用的类的名字,尽量少用通配符的方式;
4.2.2 如果导入一些通用包或命名空间,或用到一个包或命名空间下大部分类时,则可使用通配符方式;
4.2.3 同一包或命名空间中的类导入时,应当声明在一起,可由编辑器自动完成此功能; 4.2.4 重要的包或命名空间当添加注释。 4.3 类、接口
类、接口定义遵守各种程序设计语言规范。
4.4 方法
尽量限制成员函数的可见性。
4.5 字段
4.5.1 公共和保护的可见性应当尽量避免,所有的字段都建议置为私有,由获取和设置成员函数(Getter、Setter)访问;
4.5.2 不允许“隐藏”字段,即给局部变量所取的名字,不可与另一个更大范围内定义的字段的名字相同(或相似)。
9
5 类与接口
5.1 基本原则
5.1.1 类的划分粒度,不可太大,造成过于庞大的单个类,也不可太细,从而使类的继承太深。一般而言,一个类只做一件事;另一个原则是根据每个类的职责进行划分; 5.1.2 多使用设计模式,随时重构;
5.1.3 多个类中使用相同方法时将其方法提到一个接口中或使用抽象类,尽量提高重用度。
5.2 抽象类与接口
5.2.1 一般而言:接口定义行为,而抽象类定义属性和公有行为,注意两者间的取舍,在设计中,可由接口定义公用的行为,由一个抽象类来实现其部分或全部方法,以给子类提供统一的行为定义;
5.2.2 多使用接口,尽量做到面向接口的设计,以提高系统的可扩展性。 5.3 继承与组合
尽量使用组合来代替继承,一则可以使类的层次不至于过深,而且会使类与类,包与包或命名空间与命名空间之间的耦合度更小,更具可扩展性。
6 方法
方法只完成一项功能,在定义系统的公用接口外的方法应尽可能的缩小其可见性;避免定义静态方法。
7 表达式与语句
7.1 基本原则
7.1.1 表达式和语句应当清晰、简洁,易于阅读和理解,避免使用晦涩难懂的语句; 7.1.2 每行至多包含一条执行语句,过长应当换行; 7.1.3 避免在构造方法中执行大量耗时的初始化工作,应当将这种工作延迟到被使用时再创建相应资源,如果不可避免,则应当使用对象池和Cache等技术提高系统性能;
7.1.4 避免在一个语句中给多个变量赋相同的值; 7.1.5 尽量在声明局部变量的同时初始化。唯一不这么做的理由是变量的初始值依赖于某些先前发生的计算;
7.1.6 一般而言,在含有多种运算符的表达式中使用圆括号来避免运算符优先级问题。 7.2 控制语句
7.2.1 判断中如有常量,则应将常量置于判断式的右侧;
7.2.2 尽量不使用三目条件判断;
7.2.3 所有if语句必须用{}包括起来,即便是只有一句;
7.2.4 当有多个else分句时应当分别注明其条件,注意缩进并对齐; 7.2.5 过多的else分句当将其转成switch语句或使用子函数。
8 错误与异常
8.1 基本原则
8.1.1 对于经常发生的可预计事件不要采用异常; 8.1.2 不要使用异常实现控制结构;
8.1.3 若有finally子句,则不要在try块中使用return语句,也不要在finally中使用return语句。
8.2 异常的捕捉与处理
8.2.1 每个捕捉到的异常都应该调用输出语句,打印出异常信息,避免异常的湮没; 8.2.2 多个异常应分别捕捉并处理,避免使用一个单一的catch来处理。
9 文件目录组织
10
由于各模块所要求的文件目录结构不一样,有关内容见“第二部分 试题选编”中各章的说明。
11
第二部分 试题选编
第一章 程序设计试题
一、评分细则
程序设计试题从语法正确性、功能实现、代码规范性三个方面进行评分,评分细则见表1.1。
表1.1程序设计试题评分细则 评价项 语法正确性 功能实现 代 码 规 范 性 代码书写格式规范 类名、变量名、方法名命名规范 注释规范 分值 30分 60分 4分 4分 2分 评分细则 共3个子任务,每个子任务的语法部分分值为10分,共30分。程序能正常编译或解释,为满分;每有一处语法错误扣2分,扣完为止。 共3个子任务,每个子任务的逻辑实现部分的分值为20分,共60分。能完成各子任务的逻辑功能,则为满分;没有完成的功能点按照比例扣分。 代码缩进不规范扣1分;方法划分不规范扣1分;语句结构不规范扣1分;使用空行不规范扣1分。 类名命名不规范扣1分;变量名命名不规范扣1分;方法名命名不规范扣1分;类名、变量名、方法名没有实际意义扣1分。 整个项目没有注释扣2分;有注释,但注释不规范扣1分。 二、实施条件 测试所需的软硬件设备见表1.2。
表1.2 考点提供的主要设备及软件
序号 1 设备、软件名称 计算机 Microsoft Visual Studio 2008或2 3 以上 、NetBeans 6.8或以上、Eclipse 3.2或以上 MSDN 或者JDK1.6帮助文档中文版 帮助文档 参考人员可以使用帮助文档 软件开发 参考人员自选一种开发工具 规格/技术参数、用途 CPU奔腾4以上,内存1G以上,XP或Win7操作系统。 备注 用于软件开发和软件部署,每人一台。 三、答题文件提交要求 答案以“答题文件”的形式提交。请按以下要求创建答题文件夹和答题文件:
1 创建答题文件夹
建立以“所属学校名_身份证号_姓名_题号”命名的文件夹,存放所有答题文件,如:“湖南科技职业学院_340103***********_李维_A_1\\”文件夹。 2 创建答题文件
创建三个子文件夹task1、task2、task3,将三个任务的源代码和可执行文件保存至相应文件夹。即文件夹“湖南科技职业学院_340103123123121_李维_A_1\\task1\\”,用于保存任务1的源代码和可执行文件;文件夹“湖南科技职业学院_340103123123121_李维_A_1\\task2\\”,用于保存任务2的源代码和可执行文件;文件夹“湖南科技职业学院_340103123123121_李维_A_1\\task3\\”,用于保存任务3的源代码和可执行文件。 3 提交答题文件
将“所属学校名_身份证号_姓名_题号”文件夹打包,形成“所属学校名_身份证号_姓名_题号.RAR”文件,如:“湖南科技职业学院_340103***********_李维_A_1.rar”,将该文件按要求进行上传。
四、试题
【试题1】
任务一:输入某年某月某日,判断这一天是这一年的第几天。例如,2001年3月5日是这一年的第64天。
12
要求:使用分支结构语句实现。
任务二:输出阶梯形式的9*9乘法口诀表,如图1.1所示。 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 图1.1 阶梯形式的9*9乘法口诀表
要求:使用循环结构语句实现。
任务三:编程实现判断一个整数是否为“水仙花数”。所谓“水仙花数”是指一个三位的整数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=13+53+33。
要求:用带有一个输入参数的函数(或方法)实现,返回值类型为布尔类型。 【试题2】
任务一:已知字符串数组A,包含初始数据:a1,a2,a3,a4,a5;字符串数组B,包含初始数据:b1,b2,b3,b4,b5。编写程序将数组A、B的每一对应数据项相连接,然后存入字符串数组C,并输出数组C。输出结果为:a1b1,a2b2,a3b3,a4b4,a5b5。
例如:数组A的值为{“Hello ” , “Hello ” , “Hello ” , “Hello ” , “Hello ” },数组B的值为{“Jack” , “Tom” , “Lee” , “John” , “Alisa” },则输出结果为{“Hello Jack” , “Hello Tom” , “Hello Lee” , “Hello John” , “Hello Alisa” }。
要求:
? 定义2个字符串数组A、B,用于存储初始数据。定义数组C,用于输出结果。 ? 使用循环将数组A、B的对应项相连接,结果存入数组C。(不要边连接边输出) ? 使用循环将数组C中的值按顺序输出。
任务二:编写函数(或方法):将某已知数组的奇数项组合成一个新的数组。在主函数(或主方法)中调用该函数(或方法),并循环输出新数组的内容。
要求:
? 在主函数(或主方法)中定义一个已初始化值的数组,该数组中的值为:
1,2,3,4,5,6,7,8,9,10,11。
? 编写函数(或方法),函数(或方法)名为:OddArray;它有一个输入参数,数据类型
为数组;它的返回值类型为数组。它实现如下功能:将参数数组中的奇数项存入结果数组,并返回该数组。
? 在主函数(或主方法)中定义一个新的数组,用于获取OddArray的返回值,然后显
示该返回值(显示结果应为1,3,5,7,9,11)。
任务三:请完成以下编程工作:①定义学生类,其包含2个属性:学号,姓名。②定义大学生类,该类继承于学生类,并新增一个属性:专业。③为大学生类实例化一个对象,并给这个大学生对象的所有属性赋值。
13
要求:
? 所有属性的数据类型均为字符串类型。 ? 大学生类应该继承于学生类。
? 在主函数(或主方法)中实例化大学生对象,并给该对象的每个属性赋值。 【试题3】
任务一:已知某个班有30个学生,学习5门课程,已知所有学生的各科成绩。请编写程序:分别计算每个学生的平均成绩,并输出。
要求:
? 定义一个二维数组A,用于存放30个学生的5门成绩。定义一个一维数组B,用
于存放每个学生的5门课程的平均成绩。
? 使用二重循环,将每个学生的成绩输入到二维数组A中。
? 使用二重循环,对已经存在于二维数组A中的值进行平均分计算,将结果保存到
一维数组B中。
? 使用循环输出一维数组B(即平均分)的值。
任务二:利用递归方法求5!
用递归方式求出阶乘的值。递归的方式为:
5!=4!*5 4!=3!*4 3!=2!*3 2!=1!*2 1!=1
即要求出5!,先求出4!;要求出4!,先求出3! ? 以此类推。
要求:
? 定义一个函数(或方法),用于求阶乘的值。
? 在主函数(或主方法)中调用该递归函数(或方法),求出5的阶乘,并输出结果。
任务三:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13 ? 求出这个数列的前20项之和。
要求:利用循环计算该数列的和。注意分子分母的变化规律。 提示:
a1=2, b1=1, c1=a1/b1; a2=a1+b1, b2=a1, c2=a2/b2; a3=a2+b2, b3=a2, c3=a3/b3; …
s = c1+c2+…+c20;
s即为分数序列:2/1,3/2,5/3,8/5,13/8,21/13 ? 的前20项之和。 【试题4】
任务一:计算算式1+21+22+23+…+2n 的值。 要求:n由键盘输入,且2 ≤ n ≤10。
任务二:输入一批学生成绩,以-1作为结束标记 。统计这批学生中,不及格(score<60)、及格(60<=score<70)、中等(70<=score<80)、良好(80<=score<90)、优秀(90<=score<=100)的人数。
14
要求:使用分支、循环结构语句实现。
任务三:创建5个学生对象,并赋给一个学生数组,每个学生有以下属性:学号、姓名、年龄,请按顺序实现以下任务:
子任务1:将学生按学号排序输出。 子任务2:给所有学生年龄加1。
子任务3:在实现子任务2的基础上,统计大于20岁的学生人数。 【试题5】
任务一:编写一个程序找出100~1000之间的所有姐妹素数。
注:姐妹素数是指相邻两个奇数均为素数。//奇数是%2==1,素数是只能被一和自己整除;
要求:使用循环结构语句实现。
任务二:利用求n!的方法计算 2!+4!+5!的值。n!表示n的阶乘,例如3!=3×2×1=6,5!=5×4×3×2×1=120。
要求:分别利用递归和非递归方法实现求n!。
任务三:编写程序实现:
①定义一个抽象类Shape,它有一个计算面积的抽象方法calArea。
②定义一个三角形类Triangle。它有两个属性n、m,分别表示三角形的底和高。另外,它必须继承于Shape类,并实现calArea方法来计算三角形的面积。
③定义一个矩形类Rectangle。它有两个属性n、m,分别表示矩形的长和宽。另外,它必须继承于Shape类,并实现calArea方法来计算矩形的面积。
④定义一个圆类Circle。它有一个属性n,表示圆形的半径。另外,它必须继承于Shape类,并实现calArea方法来计算圆形的面积。
⑤分别创建一个三角形对象、一个矩形对象、一个圆形对象,然后将它们存入到一个数组中,最后将数组中各类图形的面积输出到屏幕上。 【试题6】
任务一:编写一个应用程序,计算并输出一维数组(9.8,12,45,67,23,1.98,2.55,45)中的最大值、最小值和平均值。
任务二:将字符串“FEDCBA”存放到数组中,调用for循环读出数组数据显示在屏幕上,同时将结果以文件流形式写入考生文件夹下,文件名为WriteArr.txt。
要求:使用循环结构语句实现,直接输出不计分。
任务三:某国的个人所得税草案规定,个税的起征点为3000元,分成7级,税率情况见表1.3,从键盘上输入月工资,计算应交纳的个人所得税。
表1.3税率情况表
级数 1 2 3 4 5
全月应纳税所得额 不超过1500元的(即3000-4500之间) 超过1500元至4500元的部分 超过4500元至9000元的部分 超过9000元至35000元的部分 超过35000元至55000元的部分 15
5 10 20 25 30 税率 (%)
6 7 超过55000元至80000元的部分 超过80000元的部分 35 45 注意:超出部分按所在税的级数计算,如:一个人的月收入为6000,应交个人所得税为:1500*0.05 +((6000-3000)-1500)*0.1=225
请在键盘上输入一个人的月收入,编程实现计算该公民所要交的税。 例如:输入“6000”,则输出“你要交的税为:225”。 【试题7】
任务一:编写一个程序,对用户输入的任意一组字符如{3,1,4,7,2,1,1,2,2},输出其中出现次数最多的字符,并显示其出现次数。如果有多个字符出现次数均为最大且相等,则输出最先出现的那个字符和它出现的次数。例如,上面输入的字符集合中,“1”和“2”都出现了3次,均为最大出现次数,因为“1”先出现,则输出字符“1”和它出现的次数3次。
要求:使用分支、循环结构语句实现。
任务二:求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,然后将结果s输出。例如若n为1000时,则s=153.909064。
要求:使用循环语句结构实现。 ②n由键盘输入,且100 ≤ n ≤10000。
任务三:输入整数a,输出结果s,其中s与a的关系是:s=a+aa+aaa+aaaa+aa...a,最后为a个a。例如a=2时,s=2+22=24。
要求:①使用循环结构语句实现。②a由键盘输入,且2 ≤ a ≤9。 【试题8】
任务一:请编写函数(或方法)fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数个位和十位上,b数的十位和个位数依次放在c数的百位和千位上。
例如,当a=16、b=35时,则c=5361。
其中,a、b为函数(或方法)fun的输入参数,c为函数(或方法)fun的返回值。
任务二:孙悟空在大闹蟠桃园的时候,第一天吃掉了所有桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第N天准备吃的时候只剩下一个桃子。这下可把神仙们心疼坏了,请帮忙计算一下,第一天开始吃的时候桃园一共有多少个桃子。
要求:①使用循环结构语句实现。②整数N由键盘输入,且2 ≤ N ≤10。
任务三:输入一个5位正整数,输出它是不是回文数。回文数是这样一种数,它的逆序数和它本身相等。例如,12321的逆序数是12321,和它本身相等,所以它是回文数。又例如25128的逆序数是82152,所以它不是回文数。
要求:使用分支或循环结构语句实现。 【试题9】
任务一:一个球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。求它在第十次落地时,共经过多少米?第十次反弹多高?
要求:使用循环结构语句实现。
任务二:Lee的老家住在工业区,日耗电量非常大。
16
今年7月,传来了不幸的消息,政府要在7、8月对该区进行拉闸限电。政府决定从7月1日起停电,然后隔一天到7月3日再停电,再隔两天到7月6日停电,依次下去,每次都比上一次长一天。
Lee想知道自己到家后到底要经历多少天倒霉的停电。请编写程序帮他算一算。
要求:从键盘输入放假日期、开学日期,日期限定在7、8月份,且开学日期大于放假日期,然后在屏幕上输出停电天数。
提示:可以用数组标记停电的日期。
任务三:编写程序实现:从键盘输入正整数s,从低位开始取出s中的奇数位上的数,依次构成一个新数t,高位仍放在高位,低位仍放在低位,最后在屏幕上输出t。例如,当s中的数为7654321时,t中的数为7531。
要求:使用循环结构语句实现。 【试题10】
任务一:从键盘上输入一个年份值和一个月份值,输出该月的天数。(说明:一年有12个月,大月的天数是31,小月的天数是30。2月的天数比较特殊,遇到闰年是29天,否则为28天。例如,输入2011、3,则输出31天。)
要求:使用分支结构语句实现。
任务二:假设一张足够大的纸,纸张的厚度为0.5毫米。请问对折多少次以后,可以达到珠穆朗玛峰的高度(最新数据:8844.43米)。请编写程序输出对折次数。
要求:使用循环结构语句实现,直接输出结果不计分。
任务三:编写程序输出2~99之间的同构数。同构数是指这个数为该数平方的尾数,例如5的平方为25,6的平方为36,25的平方为625,则5、6、25都为同构数。
要求:调用带有一个输入参数的函数(或方法)实现,此函数(或方法)用于判断某个整数是否为同构数,输入参数为一个整型参数,返回值为布尔型。 【试题11】
任务一:某班同学上体育课,从1开始报数,共38人,老师要求按1、2、3重复报数,报数为1的同学往前走一步,而报数为2的同学往后退一步,试分别将往前走一步和往后退一步的同学的序号打印出来。
要求:用循环语句实现,直接输出结果不计分。
任务二:一个人很倒霉,不小心打碎了一位妇女的一篮子鸡蛋。为了赔偿便询问篮子里有多少鸡蛋。那妇女说,她也不清楚,只记得每次拿两个则剩一个,每次拿3个则剩2个,每次拿5个则剩4个,若每个鸡蛋1元,请你帮忙编程,计算最少应赔多少钱?
要求:用循环语句实现,直接打印出结果不给分。
任务三:寻找最大数经常在计算机应用程序中使用。例如:确定销售竞赛优胜者的程序要输入每个销售员的销售量,销量最大的员工为销售竞赛的优胜者,编写一个程序:从键盘输入10个数,表示10位员工的销售量,打印出其中最大的数。 【试题12】
任务一:从键盘接收一个整数N,统计出1~N之间能被7整除的整数的个数,以及这些能被7整除的数的和。
屏幕提示样例:
17
请输入一个整数:20
1~20之间能被7整除的数的个数:2 1~20之间能被7整除的所有数之和:21
要求:整数N由键盘输入,且2 ≤ N ≤1000。
任务二:从键盘输入一个整数N,打印出有N*2-1行的菱形。 例如输入整数4,则屏幕输出如下菱形。
要求:①使用循环结构语句实现,直接输出不计分。②整数N由键盘输入,且2 ≤ N ≤10。
任务三:编程实现判断一个整数是否为素数。所谓素数是一个大于1的正整数,除了1和它本身,该数不能被其它的正整数整除。
要求:用带有一个输入参数的函数(或方法)实现,返回值类型为布尔类型。 【试题13】
任务一:根据输入的成绩分数,输出相应的等级。“学习成绩>=90分”的同学用A表示,“60<=学习成绩<90”的同学用B表示,60分以下的用C表示。
要求:使用分支结构语句实现。
任务二:输入两个正整数m和n,输出其最大公约数和最小公倍数。 要求:综合使用分支、循环结构语句实现。
任务三:使用选择排序法对数组中的整数按升序进行排序,如下所示: 原始数组:a[ ]={1,8,9,6,4,2,5,0,7,3} 排序后: a[ ]={0,1,2,3,4,5,6,7,8,9}
要求:综合使用分支、循环结构语句实现,直接输出结果不计分。 【试题14】
任务一:输入三个整数x、y、z,请把这三个数由小到大输出。 要求:使用分支结构语句实现。
任务二:输入一行字符,输出其中的字母的个数。例如输入“Et2f5F218”,输出结果为4。
要求:综合使用分支、循环结构语句实现。
任务三:输入整数a和n,输出结果s,其中s与a、n的关系是:s=a+aa+aaa+aaaa+aa...a,最后为n个a。例如a=2、n=3时,s=2+22+222=246。
要求:①使用循环结构语句实现。②a由键盘输入,且2 ≤ a ≤9。③n由键盘输入,且2 ≤ n ≤9。 【试题15】
18
任务一:输出100~999之间的所有素数。所谓素数是一个大于1的正整数,除了1和它本身,该数不能被其它的正整数整除。
要求:综合使用分支、循环结构语句实现。
任务二:输入一行字符,输出其中的数字的个数。例如输入“fwEt2f44F2k8”,输出结果为5。
要求:综合使用分支、循环结构语句实现。
任务三:当n=5,求表达式为: 1/1!+1/2!+1/3!+?+1/N!的值,保留4 位小数位。其中N!表示N的阶乘,例如3!=3×2×1=6,5!=5×4×3×2×1=120。 【试题16】
任务一:使用循环语句打印出如下图案。 * *** ***** ******* 要求:使用循环结构语句实现。
任务二:输出1+2!+3!+...+10!的结果。其中n!表示n的阶乘,例如3!=3×2×1=6,5!=5×4×3×2×1=120。
要求:使用循环结构语句实现。
任务三:输入一个不多于5位的正整数,要求:1.输出它是几位数;2.逆序打印出各位数字。例如,输入256,则先输出3,再输出652。
要求:使用分支或循环结构语句实现。 【试题17】
任务一:使用循环语句打印出如下图案。 ******* ***** *** *
要求:使用循环结构语句实现。
任务二:编写程序实现:
①定义一个大小为10的整形数组a;
②从键盘输入10个整数,放置到数组a中; ③输出数组a中的最大值。
要求:使用数组、循环结构语句实现。
任务三:请编写函数(或方法)fun,其功能是:计算正整数n的各位上的数字之积,将结果放到c中。
例如,n=256,则c=2×5×6=60;n=50,则c=5×0=0;
其中,n为函数(或方法)fun的输入参数,c为函数(或方法)fun的返回值。 【试题18】
19
任务一:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?要求输出所有可能的三位数。
要求:使用循环结构语句实现。
任务二:编写程序实现:
①定义一个大小为10的整型数组a;
②从键盘输入10个整数,放置到数组a中; ③将数组a中的元素从小到大排序; ④输出排序后数组a的所有元素值。 要求:使用数组、循环结构语句实现。
任务三:编写函数(或方法)实现:根据指定的n,返回相应的斐波纳契数列。 说明:斐波纳契数列如下所示:0,1,1,2,3,5,8,13,21?
即从0和1开始,其后的任何一个斐波纳契数都是它前面两个数之和。例如n=6,则返回数列0,1,1,2,3,5 。
要求:使用函数(或方法)实现,原型为int[] getFibonacciSeries(int n) 【试题19】
任务一:编写程序实现:商店卖西瓜,20斤以上的每斤0.85元;重于15斤轻于等于20斤的,每斤0.90元;重于10斤轻于等于15斤的,每斤0.95元;重于5斤轻于等于10斤的,每斤1.00元;轻于或等于5斤的,每斤1.05元。输入西瓜的重量和顾客所付钱数,输出应付货款和应找钱数。
要求:使用分支结构语句实现。
任务二:学校有近千名学生,在操场上排队,5人一行余2人,7人一行余3人,3人一行余1人,编写一个程序求该校的学生人数。
要求:使用分支、循环结构语句实现,直接输出结果不计分。
任务三:已知xyz+yzz=532,其中x、y、z均为一位数,编写一个程序求出x、y、z分别代表什么数字。
要求:使用分支、循环结构语句实现,直接输出结果不计分。 【试题20】
任务一:编写函数(或方法)实现:数组A是函数(或方法)的输入参数,将数组A中的数据元素序列逆置后存储到数组B中,然后将数组B做为函数(或方法)的返回值返回。所谓逆置是把(a0, a1, ?, an-1)变为(an-1, ?, a1, a0)。
要求:使用函数(或方法)实现,原型为int[] niZi(int[] A)
任务二:编写一个程序求出200~300之间的数,且满足条件:它们三个数字之积为42,三个数字之和为12。
要求:使用分支、循环结构语句实现,直接输出结果不计分。
任务三:小明今年12岁,他母亲比他大20岁。编写一个程序计算出他母亲的年龄在几年后是他年龄的2倍,那时他们两人的年龄各多少?
要求:使用分支、循环结构语句实现,直接输出结果不计分。 【试题21】
20
任务二:某电视机厂每天生产电视500台,在质量评比中,每生产一台合格电视机记5分,每生产一台不合格电视机扣18分。如果四天得了9931分,编程计算这四天生产的合格电视机的台数,并输出。
要求: 用循环语句实现
任务三: 古希腊数学家毕达哥拉斯在自然数研究中发现,220的所有真约数(即不是自身的约数)之和为:1+2+4+5+10+11+20+22+44+55+110=284。而284的所有真约数为1、2、4、71、 142,加起来恰好为220。人们对这样的数感到很惊奇,并称之为亲和数。一般地讲,如果两个数中任何一个数都是另一个数的真约数之和,则这两个数就是亲和数。你的任务就编写一个程序,判断给定的两个数是否是亲和数。
要求:用循环语句实现
26
第二章 数据库应用开发试题
一、评分细则
数据库应用开发试题从数据库创建、数据表创建、约束及关系创建、数据访问、代码规范性五个方面进行评分,评分细则见表2.1。
表2.1数据库应用开发试题评分细则 评价项 数据库创建 数据表创建 约束及关系创建 数据访问 数据库名命名规范 代码 规范 数据表名命名规范 字段名命名规范 分值 10分 25分 20分 30分 2分 5分 8分 没有成功创建数据库,扣5-8分。 数据表创建不成功每一项扣3-5分,字段创建不符合要求每一项扣2-3分。 约束创建不成功每一项扣3-5分,关系创建不符合要求每一项扣5分。 没有正确写出SQL语句每一项扣4-5分。 数据库名命名不规范扣2分。 数据表命名不规范每张表扣1分。 字段名命名不规范每项扣0.5分,扣完为止。 评分细则 二、实施条件
测试所需的软硬件设备见表2.2
表2.2 考点提供的主要设备及软件 序号 1 2 3 设备、软件名称 计算机 Office SQL Server 2005或以上、Oracle 10g或以上、MySQL 5.1或以上 数据库管理系统 参考人员任选一种数据库管理系统 规格/技术参数、用途 CPU奔腾4以上,内存1G以上,XP操作系统。 编写文档 备注 用于软件开发和软件部署,每人一台。 三、答题文件提交要求 答案以“答题文件”的形式提交。请按以下要求创建答题文件夹和答题文件:
1 创建答题文件夹
创建以“所属学校名_身份证号_姓名_题号”命名的文件夹,存放所有答题文件,例如:“湖南科技职业学院_340103***********_李维_A_1\\” 2 创建答题文件
2.1 数据库备份文件
创建bak子文件夹,如: “湖南科技职业学院_340103*******_李维_A_1\\bak\\”,存放数据库备份文件,用于阅卷时,还原运行环境。无数据库备份文件,则扣除相应的技术分。 2.2 数据库查询文件
创建query子文件夹,如: “湖南科技职业学院_340103*******_李维_A_1\\query\\”,存放数据库查询文件,要求命名为:“数据库名.sql”或者“数据库名.txt”。 3 提交答题文件
将“所属学校名_身份证号_姓名_题号”文件夹打包,形成“所属学校名_身份证号_姓名_题号.RAR”文件,如:“湖南科技职业学院_340103***********_李维_A_1.rar”,将该文件按要求进行上传。
四、试题
【试题1】 1任 务
你作为《建设工程监管信息系统》项目开发组的程序员,请按要求完成:
27
? 数据库的创建; ? 数据表的创建; ? 数据的操作。 2要 求
《系统权限管理》子模块的E-R图如图2.1 所示,逻辑数据模型如图2.2 所示,物理数据模型如图2.3所示,数据表字段名定义见表2.3。请按以下设计完成数据库创建、数据表创建和数据操作任务:
所属部门用户密码用户姓名密码锁号用户ID操作员基本信息备注角色名称功能角色IDM功能名称功能ID备注M备注联系电话联系地址手机号拥有N功能角色定义一级功能权限定义N拥有 图2.1 E-R图
图2.2 逻辑数据模型
28
图2.3 物理数据原型 表2.3 字段名定义表
字段名 func_id func_name func_role_id func_role_name user_id user_name reserve 字段说明 功能id 功能名称 功能角色id 角色名称 用户id 用户姓名 备注 字段名 user_passwd dept_id telephone address handphone usb_no 字段说明 用户密码 所属部门 联系电话 联系地址 手机号 密码锁号 3 数据库操作 3.1 创建数据库
创建数据库ConstructionDB。 3.2创建数据表
根据图2.2和表2.3,创建数据表T_user、T_func_item、T_func_role_def及两个关系表(关系表的名字自拟)。 3.3创建数据表间的关系
根据物理数据原型,创建数据关系表。 3.4数据操作
用SQL语句完成如下操作:
? 在T_user表插入数据:“id01,刘德华,123,KBB,5678900,湖南长沙,13899005678,ldh123,admin”;
? 查询出所属部门为“KBB”的操作员的基本信息; ? 查询出姓名为“刘德华”的操作员具有哪些功能权限; ? 查询出“投标责任人”角色所拥有的功能;
29
? 创建视图查询操作员的姓名,密码和所属部门;
? 创建存储过程,查询指定操作员所具有的功能权限。 【试题2】
1 任 务
你作为《建设工程监管信息系统》项目开发组的程序员,请按要求完成: ? 数据库的创建; ? 数据表的创建;
? 数据表相关约束的创建。 2 要 求
《流程管理》子模块的E-R图如图2.4 所示,逻辑数据模型如图2.5所示,物理数据模型如图2.6所示,数据表字段名定义见表2.4。请按设计要求完成数据库创建、数据表创建和数据表约束的创建任务:
招标范围代号招标方式代号密码锁号标段名称标段编号工程编号标段情况项目选项代号项目性质代号发包方式流程类别号评分类别号完成标志强制中断标志备注流程类别名称流程类别号流程步骤描述N时限流程步骤名称二级菜单链接流程步骤ID流程步骤定义备注N属于1流程类别招标方式代号项目选项代号备注M拥有
图2.4 E-R图
图2.5 逻辑数据模型
30
图2.6 物理数据原型 表2.4 字段名定义表
字段名 step_no step_name step_des limit_time url project_id sub_pro_id sub_pro_name usb_no in_method_id in_scope_id 流程步骤ID 流程步骤名称 流程步骤描述 时限 二级菜单链接 工程编号 标段编号 标段名称(招标项目名称) 密码锁号 招标方式代号 招标范围代号 字段说明 字段名 in_choice_id proj_type_id engi_type_id pack_type grade_type_id flag_done flag_forcebreak flow_type_id serial_no flow_type_name reserve 字段说明 项目选项代号 项目性质代号 工程性质代号 发包方式 评分类别号 完成标志 强制中断标志 流程类别号 流程顺序号 流程类别名称 备注 3 数据库操作 3.1 创建数据库
创建数据库ConstructionDB。 3.2 创建数据表
根据图2.5和表2.4,创建数据表T_flow_step_def、T_flow_type、T_sub_project。 3.3 创建数据表间的关系
根据物理数据原型,创建数据关系表。 3.4 约束设计
? 标段编号字段默认为 0;
? 招标方式代号只能为1或者2,其中1表示“公开”,2表示“邀请”;
? 项目选项代号只能为1、2、3之一,其中1表示“招标”,2表示“直接发包”;
3表示“违补”;
? 发包方式字段默认为0; ? 完成标志字段默认为0; ? 强制中断标志字段默认为0。
31
3.5 数据操作
用SQL语句完成如下操作:
? 在T_flow_step_def表中插入数据:“1,中标公示,公示中标情况,30,
http://localhost:8080/stepmenu.jsp,在规定时间内如有异议则请联系我们”; ? 查询出招标方式代号为“1”的所有标段情况信息; ? 查询出所有完成标志为“0”的标段情况信息; ? 查询出流程类别名称为“开标”的所有标段情况;
? 创建视图查询所有的流程的步骤名称、流程步骤描述及流程类别名称。 【试题3】
1任 务
你作为《银行信贷管理系统》项目开发组的程序员,请按要求完成: ? 数据库的创建; ? 数据表的创建; ? 数据的操作。 2要 求
《银行信贷管理系统》的E-R图如图2.7 所示,逻辑数据模型、物理数据模型如图2.8和图2.9所示。数据表字段名定义见表2.5。请按以下设计完成数据库创建、数据表创建和数据操作任务:
图2.7 E-R图
32
图2.8 逻辑数据模型
图2.9 物理数据模型 表2.5 字段名定义表
字段名 t_customer_info t_cust_credit_level t_his_cust_credit_level cust_id cust_name legal_name 字段说明 客户基本信息表 客户信用等级表 客户信用等级历史表 客户编号 客户名称 法人代表 字段名 reg_address post_code id credit_level begin_date end_date 字段说明 注册地址 邮政编码 序号 信用级别 评级有效起始日期 评级有效中止日期 3 数据库操作 3.1 创建数据库
创建数据库BankCreditLoanDB。 3.2 创建数据表
根据图2.8和表2.5,创建数据表T_customer_info、T_cust_credit_level、T_his_cust_credit_level。其中,客户信用等级历史表中的序号为自动增长字段。
3.3 创建数据表间的关系及约束
? 为表设置主键,主键命名为“pk_<表名>_<主键标识>” 。
? 根据逻辑模型,创建数据表之间的关系,关系命名为“fk_<表名>_<主表名>_<外键标识>” 。
? 将信用级别字段默认值设置为“01”。
33
3.4 数据操作
用SQL语句完成如下操作:
? 根据对逻辑数据模型的理解,分别向三个表中插入一条测试数据;
? 查询客户名称为“XX公司”的信用等级(说明:“XX公司”为插入测试数据中的公司名称);
? 创建视图V_his_cust_credit_level用于查询客户的信用级别历史记录,视图列名显示为:客户名称、信用级别、评级有效起始日期、评级有效中止日期;
? 创建带输入参数的存储过程P_cust_credit_level,根据输入参数更新客户信用等级表,并将更新前的记录插入到客户信用等级历史表。 【试题4】
1任 务
你作为《银行信贷管理系统》项目开发组的程序员,请按要求完成: ? 数据库的创建; ? 数据表的创建; ? 数据的操作。 2要 求
《银行信贷管理系统》的E-R图如图2.10 所示,逻辑数据模型、物理数据模型如图2.11和图2.12所示。数据表字段名定义见表2.6。请按以下设计完成数据库创建、数据表创建和数据操作任务:
法人代表客户名称邮政编码客户编号客户基本信息表押物名称借据号押物数量鉴定日期注册地址1客户经理级别客户经理编号工作电话质押N质押信息台帐M客户经理信息表1经手
图2.10 E-R图
34
图2.11逻辑数据模型
图2.12 物理数据模型 表2.6 字段名定义表
字段名 agency_id agency_name agency_level cust_id cust_name legal_name agency_phone 字段说明 客户经理编号 客户经理姓名 客户经理级别 客户编号 客户名称 法人代表 工作电话 字段名 reg_address post_code borrow_id pawn_goods_name pawn_goods_num contract_date 字段说明 注册地址 邮政编码 借据号 押物名称 押物数量 签订日期 3数据库操作 3.1 创建数据库
创建数据库BankCreditLoanDB。 3.2 创建数据表
根据图2.11和表2.6,创建数据表T_customer_info、T_impawn_info、T_agency_info。 3.3 创建数据表间的关系及约束
? 为表设置主键,主键命名为“pk_<表名>_<主键标识> ”;
? 根据逻辑数据模型,创建数据表之间的关系,关系命名为“fk_<表名>_<主表名>_<外键标识>”;
? 要求邮政编码由6位数字组成。 3.4 数据操作
用SQL语句完成如下操作:
35
? 根据你对逻辑数据模型的理解,分别向三个表中插入一条测试数据,其中客户经理编号为“001”;
? 查询 “XX公司”质押的物品及数量(说明:“XX公司”为插入测试数据中的公司名称);
? 统计每个客户经理所经手的质押业务数,查询结果集应包含字段:客户经理姓名、质押业务数;
? 创建存储过程P_customer_info,删除指定客户编号的客户基本信息,同时也删除该客户在质押信息台帐中的所有记录。 【试题5】
1 任 务
你作为《某电子商务网站》项目开发组的程序员,请按要求完成: ? 数据库的创建; ? 数据表的创建; ? 数据的操作。 2 要 求
《电子商务网站》的E-R图如图2.13 所示,逻辑数据模型如图2.14 所示,物理数据模型如图2.15所示,数据表字段名定义见表2.7。请按以下设计完成数据库创建、数据表创建和数据操作任务:
价格产品名称录入日期产品编号评论编号M产品录入日期1拥有拥有类别IDM产品评论评论内容产品编号产品描述类别名称录入日期1类别 图2.13 E-R图
36
图2.14 逻辑数据模型图
图2.15 物理数据模型图 表2.7字段名定义表
字段名 category_id(标识列) category_name register_date product_id category_id product_name price 字段说明 产品类别ID 产品类别名称 默认值为当前录入时间 产品编号 产品类别ID 产品名称 产品价格 字段名 remark register_date review_id(标识列) product_id(标识列) review register_date 字段说明 产品描述 默认值为当前录入时间 评论编号 产品编号 评论内容 默认值为当前录入时间 3 数据库操作 3.1 创建数据库
创建数据库ProductDB。 3.2 创建数据表
根据图2.14和表2.7,创建数据表T_category、T_product_review、T_product,其中产品表的产品ID(product_id)列设置为标识列,自动从1开始增长。
3.3 创建数据表之间的关系
? 创建主键(三个表均设置);
? 产品价格列(Price)只能输入1-1000之间的数;
? 录入时间列(Register_date)默认值为当前录入时间(三个表均设置)。
37
3.4 数据查询
用SQL语句查询出如下数据:
? 在三个表中录入3条测试数据; ? 查询某类别下所有产品;
? 查询产品价格在300-500元之间的产品;
? 查询录入日期在2011年3月到6月之间的产品数据; ? 查询产品价格在90-200元之间的所有评论; ? 查询评论数在1-3条的所有产品。 【试题6】
1任务
你作为《学生食堂信息管理系统》项目开发组的程序员,请按要求完成: ? 数据库的创建; ? 数据表的创建; ? 数据的操作。 2要求
学生食堂信息管理系统的E-R图如图2.16 所示,逻辑数据模型如图2.17 所示,物理数据模型如图2.18所示,数据表字段名定义见表2.8。请按以下设计完成数据库创建、数据表创建和数据操作任务:
学生姓名学生学号饭卡生成时间饭卡编号充值余额1饭卡充值编号1拥有M充值充值时间饭卡余额拥有消费编号饭卡编号消费金额消费时间M消费 图2.16 E-R图
38
图2.17 逻辑数据模型图
图2.18 物理数据模型图
表2.8字段名定义表
字段名 card_id(标识列) student_id student_name curr_money register_date add_id(标识列) card_id 饭卡编号 学生学号 学生姓名 饭卡余额(初始值为0) 字段说明 字段名 the_money register_date consume_id(标识列) card_id 字段说明 某次充值金额 充值时间;默认值为当前录入时间 消费编号 饭卡编号 本次消费金额 消费时间;默认值为当前录入时间 饭卡生成时间;默认值为当前录入时间 the_money 充值编号 饭卡编号 register_date 3 数据库操作
3.1 创建数据库
创建数据库CardDB。 3.2 创建数据表
根据图2.17和表2.8,创建数据表T_card、T_add_money、T_consume_money,其中将饭卡表的饭卡编号 (card_id)列设置为标识列,自动从1开始增长。
3.3 创建数据表之间的关系
? 创建表主键(三个表均设置);
39
? 充值金额列(the_money)只能输入50-200之间的数;
? 录入时间列(register_date)默认值为当前录入时间(三个表均设置)。 3.4 数据查询
用SQL语句查询出如下数据:
? 在每个表中插入1条测试数据。 ? 查询所有饭卡信息;
? 查询所有饭卡的余额之和;
? 查询某日所有饭卡的充值金额之和(比如2011年6月2号总共充值金额是多少元); ? 创建存储过程,根据某个学生的饭卡ID上的余额,判断该饭卡是否能进行一定金额的消费。(比如饭卡ID号为1的饭卡余额只有3.5元,则该饭卡不能购买5.5元的中餐)。存储过程输入参数为饭卡ID号,本次消费金额,返回值为true 或者false。 【试题7】
1 任 务 你作为《建设用地信息系统》项目基础数据设置子模块开发组的程序员,请按要求完成: ? 数据库的创建; ? 数据表的创建; ? 数据的操作。 2 要 求
《建设用地信息系统》基础数据设置子模块的E-R图如图2.19所示,逻辑数据模型如图2.20 所示,物理数据模型如图2.21所示,数据表字段名定义见表2.9。请按以下设计完成数据库创建、数据表创建和数据操作任务:
项目类型项目编号项目名称审批单位用地项目ID用地基本信息行政区ID行政区编号直属部门行政区面积行政区ID从属行政基本信息备注行政区名称耕地面积项目性质农用地总面积 图2.19 E-R图
图2.20 逻辑数据模型
40
T_goodsGood_idSupp_codeGoods_nameGoods_priceGoods_companyGoods_addressintegerVariable characters(20)Variable characters(50)Decimal(10,2)Variable characters(50)Variable characters(50)
T_goodsGoods_idSupp_codeGoods_nameGoods_priceGoods_addressbigint
字段名 goods_id(标识列) goods_name goods_price supp_code goods_adress order_id goods_id 商品编号 商品名称 商品价格 供应商编号 生产地 订单号码 商品编号 字段说明 quantity total_price supp_code supp_name 字段名 字段说明 订购数量 总价 供应商编号 供应商名称 表2.13 商品信息表(T_goods样本数据) goods_id 1000 1001 1002 goods_name 盛唐笔记本 博士笔记本 惠普笔记本 goods_price 5600 6700 7800 supp_code 430102 540199 440708 goods_adress 广东 台湾 广东 46
表2.14 订单信息表 (T_orders样本数据)
order_id 11070232 11060343 11050322 1000 1002 1001 goods_id 3 1 2 quantity total_price 16800 7800 13400 表2.15 供应商表(T_suppliers样本数据)
supp_code 430102 540199 440708 盛唐科技 博士科技 惠普科技 supp_name 3 数据库操作 3.1 创建数据库 创建数据库Stores。 3.2 创建数据表
根据图2.29和表2.12,创建数据表T_goods、T_orders 、T_suppliers。 3.3 创建数据表间的关系
根据物理数据原型,创建数据表之间的关系。 3.4 数据操作
用SQL语句完成如下操作:
? 在3个表中分别插入表2.13-2.15中的样本数据; ? 将商品名为“惠普笔记本”的价格下调10%; ? 查询出商品编号为“1002”的总的订购数量;
? 查询出商品名称为“惠普笔记本”的商品的订购数量、总价;
? 创建存储过程P_stored_proc,指定供应商代码,查询该供应商的订单信息; ? 查询所有名称包含“科技”的供应商编号、供应商名称。 【试题11】
1 任 务
你作为《码头中心船货申报系统》项目开发组的程序员,请按要求完成: ? 数据库的创建; ? 数据表的创建; ? 数据的操作。 2 要 求
《危险品管理》子模块的E-R图如图2.31所示,逻辑数据模型如图2.32所示,物理数据模型如图2.33所示,数据表字段名定义见表2.16。请按以下设计完成数据库创建、数据表创建和数据操作任务:
47
收费单位名称收费单位电话发证地址收费单位地址经营单位ID数量经营地址收费单位编号收费单位M收费证书ID有效日期危险品经营证M发证部门拥有经营单位简称M经营单位编号经营单位地址是否有效证书版本经营单位类型经营单位N发证日期
图2.31 E-R图
(收费单位)T_fee_unit收费单位ID
48
T_business_unit经营单位IDchar(8)
字段名 businessunit_code short_name address type feeunit_id feeunit_name feeunit_phone feeunit_address license_id 字段说明 经营单位ID 经营单位简称 经营单位地址 经营单位类型 收费单位ID 收费单位名称 收费单位电话号码 收费单位地址 证书ID 字段名 location number address effective_date licens_department license_date version is_active 字段说明 发证地址 数量 经营地址 有效日期 发证部门 发证日期 证书版本 是否有效 3 数据库操作 3.1 创建数据库
创建数据库HarborBereau1。 3.2 创建数据表
根据图2.32和表2.16,创建数据表T_fee_unit、T_danger_cargo_license、T_business_unit。
3.3 创建数据表间的关系
根据物理数据原型,创建数据表之间的关系。 3.4 约束设计
? 经营单位类型只允许有:国营经济、私营经济、个体经济、集体经济、股份制经济
五种;
? 是否有效字段默认为:否。 3.5 数据操作
用SQL语句完成如下操作:
? 在T_business_unit表插入数据:“J2009302,振华港机,上海浦东,集体经济”;
49
? 查询简称为“振华港机”的经营单位所对应的收费单位名称和收费单位电话; ? 创建存储过程,查询经营类型为“集体经济”的经营单位由哪些收费单位收费,查询这些收费单位的名称、电话号码和地址。 【试题12】
1 任 务
你作为《码头中心船货申报系统》项目开发组的程序员,请按要求完成: ? 数据库的创建; ? 数据表的创建; ? 数据的操作。 2 要 求
《进出港船只申报》子模块的E-R图如图2.34 所示,逻辑数据模型如图2.35 所示,物理数据模型如图2.36所示,数据表字段名定义见表2.17。请按以下设计完成数据库创建、数据表创建和数据操作任务:
船舶国籍建造年月适航航区船名核定载客航线代码是否引用船名船舶代码船舶航线代码航线航线名称申报人航线类别拥有经营单位地址经营单位编号N经营单位类型经营单位小型车车辆数小型车车辆数内含集箱车车辆数集箱数中型车车辆数申报时间特大型车车辆数大型车车辆数N拥有N备注拥有MMM车辆申报表进出港时间进出港方式最后更新时间申报编号航次代码经营单位编码船舶代码经营单位简称 图2.34 E-R图
50