C语言课程设计报告—建筑工地信息管理系统1469.docx

上传人:you****now 文档编号:48300910 上传时间:2022-10-05 格式:DOCX 页数:44 大小:259.33KB
返回 下载 相关 举报
C语言课程设计报告—建筑工地信息管理系统1469.docx_第1页
第1页 / 共44页
C语言课程设计报告—建筑工地信息管理系统1469.docx_第2页
第2页 / 共44页
点击查看更多>>
资源描述

《C语言课程设计报告—建筑工地信息管理系统1469.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告—建筑工地信息管理系统1469.docx(44页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 C语语言课程设设计 名称:建筑筑工地信息息管理系统统 学学院:工程程学院 班级:00550771-300姓名:文富富奎学号:20007100038889指导老师:刘文中前言课程设计目目的:C语语言编程实实践是学习习C语言的的一个重要要环节,为为提高学生生的程序设设计能力,通通过课堂和和上机实践践使学生的的程序设计计能力有一一个上升的的台阶。通通过前四单单元的温故故而知新、庖庖丁解牛、举举一反三、熟熟能生巧等等过程的练练习之后能能够解决一一些简单的的实际问题题。1、 题目要求设计:“建建筑工地信信息管理系系统”建立如下44个文件(括括号内为文文件中每条条记录的字字段内容):(1) 销售商-配配

2、件-建筑筑工地 (销销售商号码码,配件号号,工地号号,数量)(2) 建筑工地 (工地号号,名字,城城市)(3) 配件 (配配件号,配配件名,颜颜色,重量量,产地)(4) 销售商 (号号码,名字字,状态,城城市)功能:(1) 首先建立文文件,然后后插入数据据,并进行行删除、更更新操作,最最后进行查查询操作。(2) 查询与供应应商所在城城市相同的的零件供应商,项项目供应商商记录对。 2、分析析 根据题目目要求,建建立文件,应应选择结构构体数组来来存放数据据,再定义义一个全局局变量和文文件指针进进行程序的的运行,然然后把数据据信息存入入文件中,所所以要提供供结构体和和文件的输输入输出等等操作;在在程

3、序中要要进行数据据的插入、删删除、更新新、查询等等操作,所所以需要建建立相应的的模块来实实现,为简简便起见,还还应建立一一个主菜单单,在每个个模块中建建立相应的的副菜单;另外,还还要提供键键盘式选择择菜单来实实现选择功功能,使程程序在运行行时达到要要求。 3、总总体设计根据题目要要求,可以以将系统分分为:1) 插入数据模模块;2) 删除模块;3) 查询模块;4) 查找配对;5) 功能选择菜菜建筑工地信息管理系统 查 找 配对 模块删除模块查询模块数据输入模块 功能 选 择 菜 单 图11 系系统功能模模块图 4、详细细设计一、主函数数【分析】 主主函数一般般设计得比比较简便,只只提供输入入、处

4、理和和输出部分分的函数调调用。其中中各功能模模块用菜单单方式选择择。其流程程图:开始显示一系列功能选择输入n,判断w 是否是0到4?根据n值调用各功能模块函数结束N 图2 主函函数流程图图 【程程序】/*主菜单*/ voidd mennu() int n,w; /*变变量n保存存选择菜单单数字,ww判断输入入的数字是是否在功能能菜单对应应数字范围围内*/ do puuts(ttt*建筑工工地信息管管理*nn); putss(姓名名:文富奎奎); putss(学号号:20007100038899); putss(班学学号:05550711-30); putss(ttt*MEENU*nn); pu

5、tss(tttttt1.输入);/*输输入*/ putss(tttttt2.删除);/*删删除*/ putss(tttttt3.查找);/*查查找*/ putss(tttttt4.配对);/*查查找配对*/ putss(tttttt5.Exitt); putss(nnnttt*n); prinntf(Chooose yyour numbber (1-5): bbb); scannf(%d,&n); if(nn5) w=1; getcchar(); eelse w=0; whille(w=1); swittch(nn) ccase 1:ennter();brreak; casee 2:ddele

6、tte();breaak; casee 3:ssearcch();breaak; casee 4:ssearcch2();breeak; casee 5:eexit(0); main() menu(); 二、各功能能模块设计计(1)数据据输入模块块【分析】 数据信信息存放在在文件中,用用结构体存存放,方便便数据输入入与数据的的保存。另另外,输入入模块中建建立副菜单单,用以输输入四个文文件的信息息选项。开始输入用户信息是否继续进行? 结束返回主菜单Y 图图3 数据输入入模块流程程图【程序】/*数据输入模模块*/ void sal_enteer() intt j; char c2; FILE *f

