0.0765

五煦查题

快速找到你需要的那道考题与答案

超星物流软件设计与开发课后答案(学习通2023课后作业答案)

37 min read

超星物流软件设计与开发课后答案(学习通2023课后作业答案)

第1讲 概述

第1讲概述测验

1、超星运行Java程序的物流命令是:
A、javadoc
B、软件javac
C、设计java
D、开发课后exe

2、答案编译Java源程序的学习命令是:
A、javadoc
B、通课javac
C、后作java
D、业答exe

3、超星Java程序编译后产生的物流字节码文件的扩展名为:
A、java
B、软件class
C、设计html
D、开发课后exe

4、main方法是Java Application程序执行的入口点,下面main方法的方法头哪项是合法的:
A、public static void main( )
B、public static int main (String[] arg)
C、public static void main (String args[ ])
D、public void main (String args[])

5、Java开发工具包的缩写是
A、JDK
B、JRE
C、JVM
D、Java

6、以下哪一个不是Java语言的保留字(关键字)?
A、main
B、int
C、long
D、float

7、通过Java程序中的文档注释产生Java文档的命令是 ( )
A、java.exe
B、javac.exe
C、jar.exe
D、javadoc.exe

8、以下哪一条语句不是正确的Java注释语句?
A、// 正确的注释信息
B、/* 正确的注释信息
C、/* 正确的注释信息 */
D、/** 正确的注释信息 */

9、main 方法的返回类型是 ( )
A、public
B、static
C、void
D、String

10、目前Java语言属于以下哪一个公司/组织所有?
A、SUN公司
B、Microsoft公司
C、Google公司
D、Oracle公司

11、Java是从( )语言改进重新设计。
A、Ada
B、C++
C、Pascal
D、Basic

12、Java语言具有许多优点和特点,哪个反映了Java程序并行机制的特点?
A、安全性?
B、多线程
C、跨平台
D、可移植

13、面向对象程序的三个基本特性是:
A、抽象
B、封装
C、继承
D、多态

14、面向对象语言有哪些:
A、C++
B、C
C、Java
D、Python

15、Java语言的特点有:
A、跨平台性
B、简单
C、面向对象
D、网络编程

16、以下变量初始化语句中,正确的有 ( )
A、boolean flag = true;
B、int i = 32;
C、float r = 10.0;
D、double pi = 3.1415926;
E、int value = 32.0;

17、关于面向对象程序设计以下描述正确的有:
A、面向对象程序设计的本质是以建立模型体现出来的抽象思维过程和面向对象的方法。
B、类描述了一类对象的行为和状态,是一组具有相同特性(属性)与行为(方法)的事物集合。
C、对象是一个个性的产物,是一个个体的特征,是类的一个实例。
D、面向对象程序设计以对象为核心,该方法认为程序由一系列对象组成。

第2讲 Java 编程基础

第2讲Java编程基础测验

1、以下关于变量的说法错误的是?
A、变量名必须是一个有效的标识符
B、变量在定义时可以没有初始值
C、变量一旦被定义,在程序中的任何位置都可以被访问
D、在程序中,可以将一个byte类型赋值给一个int类型的变量,不需要特殊声明

2、表达式25 / 4的结果是
A、6.25
B、6
C、6.0
D、以上都不对

3、double类型的数据占用( )字节
A、1
B、2
C、4
D、8

4、下列哪项不属于Java语言的基本数据类型?
A、String
B、int
C、double
D、boolean

5、下列关于基本数据类型的说法中,不正确的一项是
A、boolean类型变量的值只能取真或假
B、float是带符号的32位浮点数
C、double是带符号的64位浮点数
D、char是8位Unicode字符

6、假设a是int类型的变量,并初始化为1,则下列( )是合法的条件语句?
A、if ( a ) { }
B、if ( a << = 3) { }
C、if ( a = 2) { }
D、if ( true ){ }

7、设a、b为long型变量,x、y为float型变量,ch为char类型变量,且它们均已赋值,则下列语句中正确的是:
A、switch ( x+y ) { }
B、switch ( ch+1 ) { }
C、switch ( a ) { }
D、switch ( a+b ) ; { }

