Proyecto de enlace de Git
Word Counter
Requisitos del proyecto
Un wc.exe programa de línea de comandos diseñada
- Lograr un simple y herramientas de software completos (características estadísticas del programa de código).
- 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.
- 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 |