c语言实习报告文档格式.docx
《c语言实习报告文档格式.docx》由会员分享,可在线阅读,更多相关《c语言实习报告文档格式.docx(45页珍藏版)》请在冰点文库上搜索。
3.详细设计
3.1主函数
主函数的形式比较简单,它主要不是实现函数功能,它主要是提供函数调用和形成菜单,其C程序如下:
voidmain()
{
while(n!
=11)
*形成菜单:
printf("
*******************主菜单*******************\n\n"
);
1.工地ADD;
\n2.配件ADD;
\n3.销售商ADD;
\n4.销售商-配件-工地ADD;
\n5.工地DEL;
\n6.配件DEL;
\n7.销售商DEL;
\n8.销售商-配件-工地DEL;
\n9.查询与供应商所在城市相同的零件-供应商记录对;
\n10.查询与供应商所在城市相同的项目-供应商记录对;
\n11.退出系统;
\n请选择:
"
*提供函数的调用:
scanf("
%d"
&
n);
if(n==1)
add1();
elseif(n==2)
add2();
elseif(n==3)
add3();
elseif(n==4)
add4();
elseif(n==5)
del1();
elseif(n==6)
del2();
elseif(n==7)
del3();
elseif(n==8)
del4();
elseif(n==9)
modify1();
elseif(n==10)
modify2();
}}
*流程图如下:
3.2输入模块
数据信息存放在文件中,用结构体存放,方便数据输入与数据的保存。
另外,要先对个输入函数进行声明。
*C程序如下:
/************************输入工地信息*****************/
voidadd1()
charf='
y'
;
inti,j;
structbuildingbuild[M];
FILE*fp;
if((fp=fopen("
c.txt"
"
w+"
))==NULL)
exit(0);
}
while(f=='
)
{
for(i=0;
i<
M;
i++)
输入工地名:
%s"
build[i].name);
请输入工地号:
canf("
build[i].num);
请输入工地所在城市:
build[i].city);
fprintf(fp,"
%s%s%s\n"
build[i].name,build[i].num,build[i].city);
}
for(j=0;
j<
j++)
printf("
build[j].name,build[j].num,build[j].city);
是否继续y/n:
\n"
%c"
f);
}
fclose(fp);
/*********************输入配件信息********************/
voidadd2()
intI,j;
d.txt"
N;
请输入配件名称:
pj[i].p_name);
请输入配件编号:
pj[i].p_num);
请输入配件颜色:
pj[i].p_colour);
请输入配件重量:
pj[i].p_weight);
请输入配件产地:
pj[i].p_area);
%s%s%s%s%s\n"
pj[i].p_name,pj[i].p_num,pj[i].p_colour,pj[i].p_weight,pj[i].p_area);
for(j=0;
pj[j].p_name,pj[j].p_num,pj[j].p_colour,pj[j].p_weight,pj[j].p_area);
/**********************输入销售商信息*******************/
voidadd3()
e.txt"
A;
请输入销售商名称:
bus[i].b_name);
请输入销售商编号:
bus[i].b_num);
请输入销售商状态:
bus[i].b_state);
请输入销售商所在城市:
bus[i].b_city);
%s%s%s%s\n"
bus[i].b_name,bus[i].b_num,bus[i].b_state,bus[i].b_city);
bus[j].b_name,bus[j].b_num,bus[j].b_state,bus[j].b_city);
/**********************输入总信息*******************/
voidadd4()
f.txt"
B;
请输入销售商号:
bpb[i].b_num);
请输入配件号:
bpb[i].p_num);
请输入建筑工地号:
bpb[i].num);
请输入数量:
bpb[i].num2);
bpb[i].b_num,bpb[i].p_num,bpb[i].num,bpb[i].num2);
bpb[j].b_num,bpb[j].p_num,bpb[j].num,bpb[j].num2);
3.3删除模块
建立菜单,选择要删除的信息,利用删除信息功能的函数实现信息从文件中删除掉。
*程序如下:
/*******************删除工地信息*****************/
voiddel1()
intm,i,j,k;
r+"
))==NULL)
\nerror!
!
feof(fp);
fscanf(fp,"
)
输入要删除第几条信息:
m);
for(k=m;
k<
k++)
strcpy(build[k].name,build[k+1].name);
strcpy(build[k].num,build[k+1].num);
strcpy(build[k].city,build[k+1].city);
(M-1);
/*******************删除配件信息*****************/
voiddel2()
strcpy(pj[k].p_name,pj[k+1].p_name);
strcpy(pj[k].p_num,pj[k+1].p_num);
strcpy(pj[k].p_colour,pj[k+1].p_colour);
strcpy(pj[k].p_weight,pj[k+1].p_weight);
strcpy(pj[k].p_area,pj[k+1].p_area);
(N-1);
/********************删除销售商信息*********************/
voiddel3()
%s%s%s%s\n"
strcpy(bus[k].b_name,bus[k+1].b_name);
strcpy(bus[k].b_num,bus[k+1].b_num);
strcpy(bus[k].b_state,bus[k+1].b_state);
strcpy(bus[k].b_city,bus[k+1].b_city);
(A-1);
/********************删除总信息**********************/
voiddel4()
strcpy(bpb[k].b_num,bpb[k+1].b_num);
strcpy(bpb[k].p_num,bpb[k+1].p_num);
strcpy(bpb[k].num,bpb[k+1].b_num);
strcpy(bpb[k].num2,bpb[k+1].num2);
3.4查询模块
输入销售商的地址,然后通过字符串比较的函数,判断产地是否相同,然后输出这些信息。
*C程序如下:
/*********************查找销售商-配件信息****************/
voidmodify1()
cs[20];
\nerror\n"
输入销售商所在城市:
cs);
if(strcmp(cs,pj[i].p_area)==0)
配件名称:
%s\n"
配件编号:
配件颜色:
配件重量:
配件产地:
/************************查找销售商-工地信息**********************/
voidmodify2()
if(strcmp(cs,build[i].city)==0)
工地名称:
工地编号:
工地所在城市:
3.5声明及结构体定义部分
该部分主要是对函数声明,以及对结构体的定义,首先要宏定义四个宏定义变量,与四个结构体变量进行对应,然后对各个子函数进行声明,其C程序如下:
#include<
stdio.h>
stdlib.h>
string.h>
#defineM5
#defineN3
#defineA5
#defineB5
structbuilding
charname[20];
charnum[20];
charcity[20];
}build[M];
structpeijian
charp_name[20];
charp_num[20];
charp_colour[20];
charp_weight[20];
charp_area[20];
}pj[N];
structbusiness
charb_name[20];
charb_num[20];
charb_state[20];
charb_city[20];
}bus[A];
structtotal
charnum2[20];
}bpb[B];
voidadd1();
voidadd2();
voidadd3();
voidadd4();
voiddel1();
voiddel2();
voiddel3();
voiddel4();
voidmodify1();
voidmodify2();
intn;
/**************定义全局变量**************/
4.测试结果分析
*菜单:
如下图所示,已经形成菜单,可以选择下一步要进行的操作。
*输入部分:
图一是对工地数据进行输入,由于最后一项无法删除,且会在删除前面某一项后,会填补倒数第二项,故而可以用全零表示无数据。
如图,数据已输入并已存入。
另外,图二是对销售商信息进行输入。
*查询部分:
如下图所示,为对销售商——工地进行配对查找,输入已有的销售商地址,即得到与之配对的工地号,功能得以实现。
*删除部分:
图一是选择要删除的数据项,可以选0到3,最后一项无法删除。
图二显示的是要删除的数据已经删除,实现了删除功能。
5.总结
此次课程设计的学习,让我的在计算机方面的认识有了更为广阔的了解。
其中在学习过程中遇到了许多麻烦。
以前在课堂上学的C语言用到上机上来,许多问题都反映了出来,得以让我的认知升级。
课程设计的学习,提高了我运用了计算机能力以及培养了我运用结构化程序设计的思想和方法,初步掌握开发一个小型实用系统的基本方法,学会调试较长的程序,学会用流程图表示算法,进一步掌握和提高利用C语言进行程序设计的能力。
程序设计的过程,