高级语言程序设计说明书建筑工地信息管理系统Word下载.docx

上传人:b****3 文档编号:18474952 上传时间:2022-12-17 格式:DOCX 页数:50 大小:219.51KB
下载 相关 举报
高级语言程序设计说明书建筑工地信息管理系统Word下载.docx_第1页
第1页 / 共50页
高级语言程序设计说明书建筑工地信息管理系统Word下载.docx_第2页
第2页 / 共50页
高级语言程序设计说明书建筑工地信息管理系统Word下载.docx_第3页
第3页 / 共50页
高级语言程序设计说明书建筑工地信息管理系统Word下载.docx_第4页
第4页 / 共50页
高级语言程序设计说明书建筑工地信息管理系统Word下载.docx_第5页
第5页 / 共50页
点击查看更多>>
下载资源
资源描述

高级语言程序设计说明书建筑工地信息管理系统Word下载.docx

《高级语言程序设计说明书建筑工地信息管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《高级语言程序设计说明书建筑工地信息管理系统Word下载.docx(50页珍藏版)》请在冰豆网上搜索。

高级语言程序设计说明书建筑工地信息管理系统Word下载.docx

1、需求分析:

信息采用文件存储,因而要提供文件的输入输出操作;

要插入数据,因而要提供数据的添加操作;

要实现数据的删除、更新和查询,因而要提供文件记录的删除、修改和查找操作;

另外要提供键盘式选择菜单以实现功能选择。

2、总体设计:

整个系统可以被设计为数据输入模块、数据添加模块、数据删除模块、数据查询并修改模块、配对模块。

数据添加模块

图1系统功能模块图

4、详细设计

一、主函数

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

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

 

voidmenu()f1()f11()

{{·

·

do{do{·

switch(c)switch(c)}

{case1:

f1();

break;

f11();

case2:

f2();

f12();

case3:

case3:

f13();

case4:

f14();

case5:

exit(0);

back=0;

default:

}default:

}

}while

(1);

·

}}

(2)

【程序】

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

voidmenu()

{

intw;

do

{

system("

cls"

);

printf("

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

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

/*输入*/

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

/*删除*/

\t\t\t\t3.查找与修改\n"

/*查找与修改*/

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

/*查找配对*/

\t\t\t\t5.添加\n"

\t\t\t\t6.退出"

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

Chooseyournumber(1-6):

[]\b\b"

scanf("

%d"

&

w);

switch(w)

case1:

enter();

Delete();

search();

search2();

add();

case6:

}

}while

(1);

}

voidmain()

