导航:首页 > 软件知识 > 信息课程序调试怎么写

信息课程序调试怎么写

发布时间: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)证明假设。假设不等于事实,证明假设的合理性是极其重要的,不经证明就根据假设排除错误,往往只能消除错误的征兆或只能改正部分错误。证明假设的方法是用它解释所有原始的测试结果,如果能圆满地解释一切现象,则假设得到证明,否则要么是假设不成立或不完备,要么是有多个错误同时存在。
四,演绎法排错 。设想可能的原因,用已有的数据排除不正确的假设,精化并证明余下的假设。
五、对分查找法。如果知道每个变量子啊程序内若干个关键点上的正确值,则可用赋值语句或输入语句在程序中的关键点附近“注入”这些变量的正确值,然后检查程序的输出。如果输出结果是正确的,则表示错误发生在前半部分,否则,不妨认为错误在后半部分。这样反复进行多次,逐渐逼近错误位置。

阅读全文

与信息课程序调试怎么写相关的资料

热点内容
如何运行数控程序 浏览:379
赣州信息价在哪里看 浏览:460
兽药什么时候在哪招代理 浏览:730
保时捷水温数据流怎么看 浏览:80
如何进行建筑工程技术鉴定 浏览:15
公主家产品有哪些明星代言 浏览:190
程序员的朋友圈是什么样的 浏览:33
小程序如何添加点击效果 浏览:278
外资代理记账价格多少 浏览:442
城市轨道车辆应用技术专升本可以报什么 浏览:761
如何搭建数据平台 浏览:822
重庆哪里有冷冻食品批发市场 浏览:255
保险代理人资格证怎么取得 浏览:144
东莞莞城区哪个市场豆腐好吃 浏览:448
定制属于什么技术 浏览:225
拼多多在哪里看数据进行分析 浏览:483
产品质量诊断有哪些种类 浏览:723
什么产品充电器好用 浏览:428
数据未备份会有什么后果 浏览:362
word状态栏的信息不包括什么 浏览:971