C语言课程设计报告建筑工地信息管理系统Word文档下载推荐.docx

上传人:b****5 文档编号:18837273 上传时间:2023-01-01 格式:DOCX 页数:41 大小:162.37KB
下载 相关 举报
C语言课程设计报告建筑工地信息管理系统Word文档下载推荐.docx_第1页
第1页 / 共41页
C语言课程设计报告建筑工地信息管理系统Word文档下载推荐.docx_第2页
第2页 / 共41页
C语言课程设计报告建筑工地信息管理系统Word文档下载推荐.docx_第3页
第3页 / 共41页
C语言课程设计报告建筑工地信息管理系统Word文档下载推荐.docx_第4页
第4页 / 共41页
C语言课程设计报告建筑工地信息管理系统Word文档下载推荐.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

C语言课程设计报告建筑工地信息管理系统Word文档下载推荐.docx

《C语言课程设计报告建筑工地信息管理系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告建筑工地信息管理系统Word文档下载推荐.docx(41页珍藏版)》请在冰豆网上搜索。

C语言课程设计报告建筑工地信息管理系统Word文档下载推荐.docx

1)插入数据模块;

2)删除模块;

3)查询模块;

4)查找配对;

5)功能选择菜

图1系统功能模块图

4、详细设计

一、主函数

【分析】主函数一般设计得比较简便,只提供输入、处理和输出部分的函数调用。

其中各功能模块用菜单方式选择。

其流程图:

图2主函数流程图

【程序】

/************************主菜单*********************************/

voidmenu()

{

intn,w;

/*变量n保存选择菜单数字,w判断输入的数字是否在功能菜单对应数字范围内*/

do

{puts("

\t\t*************建筑工地信息管理****************\n\n"

);

puts("

姓名:

文富奎"

20071003889"

班学号:

055071-30"

\t\t****************MENU*******************\n\n"

\t\t\t\t1.输入"

/*输入*/

\t\t\t\t2.删除"

/*删除*/

\t\t\t\t3.查找"

/*查找*/

\t\t\t\t4.配对"

/*查找配对*/

\t\t\t\t5.Exit"

\n\n\t\t**************************************\n"

printf("

Chooseyournumber(1-5):

[]\b\b"

scanf("

%d"

&

n);

if(n<

1||n>

5)

{w=1;

getchar();

}elsew=0;

}

while(w==1);

switch(n)

{case1:

enter();

break;

case2:

delete();

case3:

search();

case4:

search2();

case5:

exit(0);

}

main()

{

menu();

二、各功能模块设计

(1)数据输入模块

【分析】数据信息存放在文件中,用结构体存放,方便数据输入与数据的保存。

另外,输入模块中建立副菜单,用以输入四个文件的信息选项。

图3数据输入模块流程图

【程序】

/*****************************数据输入模块************************************/

voidsal_enter()

{intj;

charc[2];

FILE*fp;

if((fp=fopen("

data1.txt"

"

w"

))==NULL)

printf("

Cannotopenthefile!

\n"

for(j=0;

j<

i;

j++)

fwrite(&

sal[j],sizeof(structsale),1,fp);

while

(1)

输入销售商号码:

scanf("

sal[i].num1);

输入配件号码:

sal[i].num2);

输入工地号码:

sal[i].num3);

输入数量r:

sal[i].num4);

if(fwrite(&

sal[i++],sizeof(structsale),1,fp)!

=1)

Filewriteerror\n"

elseprintf("

Successful!

是否继续?

(是[y]/否[n])\n"

%s"

c);

if(strcmp(c,"

n"

)==0)break;

fclose(fp);

voidbuild_enter()

{intj;

data2.txt"

build[j],sizeof(structbuilding),1,fp);

输入工地号:

build[i].num);

输入工地名:

build[i].name);

输入工地城市:

build[i].city);

build[i++],sizeof(structbuilding),1,fp)!

Isthereanymore?

(Yes[y]/No[n])\n"

voidpj_enter()

{intj;

data3.txt"

pj[j],sizeof(structpeijian),1,fp);

while

(1)

输入配件号:

pj[i].num);

输入配件名:

pj[i].name);

输入配件颜色:

pj[i].color);

输入配件重量:

pj[i].weight);

输入配件产地:

