我是上海海洋大学信息学院的一名大二的学生,专业是软件工程在进入大学之前我没有接触过编程,没有任何基础。当时对于这个专业没有什么概念,只是对于身边的计算机大神以及影视作品中的大牛无比的崇拜。大一上学期的c语言是我学的第一门编程语言,这也算是我的入门语言了。期初我对编程没有什么兴趣,只是后来有几次c语言的小考试我考的还算可以,就慢慢对编程有了些兴趣,开始认真学习它的语法。就这样大一算是入门了,学习了c , c++。但是自己的编程水平只能是很次的水平,就自己做过两次期末的大作业而已。然而班里的有些同学已经参加各种编程比赛,并且都有获奖。到了大二以后,我也才开始关注各种比赛,虽然自己的水平也就是重在参与的那种,但是多一次锻炼的机会也是好的。进入这学期,我们老师让我们买了这个《构建之法》,我买来粗略地一翻,感觉和上学期的软件工程概论有点相似。

   第一章的概论,看到的第一个问题就是 软件=程序+软件工程, 程序= 数据结构+算法。里面提到一名职业程序员工作以后,发现所有的算法别人都已经实现了,当初学习的数据结构和算法似乎没什么用。对于这个这个我也是挺有感触的,因为我最近参加的团体程序天梯赛和蓝桥杯基本上就是考你的数据结构和算法,我对于这很是头大,二叉树,图的遍历,深度广度优先等等,我花了很长时间去学习这些,也不知道这些除了比赛有用外,以后的工作是否能真的用的上。书上通过举了一个例子来解释这个问题,程序(算法,数据结构)是基本功,但是在算法和数据结构之上,软件工程决定了软件的质量;商业模式决定了一个软件企业的成败。软件从业人员和软件企业的道德操守会极大的影响软件用户的利益。

 

所以软件工程到底是什么呢?

软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。

软件工程包括下列领域:软件需求分析、软件设计、软甲 构建、软件测试和软件维护。

软件工程和下列的科学相关:计算机科学、计算机工程、管理学、数学、项目管理学、质量管理、软件人体工学、系统工程、工业设计和用户体验设计。

 

其他还有很多概念我也不一一罗列了。

 

然后我看到后面的练习,和阿超一样,也花了半小时的时间写了一个 能随机生成加减乘除算数题 的小程序,并且能够查看答案。但很简陋,都没有加文件的操作...也没真分数的运算。(我的能力半小时只能写这么多了。。。)以后慢慢完善吧

 

 

 

 1 #include<stdlib.h>
 2 #include<stdio.h>
 3 #include <time.h>
 4 int  main()
 5 {
 6     char judge;//是否查看答案的变量 
 7     int  addend_1[100],addend_2[100];//加法变量存储 
 8     int sub_1[100],sub_2[100];//减法变量存储 
 9     int  mult_1[100],mult_2[100];//乘法变量存储 
10     int  div_1[100],div_2[100]; //除法变量存储 
11     int i;//循环控制 
12     int num_1,num_2,num_3,num_4;//加减乘除的题目数量 
13     srand((int)time(NULL));//设置种子 
14     printf("分别输入加减乘除的题目的数量 空格分隔\n");
15     scanf("%d %d %d %d",&num_1,&num_2,&num_3,&num_4);
16     getchar();
17 
18     printf("加法题:\n");
19     for(i=0;i<num_1;i++)
20     {
21     addend_1[i]=rand()%1000;
22     addend_2[i]=rand()%1000;
23     printf("%5d + %-5d =    \n",addend_1[i],addend_2[i]);
24     } 
25 
26     printf("减法题:\n");
27     for(i=0;i<num_2;i++)
28    {
29     sub_1[i]=rand()%1000;
30     sub_2[i]=rand()%1000;
31     printf("%5d - %-5d =    \n",sub_1[i],sub_2[i]);
32    } 
33 
34    printf("乘法题:\n");
35    for(i=0;i<num_3;i++)
36    {
37     mult_1[i]=rand()%10;
38     mult_2[i]=rand()%10;
39     printf("%5d * %-5d =    \n",mult_1[i],mult_2[i]);
40    } 
41 
42    printf("除法题:\n");
43    for(i=0;i<num_4;i++)
44     {
45     div_1[i]=rand()%100;
46     div_2[i]=rand()%100;
47     if(div_1[i]<div_2[i])//防止小数在前面 ,做交换 
48     {
49         int t=div_1[i];
50         div_1[i]=div_2[i];
51         div_2[i]=t;
52     }
53    printf("%5d / %-5d =    余数=   \n",div_1[i],div_2[i]);
54     } 
55 
56 
57 
58    printf("是否想要查看答案:y/n\n");
59 
60    scanf("%c",&judge);
61    if(judge=='y'|| judge=='Y')
62   {
63     printf("答案:\n加法题:\n");
64     for(i=0;i<num_1;i++)
65   {
66    printf("%5d + %-5d = %5d \n",addend_1[i],addend_2[i],addend_1[i]+addend_2[i]);
67   } 
68 
69    printf("减法题:\n");
70    for(i=0;i<num_2;i++)
71   {
72    printf("%5d - %-5d = %5d \n",sub_1[i],sub_2[i],sub_1[i]-sub_2[i]);
73   } 
74 
75   printf("乘法题:\n");
76   for(i=0;i<num_3;i++)
77   {
78    printf("%5d * %-5d = %5d \n",mult_1[i],mult_2[i],mult_1[i]*mult_2[i]);
79   } 
80 
81   printf("除法题:\n");
82    for(i=0;i<num_4;i++)
83   {
84    printf("%5d / %-5d = %5d   余数= %5d \n",div_1[i],div_2[i],div_1[i]/div_2[i],div_1[i]%div_2[i]);
85   } 
86     
87     
88   }
89   return 0; 
90 
91 }