2.用C、Java等编程语言,(1)定义ADT Stack、ADT Queue、ADT List;(2)编程实现上面定义的ADT;(3)设计测试用例,并用JUnit测试。
class Stack {
private:
int stk[N], tt = 0;
public:
void push(int x) {
stk[ ++ tt] = x;
}
void pop() {
tt -- ;
}
int top() {
return stk[tt];
}
bool isEmpty() {
return tt <= 0;
}
};
class Queue {
private:
int q[N], hh = 0, tt = -1;
public:
void push(int x) {
q[ ++ tt] = x;
}
void pop() {
hh ++ ;
}
int front() {
return q[hh];
}
bool isEmpty() {
return hh > tt;
}
};
class List {
private:
int l[N] , siz = 0;
public:
int get(int x) {
return l[x];
}
void set(int x,int y) {
l[x] = y;
}
void add(int x) {
l[ siz++ ] = x;
}
void remove(int x) {
siz--;
for(int i=x; i<siz; i++) {
l[i]=l[i+1];
}
}
int size() {
return siz;
}
};
4.如何理解软件设计?研究其他工程领域如建筑、电力、桥梁、计算机硬件,它们对设计与制造或建造的区别,讨论软件开发中的设计与编程的差异,以及软件设计与工程设计的异同。
软件设计是根据需求确定每个模块的实现算法以及怎样编写具体的代码,形成软件的具体设计方案,而编程则是实现设计方案的过程。
工程设计,是根据工程的要求,对建设工程所需的技术、经济、资源、环境等条件进行综合分析、论证,编制建设工程设计文件的活动,而软件也可以说是工程的其中一种。
6.为什么说调试是一项智力活动?
因为软件运行出错,往往只是潜在错误的外部表现,而外部表现与内在原因之间常常没有明显的联系,如果要找出真正的原因,排除潜在的错误,不是一件易事,这是一个思维分析的过程。
8.什么是Java的注解?解释JUnit基本注解的含义。
注解:可以理解为代码里的特殊标记,可以在编译,类加载,运行时被读取,并执行相应的处理。通过注解可以在不改变原有代码和逻辑的情况下在源代码中嵌入补充信息。
JUnit基本注解:
@Test:表示标注的方法为一个测试方法。
@Before:使用该注解的方法在每个测试方法执行前都要执行一次。
@After:使用该注解的方法在每个测试方法执行后都要执行一次。
@Runwith:执行测试的运行器。
@Ignore:标记的测试方法在测试中会被忽略。
后面懒得写了 瞎抄别人的了
第四章传送门 ——队友写的