pj[i].area);

pj[i++],sizeof(structpeijian),1,fp)!

voidSET_enter()

data4.txt"

sel[j],sizeof(structseller),1,fp);

输入销售商号:

sel[i].num);

输入销售商名:

sel[i].name);

输入销售商状态:

sel[i].state);

输入销售商所在城市:

sel[i].city);

sel[i++],sizeof(structseller),1,fp)!

voidenter()

{intt,m;

\t\t***************MENU*************\n\n"

puts("

\t\t\t\t1.sal_enternewdata"

\t\t\t\t2.build_enternewdata"

\t\t\t\t3.pj_enternewdata"

/***************输入菜单****************/

\t\t\t\t4.SET_enternewdata"

\n\n\t\t********************************\n"

Choosethenumber(1-5):

m);

if(m<

1||m>

{t=1;

getchar();

elset=0;

while(t==1);

switch(m)

case1:

sal_enter();

build_enter();

pj_enter();

SET_enter();

(2)删除模块

【分析】建立副菜单,选择要删除的是哪个文件中的信息,输入相应的信息,找到数据将其删除。

一般的做法是将数据从文件中删除,删除位置后面的记录往前移。

模块如:

图4删除模块流程图

/******************************删除模块************************************/

voidsal_delete()

{intj,v;

intw;

请输入要删除的销售商号码:

"

w);

fp=fopen("

rb"

100;

if(fread(&

sal[j],sizeof(structsale),1,fp)!

=1)break;

v=j;

v;

if(w==sal[j].num1)

{printf("

项目号,销售商号码,配件号,工地号,数量:

%d%d%d%d%d"

sal[j].num,sal[j].num1,sal[j].num2,sal[j].num3,sal[j].num4);

for(i=j;

i<

i++)sal[j]=sal[j++];

删除成功"

}

Cannotfindthedata!

voidbuild_delete()

intw;

请输入要删除的工地号:

build[j],sizeof(structbuilding),1,fp)!

if(w==build[j].num)

{printf("

工地号,工地名,城市名:

%d%s%s"

build[j].num,build[j].name,build[j].city);

}

voidpj_delete()

请输入要删除的配件号:

pj[j],sizeof(structpeijian),1,fp)!

if(w==pj[j].num)

配件号,配件名,颜色,重量,产地:

%d%s%s%d%s"

pj[j].num,pj[j].name,pj[j].color,pj[j].weight,pj[j].area);

elseprintf("

voidSET_delete()

{intj,v,c;

请输入号码:

sel[j],sizeof(structseller),1,fp)!

if(w==sel[j].num)

销售商号码,销售商名字,状态,城市:

\n"

%d%s%s%s"

sel[j].num,sel[j].name,sel[j].state,sel[j].city);

voiddelete()

\t\t\t\t1.sal_deletenewdata"

\t\t\t\t2.build_deletenewdata"

\t\t\t\t3.pj_deletenewdata"

/*********删除菜单****************/

\t\t\t\t4.SET_deletenewdata"

t=1;

sal_delete();

build_delete();

pj_delete();

SET_delete();

(3)查找模块

【分析】选择查找方式,输入相应的数据然后找出对应的数据。

模块流程图:

图5查找模块流程图

/********************************查找模块***********************************/

voidsearch()

intflag,j,x;

intw,v,z,y;

1.By项目号\n"

2.By工地号\n"

3.By配件号\n"

4.By销售商号\n"

请选择项:

x);

if(x==3)

flag=0;

Pleaseinputthe配件号:

if(pj[j].num==w)

配件号:

%d\n"

pj[j].num);

配件名:

%s\n"

pj[j].name);

配件颜色:

pj[j].color);

配件重量:

pj[j].weight);

配件产地:

pj[j].area);

---------------------------------\n"

flag=1;

if(flag==0)

menu();

if(x==4)

请输入销售商号:

z);

if(pj[j].num==y)

销售商号:

sel[j].num);

销售商名:

sel[j].name);

所在城市名:

sel[j].city);

if(x==2)

请输入建筑工地号:

if(pj[j].num==z)

建筑工地号:

build[j].num);

建筑工地名:

build[j].name);

build[j].city);

if(x==1)

Pleaseinputthe项目号:

v);

r

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1