7、p; if(fp=ffopenn(daata1.txt,w)=NULLL) printtf(CCan nnot oopen the filee!n); exit(0); for(jj=0;jji;jj+) fwritte(&ssaljj,siizeoff(strruct salee),1,fp); whilee(1) printtf(输输入销售商商号码:n); scanff(%dd,&ssalii.nuum1); printtf(输输入配件号号码:nn); scanff(%dd,&ssalii.nuum2); printtf(输输入工地号号码:nn); scanff(%dd,&ssalii.n

8、uum3); printtf(输输入数量rr:n); scanff(%dd,&ssalii.nuum4); if(fwwritee(&saali+,ssizeoof(sttructt salle),11,fp)!=1) printtf(FFile writte errrorn); else prinntf(Succcessfful!n); printtf(是是否继续?( 是y/否否n) n); scanff(%ss,c); if(sttrcmpp(c,n)=0)bbreakk; fclosse(fpp);meenu(); voidd buiild_eenterr() innt j; char

9、c2; FILE *fp; if(fp=ffopenn(daata2.txt,w)=NULLL) printtf(CCan nnot oopen the filee!n); exit(0); for(jj=0;jji;jj+) fwritte(&bbuilddj,sizeeof(sstrucct buuildiing),1,fpp); whilee(1) printtf(输输入工地号号:n); scanff(%dd,&bbuilddi.num); printtf(输输入工地名名:n); scanff(%ss,buuildi.nname); printtf(输输入工地城城市:nn); scanf

10、f(%ss,buuildi.ccity); if(fwwritee(&buuildi+,sizzeof(struuct bbuildding),1,ffp)!=1) printtf(FFile writte errrorn); else prinntf(Succcessfful!n); printtf(IIs thhere any moree?( YYesyy/Noon) n); scanff(%ss,c); if(sttrcmpp(c,n)=0)bbreakk; fclosse(fpp);meenu(); voidd pj_enteer() intt j; char c2; FILE *fp

11、; if(fp=ffopenn(daata3.txt,w)=NULLL) printtf(CCan nnot oopen the filee!n); exit(0); for(jj=0;jji;jj+) fwritte(&ppjj,sizzeof(struuct ppeijiian),1,fpp); whille(1) printtf(输输入配件号号:n); scanff(%dd,&ppji.numm); printtf(输输入配件名名:n); scanff(%ss,pjji.namee); printtf(输输入配件颜颜色:nn); scanff(%ss,pjji.coloor); prin

12、ttf(输输入配件重重量:nn); scanff(%dd,&ppji.weiight); printtf(输输入配件产产地:nn); scanff(%ss,pjji.areaa); if(fwwritee(&pjji+,siizeoff(strruct peijjian),1,ffp)!=1) printtf(FFile writte errrorn); else prinntf(Succcessfful!n); printtf(IIs thhere any moree?( YYesyy/Noon) n); scanff(%ss,c); if(sttrcmpp(c,n)=0)bbreakk;

13、fclosse(fpp);meenu(); voidd SETT_entter () innt j; char c2; FILE *fp; if(fp=ffopenn(daata4.txt,w)=NULLL) printtf(CCan nnot oopen the filee!n); exit(0); for(jj=0;jji;jj+) fwritte(&sseljj,siizeoff(strruct selller),1,fpp); whilee(1) printtf(输输入销售商商号:nn); scanff(%dd,&sselii.nuum); printtf(输输入销售商商名:nn);

14、scanff(%ss,seeli.namme); printtf(输输入销售商商状态:n); scanff(%ss,seeli.staate); printtf(输输入销售商商所在城市市:n); scanff(%ss,seeli.citty); if(fwwritee(&seeli+,ssizeoof(sttructt selller),1,ffp)!=1) printtf(FFile writte errrorn); else prinntf(Succcessfful!n); printtf(IIs thhere any moree?( YYesyy/Noon) n); scanff(%ss

15、,c); if(sttrcmpp(c,n)=0)bbreakk; fclosse(fpp);meenu(); void enteer() intt t,mm; do putss(ttt*MENNU*nnn); puts(tttt1.ssal_eenterr neww datta); puts(tttt2.bbuildd_entter nnew ddata); puts(tttt3.ppj_ennter new dataa); /*输入菜单单*/ puts(tttt4.SSET_eenterr neww datta); puts(tttt5.EExit); puts(nntt *nn); pri

16、nttf(CChoosse thhe nuumberr(1-55): bb); scanff(%dd,&mm); if(m5) t=11; getchhar(); else t=0; whille(t=1); swittch(mm) casee 1:ssal_eenterr();bbreakk; casee 2:bbuildd_entter();breeak; casee 3:ppj_ennter();brreak; casee 4:SSET_eenterr();bbreakk; casee 5:mmenu(); (2) 删除模块【分析】 建立副副菜单,选选择要删除除的是哪个个文件中的的信息,

