软工实践寒假作业(2/2)

这个作业属于哪个课程 [2020春S班
这个作业要求在哪里 软工实践寒假作业2/2
这个作业的目标 学习使用GitHub,编写疫情统计程序,制定代码规范并编写PSP表格
作业正文 软工实践寒假作业2/2
其他参考文献 百度百科,博客园,CSDN,知乎,菜鸟教程

GitHub仓库地址

PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 100 145
Estimate 估计这个任务需要多少时间 20 30
Development 开发 1230 1510
Analysis 需求分析 (包括学习新技术) 90 105
Design Spec 生成设计文档 75 90
Design Review 设计复审 60 70
Coding Standard 代码规范 (为目前的开发制定合适的规范) 45 55
Design 具体设计 150 180
Coding 具体编码 540 655
Code Review 代码复审 105 125
Test 测试(自我测试,修改代码,提交修改) 195 230
Reporting 报告 135 145
Test Repor 测试报告 45 55
Size Measurement 计算工作量 30 35
Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 45 55
合计 1500 1820

解题思路

软工实践寒假作业(2/2)_第1张图片


关键函数流程图

软工实践寒假作业(2/2)_第2张图片


代码说明

init()程序初始化,判断命令参数的类型

public void init(String[] args) throws Exception {
    char a = '-';
    String dic = null;
    String path = null ;
    String date=null;
    boolean status=false;
    String[] type = new String[4];
    String[] provinces = new String[31];
    for (int i = 0; i < args.length; i++) {
        if ("-log".equals(args[i])) {
            dic = args[i + 1];
        } else if ("-out".equals(args[i])) {
            path = args[i + 1];
        } else if ("-date".equals(args[i])) {
            date = args[i + 1];
            status=true;
        } else if ("-type".equals(args[i])) {
            flag1 = true;
            int k = 0;
            for (int j = i + 1; j < args.length && args[j].toCharArray()[0] != a; j++) {
                type[k++] = args[j];
            }
        } else if ("-province".equals(args[i])) {
            flag2 = true;
            int k = 0;
            for (int j = i + 1; j < args.length && args[j].toCharArray()[0] != a; j++) {
                provinces[k++] = args[j];
            }
        }
    }

    if (isExistPath(path)) {

        ArrayList filenames=new ArrayList<>();
        if(!status){
            sortFilename(dic,filenames);
            date=filenames.get(filenames.size()-2);
        }
        provinces = sortProvinces(provinces);
        type = deleteArrayNull(type);
        if (isValidDate(date, dic) && isValidProvince(provinces) || !flag2 && isValidDate(date, dic)) {
            outputFile(path, dic, date);
            dealFlag(type, provinces);
            System.out.println("// 该文档并非真实数据,仅供测试使用\n");
        } else {
            isValidDate(date, dic);
            if (!isValidDate(date, dic)) {
                System.out.println("日期格式不合法!");
            } else if (!isValidProvince(provinces)) {
                System.out.println("省份错误!");
            }
        }
    }
}

你可能感兴趣的:(软工实践寒假作业(2/2))