当前位置: 首页 > news >正文

第一次作业

要求零:https://www.cnblogs.com/ranh941/p/7999266.html

要求一:https://git.coding.net/xup457/wf.git

要求二:看了邹欣的书,学习了这个表格,感觉非常实用,不仅能够给自己制定一个合理的计划来完成任务,还能用来总计自己在完成过程中的用时,来反映不如,不过把自己的个个人信息全部曝光在网上真的好吗,把书上的东西用这样卑劣的手段来宣传,看来是有人想攻击这本书,谁布置的作业要求,谁提出的要求二,好过分有没有考虑清楚,之前就有同学的博客被一个程序员转发后遭到了攻击。

 

SP2.1任务内容计划需要时间(min)实际完成时间(min)
Planning计划5090
Estimate估计开发所需要的时间,需要的工作步骤,需要的思路和方法5090
Development开发8002000
Analysis需求分析(软件,语言工具等)150300
Design Spec生成设计文档2060
Design Reviewe设计复审(和同事审核设计文档)1026
Coding Standard代码规范(为目前的开发制定合适的规范)2070
Desgin具体设计200600
Desgin具体编码200300
Code Review代码复审50150
Test测试(自我测试,修改代码,提交修改)150200
Record Time Spent记录用时120200
Test Report测试报告20500
Size Measurement计算工作量2040
Postmortem & Process Improvement Plan事后总结和提出过程改进计划8080
功能模块具体阶段预计时间 (min)实际时间 (min)
功能1具体设计4060 
 具体编码120200
 测试完善4060
功能2具体设计40130
 具体编码110150
 测试完善50120
功能3具体设计3045
 具体编码140156
 测试完善3063
 
 
#include<bits/stdc++.h>
#include<io.h>
#define ll long long
#define debug(x) cout<<#x<<"  : "<<x<<endl;
#define psl pair<string , ll>

using namespace std;

bool XUP_num_get(string &XUP_pp , int& file_num)
{
    string tmp = "";
    auto i = XUP_pp.find("-n");
    if( i == string::npos )
        return 0;
    i += 3;
    for(;i < XUP_pp.size() ; i++ ){
        if( XUP_pp[i] == ' ' )
            break;
        tmp += XUP_pp[i];
    }
    stringstream ss;
    ss<<tmp;
    ss>>file_num;
    return 1;
}

void get_all_file(string XUP_path , vector<string>& son_files , string XUP_fmat)
{
    long hFile = 0;
    struct _finddata_t fileinfo;
    string p;
    if( ( hFile = _findfirst( p.assign( XUP_path ).append("\\*" + XUP_fmat).c_str() , &fileinfo ) )  != -1 )
    {
        do
        {
            if( fileinfo.attrib & _A_SUBDIR ){
                if( strcmp( fileinfo.name , "." ) != 0 && strcmp( fileinfo.name , ".."  ) != 0 )
                    get_all_file( p.assign(XUP_path).append("\\").append(fileinfo.name), son_files , XUP_fmat );
            }
            else
                son_files.push_back( p.assign( fileinfo.name ) );

        }while( _findnext( hFile , &fileinfo ) == 0 );
        _findclose(hFile);
    }
}

void XUP_read_txt(string file_name , string& str)
{
    ifstream file;
    file.open( file_name.c_str() );
    string s;
    while( getline( file , s ) )
        str = s + ' ' + str;
    transform( str.begin() , str.end() , str.begin() , ::tolower  );
    file.close();
}

struct cmp
{
    bool operator ()(const psl& a , const psl& b){
        return a.second != b.second ? a.second > b.second : a.first < b.first;
    }
};
//, string XUP_s
void XUP_solve( string XUP_input_str   )
{
    map<string , ll> mp;
    string str = "" , tmp = "";

    string file_name ;
    string son_str;

    ifstream file;
    file.open( file_name.c_str() );
    string son_s;
    while( getline( file , son_s ) )
        son_str = son_s + ' ' + son_str;
    transform( son_str.begin() , son_str.end() , son_str.begin() , ::tolower  );
    file.close();

    int file_num;
    bool limit = XUP_num_get( XUP_input_str , file_num );
    for( auto ch : str ){
        if( ch >= '0' && ch <= '9' || ch >= 'a' && ch <= 'z' ){
            tmp += ch;
            continue;
        }
        if( !tmp.empty() ){
            if( tmp[0] >= 'a' && tmp[0] <= 'z' )
                mp[tmp]++;
            tmp = "";
        }
    }
    if( !tmp.empty() ){
        if( tmp[0] >= 'a' && tmp[0] <= 'z' )
            mp[tmp]++;
        tmp = "";
    }
    if( !limit ){
        cout<<"total "<<mp.size()<<endl;
        puts("");
        for( auto it : mp )
            cout<<left<<setw(30)<<it.first<<it.second<<endl;
    }
    else{
        cout<<"Total words is "<<mp.size()<<endl;
        puts("------------------");
        vector<psl> vec( mp.begin() , mp.end() );
        sort( vec.begin() , vec.end() , cmp() );
        for( auto it : vec ){
            cout<<left<<setw(30)<<it.first<<it.second<<endl;
            file_num--;
            if( !file_num )
                break;
        }
    }
}



bool XUP_File_get(const string now , string &File_Name)
{
    auto i = now.find("-c");
    if( i == string::npos )
        return false;
    i += 3;
    for(;i < now.size() ; i++ ){
        if( now[i] == ' ' )
            break;
        File_Name += now[i];
    }
    return true;
}

