導航:首頁 > 軟體知識 > 信息課程序調試怎麼寫

信息課程序調試怎麼寫

發布時間:2024-05-20 08:44:18

㈠ 鐢–璇璦鍋氱殑瀛︾敓閫夎劇郴緇熻兘澶熻皟璇曡繍琛岀殑

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>#define SIZE 100struct proct {
char name[40];
int cost;
int retail;
int on_hand;
int lead_time;
}invtry[SIZE];void display();//鏄劇ず鍑芥暟
void enter();//娣誨姞鍑芥暟
void init();//鍒濆嬪寲鍑芥暟
void input(int i);//鍐欏叆鍑芥暟
void update();//鏇存柊鍑芥暟
void query();//鏌ヨ㈠嚱鏁
void remove();//鍒犻櫎鍑芥暟int main()
{
char c;init();
fflush(stdin);
do{
printf("嬈㈣繋浣跨敤鏈搴撳瓨緋葷粺\n");
printf("\n");
printf("娣誨姞浜у搧淇℃伅璇鋒寜 E \n");
printf("鏄劇ず浜у搧淇℃伅璇鋒寜 D \n");
printf("鏇存柊浜у搧淇℃伅璇鋒寜 U \n");
printf("鏌ヨ浜у搧淇℃伅璇鋒寜 Q \n");
printf("鍒犻櫎浜у搧淇℃伅璇鋒寜 R \n");
printf("閫鍑虹▼搴忚彍鍗曡鋒寜 C \n");
scanf("%c",&c);
fflush(stdin);
if(c=='e' || c=='E')
enter();
else if(c=='d' || c=='D')
display();
else if(c=='u' || c=='U')
update();
else if(c=='q' || c=='Q')
query();
else if(c=='r' || c=='R')
remove();
else if(c=='c' || c=='R')
return 0;
else
printf("浣犵殑杈撳叆鏈夎\n");
}while(c!='C');
}void init()
{
int i;
for(i=0;i<SIZE;i++)
{
*invtry[i].name='\0';//鎵鏈変駭鍝佸悕縐拌繘琛屾竻絀
}
printf("鍒濆嬪寲瀹屾垚\n");
}void enter()
{
int i;
for(i=0;i<SIZE;i++)
{
if(*invtry[i].name=='\0')
{
break;
}}
if(i==SIZE)
{
printf("搴撳瓨淇℃伅宸叉弧錛屾棤娉曠戶緇澧炲姞錛");
return;
}
input(i);
}void input(int i)
{
printf("杈撳叆浜у搧鍚嶇О\n");
scanf("%s",invtry[i].name);
printf("杈撳叆浜у搧鎴愭湰\n");
scanf("%d",&invtry[i].cost);
printf("杈撳叆浜у搧浠鋒牸\n");
scanf("%d",&invtry[i].retail);
printf("杈撳叆浜у搧搴撳瓨閲\n");
scanf("%d",&invtry[i].on_hand);
printf("杈撳叆浜у搧榪涜揣鍛ㄦ湡\n");
scanf("%d",&invtry[i].lead_time);
}void update()
{
int i;
char temp[40];
printf("杈撳叆瑕佷慨鏀圭殑浜у搧鍚\n");
scanf("%s",temp);
fflush(stdin);
for(i=0;i<SIZE;i++)
{
if(!strcmp(temp,invtry[i].name))
break;
}
if(i==SIZE)
{
printf("娌℃湁鎵懼埌浣犺緭鍏ョ殑浜у搧");
return;
}
printf("璇瘋緭鍏ユ柊鐨勪駭鍝佷俊鎮");
input(i);
}void display()
{
int i;
for(i=0;i<SIZE;i++)
{
if(*invtry[i].name)
{
printf("浜у搧鍚嶇О%s\n",invtry[i].name);
printf("浜у搧鎴愭湰%d\n",invtry[i].cost);
printf("浜у搧浠鋒牸%d\n",invtry[i].retail);
printf("浜у搧搴撳瓨%d\n",invtry[i].on_hand);
printf("浜у搧榪涜揣鍛ㄦ湡%d\n",invtry[i].lead_time);
}
}
}void query()
{
int i;
char temp[40];
printf("杈撳叆瑕佹煡璇㈢殑浜у搧鍚\n");
scanf("%s",temp);
fflush(stdin);
for(i=0;i<SIZE;i++)
{
if(!strcmp(temp,invtry[i].name))
break;
}
if(i==SIZE)
{
printf("娌℃湁鎵懼埌浣犺緭鍏ョ殑浜у搧");
return;
}
printf("浜у搧鍚嶇О%s\n",invtry[i].name);
printf("浜у搧鎴愭湰%d\n",invtry[i].cost);
printf("浜у搧浠鋒牸%d\n",invtry[i].retail);
printf("浜у搧搴撳瓨%d\n",invtry[i].on_hand);
printf("浜у搧榪涜揣鍛ㄦ湡%d\n",invtry[i].lead_time);
}void remove()
{
int i;
char temp[40];
printf("杈撳叆瑕佸垹闄ょ殑浜у搧鍚\n");
scanf("%s",temp);
fflush(stdin);
for(i=0;i<SIZE;i++)
{
if(!strcmp(temp,invtry[i].name))
break;
}
if(i==SIZE)
{
printf("娌℃湁鎵懼埌浣犺緭鍏ョ殑浜у搧");
return;
}
for(i;i<SIZE;i++)
{
invtry[i]=invtry[i+1];
}
printf("鍒犻櫎鎿嶄綔鎴愬姛\n");
} 鏈変竴涓浜у搧綆$悊鐨勶紝浣犳妸緇撴瀯浣撴敼鎴愬︾敓鐨勫氨鍙浠ヤ簡

