zoukankan      html  css  js  c++  java
  • 编程作业

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/computer-science-class4-2018/
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/computer-science-class4-2018/homework/11880
    这个作业的目标 阅读构建之法并提出问题
    学号 20188508

    一,gitee地址

    https://gitee.com/zhuwanxing/project-c

    二,PSP

    PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
    Planning 计划
    • Estimate • 估计这个任务需要多少时间 250 350
    Development 开发 10 10
    • Analysis • 需求分析 (包括学习新技术) 5 5
    • Design Spec • 生成设计文档 15 25
    • Design Review • 设计复审 10 15
    • Coding Standard • 代码规范 (为目前的开发制定合适的规范) 20 25
    • Design • 具体设计 30 45
    • Coding • 具体编码 90 150
    • Code Review • 代码复审 35 30
    • Test • 测试(自我测试,修改代码,提交修改) 10 25
    Reporting 报告 5 10
    • Test Repor • 测试报告 15 25
    • Size Measurement • 计算工作量 15 25
    • Postmortem & Process Improvement Plan • 事后总结, 并提出过程改进计划 20 30
    合计 280 400+

    三、解题思路描述

    最后还是没能够完全达成题目要求,只做了一部分。
    题目要求总体分为这几个部分

    1.输出txt文件中的字符数,单词总数,有效行数。

    这3个基本上是一起的,使用fopen()函数打开文件,再用指针定位字符,然后统计它们所出现的次数。这部分我很快就解决了。
    打开文件

    fp=fopen("input.txt","r");
    

    统计字符数,单词总数,有效行数

    do{   	
           characters++;
    	   if(ch>='A'&&ch<='Z')
               {	
    	   	flag++;
    	   }
    	   else if(ch>='a'&&ch<='z')
               {
    	   	flag++;  	
    	   }
    	   else if(ch>='0'&&ch<='9'&&flag>3)
               {
    	   	flag++;
    	   }
    	   else{
    	   	if(flag>3)
                       {
    	   		words++;
    		   } 
    	   	flag=0;
    	   } 
    	   if(ch=='
    ')
    	   {
           	   lines++;
    	   }
    	}while((ch = fgetc(fp)) != EOF);
    

    2.统计文件中各单词的出现次数(对应输出接下来10行),最终只输出频率最高的10个。

    这部分我就想了半天都没有想到怎么好的处理,统计出现的次数以及还要对他们进行排序(出现次数相同用字典顺序)输出。搞了很久都没有解决,作业要截止了就只能交个半成品上来。

    四、代码规范链接

    代码规范

    五、接口的设计与实现过程

    fp=fopen("input.txt","r");
         
        do{   	
           characters++;
    
    	   if(ch>='A'&&ch<='Z'){
    	
    	   	flag++;
    	   }
    	   else if(ch>='a'&&ch<='z'){
    
    	   	flag++;
    	   	
    	   }
    	   else if(ch>='0'&&ch<='9'&&flag>3){
    
    	   	flag++;
    	   }
    	   else{
    	   	if(flag>3){
    	   		words++;
    		   } 
    	   	flag=0;
    	   } 
    	   
    	   
    	   if(ch=='
    ')
    	   {
           	lines++;
    	   }
    	}while((ch = fgetc(fp)) != EOF);
        fp=fopen("output.txt","w");
        fprintf(fp,"characters: %d
    ",characters);
        fprintf(fp,"words: %d
    ",words);
        fprintf(fp,"lines: %d",lines);
    

    六、性能改进和单元测试

    单词出现频率还没能完成

    七、心得体会

    这次作业感觉到了自己的不足,很多地方就容易卡壳了,以及git工具的使用还不是很熟练。还需要一些练习。

  • 相关阅读:
    SpringBoot入门学习(二)
    SpringBoot入门学习(一)
    eclipse调试程序界面简单介绍使用
    利用URLConnection来发送POST和GET请求
    查看用户所属的组
    linux下创建用户,给用户设置密码,给用户授权
    新linux系统上rz 与sz命令不可用
    pom.xml文件报错:web.xml is missing and <failOnMissingWebXml> is set to true
    MySql采用GROUP_CONCAT合并多条数据显示的方法
    Mysql计算时间差
  • 原文地址:https://www.cnblogs.com/zhuwanxing/p/14608002.html
Copyright © 2011-2022 走看看