{

color0a9"

start();

PAUSE"

menu();

二、各功能模块设计

(1)数据输入模块

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

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

【程序】

(以输入销售商结构体信息为例)

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

voidSEL_enter()

intj;

charc[2];

FILE*fp;

if((fp=fopen("

data4.txt"

"

w"

))==NULL)

{printf("

Cannotopenthefile!

\n"

for(j=0;

j<

i;

j++)

{fwrite(&

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

while

(1){

printf("

\n输入销售商号:

"

scanf("

%s"

sel[i].num);

\n输入销售商名:

sel[i].name);

\n输入销售商所在城市:

sel[i].city);

if(fwrite(&

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

=1)

\nFilewriteerror\n"

elseprintf("

Successful!

^-^\n"

是否继续?

[y/n]:

c);

if(strcmp(c,"

n"

)==0||strcmp(c,"

N"

)==0)break;

fclose(fp);

system("

voidenter()

{intm,back;

do{system("

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

\t以下符号:

[S]-项目、[B]-建筑工地、[P]-配件、[SEL]-销售商\n"

\t\t\t\t1.输入数据到S\n"

\t\t\t\t2.输入数据到B\n"

\t\t\t\t3.输入数据到P\n"

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

\t\t\t\t4.输入数据到SEL\n"

\t\t\t\t5.返回"

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

请选择(1-5):

m);

switch(m){

sal_enter();

build_enter();

pj_enter();

SEL_enter();

case5:

default:

if(back==0)break;

}while

(1);

}

(2)删除模块

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

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

模块如:

图(3)删除模块流程图

(以删除销售商结构体信息为例)

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

voidSEL_delete()

intj,v,flag=0;

chara[5],c[2];

FILE*fp;

r"

))==NULL)

{

\n打开文件失败!

exit(0);

do

请输入号码:

a);

for(j=0;

100;

if(fread(&

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

=1)break;

fclose(fp);

fp=fopen("

v=j;

v;

if(strcmp(sel[j].num,a)==0)

{

printf("

\n销售商号码,销售商名字,城市:

\n"

%s%s%s"

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

for(i=j;

i<

i++)sel[i]=sel[i+1];

flag=1;

}

if(flag==0)printf("

Cannotfindthedata!

是否继续[y/n]:

if(strcmp(c,"

j++)

fwrite(&

voidDelete()

intm,back;

\t\t\t\t1.删除数据到S\n"

\t\t\t\t2.删除数据到B\n"

\t\t\t\t3.删除数据到P\n"

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

\t\t\t\t4.删除数据到SEL\n"

switch(m)

sal_delete();

build_delete();

pj_delete();

SEL_delete();

(3)查找与修改模块

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

模块流程图:

图(4)查找修改模块流程图

(以查找修改销售商结构体信息为例)

/****************************查找与修改模块*****************************/

voidSEL_search()

intj,k=0,flag=0;

structsellerp1[100],p2[100];

\n请输入要查找的销售商号:

!

feof(fp);

fread(&

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

if(strcmp(p1[j].num,a)==0)

{

\n销售商号:

%s\n"

p1[j].num);

销售商名:

p1[j].name);

所在城市名:

p1[j].city);

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

}

\n是否修改[y/n]:

y"

Y"

)==0)

printf("

\n销售商号:

p2[k].num);

strcpy(p1[j].num,p2[k].num);

\n销售商名:

p2[k].name);

strcpy(p1[j].name,p2[k].name);

\n所在城市名:

p2[k].city);

strcpy(p1[j].city,p2[k].city);

k++;

successful!

//elsecontinue;

for(k=0;

k<

j;

k++)

p1[k],sizeof(structseller),1,fp);

if(flag==0)

没有要找的数据!

voidsearch()

intback,w;

\t\t\t\t1.by项目号\n"

\t\t\t\t2.by工地号\n"

\t\t\t\t3.by配件号\n"

/*********查找与修改菜单****************/

\t\t\t\t4.by销售商号\n"

\t\t\t\t5.返回"

switch(w)

sal_search();

build_search();

pj_search();

SEL_search();

(4)查找配对模块

【分析】功能跟查找大致相同,输入要配对的相应信息,找出要的信息。

图(5)查找配对模块流程图

(以查找配件-供应商信息为例)

/********************************查找配对模块*****************************/

voidfind1()

intm=0,n,k;

intflag=0;

FILE*fp,*fp1,*fp2;

data1.txt"

if((fp1=fopen("

data3.txt"

if((fp2=fopen("

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

for(n=0;

feof(fp1);

n++)

fread(&

pj[n],sizeof(structpeijian),1,fp1);

if(strcmp(pj[n].num,sal[m].num2)==0)break;

for(k=0;

feof(fp2);

sel[k],sizeof(structseller),1,fp2);

if(strcmp(sel[k].num,sal[m].num1)==0)break;

if(strcmp(sel[k].city,pj[n].area)==0)

销售商号码:

sel[k].num);

配件号:

pj[n].num);

flag=1;

m++;

}while(!

feof(fp));

没有配对项!

fclose(fp1);

fclose(fp2);

5、上机操作

(1)主菜单函数

图(6)主菜单

(2)数据输入模块

图(7)输入副菜单

(3)删除模块

图(8)删除模块

(4)查找模块

图(9)查找修改模块

(5)添加模块

图(10)添加模块

(6)查找配对模块

图13查找配对模块

后记

这次课程设计,让我对C语言编程有了更进一步的认识,巩固了C语言的基本功,同时体会到:

做好一件事是不容易的,要找准方向并付出最大努力,才有好的收获!

我原本以为计算机二级过了,编程就没多大问题了,通过这次课设,我才明白考试只是一种形式,真正能检验实力还是实践。

能看懂程序并不代表会写程序,看程序和写程序之间需要很长的路要走。

我觉得这次课设主要是对基本知识的综合应用,并引入模块化程序设计的思想。

比如我这个《建筑工地信息管理系统》,主要是用do、for循环和switch结构以文件为中间平台,使各模块之间能够数据共享,而不需要传值或传地址调用,降低了模块间的耦合性。

应该说这次课设是为以后学习软件技术奠基。

最后需要说明的是,这个程序还没有达到理想的效果,希望各位能够提供些帮助和建议!

参考文献

[1]谭浩强.C程序设计(第二版).北京:

清华大学出版社,1999

[2]王新孙雷.C语言课程设计.北京:

清华大学出版社,2009

[3]谭浩强.C程序设计(第三版).北京:

清华大学出版社,2005

附录:

源程序清单

/**********文件*************

data1.txt

data2.txt

data3.txt

data4.txt*/

#include<

stdio.h>

stdlib.h>

malloc.h>

string.h>

//#include<

iomanip>

#defineSPACE0x3920

#defineESC0x011b

inti=0;

structsale/*定义销售商-配件-建筑工地*/

charnum1[5];

/*销售商号码*/

charnum2[5];

/*配件号*/

charnum3[5];

/*工地号*/

intnum;

/*数量*/

}sal[100];

structbuilding/*定义建筑工地结构体*/

{charnum[5];

charname[20];

/*工地名*/

charcity[20];

/*城市名*/

}build[100];

structpeijian/*定义配件结构体*/

/*配件名*/

charcolor[20];

/*颜色*/

intweight;

/*重量*/

chararea[20];

/*产地*/

}pj[100];

structs

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

当前位置:首页 > 解决方案 > 商业计划

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

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