bool XUP_Path_get(const string now , string &Path_Name)
{
    auto i = now.find("-f");
    if( i == string::npos )
       return false;
    i += 3;
    for(;i < now.size() ; i++ ){
        if( now[i] == ' ' )
            break;
        Path_Name += now[i];
    }
    return true ;
}

int main()
{
    string XUP_input_str , XUP_File_Name = "" , XUP_Path_Name = "" , XUP_files = "" , XUP_real_file;
    getline( cin  , XUP_input_str );
    bool have_Path = XUP_Path_get( XUP_input_str , XUP_Path_Name );
    bool have_File = XUP_File_get( XUP_input_str , XUP_File_Name );
    if( have_Path ){
        vector<string> files;
        const string format = ".txt";
        get_all_file( XUP_Path_Name , files , format );
        sort( files.begin() , files.end() );
        XUP_real_file = XUP_Path_Name + "\\" + files[0];
    }
    else
        XUP_real_file = XUP_File_Name;
    XUP_solve(XUP_input_str );//, XUP_real_file
    return 0;
}

/*
wf -f D:\ACM±à³Ì\±ÈÈüÖÐ -n 2
wf -c pipifan.txt
*/

 

 

要求三:我与同学讨论过一些具体代码的写法以上可以说是我个人的风格绝对没有抄袭,我刚拿到问题的时候,觉得吧,是先把文件中的字符串按空格把单词提取出来,然后统计单词数量我先是想用map,或者结构体的,然后写一个排序函数cmp,再写一个指令判断的函数来判断指令来进行不同的操作;我对从文件中读出字符串不太熟悉,查了一些资料,到网上找一些没把个人信息公开的博主看了他们的资料,学习到了不少知识,了解到了,从路径读取文件的必备函数,真如邹欣老师所说的博客学习真的很重要,真的是前几年读博客学习,博客们都写的很详细,他们要是靠这个提高名声的,他们也有利用弱势群体压迫他们写博客来提高名声的,网络危险,何况我们信息被人曝光,如果被一些人威胁,让我们威胁做苦力或者是做一些不好的事,怎么找人,怎么帮助我们证明清白?看来又有人要诋毁声誉了,居心叵测啊。

难点:在于这个博客怎么写才能不被别人攻击,老师们发的讲解都没说到细节上,但是那些小人就是要歪曲我们的意思,来找一些不清不楚的观点攻击我们,请老师换一个安全方式交作业。

心理历程:讲真的代码虽然不简单,写了很久,但是最让我挣扎的是这个博客,写了实话会被那些打分的人低分,甚至会有水军攻击他们,而且我们在看一个外企资深员工写的关于网络的书,我们只是普通大学生,在社会上没什么安全保障,个人信息被人曝光到网上,外企员工动不动就问我们博客地址,这个人对网路十分熟悉,有数十万粉丝,好强的。

 

总结:我认为,应该改成纸质作业,以及博客文字不涉及代码的总结,对于代码写在纸上,助教可以来我们班听课,了解老师在课上所讲的内容也好切合实际留作业,尽量少出现留作业连续出错还强行说成是试炼还和所留内容课程无关的尴尬场面,他在班上的时候也可以判断一下作业分数,这样在正常的工作时间来解决现在存在的问题的方法不是很好吗?希望助教可以考虑,听说你在你们那届的风评不好,如今这些评价已经传到了我们这些与你毫无关系的学弟学妹耳中,希望你多考虑以后每届都这样。。。。不会的吧?而且不要出一些对外企员工的书不利的作业要求,你这样做外界会说他这是变相让我们给他打工,你看看外面的谣言要是这么说你你可怎么办。再说说构造之法虽然看不懂,写的迷迷糊糊不过好像很厉害,推荐同学看了,不知道他们会看吗?我也没问。

转载于:https://www.cnblogs.com/xup457/p/9688938.html

相关文章:

  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • 大数据
  • TitleBar 的那些设置
  • FR 在数据库查询中使用模板参数
  • 07-文本属性和字体属性,超链接导航栏案例,background,
  • python数据结构转换格式化
  • 服务器连接不成功测试办法
  • 英语发音规则---N字母
  • python深坑集锦 -- super
  • 反客为主 ,Linux 成为微软 Azure 上最流行的操作系统
  • Linux下面如何运行.sh文件
  • windows下 python中报错ImportError: No module named 'requests'
  • SDUT-3331_数据结构实验之链表八:Farey序列
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • 国内pip
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 【node学习】协程
  • 07.Android之多媒体问题
  • es6
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • Promise面试题2实现异步串行执行
  • Shell编程
  • 从零开始的无人驾驶 1
  • 仿天猫超市收藏抛物线动画工具库
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 力扣(LeetCode)21
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 探索 JS 中的模块化
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 通信类
  • 优秀架构师必须掌握的架构思维
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • ​​​​​​​​​​​​​​Γ函数
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (HAL库版)freeRTOS移植STMF103
  • (三)docker:Dockerfile构建容器运行jar包
  • (十八)SpringBoot之发送QQ邮件
  • (十三)Maven插件解析运行机制
  • (十一)图像的罗伯特梯度锐化
  • (一)WLAN定义和基本架构转
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (转)德国人的记事本
  • .aanva
  • .Net Memory Profiler的使用举例
  • .NET 回调、接口回调、 委托
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • .NETCORE 开发登录接口MFA谷歌多因子身份验证
  • .net中我喜欢的两种验证码
  • @entity 不限字节长度的类型_一文读懂Redis常见对象类型的底层数据结构
  • @ModelAttribute注解使用
  • [ C++ ] STL---string类的使用指南
  • [ vulhub漏洞复现篇 ] struts2远程代码执行漏洞 S2-005 (CVE-2010-1870)