C语言课程设计报告-建筑工地信息管理系统.doc_第1页
C语言课程设计报告-建筑工地信息管理系统.doc_第2页
C语言课程设计报告-建筑工地信息管理系统.doc_第3页
C语言课程设计报告-建筑工地信息管理系统.doc_第4页
C语言课程设计报告-建筑工地信息管理系统.doc_第5页
免费预览已结束,剩余15页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

c语言课程设计c语言课程设计报告 班级:中国地质大学计算机学院192091班姓名:序号:19209128(20091003872)指导老师:时间:2010-06-10一题目要求: 【题目】 建筑工地信息管理系统【要求】建立如下四个文件(括号内为文件中每条信息记录的字段内容):(1)销售商-配件-建筑工地(销售商号码,配件号,工地号,数量)(2)建筑工地(工地号,名字,城市)(3)配件(配件号,配件名,颜色,重量,产地)(4)销售商(号码,名字,状态,城市)功能:(1)首先建立文件,然后插入数据,并进行删除、更新操作,最后进行查询操作。(2)查询与供应商所在城市相同的零件-供应商,项目-供应商记录对。二课程分析:根据题目要求,配件号工地号等的存储要用到数据,工地名配件名等的存储则需要字符数组;由于要用到一些标准函数,因此还应该包含#include #include #include 等头文件;除了库函数外,还需定义一些函数,在形成主菜单等处将会用到;在储存各种信息需建立结构体,使与配件或工地或销售商各自相关的信息整体化;还应该有显示、查询、删除、修改等操作,以实现要求的功能;还应提供选择菜单以实现功能选择,并在适当的地方添加提示语句,使程序更加清晰,各模块更加独立,可读性增强。又由要求可知,可将整个程序分为三个模块,即:增加信息、修改信息、查询信息几大模块;同时在各模块功能执行完后都能返回主菜单,可随时从任一模块开始运行,使各模块充分独立,使程序更加灵活。其系统功能模块图如下:建筑工地信息管理系统增加信息删除信息修改信息查询信息三详细设计:1. 头文件及结构体定义:#include #include #include struct building char name20;/*工地名称*/ char num20;/*工地号*/ char city20;/*工地所在城市*/ ; struct peijian char p_name20;/*配件名称*/ char p_num20;/*配件号码*/ char p_colour20;/*配件颜色*/ char p_weight20;/*配件重量*/ char p_area20;/*配件产地*/ ; struct business char b_name20;/*销售商名字*/ char b_num20;/*销售商号码*/ char b_state20;/*销售状态*/ char b_city20;/*所在城市*/ ; struct total char b_num20;/*销售商号码*/ char p_num20;/*配件号*/ char num20;/*工地号*/ char num220;/*销售商为工地提供配件数量*/ ;2.主函数:void main() int n;printf(/*建筑工地信息管理系统*/n); printf( /*制作:刘宇豪*/n); while(n!=15) printf(1.增加建筑工地信息n2.增加配件信息n3.增加销售商信息n4.增加销售商-配件-建筑工地信息n5.修改建筑工地信息n6.修改配件信息n7.修改销售商信息n8.修改销售商-配件-建筑工地信息n9.删除建筑工地信息n10.删除配件信息n11.删除销售商信息n12.删除销售商-配件-建筑工地信息n13.查询与供应商所在城市相同的零件-供应商记录对n14.查询与供应商所在城市相同的项目-供应商记录对n15.退出系统n请选择:); scanf(%d,&n); ynny开始显示一系列功能选项输入n,判断n是否为15?根据n的值调用函数结束判断是否为114if(n=1) add1(); else if(n=2) add2(); else if(n=3) add3(); else if(n=4) add4(); else if(n=5) find1(); else if(n=6) find2(); else if(n=7) find3(); else if(n=8) find4(); else if(n=9) del1(); else if(n=10) del2(); else if(n=11) del3(); else if(n=12) del4(); else if(n=13) seek1(); else if(n=14) seek2(); 3.增加信息函数:void add1() /*定义增加建筑工地信息的函数*/ char flag=y; struct building build; /*调用建筑工地信息结构体*/file fp; /定义文件指针*/if(fp=fopen(d:/c.txt,a+b)=null) /*建立存储信息的文本文件*/ exit(0); /*退出*/yn读入配件等的信息并储存是否继续回到主函数建立文本文件定义文件指针,调用相应结构体 while(flag=y) printf(请输入建筑工地名称:); scanf(%s,); printf(请输入建筑工地编号:); scanf(%s,build.num); printf(请输入工地所在城市:); scanf(%s,build.city); fwrite(&build,sizeof(struct building),1,fp); printf(是否继续y/n:n); scanf( %c,&flag); fclose(fp); /*关闭文件*/ void add2() /*定义增加配件信息的函数*/ char flag=y; struct peijian pj; /*调用配件信息结构体*/file *fp; if(fp=fopen(d:/d.txt,a+b)=null) /*建立存储配件信息的文本文件*/ exit(0); /*退出*/ while(flag=y) printf(请输入配件名称:); scanf(%s,pj.p_name); printf(请输入配件编号:); scanf(%s,pj.p_num); printf(请输入配件颜色:); scanf(%s,pj.p_colour); printf(请输入配件重量:); scanf(%s,pj.p_weight); printf(请输入配件产地:); scanf(%s,pj.p_area); fwrite(&pj,sizeof(struct peijian),1,fp); printf(是否继续y/n:n); scanf( %c,&flag); fclose(fp); /*关闭文件*/ void add3() /*定义增加销售商信息的函数*/ char flag=y; struct business bus; /*调用销售商信息结构体*/ file *fp; if(fp=fopen(d:/e.txt,a+b)=null) /*建立存储销售商信息的文本文件*/ exit(0); /*退出*/ while(flag=y) printf(请输入销售商名称:); scanf(%s,bus.b_name); printf(请输入销售商编号:); scanf(%s,bus.b_num); printf(请输入销售商状态:); scanf(%s,bus.b_state); printf(请输入销售商所在城市:); scanf(%s,bus.b_city); fwrite(&bus,sizeof(struct business),1,fp); printf(是否继续y/n:n); scanf( %c,&flag); fclose(fp); /*关闭文件*/ void add4() /*定义联系的信息函数*/ char flag=y; struct total bpb; /*调用结构体*/file *fp; if(fp=fopen(d:/f.txt,a+b)=null) /*建立存储信息的文本文件*/ exit(0); /*退出*/ while(flag=y) printf(请输入销售商号码:); scanf(%s,bpb.b_num); printf(请输入配件编号:); scanf(%s,bpb.b_num); printf(请输入建筑工地编号:); scanf(%s,bpb.num); printf(请输入销售商为工地提供配件数量:); scanf(%s,bpb.num2); fwrite(&bpb,sizeof(struct total),1,fp); printf(是否继续y/n:n); scanf( %c,&flag); fclose(fp); /*关闭文件*/4.修改信息函数:void find1() /*定义修改建筑工地信息的函数*/ file fp; /*定义文件指针*/struct building build; /*调用结构体*/char flag=y,find; char name20; if(fp=fopen(d:/c.txt,r+w)=null) /*判断是否存在文件*/printf(ntthe system cant open the file!); return;/*回到主函数*/elsewhile(flag=y) printf(请输入您要修改的建筑工地名称:); scanf(%s,name); find=n; rewind(fp); while(fread(&build,sizeof(build),1,fp)=1&find=n) if(strcmp(name,)=0) /*判断文件中是否有该信息*/ find=y; break; if(find=y) printf(建筑工地名称:%sn,); printf(建筑工地编号:%sn,build.num); printf(建筑工地所在城市:%sn,build.city); printf(请输入建筑工地名称:); scanf(%s,); printf(请输入建筑工地编号:); scanf(%s,build.num); printf(请输入建筑工地所在城市:); scanf(%s,build.city); fseek(fp,-(long)(sizeof(struct building),1);/*文件标记向下*/ fwrite(&build,sizeof(build),1,fp); /*保存信息*/ printf(是否继续y/n:);/*提示是否继续修改另一建筑工地信息*/ scanf( %c,&flag); fclose(fp); /*关闭文件*/ void find2() /*定义修改配件信息的函数*/ file *fp; struct peijian pj; char flag=y,find; char name20; if(fp=fopen(d:/d.txt,r+w)=null) printf(ntthe system cant open the file!n);return;elsewhile(flag=y) printf(请输入您要修改的配件名称:); scanf(%s,name); find=n; rewind(fp); while(fread(&pj,sizeof(pj),1,fp)=1&find=n) ynnnyyn定义文件指针,调用结构体是否存在文件回到主函数输入名称是否存在该信息显示信息并询问是否确定删除?删除信息是否继续?yif(strcmp(pj.p_name,name)=0) find=y; break; if(find=y) printf(配件名称:%sn,pj.p_name); printf(配件编号:%sn,pj.p_num); printf(配件颜色:%sn,pj.p_colour); printf(配件重量:%sn,pj.p_weight); printf(配件产地:%sn,pj.p_area); printf(请输入配件名称:); scanf(%s,pj.p_name); printf(请输入配件编号:); scanf(%s,pj.p_name); printf(请输入配件颜色:); scanf(%s,pj.p_colour); printf(请输入配件重量:); scanf(%s,pj.p_weight); printf(请输入配件产地:); scanf(%s,pj.p_name); fseek(fp,-(long)(sizeof(struct peijian),1);/*文件标记向下*/ fwrite(&pj,sizeof(pj),1,fp); printf(是否继续y/n:);/*提示是否继续修改另一配件信息*/ scanf( %c,&flag); fclose(fp); /*关闭文件*/ void find3() /*定义修改链接信息的函数*/ file *fp; struct business bus; char flag=y,find; char name20; if(fp=fopen(d:/e.txt,r+w)=null) printf(ntthe system cant open the file!n);return;else while(flag=y) printf(请输入您要修改的销售商名称); scanf(%s,name); find=n; rewind(fp); while(fread(&bus,sizeof(bus),1,fp)=1&find=n) if(strcmp(bus.b_name,name)=0) find=y; break; if(find=y) printf(销售商名称:%sn,bus.b_name); printf(销售商编号:%sn,bus.b_name); printf(销售商状态:%sn,bus.b_state); printf(所在城市:%sn,bus.b_city); printf(请输入名称:); scanf(%s,bus.b_name); printf(请输入编号:); scanf(%s,bus.b_num); printf(请输入状态:); scanf(%s,bus.b_state); printf(请输入所在城市名:); scanf(%s,bus.b_city); fseek(fp,-(long)(sizeof(struct business),1);/*文件标记向下*/ fwrite(&bus,sizeof(bus),1,fp); printf(是否继续y/n:);/*提示是否继续修改另一已存用户信息*/ scanf( %c,&flag); fclose(fp); /*关闭文件*/ void find4() /*定义修改建筑工地信息的函数*/ file *fp; struct total bpb; char flag=y,find; char num20; if(fp=fopen(d:/f.txt,r+w)=null)printf(ntthe system cant open the file!n); return;else while(flag=y) printf(请输入您要修改的对应对中销售商编号:); scanf(%s,num); find=n; rewind(fp); while(fread(&bpb,sizeof(bpb),1,fp)=1&find=n) if(strcmp(num,bpb.b_num)=0) find=y; break; if(find=y) printf(销售商编号:%sn,bpb.b_num); printf(配件编号:%sn,bpb.p_num); printf(建筑工地编号:%sn,bpb.num); printf(提供配件数量:%sn,bpb.num2); printf(请输入销售商编号:); scanf(%s,bpb.b_num); printf(请输入配件编号:); scanf(%s,bpb.p_num); printf(请输入建筑工地编号:); scanf(%s,bpb.num); printf(请输入提供配件数量:); scanf(%s,bpb.num2); fseek(fp,-(long)(sizeof(struct total),1);/*文件标记向下*/ fwrite(&bpb,sizeof(bpb),1,fp); printf(是否继续y/n:);/*提示是否继续修改另一已存用户信息*/ scanf( %c,&flag); fclose(fp); /*关闭文件*/ 5.查询信息函数:void seek1() /*定义查询销售商-配件信息*/ file *fp1,*fp2; /*定义文件指针*/struct peijian pj; struct business bus; char flag=y,seek; if(fp1=fopen(d:/d.txt,r+w)=null|(fp2=fopen(d:/e.txt,r+w)=null) /*是否能打开文件*/printf(ntthe system cant open the files!n);return;/*返回主函数*/else while (flag=y) seek=n; rewind(fp1); rewind(fp2); while (fread(&pj,sizeof(pj),1,fp1)=1&(fread(&bus,sizeof(bus),1,fp2)=1&seek=n) if(strcmp(pj.p_area,bus.b_city)=0) /*是否存在同城的配件-销售商*/ynyynn定义文件指针、调用结构体是否存在文件?显示信息是否有同城信息?是否继续?回到主函数seek=y; break; if(seek=y) printf(配件名称:%sn,pj.p_name); printf(配件编号:%sn,pj.p_num); printf(配件颜色:%sn,pj.p_colour); printf(配件重量:%sn,pj.p_weight); printf(配件产地:%sn,pj.p_area); printf(名称:%sn,bus.b_name); printf(编号:%sn,bus.b_num); printf(状态:%sn,bus.b_state); printf(销售商所在城市:%sn,bus.b_city); printf(是否继续y/n:);/*提示是否继续显示其他同城信息*/ scanf( %c,&flag); fclose(fp1); /*关闭文件*/fclose(fp2);/*关闭文件*/ void seek2()/*定义查询销售商-建筑工地信息*/ file *fp1,*fp2; struct building build; struct business bus; char flag=y,seek; if(fp1=fopen(d:/c.txt,r+w)=null|(fp2=fopen(d:/e.txt,r+w)=null) printf(ntthe system cant open the files!n); return;elsewhile (flag=y) seek=n; rewind(fp1); rewind(fp2); while (fread(&build,sizeof(build),1,fp1)=1&(fread(&bus,sizeof(bus),1,fp2)=1&seek=n) if(strcmp(build.city,bus.b_city)=0) /*是否存在同城销售商-建筑工地信息*/seek=y; break; if(seek=y) printf(建筑工地名称:%sn,); printf(建筑工地编号:%sn,build.num); printf(建筑工地所在城市:%sn,&build.city); printf(名称:%sn,bus.b_name); printf(编号:%sn,bus.b_num); printf(状态:%sn,bus.b_state); printf(销售商所在城市:%sn,bus.b_city); printf(是否继续y/n:);/*提示是否继续显示其他信息*/ scanf( %c,&flag); fclose(fp1); /*关闭文件*/fclose(fp2); /*关闭文件*/ 五程序运行结果:1.主菜单:2.增加函数:3.修改信息:4.删除信息:5.查询信息:6.退出程序:六个人体会:课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论