8、byte 类型变量的取值范围是 ( )
A、0 ~ 256
B、-256 ~ 255
C、0 ~ 256
D、-128 ~ 127

9、以下 switch 语句使用正确的是 ( )
A、public void testSwitch(char ch) { switch (ch) { } }
B、public void testSwitch(float f) { switch (f) { } }
C、public void testSwitch(long lng) { switch (lng) { } }
D、public void testSwitch(double d) { switch (d) { } }

10、Java 语言中的 do/while 结构属于以下哪一种结构?( )
A、顺序结构
B、分支结构
C、循环结构
D、方法结构

11、整型数据类型中,需要内存空间最少的是 ( )
A、byte
B、short
C、int
D、long

12、下列不可以作为Java语言标识符的是( )
A、a1
B、$1
C、11
D、_1

13、以下标识符的定义是否合法:2018order

14、以下标识符的定义是否合法:getName

15、以下标识符的定义是否合法:get status

16、以下标识符的定义是否合法:class

17、以下标识符的定义是否合法:student+num

18、以下标识符的定义是否合法:SUBJECT

19、Java语言使用的是Unicode字符集,每个字符在内存中占8位。

20、如果a的值为4,b的值为3,则在执行了a=b;b的值仍为3。

第3讲 字符串与数组

第3讲 字符串与数组测验

1、定义了一维int型数组a[10]后,下面错误的引用是( )
A、a[0]=1;
B、a[10]=2;
C、a[0]=5*2;
D、a[1]=a[2] + a[0];

2、引用数组元素时,数组下标可以是( )
A、整型常量
B、整型变量
C、整型表达式
D、以上均可

3、1. 下面程序的运行结果是( ) main() { int a[ ][ ] = { { 1, 2, 3 } , { 4 , 5 , 6 } } ; System.out.printf( "%d" , a[1][1] ) ; }
A、3
B、4
C、5
D、6

4、1. 下面程序的运行结果是( ) public static void main( String[ ] args ) { int x = 30; int [ ] numbers = new int[x]; x = 60; System.out.println( numbers.length ) ; }
A、20
B、30
C、50
D、60

5、下面创建数组的语句不正确的是( )
A、float f[ ][ ] = new float[6][6];
B、float f[ ] = new float[6];
C、float f[ ][ ] = new float[ ][6];
D、float [ ][ ] f = new float[6][ ];

6、数组a的第三个元素表示为 ( )
A、a(3)
B、a[3]
C、a(2)
D、a[2]

7、执行完代码" int [ ] x = new int[25] ; "后,下面选项哪个是正确的( )
A、x[24]为0
B、x[24]未定义
C、x[25]为0
D、x[0]为空

8、Java采用的字符集是()
A、ASCII
B、Unicode
C、ISO8859
D、GB2312

9、下列叙述哪些是正确的?
A、String类是final类,不可以有子类
B、String类在java.util包中
C、”abc”.equals(“abc”)的值是false
D、String类可以创建可变字符串

10、一个数组可以存放许多不同类型的数值。

11、声明数组时,要指定数组长度,以便为数组分配内存。

12、声明一个数组int arr[] = new int[5]; 代表这个数组长度为5,数组元素下标的使用范围是0-4。

13、数组创建后其大小可以改变。

14、数组下标访问超出索引范围时抛出数组越界异常。

15、Java中,用来获取字符串长度的函数是length()

16、Java中,用来取字符串子串的函数是substring()。

17、System.out.println("student".substring(1, 3)); 输出结果为:tud

18、String str = “oop.163.com”; String temp[ ] = str.split("."); 执行完该语句,temp的内容为:temp[0]=oop temp[1]=163 temp[2]=com

19、String类的charAt(int index) 方法, 返回指定索引处的 char 值。

20、String类的compareTo(String anotherString) ,是按字典顺序比较两个字符串。

第4讲 方法

第4讲 方法测验

