zoukankan      html  css  js  c++  java
  • 2019寒假训练营第二次作业

    学习视频课程

    学习笔记博客

    程序题(C语言实现)

    GitHub上的仓库

    热身题

    实现思路
    打开输入输出文件,用fgetc和fputc函数逐字符将文件内容写到output.txt中,最后关闭这两个文件

    实现结果
    output文件里和Request一样,有了好多好多的记录。

    基本题

    实现思路
    1.定义一个结构体数组,用fscanf将文件读入并存入结构体数组。
    2.统计所有发送方发送的总信息大小,并将结果存入另一个结构体数组。
    3.循环判断超出阈值的人数和名字,并将名字存入一个二维数组(为了先输出黑客的数量),之后按要求输出人数和分别的名字。

    实现结果
    成功找出了5个黑客,分别是gmhq,dxjr,cftm,mebk,cnkz

    开放题

    1.吐槽
    方法一要求把所有请求和对应的信息大小都存下来,占用很多内存,而且其中的服务器名bob更是重复了一万次...把黑客名存进黑名单也很麻烦,而且输出有先输出人数再输出名字的要求,若反过来能舒服不少。

    2.我的方法

    • 概述:
      不保存所有请求,但保存整理后每个发送方及其发送的信息总大小(发送方不重复)。
      每次读入文件的一行,然后判断这个发送方之前是否发送过,若没有则为其创建一个记录来保存他发送的信息总大小。之后累计该发送方发送的信息总大小,并判断他发送的信息总量是否超过了阈值,若超过则输出他的名字,并将其标记为黑客,总黑客人数加一。最后关闭文件,输出黑客总数。
    • 优点:
      只需要一个结构体一个函数,更加简练。占用内存更少而且运行速度有所提高。并且总请求数量和黑客数量都支持小于一万的任意正整数,使程序更为灵活。
    • 缺点:
      都放在同一个函数层次不够分明,不太好理解。没有严格按照题目要求,改为先输出黑客名字再输出总个数,但问题不大。依然无法支持任意正整数的请求数量,最高只能处理一万个请求。

    3.实现:

  • 相关阅读:
    XP下关于快速切换用户功能的相关编程
    CRC原理及其逆向分析方法
    爱的十个秘密4.给予的力量
    爱的十个秘密1.序幕
    隐式链接无.LIB动态链接库
    电影图标黑客帝国(The Matrix)
    手机图标
    圣斗士图标:十二星座黄金圣衣
    MAC风格图标
    GB码与BIG5
  • 原文地址:https://www.cnblogs.com/Stareven233/p/10333967.html
Copyright © 2011-2022 走看看