proyecto individual contra -word

Proyecto de enlace de Git

Word Counter

Requisitos del proyecto

Un wc.exe programa de línea de comandos diseñada

  1. Lograr un simple y herramientas de software completos (características estadísticas del programa de código).
  2. Unidad de prueba, prueba de regresión, prueba de rendimiento, el uso de herramientas asociadas en el curso de la consecución del programa anterior.
  3. Para practicar Personal Software Process (PSP), y registrar gradualmente su propio tiempo de permanencia en cada parte de la ingeniería de software.

función

funciones básicas
1. -c 输出文本的字符数
2. -w 输出文本的单词数
3. -l 输出文本的行数
extensión
1. -s 输出目录下所有符合的文件信息
2. -a 输出文本的注释行、空行、代码行
3. *.* 文件名支持输入通配符
Características avanzadas
1. -x 单独使用,打开GUI界面,可以用图形界面选择文件,并输出信息

Las dificultades encontradas y soluciones

1. El uso de git aprendizaje

Baidu, documentos oficiales, entender la función de sincronizar carpetas + control de versiones Git

2. GUI

El uso de Qt se dan cuenta, ver vídeos y documentos sólo se puede garantizar la realización de un mínimo de
comenzar a usar win32api quiere lograr ventana, pero no tuvo éxito, por lo que un alto grado de encapsulación de usar Qt, y más convenientes
aspectos de la interfaz de contacto, pero antes de la gráfica es relativamente pequeña , al principio todavía hay muchos no entienden los detalles, tener problemas

El código o especificación de diseño clave (C ++)

Estadísticas función general, -c -a -l-w

Fila bucle lee los caracteres en el texto, hasta que haya leído la última línea de cada partida de sus estadísticas, lo que puede tener extensiones más convenientes.

void count(){
    memset(&this->num, 0, sizeof(this->num));
    string str;
    while (getline(inFile, str))
    {
        num.ch += count_char(str);
        num.word += count_word(str);
        num.line += count_line(str);
        num.codeline += code_comment(str).first;
        num.comment += code_comment(str).second;
        num.spaceline += isspace(str);
    }
}
Comodines y subdirectorios de la poligonal, -s *. *

El sistema completo con el comando dir para subdirectorios transversales

//用system的dir命令获取文件目录
void GetAllDir(const string &dir)
{
    freopen(pathFileName, "w", stdout);
    system((string("dir /b 2>NUL ") += dir).c_str());
    fclose(stdout);
    freopen("CON", "w", stdout);
}
//筛选出文件目录,存入vector并返回
vector<string> GetSubDir(string dir)
{
    GetAllDir(dir);
    vector<string> res;
    string str;
    ifstream ifs(pathFileName);
    if (!ifs.is_open())
    {
        cout << "Fail";
        exit(0);
    }
    while (ifs >> str)
    {
        string t = dir;
        (t += "\\") += str;
        QFileInfo fi(t.c_str());
        if (fi.isDir())
            res.push_back(t);
    }
    ifs.close();
    return res;
}
Qt interfaz gráfica, -x
//按钮被点击后的操作
void MainWindow::on_pushButton_clicked()
{
    //弹出文件选择界面
    QString FilePath = QFileDialog::getOpenFileName(this);
    WC wc;
    //输出统计的信息
    if(wc.open(FilePath.toStdString())){
        wc.count();
        QString str="";
        ((str += " 字符 数量 : ")+= int_to_Qstring(wc.num.ch))+= "\n";
        ((str += " 单词 数量 : ")+= int_to_Qstring(wc.num.word))+= "\n";
        ((str += " 行数 :")+= int_to_Qstring(wc.num.line))+= "\n";
        ((str += " 代码行 :")+= int_to_Qstring(wc.num.codeline))+= "\n";
        ((str += " 注释行 :")+= int_to_Qstring(wc.num.comment))+= "\n";
        (str += " 空白行 :")+= int_to_Qstring(wc.num.spaceline);
        QMessageBox::information(this,"Word Counter",str);
    }
}

prueba

Gráficos y una variedad de computación



-s y la función de comodín

Vamos a buscar archivos en subdirectorios

En la victoria final, y si hay cumplimiento del comodín en los archivos del directorio actual coinciden directamente con la línea de comandos resultante, escriba *. * Después de entrar en el programa sería una coincidencia directa para el nombre del archivo donde una queja, por lo que es imposible el uso de parámetros *

PSP

PSP2.1 Etapas del Proceso de Software Personal Estimado de consumo de tiempo (minutos) Los que consumen mucho tiempo reales (minutos)
Planificación plan
· Estimación • Calcular la cantidad de tiempo esta tarea requiere 10 15
Desarrollo desarrollar
· Análisis · Análisis de Necesidades (incluyendo el aprendizaje de nuevas tecnologías) 400 610
· Diseño de especificaciones Generar documentos de diseño 20 10
· Revisión de diseño · Revisión de Diseño (y sus colegas revisaron los documentos de diseño) 0 0
· Codificación Estándar · Especificaciones de códigos (desarrollo de normas apropiadas para el desarrollo actual) 10 10
· Diseño · Diseño específico 30 10
· Codificación · Codificación específica 180 240
· Revisión de código · Revisión Código 10 5
· Prueba · Test (autoprueba, modificar el código, enviar modificaciones) 30 100
la presentación de informes informe
· Informe de prueba · Informe de prueba 60 30
· Medida del tamaño · Cargas de trabajo informáticas 5 10
· Postmortem y Plan de Mejora de Procesos · La retrospección, y proponer plan de mejora de procesos 20 15
total 775 1060

Aprender barra de progreso

proyecto tiempo
sencilla de rebajas 10
Git 120
windowsAPI 180
Qt 300

Supongo que te gusta

Origin www.cnblogs.com/shakugannoshana/p/12530967.html
Recomendado
Clasificación