1、下列是方法定义的形参表,定义形式正确的是( )。
A、int num1,num2
B、num1,int num2
C、int num1,int num2
D、int num1, int num1

2、若有以下调用语句,则正确的fun()方法头部是( )。 public static void main(String args[]) { float x; int a; ……. fun( a, x ); }
A、void fun(int m, float n)
B、void fun(float a, int x)
C、void fun(int m, float x[])
D、void fun(int[] x,float a)

3、关于方法的参数以下说法正确的是( )。
A、Java中每个方法都必须有参数。
B、方法的参数要么是一个,要么是多个。
C、有返回值的方法必须有参数。
D、形参变量是int型的方法,调用语句中所给的实参数据也必须是int型。

4、属于main()方法的返回类型是( )
A、public
B、static
C、void
D、main

5、若有方法定义: staitc int fun(int num){ return 2 * num ; } 以下调用语句正确的是( )。
A、System.out.println(fun(“A”));
B、int a = fun(2.3);
C、fun(2 , 3);
D、if(fun(4) == 8 ) System.out.println(“正确”);

6、关于方法的参数描述正确的是:
A、方法参数在声明时,不需要说明数据类型。
B、方法的参数个数可以是0个到多个。
C、方法的参数有多个时,声明时用分号区分。
D、方法参数没有时,方法名后面的括号可以省略。

7、关于方法调用下面描述不正确的是:
A、通过方法名来调用方法。
B、调用方法时,参数的数量必须与方法定义一致。
C、调用方法时,参数的顺序必须与方法定义一致。
D、调用方法时,参数的数量和顺序可以不一致。

8、Java语言规定,应用程序开始执行点是main()方法。

9、方法体内,有返回数值时需要使用return 语句。

10、方法体内,如果没有return语句,应该将方法头声明为null。

11、方法内部定义的变量是局部变量。

12、方法内的局部变量不需要赋初始值就可以使用,系统会自动赋默认的初始值。

13、调用方法时,实参要与定义的形参类型、个数和顺序一致。

14、方法是完成某个功能的一组语句,通常将常用的功能写成一个方法。

15、返回值类型是用来说明该方法运算结果的类型。

16、方法名是调用时引用方法的标识。

17、方法的参数个数可以是1个到多个,每个参数前面要声明参数的数据类型

18、方法参数有多个时,每个参数要用分号分开。

19、形式参数,在方法被调用时用于接受外部传入的变量。

20、返回值是方法在执行完毕后返回给调用它的程序的数据。

第5讲 类和对象

第5讲 类和对象测验

1、以下对于构造方法说法正确的是 ( )
A、构造方法的名字可以与类名不一致
B、构造方法不能被重载
C、一个类必须包含至少一个构造方法
D、构造方法可以有返回值

2、以下关于构造方法表述错误的是( )
A、构造方法的名字和类名相同
B、构造方法不能被重载
C、构造方法的作用主要是在创建对象时执行一些初始化操作
D、构造方法没有返回值

3、以下关于Java中的方法重载说法错误的是( )
A、重载的方法其方法名必须相同
B、重载的方法其参数个数或参数类型不同
C、构造方法可以被重载
D、成员方法不可以被重载

4、static修饰符的作用表述错误的是( )
A、用static关键字修饰的成员变量或方法称为静态成员或类成员
B、静态成员依赖于特定对象
C、系统只在实例化类的第一个对象时,为静态成员分配内存
D、不同对象的静态成员将共享同一内存空间

5、阅读以下程序,下列选项错误的是( ) public class xClass { private int u; private double w; public xClass(){ } public xClass(int a, double b){ } private void func(){ } public void print(){ } }
A、xClass类有3个私有成员
B、xClass类有两个构造方法
C、func()方法不可以访问u和w变量
D、print()方法可以访问u和w变量

6、关于局部变量和成员变量,以下说法错误的是:
A、类的成员包括成员变量和成员方法。
B、成员变量可以不明确初始化,系统会赋默认值。
C、局部变量可以不明确初始化,系统会赋默认值。
D、局部变量和成员变量的作用范围不同。

