软件工程学习总结
不知不觉一个学期又过去了,这个学期里我收获到很多。
1.学习收获
a)你书写的代码量多少行?
·第一次作业
#include <stdlib.h>
#define MBIG 1000000000
#define MSEED 161803398
#define MZ 0
#define FAC (1.0/MBIG)
#include <stdio.h>
#include <math.h> 内部函数调用
#define TFACTR 0.9
#define ALEN(a,b,c,d) sqrt(((b)-(a))*((b)-(a))+((d)-©)*((d)-©)) 宏定义结点间的路径计算公式
void anneal(float x[ ], float y[ ], int iorder[ ], int ncity) 函数用于求解问题的最优解
{
int irbit1(unsigned long *iseed); 生成0或1的随机数函数
int metrop(float de, float t);
float ran3(long *idum);
float revcst(float x[ ], float y[ ], int iorder[ ], int ncity, int n[ ]);
void reverse(int iorder[ ], int ncity, int n[ ]);
float trncst(float x[ ], float y[ ], int iorder[ ], int ncity, int n[ ]);
void trnspt(int iorder[ ], int ncity, int n[ ]);
int ans, nover, nlimit, i1, i2;
int i, j, k, nsucc, nn, idec; i,j,k用于循环控制的变量
nsucc变量用于计数
nn变量用于判断随机选取的路径是否合法
idec变量用于保存函数irbit1函数返回的值(0或1)
long idum;
unsigned long iseed;
float path, de, t; path变量用于记录当前总路径值
de变量用于记录函数trncst,revcst的返回值(代价)
t变量用于初始温度值
nover=100*ncity;
nlimit=10*ncity;
path=0.0;
t=0.5;
for(i=1;i<ncity;i++){ 计算结点间初始顺序的路径长度
i1=iorder[i];
i2=iorder[i+1];
path+=ALEN(x[i1], x[i2], y[i1], y[i2]);
}
i1=iorder[ncity];
i2=iorder[1];
path+= ALEN(x[i1], x[i2], y[i1], y[i2]); 将路径头尾相连进行计算并结束循环
idum=-1;
iseed=111;
for(j=1;j<=100;j++){
nsucc=0;
for(k=1; k<=nover; k++){
do{
n[1]=1+(int) (ncity*ran3(&idum));
n[2]=1+(int) ((ncity-1)*ran3(&idum));
nn=1+((n[1]-n[2]+ncity-1)%ncity);
·第二次作业
package yang;
import java.util.Scanner;//用scanner类从键盘输入数据
public class yy {
public static void main(String[]args){
int[] aa={-2574,-4010,8243,771,2447,-5197,2556,8044,3314,3617,6065,-2817,3131,6318,2186,-113,629,-2582,-37,-1520,164,2055,-5936,5912,1717,5988,4781,5757,892,-4394,8034,2213,-1080,-2080,5364,106,2657,566,3940,-5116,4583,1806,6555,2621,-7197,528,1626,18,1049,6243,3198,4397,-1325,9087,936,-6291,662,-178,135,-3473,-2385,-165,1713,-7949,-4234,1138,2212,104,6968,-3632,3801,1137,-1296,-1215,4272,6223,-5922,-7723,7044,-2938,-8180,1356,1159,-4022,-3713,1158,-8715,-4081,-2541,-2555,-2284,461,940,6604,-3631,3802,-2037,-4354,-1213,767};
int sum=0;//用于统计和
Scanner a = new Scanner(System.in); //定义类的对象a,接收来自键盘的数据
System.out.println("从何开始?:");
int start = a.nextInt() ;
System.out.println("到哪结束?:");
int end =a.nextInt();
System.out.println("指定范围是:"+start+"---"+end);
for(int i=start-1;i<=end-1;i++)
sum+=aa[i];//此处循环
System.out.println("运算和:");
System.out.println(sum);
}
}
package yang;
import java.util.Scanner;
public class yy2 {
public static void main(String[] args) {
int[][] b={
{ -2574,-4010,8243,771,2447,-5197,2556,8044,3314,3617,6065,-2817,3131,6318,2186,-113,629,-2582,-37,-1520,
164,2055,-5936,5912,1717,5988,4781,5757,892,-4394,8034,2213,-1080,-2080,5364,106,2657,566,3940,-5116,
4583,1806,6555,2621,-7197,528,1626,18,1049,6243,3198,4397,-1325,9087,936,-6291,662,-178,135,-3473,-2385,
-165,1713,-7949,-4234,1138,2212,104,6968,-3632,3801,1137,-1296,-1215,4272,6223,-5922,-7723,7044,-2938,-8180,
1356,1159,-4022,-3713,1158,-8715,-4081,-2541,-2555,-2284,461,940,6604,-3631,3802,-2037,-4354,-1213,767},
{ 2740,-4182,-5632,-2966,-1953,567,-8570,1046,2211,1572,-2503,-1899,3183,-6187,3330,3492,-464,-2104,316,8136,
470,50,466,-1424,5809,2131,6418,-3018,6002,-8379,1433,1144,2124,1624,-602,-5518,5872,870,-5175,-3961,-427,
-6284,2850,481,6175,141,-766,-1897,-748,-4248,366,4823,3003,1778,3256,2182,2253,5076,5540,-2650,2451,-1875,
5482,-6881,-329,-969,-8032,-2093,612,1524,-5492,5758,-7401,-5039,3241,6338,3581,4321,-1072,4942,2131,210,-7045,
-7514,7450,-1142,-2666,-4485,-639,2121,-5298,-3805,-1686,-2520,-1680,2321,-4617,-1961,2076,7309}
};
Scanner b1 = new Scanner(System.in);
System.out.println("横轴开始:");//把二维数组看做一个数轴
int startA = b1.nextInt();
System.out.println("横轴结束:");
int endA =b1.nextInt();
System.out.println("竖轴开始:");
int startD = b1.nextInt();
System.out.println("数轴结束:");
int endD =b1.nextInt();
System.out.println("指定范围为:");
System.out.println("横轴"+startA+"---"+endA);
System.out.println("竖轴"+startD+"---"+endD);
int j=startD-1;
int sum=0;
for(int i=startA-1;i<endA-1; i++) //利用for while循环嵌套语句求和
{
while(j<endD-1)
{
j++;
sum=sum+b[i][j];
}
}
System.out.println("总和:"+sum);
}
}
从第一次作业到后面的几次作业,除了作业外没写过什么代码,总的书写量也就100行左右吧,对于一个学计算机的来说真的是少的可怜,实在是很惭愧,以后hi多多练习书写代码。
b)熟悉(了解)了哪几个软件工具?
软件的话,首先是老师让我们调研的一类软件的发展演变,我选择的是Photoshop,因为这个软件对于我来说会比较常用。现在习惯用手绘板来画画,比较方便。还可以用来修修图。还有就是sai软件,也是一个绘图软件,这是最近画的一幅线稿,虽然和课程没什么关系_(:зゝ∠)_
还有就是必应词典,现在查单词什么的都用的它。
c)这学期你学到的对软件工程相关知识有哪些?
这学期学到了很多知识,像软件的设计与实现,理解了总体设计,详细设计等等,设计一款软件所需要的团队间合作的交流配合,分工以及劳动成果的梳理。
d)本课程对你在哪些方面有帮助?
让我了解到团队合作是很重要的,不管是什么事情,团员之间需要磨合配合交流,团队是一个集体,不是一个人。
2.不足之处:
a)课程在哪些方面与你最初的期望有较大差距?
一开始以为的软件工程也是像java,C++这样的编写代码之类的课程,但实际上是设计软件,而且课本上一行代码都没有,内容对我们来说没什么概念。
b)教学方法、教学内容等提出批评意见。
希望老师讲课的时候能中英文结合。PPT的内容全是英文,看起来挺费劲的,时间长了就不想看了。
3.建议:
a)如果让你重新开始学习这么课程,你准备怎么做?
如果能重新开始的话,我会认真去听讲、与老师互动。有好多堂课都有些神游,但越到后面越发觉得这门课很有意思。
b)如果让你从大一开始重新学习,你又准备怎么做?
从大一开始的话,我会好好学习C++以及java,为后面的课程打下良好的基础。
c)对老师教学方式、作业布置方式和点评、教学内容组织三个方面有什么建议和意见。
这门课给我的感觉与其他课程不一样,我以为会是很枯燥的一堂课,但发现其实是一门很有意思的课程,老师会组织互动课程,我觉得这种互动课程如果嫩更多一些就好了。
作业的布置方式是我第一次遇到的,不用写长篇大论的概念,繁琐的计算,所有的作业都在博客上完成,点评所有人都能够看到,并且还能够去点评别人的作业,非常的公平
公正公开。教学内容组织,我觉得老师有一个很好的框架,我们只需要跟着老师的步伐走,就能学习到知识。
4.推荐一位你觉得教得好的老师,简单介绍下他的课程(名称、教学目标),老师的教学方法、作业形式,以及你们如何师生沟通的。
推荐的话我觉得是华进老师吧,她是我们大二教数字逻辑设计的老师,她上课的内容条理清晰,讲课速度会按照我们的接受程度来讲,不会的只要提出来她就会重新讲解,不论课上还是课下。其实与华进老师沟通的不是非常多,华老师虽然看上去严肃,但实际上很好相处,有问题她都会耐心讲解。
5.自由发挥! 写下你想对老师、助教说的话(内容不限)。
两位老师都非常的有耐心且好相处,老师的课程到后面越听越有意思,希望老师能多多开展一些实践活动课,与我们有更多的交流,这样课堂气氛活跃了,玩手机神游的会少很多(๑•̀ㅂ•́)و✧,而且分组合作什么的让我们了解了团队合作的重要,学习到了课程以外的道理。