1.像阿超那样,花20分钟编写一个能够自动生成小学四则运算题目的程序。然后在此基础上扩展
#include<stdio.h>
void main()
scanf("%c",&c[i]);
}
for(i=0;c[i]!='=';i++)
{
if(c[i]=='*'||c[i]=='/')
{
switch(c[i])
{
case '*': a[i]=a[i]*a[i+1];
a[i+1]=0;
t=i;
h=i;
break;
case '/': if(a[i+1]==0)
{
printf("error");
break;
}
else
{
a[i]=a[i]/a[i+1];
a[i+1]=0;
t=i;
h=i;
break;
}
}
}
break;
}
for(i=t+1;c[i]!='=';i++)
{
if(c[i]=='*'||c[i]=='/')
{
if(i==h+1)
{
switch(c[i])
{
case '*': a[t]=a[t]*a[i+1];
a[i+1]=0;
h++;
break;
case '/': if(a[i+1]==0)
{
printf("error");
break;
}
else
{
a[i]=a[i]/a[i+1];
a[i+1]=0;
t=i;
h=i;
break;
}
}
}
else
{
switch(c[i])
{
case '*': t=i;
h=i;
a[t]=a[t]*a[i+1];
a[i+1]=0;
break;
case '/': if(a[i]==0)
{
printf("error");
break;
}
else
{
t=i;
h=i;
a[t]=a[t]/a[i+1];
a[i+1]=0;
break;
}
}
}
}
}
for(i=0;c[i]!='=';i++)
{
switch(c[i])
{
case '+': a[i+1]=a[i]+a[i+1];break;
case '-': a[i+1]=a[i]-a[i+1];break;
default: a[i+1]=a[i]+a[i+1];break;
}
}
printf("%d",a[i]);
}
}
由于这学期正在学习java以及自身基础知识的不足,所以只用了C语言编辑了一个简易的计算器
4.软件有很多分类方法,下面是另一种
①软件有很多种,如工具类软件、游戏类软件、系统类软件,它们的运行方式也各种各样,如以单机方式运行、以网站方式运行或者以APP方式运行在手机端等,请选取三种软件,分析它们各自的特点。
系统类软件:是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。【个人理解:认为操作系统像是一个总的插线板,插线板上可以连接许多电器,但是这个插线板需要连接总电源,“裸机”就是那个总电源,特点:是最基础的,具有方便性(方便人们操控计算机),具有控制性(控制在操作系统上运行的软件,使电脑能够更好的进行工作)】
游戏类软件:用各种程序和动画效果相结合起来的软件产品【个人理解就是插线板上的那个电器,特点:是为了满足人们的个性化需求而开发出来的,具有个性化的特点】
工具类软件:【个人理解:便于人们更加方便使用计算机进行操作的一类软件】特点:是为了方便人们,具有便捷性,方便性的特点
②这些软件的开发者是怎么说服你(陌生人)成为他们的用户的?他们的目标都是盈利么?他们的目标都是赚取用户的现金么?还是别的?
第一类操作系统:是它的便捷性使陌生人成为他们的客户的,就例如Windows操作系统之所以比dos操作系统更具有市场,就是因为windows操作系统操作起来更简单,更便捷,目标当然有一部分是为了赚取用户的现金,但是在中国很多人对操作系统并没有进行付费但还是在正常使用windows操作系统,微软也并没有进行大力度的控制,个人理解可能是微软为了占领市场的一种策略。
第二类游戏软件:是为了它的个性化体验,满足了一部分人们的个性化需求,使人们感受到快乐,所以才会有很多人说成为了像守望先锋,英雄联盟的用户,目标当然也是为了赚钱。
第三类工具类软件:由于这类软件的便捷性使得许多用户成为了他们的用户,但是这类软件大部分不是为了牟利,而是为了【个人理解】点击量或者是占领市场。
笼统的总结了一下这些目标:第一为了牟取利益,第二为了占领市场。
③这些软件是如何到你手里的(邮购,下载,互相拷贝……)
第一类系统类软件,像我电脑上的操作系统是在购买电脑时候就直接被卖家直接拷贝到了电脑上,当时上高二,觉得十分习以为常,但是第一次接触的话是小学,平时其他长辈操作时会进行旁观,觉得并不是很难,甚至自己还可以上手进行一些操作。
第二类游戏类软件,有些游戏是直接下载的,有些游戏是进行了购买后进行了下载,例如之前的在Steam上购买的一款名叫Human falls flat的游戏,第一次接触是在初二,在玩一款RPG类型游戏叫做“倩女幽魂”认为给自己带来了极大的满足感,认为十分快乐。
第三类工具性软件,像电脑上安装的WPS是直接在网上进行下载的。
第一次接触是在初中,进行了一系列的学习之后开始使用OFFICE的一系列办公软件,当时觉得确实是十分的方便快捷,以及认为十分神奇。
④ 这些软件是如何处理Bug 的?又是如何更新新版本的?
第一类系统软件:例如Windows每月都会发布系统更新和系统补丁位系统带来错误修复和安全提升以及新的功能。
第二类游戏软件:例如RPG类型的游戏每隔一段时间就会强制用户进行升级或者要求用户下载补丁否则无法进入游戏。
第三类工具类软件:之前下载了office一直就没有进行过升级,但是时间久了以后用户会自己发现某些功能已经不兼容了而会进行自主升级【个人感受及理解】
⑤同一类型的软件是如何进行竞争的?
像操作系统Linux操作系统和window操作系统,从某一方面特性上来着争取自己的客户并且不断学习同类型的软件的优势,像Linux操作系统就比window操作系统要更安全,而windows操作系统则使用更加简单方便,更适用于大众。类型相同的软件中,每个软件都有自己的特点,能够招揽不同的客户,在这的基础上不断进步,最后谁使用户满意度更高谁就获得更高的市场占有率。
⑥列举你在使用上述软件时观察到的“特殊”现象,它们和硬件有什么不同?这能说明软件的本质特性?
在使用上述软件时我观察到第一,不管是什么软件都是无法看到的,都不是一个存在于现实生活中的一个实体,而硬件是个实体,是可以看得见摸得着的,这一点说明了软件的不可见性,第二,接触到的这些软件都是复杂的,功能多样化的,个人理解,一个硬件往往只是对应某几种特定的功能,这说明了软件的复杂性。
5.软件工程就是教那些不怎么会写程序的人开发软件?你怎么看?
软件工程的定义
运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。
软件工程的目标是
在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需求的软件产品。追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。[2]
个人认为软件工程就如同现实生活中的工程一样,不仅仅是写程序,还涉及到了许许多多的问题,要学习原理等等很多的东西,甚至于软件工程方面的行业道德,业内规范,我们都需要去学习,让那些不会写软件的人去深入了解了这一一系列的东西,就像是让一个不会走路的小孩子一步步的先去学习如何爬行,再到如何站立,再到如何扶着东西走路,再到走路的一个过程。
6.你所在的学校有计算机科学专业和软件工程专业吗?相关专业的教学计划和毕业出路有什么不同?你们老师怎么教与实际相关的技术?阅读有关于软件工程和计算科学的区别的文章,谈谈你的看法
有两类专业,从我理解到的一些资料来看毕业出路大部分可能都是去做软件开发这样的工作,我个人认为计算机科学技术更偏向于硬件方面,而软件工程更倾向于软件方面,还有就是软件工程往往学习的并不是简简单单的敲代码,更多的涉及到了其他的方面,还有就是更注重于人与人之间的关系。
7.小组成员:王晶晶、王美婵、霍亚燕、吴卓忆、修佳月、黄淑玲