7、关于类的定义,下面说法错误的是:
A、定义类的关键字是:class。
B、类名必须是合法的标识符,一般每个单词的首字母大写。
C、类中定义成员变量和成员方法。
D、方法可以写在类的定义外。

8、类是对象的抽象。( )

9、对象是类的抽象。( )

10、对象是类的实例。( )

11、一个类可以创建多个对象。( )

12、一个对象可以创建多个类。( )

13、this可以调用构造方法。

14、静态方法可以调用非静态方法。

15、非静态方法可以调用静态方法。

16、类及其属性、方法可以同时有一个以上的修饰符来修饰。

17、类中定义的方法可以定义在类体外。

18、class是定义类的唯一关键字。

19、局部变量在使用前必须明确赋值,否则编译时会出错。

20、类变量在使用前可以不用赋值,它们都有默认的值。

第6讲 封装

第6讲 封装测验

1、下列哪种类成员修饰符修饰的变量只能在本类中被访问?
A、public
B、protected
C、default
D、private

2、在Java语言中,哪一个包中的类是自动导入的?
A、java.lang
B、java.awt
C、java.io
D、java.util

3、下列有关类声明的代码片段,哪一项是正确的?
A、package libray; import java.sql.*; class Book { }
B、import java.sql.*; package libray; class Book( )
C、package libray; class Book{ } import java.sql.*;
D、package libray; import java.sql.*; private String ISBN; class Book { }

4、对成员的访问控制保护最强的是:
A、public
B、private
C、default
D、protected

5、关于实现封装的方法,下面描述错误的是:
A、把成员变量用private修饰,提供对应的getXxx()和setXxx()方法。
B、对方法修饰合适的访问控制权限。
C、对类修饰合适的访问控制权限。
D、对包修饰合适的访问控制权限。

6、下面哪个选项不是封装的优点:
A、信息隐藏
B、模块化
C、提高执行效率
D、具有安全性

7、关于包,下面描述错误的选项是:
A、为了更好地组织类,Java提供了包机制。
B、包是类的容器,用于分隔类名空间。
C、一个类如果没有指定包名,都属于一个默认的无名包。
D、可以在任何位置写入package语句。

8、关于包,下面描述错误的选项是:
A、包的名字有层次关系,各层之间以点分隔。
B、程序中如果有package语句,该语句一定是源文件中的第一条可执行语句。
C、import语句将其他包中的类引入当前名字空间中。
D、包是管理类的方法,跟封装无关。

9、封装是隐藏对象的属性和实现细节,仅对外提供公有的方法。

10、只有private修饰成员变量才是类的封装体现。

11、一个文件中最多只能有一条package语句。

12、包是一种特殊的类。

13、包使用package语句创建。

14、方法,类,包,都是实现封装的手段。

15、类是一种数据类型,类决定对象的属性和方法。

16、封装的缺点有:会影响执行效率。

17、程序中如果有package语句,该语句一定是源文件中的第一条可执行语句。

18、包的名字有层次关系,各层之间以点分隔。

19、包层次必须与Java开发系统的文件系统结构相同。

20、通常包名中全部用小写字母。

学习通物流软件设计与开发

学习通物流软件是一款基于云计算和大数据技术的物流管理软件,具有集成性、可视化、数字化等特点。该软件可以实现各种物流场景下的订单处理、货物跟踪、仓储管理、运输调度等功能,提供了一种高效、便捷的物流解决方案。

软件设计

学习通物流软件设计采用了面向对象的设计思想,将软件的各个模块分解为不同的类和对象,并且通过继承、多态等机制来实现模块之间的解耦和功能的复用。软件采用三层结构设计,分为表示层、业务逻辑层和数据层,每一层之间通过接口进行数据传输和调用,以此实现解耦和灵活性。其中,表示层采用了MVC模式,将数据和控制逻辑分离。

表示层

表示层主要负责用户界面的展示和交互,其中,视图层负责将数据展示给用户,控制器层负责处理用户的请求和逻辑控制。在该层中,主要采用了HTML、JavaScript、CSS等前端技术和jQuery、Vue.js等框架来实现数据的动态渲染和交互效果。

