C语言课设之建筑工地信息管理系统Word格式文档下载.docx
《C语言课设之建筑工地信息管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言课设之建筑工地信息管理系统Word格式文档下载.docx(43页珍藏版)》请在冰点文库上搜索。
\t\t\t\t8.显示工地信息"
\t\t\t\t9.显示配件信息"
\t\t\t\t10.显示销售商信息"
\t\t\t\t11.查找数据"
\t\t\t\t12.退出"
\n\n\t\t*******************************************\n"
printf("
选择项目(1-12):
[]\b\b\b"
scanf("
%d"
&
n);
if(n<
1||n>
12)
{
w1=1;
getchar();
}
elsew1=0;
}
while(w1==1);
switch(n)
case1:
enter();
break;
case2:
add();
case3:
del();
case4:
modify();
case5:
insert();
case6:
browse();
case7:
browse_project();
case8:
browse_site();
case9:
browse_outfit();
case10:
browse_sale();
case11:
search();
case12:
exit(0);
}}
3.各功能模块设计
(1)输入模块
//整个系统数据结构:
structproject
charsite_num[10];
charsite_name[20];
charsite_city[20];
charoutfit_num[10];
charoutfit_name[20];
charoutfit_color[10];
charoutfit_place[20];
charsale_num[10];
charsale_name[20];
charsale_state[10];
charsale_city[20];
intoutfit_n;
}pro[N];
注意:
pro[N]中的N为项目数量,本
程序宏定义#defineN50
//流程示意图:
(1)//输入模块
voidenter()
inti,n;
printf("
你需要输入几组数据(0-%d)?
:
"
N-1);
scanf("
\n现在输入数据\n\n"
for(i=0;
i<
n;
i++)
\n请输入第%d个数据.\n"
i+1);
input(i);
if(i!
=0)
save(n);
save_project(n);
save_site(n);
save_outfit(n);
save_sale(n);
printf_back();
system("
PAUSE"
(2)追加模块
[流程图]
//追加模块程序
intadd()
inti,n,m,k;
FILE*fp;
n=load();
你想增加多少个数据(0-%d)?
N-1-n);
m);
k=m+n;
for(i=n;
k;
\n增加第%d个工程记录.\n"
i-n+1);
if((fp=fopen("
main.txt"
"
ab"
))==NULL)
不能打开文件\n"
if(fwrite(&
pro[i],sizeof(structproject),1,fp)!
=1)
printf("
文件写入错误\n"
fclose(fp);
project.txt"
\n不能打开文件\n"
returnNULL;
}fprintf(fp,"
%s,%s,%s,%d"
pro[i].sale_num,pro[i].outfit_num,
pro[i].site_num,pro[i].outfit_n);
fclose(fp);
site.txt"
fprintf(fp,"
%s,%s,%s"
pro[i].site_num,pro[i].site_name,
pro[i].site_city);
if((fp=fopen("
outfit.txt"
%s,%s,%s,%s,%d"
pro[i].outfit_num,pro[i].outfit_name,
pro[i].outfit_color,pro[i].outfit_place,
pro[i].outfit_n);
sale.txt"
%s,%s,%s,%s"
pro[i].sale_num,pro[i].sale_name,
pro[i].sale_state,pro[i].sale_city);
printf_back();
return0;
(3)删除模块
//删除模块程序
voiddel()
structprojectp;
//FILE*fp;
inti,n,w1,w2,j;
printf_face();
for(i=0;
printf_one(i);
\n\n需要删除那个?
要输入什么?
\n\t1).工地号2)工件号3)销售商号4)工件数量5)返回\n"
请选择:
(1-5):
w2);
switch(w2)
case1:
printf("
工地号:
scanf("
%s"
p.site_num);
case2:
工件号:
p.outfit_num);
case3:
销售商号:
p.sale_num);
case4:
工件数量:
p.outfit_n);
case5:
menu();
for(j=i;
j<
j++)
if((strcmp(p.site_num,pro[i].site_num)||strcmp(p.outfit_num,pro[i].outfit_num)||strcmp(p.sale_num,pro[i].sale_num))==0||p.outfit_n==pro[i].outfit_n)
{
pro[i]=pro[j];
printf("
第%d个记录被删除!
\n"
i-1);
n--;
save(n);
printf_face();
printf_one(i-1);
}
while(j<
要删除其它吗?
?
\n\t1)是2)返回"
i);
\t\n请选择:
(1-2):
[]\b\b"
w1);
(4)修改模块
//流程图示意图
//修改模块程序
voidmodify()
inti,n,k,w0=1,w1,w2=0;
k=-1;
if((i!
=0)&
&
(i%10==0))
{
\n\n没有找到更改的数据.按任意键继续"
getch();
puts("
\n\n"
}
do
\n\n输入你想修改的销售商号!
销售商号:
scanf("
p.sale_num);
for(i=0;
if(strcmp(p.sale_num,pro[i].sale_num)==0)
{
k=i;
p=pro[i];
}
if(k==-1)printf("
\n\n返回!
重试"
}while(k==-1);
printf_one(k);
w1=modify_data(k,n);
if(w1=1)
\n成功^-^.\n\n需要更改另外一个吗?
\n\t1)需要2)返回保存\t"
\n请选择:
w0);
w2=1;
else
w0=0;
if(w2==1)
pro[k]=p;
if(w0!
=1&
w2==1)
save(n);
}while(w0==1);
(5)插入模块
//插入模块
voidinsert()
inti,j,n,c;
\n请输入一个数据.\n"
input(n);
printf_one(n);
\n\n确定?
\n\n\t1).确定\t2).取消再试\t3).返回不保存\n"
(1-3):
c);
if(c==1)
for(j=i;
n+1;
if(pro[j].outfit_n<
pro[j+1].outfit_n)
{
p=pro[j];
pro[j]=pro[j+1];
pro[j+1]=p;
}
save(n+1);
printf_back();
elseif(c!
=2)
menu();
}while(c==2);
(6)浏览模块
//浏览模块示意图
//所有项目显示模块
voidbrowse()
printf_face();
if(i!
=0&
i%10==0)
\n\n按任意键继续"
getch();
puts("
printf_one(i);
\t\n有%d个的记录.\n"
n);
\n按任意键返回"
getch();
//销售商-配件-建筑工地浏览模块
//建筑工地浏览模块
voidbrowse_site()
printf_site1();
printf_site(i);
//配件浏览模块
voidbrowse_outfit()
printf_outfit1();
printf_outfit(i);
\t\n有第%d个记录.\n"
//销售商浏览模块
voidbrowse_sale()
printf_sale1();
printf_sale(i);
(7)查找模块
//查找示意图
//查找模块
voidsearch()
inti,n,k,w1=1,w2,w3,w4,w5;
{system("
k=-1;
printf_face();
printf_one(i);
\n\n你要输入什么号?
\n\t1)销售商所在城市2).工地所在城市3)返回\n"
w5);
switch(w5)
销售商所在城市:
p.sale_city);
工地所在城市:
p.site_city);
if((strcmp(p.site_city,pro[i].site_city)&
strcmp(p.sale_city,pro[i].sale_city))==0)
printf_one(k);
if(k==-1)
printf("
\n\n没有数据!
\n\n是否重试?
\n\t1).是2)不\n"
scanf("
if(w1==2)break;
while(k==-1&
w1==1);
w4=0;
w3=0;
if(k!
=-1)
\n\n请选择\n\t1).继续查找2).修改3).删除4).返回菜单\n"
(1-4):
switch(w2)
w3=modify_data(k,n);
{printf("
\n请选择\n\t1).是2).不,返回"
w4);
if(w3==1||w4==1)
save(n);
\n\n成功.^-^."
\n\n请选择\n\t1).继续查找2).返回\n"
scanf("
}while(w2==1);
4.公共函数
//保存整个系统数据
intsave(intn)
inti;
wb"
if(fwrite(&
=1)
return0;
//保存主项目
intsave_project(intn)
fprintf(fp,"
pro[i].sale_num,pro[i].outfit_num,pro[i].site_num,pro[i].outfit_n);
//保存建筑工地信息
intsave_site(intn)
pro[i].site_num,pro[i].site_name,pro[i].site_city);
//保存配件信息
intsave_outfit(intn)
pro[i].outfit_num,pro[i].outfit_name,pro[i].outfit_color,pro[i].outfit_place,pro[i].outfit_n);
//保存销售商信息
intsave_sale(intn)
pro[i].sale_num,pro[i].sale_name,pro[i].sa