https://github.com/noapanda/031702603ios
PSP2.1 | Personal Software Process Stages | 預估耗時(分鐘) | 實際耗時(分鐘) |
---|---|---|---|
Planning | 計劃 | 20 | 20 |
Estimate | 估計這個任務須要多少時間 | 900 | 1440 |
Development | 開發 | 180 | 200 |
Analysis | 需求分析 (包括學習新技術) | 100 | 200 |
Design Spec | 生成設計文檔 | 30 | 60 |
Design Review | 設計複審 | 30 | 30 |
Coding Standard | 代碼規範(爲目前的開發制定合適的規範) | 30 | 60 |
Design | 具體設計 | 120 | 180 |
Coding | 具體編碼 | 60 | 90 |
Code Review | 代碼複審 | 30 | 30 |
Test | 測試(自我測試,修改代碼,提交修改) | 100 | 300 |
Reporting | 報告 | 60 | 80 |
Test Repor | 測試報告 | 60 | 100 |
Size Measurement | 計算工做量 | 20 | 60 |
Postmortem & Process Improvement Plan | 過後總結, 並提出過程改進計劃 | 30 | 50 |
合計 | 870 | 1460 |
#define _CRT_SECURE_NO_DEPRECATE #include <fstream> #include<iostream> #include<stdio.h> using namespace std; int main(int argc, char *argv[]) { int m, n; FILE* fp1; FILE* fp2; m = atoi(argv[2]);//命令行輸入的第三個參數:宮格階級 n = atoi(argv[4]);//命令行輸入的第五個參數:待解答盤面數目 //cin >> m >> n; //以文本只讀方式打開intput.txt fp1 = fopen("input.txt", "r"); if (fp1 == NULL) //打開文件失敗 return -1; //打開output.txt,並當即關閉,目的:清空文本內容 fp2 = fopen("output.txt", "w"); if (fp2 == NULL) //打開文件失敗 return -1; fclose(fp2);//關閉文件 int i, j, k, num, w, p, q; int sudoku[10][10]; int sign[4] = { 0 };//存放行列中已經出現的數,例如:某行或列出現3,則sign[3]=1 fp2 = fopen("output.txt", "a"); for (num = 0; num < n; num++) { //輸入錶盤的二維數組 for (i = 0;i < m; i++) { for (j = 0;j < m;j++) { fscanf(fp1, "%d", &sudoku[i][j]); //cin >> sudoku[i][j]; } } while (1) { w = 0; //判斷錶盤中是否還有空格 for (i = 0;i < m;i++) { for (j = 0;j < m;j++) { if (sudoku[i][j] == 0) { w++; } } } if (w == 0)//表示錶盤已經填完 { break; } for (i = 0;i < m;i++) { for (j = 0;j < m;j++) { if (sudoku[i][j] != 0) continue; //若該空格爲填入,則進行行列遍歷,找到已出現的數 if (sudoku[i][j] == 0) { //行遍歷 for (q = 0;q < 3;q++) { if (sudoku[i][q] != 0) { sign[sudoku[i][q]] = 1; } } //列遍歷 for (q = 0;q < 3;q++) { if (sudoku[q][j] != 0) { sign[sudoku[q][j]] = 1; } } p = 0;//p用於記錄該空格的候選數數量 for (q = 1;q < 4;q++) { if (sign[q] == 0)//表示該空格所在行列中均沒有q { p++; k = q; } } } if (p == 1) { sudoku[i][j] = k; //cout<<k<<endl; } //初始化sign[] for (q = 0;q < 4;q++) { sign[q] = 0; } } } } //輸出完整錶盤 for (i = 0;i < 3;i++) { for (j = 0;j < 3;j++) { fprintf(fp2, "%d ", sudoku[i][j]); //cout << sudoku[i][j] << " "; if (j == 2) fprintf(fp2, "\n"); //cout << endl; } } fprintf(fp2, "\n"); } return 0; }
fp2 = fopen("output.txt", "a");