zoukankan      html  css  js  c++  java
  • 魏新 20190905-3 命令行和控制台编程

    此作业的要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/5523

    1.熟悉 命令行和控制台

    (1)假设在当前目录下存在应用程序 a.exe 和 文件文件 b.txt,请以数据流图并辅助以文字说明下述控制台命令的作用是什么。

    答:b文件的内容输入进a程序中,然后将输出结果保存在c文件中。

    (2)请用C语言开发应用程序d.exe,从控制台指令读入命令行参数,并在控制台分别打印出a、b、c的值。运行效果形如下面的示例。

    代码如下:

    #include<stdio.h>
    int main()
    {
        int a,b,c;
        scanf("a=%d b=%d c=%d",&a,&b,&c);
        printf("%d
    %d
    %d",a,b,c);
    }

    执行效果截图如下:

     2.熟悉 测试用例

    (1)请在网站 [https://pintia.cn/]注册账号。

    (2)在题目集 PAT (Basic Level) Practice (中文) 中任选3道题目完成。

    截图如下:

    (3)代码解读

    发表博客,介绍上述3个题目代码中重点/难点,展示重要代码片断,给出执行效果截图,展示你感觉得意、突破、困难的地方。

    1001 害死人不偿命的(3n+1)猜想

    此题较为容易,利用递归判断下奇偶数便可得出结果。

    代码片段如下:

    int kan(int i,int n)
    {
        if(i==1)
            return n;
        else if(i%2==0)
        {
            n++;
            kan(i/2,n);
        }
        else if(i%2!=0)
        {
            n++;
            kan((3*i+1)/2,n);
        }
    }

    执行效果截图如下:

    1002 写出这个数

    此题的难点在于如何利用字符串来处理这个大数,以及如何处理结果为X0X、X00(X指1-9任意一个数字)这一类数字的输出。

    代码片段如下:

    if(bai!=0)
    {
        switch1(bai);
        printf(" ");
        switch1(shi);
        printf(" ");
        switch1(ge);
    }
    else if(shi!=0)
    {
        switch1(shi);
        printf(" ");
        switch1(ge);
    }
    else if(ge!=0)
    {
        switch1(ge);
    }

    执行效果截图如下:

    1006 换个格式输出整数

    此题较为简单,判断一下输入数字的位数然后利用循环便可做出来。

    代码片段如下:

    if(bai!=0)
    {
        for(int temp1=0;temp1<bai;temp1++)
            printf("B");
    }
    if(shi!=0)
    {
        for(int temp2=0;temp2<shi;temp2++)
            printf("S");
    }
    if(ge!=0)
    {
        for(int temp3=1;temp3<=ge;temp3++)
            printf("%d",temp3);
    }

    执行效果截图如下:

    (4)PSP

    在同一篇博客中,参照教材第35页表2-2和表2-3,为上述3个题目制作PSP阶段表格。PSP阶段表格第1列分类,如功能1、功能2、测试功能1等。

    出现时间差的原因:

    1、在编写1001题和1006题的时候,我发现我的C语言并没有遗忘那么多,于是就很顺利的完成了编码以及测试,所以出现了预计时间大于实际时间的状况。

    2、1002题的字符串处理大数在一开始构思的时候想的很好,到了实际编码才发现各种函数都忘得一干二净,只能临时补课;后来测试的时候出现了错误,一开始忽略掉了某种类型结果的输出,后来思考后改正。于是1002题的实际耗时比预估时间超出了不少。

  • 相关阅读:
    古典兔子问题
    (I/O流)在100ms内桌面上生成一个200M大小的文件
    搭建手机UI自动化
    关于String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    关于数据库范式的理解
    Orcl分页查询的语法示例
    Eclipse alt+/语法不提示的解决方法
    redis 使用rdb从高版本迁移至低版本
    redis集群详解
    Linux firewall防火墙设置
  • 原文地址:https://www.cnblogs.com/Eustia/p/11506384.html
Copyright © 2011-2022 走看看