HTML

HTML是表示层的基础技术,它采用标签语言的形式来描述文档的结构和内容。在学习通物流软件中,HTML主要用于构建网页的基本结构和布局,例如头部导航、侧边栏、主体内容等。以下是HTML的一个例子:

<!DOCTYPE html>
<html>
<head>
<title>学习通物流软件</title>
</head>
<body>
<header></header>
<nav></nav>
<aside></aside>
<section></section>
<footer></footer>
</body>
</html>

CSS

CSS是表示层的样式技术,它定义了网页的样式、排版和效果。在学习通物流软件中,CSS主要用于美化网页的样式和布局,例如颜色、字体、边框、背景等。以下是CSS的一个例子:

body {
margin: 0;
padding: 0;
font-family: \Helvetica Neue\ Helvetica, Arial, sans-serif;
font-size: 14px;
color: #333;
}

JavaScript

JavaScript是表示层的交互技术,它可以在网页中实现动态效果和事件交互。在学习通物流软件中,JavaScript主要用于处理用户的操作和界面的动态效果,例如表单验证、弹窗提示、下拉菜单等。以下是JavaScript的一个例子:

function checkForm() {
var username = document.getElementById(\username\
var password = document.getElementById(\password\
if (username.value == \ || password.value == \ {
alert(\用户名和密码不能为空!\
return false;
}
}

业务逻辑层

业务逻辑层负责处理业务逻辑和数据处理,其中,控制器层负责处理用户请求和调用服务层,服务层负责处理业务逻辑和数据操作。在该层中,主要采用了Java、Spring、Hibernate等后端技术和框架来实现业务逻辑和数据操作。

Java

Java是业务逻辑层的核心技术,它是一种面向对象的编程语言,具有跨平台、高效、安全等特点。在学习通物流软件中,Java主要用于实现业务逻辑和数据操作,例如订单处理、货物跟踪、仓储管理、运输调度等。以下是Java的一个例子:

public class OrderService {
private OrderDao orderDao;
public void createOrder(Order order) {
orderDao.save(order);
}
public Order getOrderById(long id) {
return orderDao.getById(id);
}
public void updateOrder(Order order) {
orderDao.update(order);
}
public void deleteOrder(Order order) {
orderDao.delete(order);
}
}

Spring

Spring是业务逻辑层的开发框架,它是一个轻量级的IOC容器和AOP框架。在学习通物流软件中,Spring主要用于实现依赖注入和声明式事务等功能,简化了代码的编写和维护。以下是Spring的一个例子:

<bean id=\orderService\ class=\com.learn.logistics.service.OrderService\gt;
<property name=\orderDao\ ref=\orderDao\ />
</bean>
<bean id=\orderDao\ class=\com.learn.logistics.dao.OrderDao\gt;
<property name=\sessionFactory\ ref=\sessionFactory\ />
</bean>
<bean id=\sessionFactory\ class=\org.springframework.orm.hibernate5.LocalSessionFactoryBean\gt;
<property name=\dataSource\ ref=\dataSource\ />
<property name=\hibernateProperties\gt;
<props>
<prop key=\hibernate.dialect\gt;org.hibernate.dialect.MySQL5Dialect</prop>
<prop key=\hibernate.show_sql\gt;true</prop>
</props>
</property>
</bean>

Hibernate

Hibernate是业务逻辑层的持久化框架,它可以将Java对象映射为数据库表,实现对象关系映射(ORM)。在学习通物流软件中,Hibernate主要用于实现数据的增删改查等操作,提高了开发效率和代码的可维护性。以下是Hibernate的一个例子:

@Entity
@Table(name=\t_order\
public class Order {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private long id;
@Column(name=\order_no\
private String orderNo;
@Column(name=\create_time\
private Date createTime;
@Column(name=\update_time\
private Date updateTime;
@Column(name=\status\
private int status;
// 省略getter和setter
}

数据层

数据层负责管理数据的存储和访问,其中,数据访问层负责封装数据访问的细节和实现,数据源层负责提供数据的存储和访问接口。在该层中,主要采用了MySQL、Redis等数据库和MyBatis、JDBC等数据访问技术和框架来实现数据的存储和访问。

MySQL

MySQL是数据层的关系型数据库,它采用行式存储和ACID事务特性,具有稳定、可靠和高性能的特点。在学习通物流软件中,MySQL主要用于存储订单、货物、仓库、运输等数据。以下是MySQL的一个例子:

CREATE TABLE `t_order` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`order_no` varchar(50) NOT NULL,
`create_time` datetime NOT NULL,
`update_time` datetime NOT NULL,
`status` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `idx_order_no` (`order_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Redis

Redis是数据层的非关系型数据库,它采用键值对存储和支持多种数据类型,具有高性能、高并发和分布式特点。在学习通物流软件中,Redis主要用于存储用户、订单、货物等数据,提高了数据的读写速度和并发处理能力。以下是Redis的一个例子:

SET user:1 \id:1,name:'张三',age:20}\
GET user:1

MyBatis

MyBatis是数据访问层的持久化框架,它采用XML或注解方式来实现SQL语句和结果映射,具有灵活、简单和易于维护的特点。在学习通物流软件中,MyBatis主要用于实现数据的CRUD操作,简化了数据访问的开发和维护。以下是MyBatis的一个例子:

<select id=\getOrderById\ resultType=\com.learn.logistics.entity.Order\gt;
SELECT * FROM t_order WHERE id = #{ id}
</select>

JDBC

JDBC是数据访问层的基础技术,它是Java语言访问数据库的标准接口,提供了连接、语句和结果集等操作。在学习通物流软件中,JDBC主要用于实现数据的底层操作,例如连接池、事务管理等。以下是JDBC的一个例子:

Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
conn = DriverManager.getConnection(url, username, password);
pstmt = conn.prepareStatement(\SELECT * FROM t_order WHERE id = ?\
pstmt.setLong(1, id);
rs = pstmt.executeQuery();
while (rs.next()) {
Order order = new Order();
order.setId(rs.getLong(\id\
order.setOrderNo(rs.getString(\order_no\
order.setCreateTime(rs.getDate(\create_time\
order.setUpdateTime(rs.getDate(\update_time\
order.setStatus(rs.getInt(\status\
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (rs != null) rs.close();
if (pstmt != null) pstmt.close();
if (conn != null) conn.close();
}

软件开发

学习通物流软件开发采用了敏捷开发的方法论,强调快速迭代、持续交付和客户反馈。开发团队采用了Git和GitHub等源代码管理工具和Jenkins和Docker等自动化部署工具,提高了开发的效率和质量。

源代码管理

源代码管理是软件开发的重要环节,它可以管理代码的版本、分支和合并等操作。在学习通物流软件开发中,Git是主要的源代码管理工具,它具有分布式、快速和灵活的特点,可以支持多人协作和大规模开发。以下是Git的一个例子:

git init
git add .
git commit -m \Initial commit\br>git remote add origin https://github.com/username/repository.git
git push -u origin master

自动化部署

自动化部署是软件开发的关键环节,它可以将代码快速部署到生产环境并进行测试和发布。在学习通物流软件开发中,Jenkins和Docker是主要的自动化部署工具,它们可以自动构建、测试和部署软件,并提供监控和日志等功能。以下是Jenkins和Docker的一个例子:

// Jenkinsfile
pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'mvn clean package'
}
}
stage('Test') {
steps {
sh 'mvn test'
}
}
stage('Deploy') {
steps {
sh 'docker build -t learn/logistics .'
sh 'docker push learn/logistics'
sh 'kubectl apply -f kubernetes.yaml'
}
}
}
}

总结

学习通物流软件设计与开发是一项复杂的任务,需要综合运用各种技术和工具。通过本文的介绍,我们了解了该软件的设计思想、架构和实现方式,以及开发团队采用的敏捷开发和自动化部署的方法论。相信在不断的学习和实践中,我们可以不断完善和优化该软件,为物流行业的数字化转型和升级作出贡献。