2017-2018-1 20155333 《信息安全系統設計基礎》第四周學習總結

2017-2018-1 20155333 《信息安全系統設計基礎》第四周學習總結

教材學習內容總結

如圖:html

  • 命令head默認是查看文件的前10行,經過命令head /etc/passwd查看文件的前10行,也能夠增長參數-n 15查看前15行,參數n在這裏是指定行數的意思。咱們能夠經過命令man head查看更多的參數使用方法。

代碼以下:java

#include <stdio.h>

void main()
{
  int i,n;
  char buf[500];
  FILE *fp;

  if((fp=fopen("test.txt","rt"))==NULL)
  {
   printf("cannot open file\n");
   return;
  }
   for(i=0;i<10;i++){
   fscanf(fp,"%[^\n]%*c",buf);
   printf("%s\n", buf);
   }
   fclose(fp);
}

Linux下運行截圖:git

  • 命令tail默認是查看文件的最後10行,經過命令tail /etc/passwd查看文件的最後10行,也能夠增長參數-n 5查看最後5行,參數n在這裏是指定行數的意思。咱們能夠經過man tail查看更多的參數使用方法。命令tail常常被用來查看最新的日誌信息。能夠用tailf命令或者tail –f來實時查看日誌信息。

代碼以下:安全

#include <stdio.h>

void main()
{
int i,n;
char buf[500]; 
FILE *fp; 
int num=0;
if((fp = fopen("test.txt","rt")) == NULL)
{
perror("fail to read");
return;
}
while(fgets(buf,500,fp) != NULL)
{
num++;
}
rewind(fp);
n=num-10;
for(i=0;i<n;i++)
{
    fscanf(fp,"%*[^\n]%*c");
}
for(i=n;i<num;i++)
    {
    fscanf(fp,"%[^\n]%*c",buf);
     printf("%s\n",buf);
}
fclose(fp);
}

Linux下運行截圖:學習

教材學習中的問題和解決過程

  • 問題1:XXXXXX
  • 問題1解決方案:XXXXXX
  • 問題2:XXXXXX
  • 問題2解決方案:XXXXXX
  • ...

代碼調試中的問題和解決過程

  • 問題1:代碼爲:
#include <stdio.h>

void main()
{
int i,n;
char buf[500]; 
FILE *fp; 
int num=0;
if((fp = fopen("test.txt","rt")) == NULL)
{
perror("fail to read");
return;
}
while(fgets(buf,500,fp) != NULL)
{
num++;
}
n=num-10;

for(i=n;i<num;i++)
    {
    fscanf(fp,"%[^\n]%*c",buf);
     printf("%s\n",buf);
}
fclose(fp);
}

時,最後一行重複輸出10次,並無實現tail命令輸出後10行的功能。.net

  • 問題1解決方案:由於前面求文件行數時已經遍歷文件一次,此時指針指向文件結尾,因此輸出的10行都是最後一行的內容,此時需用rewind(fp);將指針移動到文件開頭。
  • 問題2:解決問題1後,代碼爲:
#include <stdio.h>

void main()
{
int i,n;
char buf[500]; 
FILE *fp; 
int num=0;
if((fp = fopen("test.txt","rt")) == NULL)
{
perror("fail to read");
return;
}
while(fgets(buf,500,fp) != NULL)
{
num++;
}
rewind(fp);
n=num-10;

for(i=n;i<num;i++)
    {
    fscanf(fp,"%[^\n]%*c",buf);
     printf("%s\n",buf);
}
fclose(fp);
}

本覺得不會再出現問題,怎料此時輸出的是前10行的內容。設計

  • 問題2解決方案:
    增長
for(i=0;i<n;i++)
{
    fscanf(fp,"%*[^\n]%*c");
}

將後10行以前的內容所有跳過,就能夠輸出後10行的內容了。指針

  • ...

代碼託管

上週考試錯題總結

  • 錯題1及緣由,理解狀況
  • 錯題2及緣由,理解狀況
  • ...

結對及互評

評分標準

  1. 正確使用Markdown語法(加1分):
    • 不使用Markdown不加分
    • 有語法錯誤的不加分(連接打不開,表格不對,列表不正確...)
    • 排版混亂的不加分
  2. 模板中的要素齊全(加1分)
    • 缺乏「教材學習中的問題和解決過程」的不加分
    • 缺乏「代碼調試中的問題和解決過程」的不加分
    • 代碼託管不能打開的不加分
    • 缺乏「結對及互評」的不能打開的不加分
    • 缺乏「上週考試錯題總結」的不能加分
    • 缺乏「進度條」的不能加分
    • 缺乏「參考資料」的不能加分
  3. 教材學習中的問題和解決過程, 一個問題加1分調試

  4. 代碼調試中的問題和解決過程, 一個問題加1分日誌

  5. 本週有效代碼超過300分行的(加2分)
    • 一週提交次數少於20次的不加分
  6. 其餘加分:
    • 週五前發博客的加1分
    • 感想,體會不假大空的加1分
    • 排版精美的加一分
    • 進度條中記錄學習時間與改進狀況的加1分
    • 有動手寫新代碼的加1分
    • 課後選擇題有驗證的加1分
    • 代碼Commit Message規範的加1分
    • 錯題學習深刻的加1分
    • 點評認真,能指出博客和代碼中的問題的加1分
    • 結對學習狀況真實可信的加1分
  7. 扣分:
    • 有抄襲的扣至0分
    • 代碼做弊的扣至0分
    • 遲交做業的扣至0分

點評模板:

  • 博客中值得學習的或問題:
    • xxx
    • xxx
    • ...
  • 代碼中值得學習的或問題:
    • xxx
    • xxx
    • ...
  • 基於評分標準,我給本博客打分:XX分。得分狀況以下:xxx

  • 參考示例

點評過的同窗博客和代碼

  • 本週結對學習狀況
    • 20155312
    • 結對照片
    • 結對學習內容
      • myod-系統調用版本
      • 教材第十章
      • head、tail命令
      • ...
  • 上週博客互評狀況

其餘(感悟、思考等,可選)

由於十一期間的任務沒有按時完成,因此這周累積的任務特別多,學習效果相應特別差,學習任務完成狀況也很糟糕,之後應該吸收教訓,作到今日事,今日畢。

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 10/10 1/1 10 /10
第二週 80/90 1/2 15/25
第三週 100/190 1/3 15/40
第四周 150/340 1/4 18/58

嘗試一下記錄「計劃學習時間」和「實際學習時間」,到期末看看能不能改進本身的計劃能力。這個工做學習中很重要,也頗有用。
耗時估計的公式
:Y=X+X/N ,Y=X-X/N,訓練次數多了,X、Y就接近了。

參考:軟件工程軟件的估計爲何這麼難軟件工程 估計方法

  • 計劃學習時間:30小時

  • 實際學習時間:18小時

  • 改進狀況:

(有空多看看現代軟件工程 課件
軟件工程師能力自我評價表
)

參考資料

相關文章
相關標籤/搜索