• 《构建之法》阅读笔记1+课后作业选做


    读后感:

    一个软件的生命周期,包括问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,也有将以上阶段的活动组合在内的迭代阶段。一个完整的软件周期需要我们和客户之间商量好需求,对软件进行分工,写的软件要可读性强易修改等等。要完成一个顶呱呱的软件,需要有大概模型,不断尝试探索,最终到考虑周全的成熟阶段,现在所学的东西都是为以后打基本功,冰冻三尺非一日之寒,只有做好现在才会尽量减少书到用时方恨少的情况。

    软件包括系统软件+应用软件+恶意软件,开发软件我们要考虑软件的模块复杂性和相互关联,出现问题时由于不可见性软件出现问题之后的修改,面对新的需求不同的硬件如何修改,对用户的要求参数的变化系统别的部分的要求做出服从,对错误意外做出非连续性反应等难题,这就需要负责不同部分的软件开发的人员相互配合,寻找用户满意度高,软件可靠性强,软件流程配合高效,可维护性强的办法。

    课后作业:

    1.阿超的四则运算

    要求随机出现50道整数/真分数的四则运算+不重复

    代码:

    //桃子之——阿超的四则运算
    /*要求:
     1.随机产生50个四则预算,包括整数和真分数
     2.要求不重复
     */
    package bb;
    import java.util.Random;
    import java.util.Scanner;
    import java.util.Vector;
    
    //阿超的运算程序
    public class Cc {
    public static void main(String args[]){
        Scanner sc=new Scanner(System.in);
        Random ne=new Random();
        Vector vet=new Vector();
        
        for(int i=1;i<=50;i++){//50题 每题的要求在for循环里判断
            boolean flag=false;//判断当真分数时进行循环
            String jg=" ";int a = 0,b=0,c=0,d=0,e=0,f=0;char h='-';//初始化随机数
            while(flag==false)
            {
                a=ne.nextInt(301);
                b=ne.nextInt(301);
                c=ne.nextInt(301);
                d=ne.nextInt(301);
                e=ne.nextInt(301);
                f=ne.nextInt(301);
                if(a<b&&c<d){
                flag=true;
                Object[] obj = new Object[4];//混合数组        {整数,整数,真分数,真分数}
                obj[0]=e;
                obj[1]=f;
                obj[2]=a+"/"+b;
                obj[3]=c+"/"+d;
                int objcd1=ne.nextInt(obj.length);
                Object m=obj[objcd1];String str1=m.toString(); 
                int objcd2=ne.nextInt(obj.length);//获取混合数组的一个元素
                Object n=obj[objcd2];String str2=n.toString(); 
                
                char[] fh={'+','-','*','/'};//符号数组
                int ysfh=ne.nextInt(fh.length);
                h=fh[ysfh];
                
                //查重
                jg=str1+" "+h+" "+str2+" "+"=";
                for(int j=0;j<vet.size();j++){
                    if(vet.get(j).equals(jg))
                        flag=false;
                    
                    else vet.add(jg);
                }
                
                if(flag==true)
                System.out.println(str1+" "+h+" "+str2+" "+"=");
                }
            }
        }
    }
    }

    结果截图:

     

    学到的东西:

    1.随机发生器—数组:

    先引用:

    import java.util.Random;

    再定义:

    Random ne=new Random();

    定义int数组mm

    再在数组中随机产生:

    int lh=ne.nextInt(m.length);

    int sj=mm[lh];

    2.java混合型数组定义:

    object obj=new object[3];

    obj[]=1;obj[1]="abc";obj[2]=a+"/"+b;

    java混合数组的获取

    得到对象数组

    Object obj  = myobj[i];

    获取字符串

    String str  = obj.toString();
    System.out.println(str);

    3.不重复就是要求产生的四则运算表达式不重复

    java没有动态数组,需要用到vector

    Vector vet==new Vector();
    String str="test1";
    double t1=0.124;
    vet.add(str);
    vet.add(String.valueOf(t1));
    用 vet.size()获取其大小;通过vet.get(i)获取第i个元素(i从0开始);且类型为Object,转换一下就可以了。

    总结:一年半的时间学了忘,思路是自己的,但方法是查阅的,很羞愧。

     4.选取软件并分析:

    一moblie apps手机应用

    软件开发者如何说服陌生人成为用户:方便好用和便宜,比如有了支付宝后我们出门不用携带大量现金,有了QQ后我们传送文件不用面对面拷贝,有了微信我们的朋友圈比QQ空间更保密,vsco强大的调色功能和风格也使它脱颖而出......

    他们的目的是盈利吗:肯定是为了赚钱的,但是赚钱的方法又有很多,比如通过免费获取巨大的用户群,然后在此基础上创造新的价值链。

    他们的目都是赚取现金密码,还是别的:软件盈利方式有很多,有的软件下载需要付费,有的有试用版正式版需要付费,有的普通用户不收费但是会员收费。比如,有形是增值业务,商家入驻佣金,o2o手续费,广告推广,应用分成收入,无形如流量,带动自家其他业务。

    软件是如何到你手上的:APP下载是一个,面对面快传是一个
    软件是如何处理BUG的,更新版本的: 我不知道,一般软件用不了就退了重新进,卸了重新下,关机重新来,网页版也不行的话就不用了。感觉更新版本就是为了修复Bug,和增加用户体验。
    同一类型的软件如何竞争:积累广大的用户也是一个盈利模式,比如微信和支付宝的竞争,微信用户有很大这就是它的竞争核心力,而支付宝的竞争核心力是购物如淘宝京东的支付。比如滴滴和优步,滴滴和优步之间发优惠券给补贴抢客户抢司机,大量的投资金互相残杀,然后导致合并,只有滴滴之后只要比出租车便宜方便用户又多,就不需要像以前大量补贴,可以提高价格挣更多的钱了。
     
  • 相关阅读:
    thread.md
    Linux系统编程手册_第6章_进程
    第一章.md
    开始.md
    粘滞位
    端口转发和端口映射
    virtualbox.md
    第6章.md
    JsparentNode、parentElement,childNodes、children 它们有什么区别呢?
    Sql注入防小试
  • 原文地址:https://www.cnblogs.com/Amyheartxy/p/6378852.html
Copyright © 2020-2023  润新知