17、输输入相应的的信息,找找到数据将将其删除。一般的做法是将数据从文件中删除,删除位置后面的记录往前移。模块如: 开始输入要删除的数据是否找到?删除数据显示成功显示没有找到Y结束图4 删除模块块流程图【程序】/*删除除模块*/ void sal_deleete()int j,v; int ww; FILE *fp; printtf(请请输入要删删除的销售售商号码:); scanff(%dd,&ww); fp=foopen(datta1.ttxt,rb); for(jj=0;jj1000;j+) if(frread(&sallj,sizeeof(sstrucct saale),1,fpp)!=11)

18、 brreak; v=j; for(jj=0;jjv;jj+) if(ww=saalj.numm1) priintf(项目号号,销售商商号码,配配件号,工工地号,数数量:nn); prinntf(%d %d %dd %d %d,salj.nnum,ssaljj.nuum1,ssaljj.nuum2,ssaljj.nuum3,ssaljj.nuum4);for(i=j;iv;i+) sallj=salj+;priintf(删除成成功);else prinntf(Cannnot ffind the dataa!);menu(); fclosse(fpp); voidd buiild_ddelett

19、e() int j,v; int w; FILE *fp; printtf(请请输入要删删除的工地地号:); scanff(%dd,&ww); fp=foopen(datta2.ttxt,rb); for(jj=0;jj1000;j+) if(frread(&buiildjj,siizeoff(strruct builldingg),1,fp)!=1) breaak; v=j; for(jj=0;jjv;jj+) if(w=buiildjj.nuum) prinntf(工地号,工地名,城市名:n);priintf(%d %s %s,bbuilddj.num, buiildjj.naame,bb

20、uilddj.cityy);prrintff(删除除成功);else prinntf(Cannnot ffind the dataa!);menuu(); fclosse(fpp); menu(); voidd pj_deleete() int j,v; int w; FILE *fp; printtf(请请输入要删删除的配件件号:); scanff(%dd,&ww); fp=foopen(datta3.ttxt,rb); for(jj=0;jj1000;j+) if(frread(&pjj,ssizeoof(sttructt peiijiann),1,fp)!=1) breaak; v=j;

21、 for(jj=0;jjv;jj+) if(w=pjj.nnum) prinntf( 配件件号,配件件名,颜色色,重量,产地:n);prinntf(%d %s %ss %d %s,pjjj.nuum,pjjj.namee,pjj.ccolorr,pjj.wweighht,pjjj.areaa);prrintff(删除除成功); elsee priintf(Cannnot findd thee datta!);mennu(); fclosse(fpp); menu(); voidd SETT_dellete () int j,v,c; int w; FILE *fp; printtf(请请输入号

22、码码:); scanff(%dd,&ww); fp=foopen(datta4.ttxt,rb); for(jj=0;jj1000;j+) if(frread(&sellj,sizeeof(sstrucct seellerr),1,fp)!=1) breaak; v=j; for(jj=0;jjv;jj+) if(w=sellj.num) prinntf( 销售售商号码,销售商名名字,状态态,城市: n);prrintff(%dd %s %s %s,sseljj.nuum,seelj.namme,seelj.staate,sseljj.ciity);prinntf(删除成功功); elsee

23、priintf(Cannnot findd thee datta!);mennu(); fclosse(fpp); menu(); voidd dellete() intt t,mm; do putss(ttt*MENNU*nnn); puts(tttt1.ssal_ddelette neew daata); puts(tttt2.bbuildd_dellete new dataa); puts(tttt3.ppj_deeletee neww datta); /*删删除菜单*/ puts(tttt4.SSET_ddelette neew daata); puts(tttt5.EExit); p

24、uts(nntt *nn); printtf(CChoosse thhe nuumberr(1-55): bb); scanff(%dd,&mm); if(m5) t=11; getchhar(); else t=0; whille(t=1); swittch(mm) casee 1:ssal_ddelette();breaak; casee 2:bbuildd_dellete();brreak; casee 3:ppj_deeletee();bbreakk; casee 4:SSET_ddelette ();breeak; casee 5:mmenu(); (3) 查找模块【分析】 选择查查

25、找方式,输输入相应的的数据然后后找出对应应的数据。模模块流程图图:开始输入查找的方式:1)项目号;2)工地号;3)配件号;4)销售商号是否找到?显示找到的记录提示没找到Y结束Y是否继续查找?返回主菜单 图5 查找模模块流程图图【程序】/*查找模块块*/ void searrch() int fflag,j,x; int ww,v,zz,y; FILE *fp; priintf(1.BBy 项目目号n); printtf(22.By 工地号n); printtf(33.By 配件号n);printtf(44.By 销售商号号n);printtf(请请选择项:n); scanff(%dd,&xx)