㈡ 程序調試的方法

一,簡單調試方法:步驟
1,在程序中插入列印語句、優點是能夠顯示程序的動態過程,比較容易檢查源程序的有關信息。缺點是效率低,可能輸入大量無關的數據,發現錯誤帶有偶然性。
2,運行部分程序。有時為了測試某些被懷疑有錯的程序段,卻將整個程序反復執行許多次,在這種情況下,應設法使被測程序只執行需要檢查的程序段,以提高效率。
3,藉助調試工具。目前大多數程序設計語言都有專門的調試工具,可以用這些工具來分析程序的動態行為。
二,回溯法排錯。確定最先發現錯誤症狀的地方,人工沿程序的控制流往回追蹤源程序代碼,直到找到錯誤或范圍。
三,歸納法排錯。是一種系統化的思考方法,是從個別推斷全體的方法,這種方法從線索(錯誤徵兆出發),通過分析這些線索之間的關系找出故障。主要有4步:
(1)收集有關數據。收集測試用例,弄清測試用例觀察到哪些錯誤徵兆,以及在什麼情況下出現錯誤等信息。
(2)組織數據。整理分析數據,以便發現規律,即什麼條件下出現錯誤,什麼條件下不出現錯誤。
(3)導出假設。分析研究線索之間的關系,力求找出它們的規律,從而提出關於錯誤的一個或多個假設,如果無法做出假設,則應設計並執行更多的測試用例,以便獲得更多的數據。
(4)證明假設。假設不等於事實,證明假設的合理性是極其重要的,不經證明就根據假設排除錯誤,往往只能消除錯誤的徵兆或只能改正部分錯誤。證明假設的方法是用它解釋所有原始的測試結果,如果能圓滿地解釋一切現象,則假設得到證明,否則要麼是假設不成立或不完備,要麼是有多個錯誤同時存在。
四,演繹法排錯 。設想可能的原因,用已有的數據排除不正確的假設,精化並證明餘下的假設。
五、對分查找法。如果知道每個變數子啊程序內若干個關鍵點上的正確值,則可用賦值語句或輸入語句在程序中的關鍵點附近「注入」這些變數的正確值,然後檢查程序的輸出。如果輸出結果是正確的,則表示錯誤發生在前半部分,否則,不妨認為錯誤在後半部分。這樣反復進行多次,逐漸逼近錯誤位置。

閱讀全文

與信息課程序調試怎麼寫相關的資料

熱點內容
數據未備份會有什麼後果 瀏覽:360
word狀態欄的信息不包括什麼 瀏覽:969
刑事案簡易程序要多久 瀏覽:211
各視頻會員怎麼代理 瀏覽:423
北京怎麼運作會計代理記賬 瀏覽:794
微信小程序有什麼游戲經營類 瀏覽:725
代理市長什麼時候出現 瀏覽:813
三流產品怎麼引流 瀏覽:340
人口遷移數據為什麼不能查詢 瀏覽:101
手游如何交易安全 瀏覽:85
去南方人才市場需要准備什麼 瀏覽:931
南昌廉租房信息在哪裡查 瀏覽:275
吉林普洱茶葉如何代理 瀏覽:100
主機入侵檢測系統利用哪些信息 瀏覽:994
怎麼教孩子壘球技術 瀏覽:354
朝陽附近工商代理多少錢 瀏覽:556
所有程序菜單中標黃色是什麼意思 瀏覽:129
單行道逆行多少天信息 瀏覽:593
伽思珂護發素怎麼代理 瀏覽:761
三甲基鋁產品有什麼用 瀏覽:680