26、; if(x=3) flag=0; printtf(PPleasse innput the 配件号:); scanff(%dd,&ww); fp=foopen(datta3.ttxt,rb); for(jj=0;jj1000;j+) if(frread(&pjj,ssizeoof(sttructt peiijiann),1,fp)!=1) breaak; if(pjjj.num=w) printtf(配配件号:%dn,pjj.nnum); printtf(配配件名:%sn,pjj.nname); printtf(配配件颜色:%snn,pjjj.coloor); printtf(配配件重量:%d

27、nn,pjjj.weigght); printtf(配配件产地:%snn,pjjj.areaa); printtf(-n); flag=1; if(fllag=0) printtf(CCannoot fiind tthe ddata!n); fclosse(fpp); mmenu(); if(x=4) flag=0; printtf(请请输入销售售商号:); scanff(%dd,&zz); fp=foopen(datta4.ttxt,rb); for(jj=0;jj1000;j+) if(frread(&sellj,sizeeof(sstrucct seellerr),1,fp)!=1) b

28、reaak; if(pjjj.num=y) printtf(销销售商号:%dnn,seelj.numm); printtf(销销售商名:%snn,seelj.namme); printtf(所所在城市名名:%sn,sseljj.ciity); printtf(-n); flag=1; if(fllag=0) printtf(CCannoot fiind tthe ddata!n); fclosse(fpp); mmenu(); if(x=2) flag=0; printtf(请请输入建筑筑工地号:); scanff(%dd,&zz); fp=foopen(datta2.ttxt,rb); fo

29、r(jj=0;jj1000;j+) if(frread(&buiildjj,siizeoff(strruct builldingg),1,fp)!=1) breaak; if(pjjj.num=z) printtf(建建筑工地号号:%dn,bbuilddj.num); printtf(建建筑工地名名:%sn,bbuilddj.namee); printtf(所所在城市名名:%sn,bbuilddj.cityy); printtf(-n); flag=1; if(fllag=0) printtf(CCannoot fiind tthe ddata!n); fclosse(fpp); mmenu(

30、); if(x=1) flag=0; printtf(PPleasse innput the 项目号:); scanff(%dd,&vv); fp=foopen(datta1.ttxt,rb); for(jj=0;jj1000;j+) if(frread(&pjj,ssizeoof(sttructt peiijiann),1,fp)!=1) breaak; if(pjjj.num=v) printtf(sselleer nuumberr:%dn,ssaljj.nuum1); printtf(ppeijiian nnumbeer:%ddn,salj.nnum2); printtf(bbuildd

31、ing numbber:%dn,sallj.num33); printtf(nnumbeer:%ddn,salj.nnum4); printtf(-n); flag=1; if(fllag=0) printtf(CCannoot fiind tthe ddata!n); fclosse(fpp);meenu(); else prinntf(Erroor!nn); (4) 查找配对模模块【分析】 功能跟跟查找大致致相同,输输入要配对对的相应信信息,找出出要的信息息。是否继续查找?开始输入要配对的方式:1)配件号;2)销售商号码是否找到?显示找到的记录提示没找到NY结束N 图66 查查找配对模模块

32、流程图图【程序】/*查找配对对模块*/void searrch2() int fflag,j,x; int ww;FILE *fp; printtf(11.By 配件号n);printtf(22.By 销售商号号n);printtf(请请选择项:n); scanff(%dd,&xx); if(x=1) FILE *fp;int ii; printtf(PPleasse innput the 配件号:); scanff(%dd,&ww);if(ffp=foopen(datta3.ttxt,r)=NNULL)prinntf(Cannnot ffind the dataa!n); fcloose(f

33、fp);mmenu(); for(ii=0;!feoff(fp);i+)fscannf(fpp,%dd%s%ss,pjji.num,&pji.nname,&pji.aarea);fclosse(fpp);if(ffp=foopen(datta4.ttxt,r)=NNULL)prinntf(Cannnot ffind the dataa!n); fcloose(ffp);mmenu(); for(ii=0;!feoff(fp);i+)fscannf(fpp,%dd%s%ss,seeli.numm,&seeli.namme,&sselii.ciity);fclosse(fpp);if(pjji.n

34、um=w&strccmp(ppji.areea,sselii.ciity)=0) prrintff(配件件号:%ddn,pjjj.nuum); printtf(配配件名:%sn,pjj.nname); printtf(销销售商号:%dnn,pjjj.num); printtf(销销售商名:%snn,pjjj.areaa); printtf(-n); flag=1; if(fllag=0) printtf(CCannoot fiind tthe ddata!n); fclosse(fpp); mmenu(); 5、上上机操作 (1) 主菜单函数数 图77 主主菜单(2) 数据输入模模块 图图8 输输入副菜单单图9 输入数据据(3)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 管理文献 > 管理制度

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