您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > C语言课设之建筑工地信息管理系统
1C语言课程设计说明书建筑工地管理系统建筑工地信息管理系统一.题目要求《建筑工地信息管理系统》要求要建立与建筑相关的四个文件信息:1)项目2)工地3)配件4)商家;建立文件以后,根据项目、工地或商家完成各项工作的追加、删除、修改和更新查询操作。二.需求分析要求整个系统设计为建筑工地的信息输入、追加、删除、修改、浏览、查询模块。三.总体设计如示意图:2四.详细设计1.主函数main(){system(color070);system(cls);menu();}2.菜单menu(){intn,w1;do{system(cls);puts(\n\t\t********************MENU********************\n);puts(\t\t建筑工地信息系统\n\n);puts(\t\t\t\t1.输入数据);puts(\t\t\t\t2.添加数据);puts(\t\t\t\t3.删除数据);puts(\t\t\t\t4.更改数据);puts(\t\t\t\t5.插入数据);puts(\t\t\t\t6.显示所有信息);puts(\t\t\t\t7.显示项目信息);puts(\t\t\t\t8.显示工地信息);puts(\t\t\t\t9.显示配件信息);puts(\t\t\t\t10.显示销售商信息);puts(\t\t\t\t11.查找数据);puts(\t\t\t\t12.退出);puts(\n\n\t\t*******************************************\n);printf(选择项目(1-12):[]\b\b\b);scanf(%d,&n);if(n1||n12){w1=1;getchar();}elsew1=0;}while(w1==1);switch(n)开始菜单输入追加删除修改退出浏览项目工地配件商家查找插入3{case1:enter();break;case2:add();break;case3:del();break;case4:modify();break;case5:insert();break;case6:browse();break;case7:browse_project();break;case8:browse_site();break;case9:browse_outfit();break;case10:browse_sale();break;case11:search();break;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(%d,&n);printf(\n现在输入数据\n\n);for(i=0;in;i++){printf(\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)追加模块[流程图]i!=0保存save(n)输入用户要输入职工记录的个数ni从0到n-1调用输入函数input(i)4//追加模块程序intadd(){inti,n,m,k;FILE*fp;n=load();printf(你想增加多少个数据(0-%d)?:,N-1-n);scanf(%d,&m);k=m+n;for(i=n;ik;i++){printf(\n增加第%d个工程记录.\n,i-n+1);input(i);}for(i=n;ik;i++){if((fp=fopen(main.txt,ab))==NULL)printf(不能打开文件\n);if(fwrite(&pro[i],sizeof(structproject),1,fp)!=1)printf(文件写入错误\n);fclose(fp);if((fp=fopen(project.txt,ab))==NULL){printf(\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);if((fp=fopen(site.txt,ab))==NULL){printf(\n不能打开文件\n);returnNULL;}fprintf(fp,%s,%s,%s,pro[i].site_num,pro[i].site_name,pro[i].site_city);fclose(fp);if((fp=fopen(outfit.txt,ab))==NULL){调用n=load();并计算可以启示录的个数n输入用户要追加工程的个数nk=m+ni从n到k调用输入函数input(i)保存追加的记录5printf(\n不能打开文件\n);returnNULL;}fprintf(fp,%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);fclose(fp);if((fp=fopen(sale.txt,ab))==NULL){printf(\n不能打开文件\n);returnNULL;}fprintf(fp,%s,%s,%s,%s,pro[i].sale_num,pro[i].sale_name,pro[i].sale_state,pro[i].sale_city);fclose(fp);}printf_back();system(PAUSE);return0;}(3)删除模块//删除模块程序voiddel(){structprojectp;//FILE*fp;inti,n,w1,w2,j;n=load();do{printf_face();for(i=0;in;i++)printf_one(i);do{printf(\n\n需要删除那个?要输入什么?\n\t1).工地号2)工件号3)销售商号4)工件数量5)返回\n);printf(请选择:(1-5):[]\b\b\b);scanf(%d,&w2);switch(w2){case1:printf(工地号:);scanf(%s,&p.site_num);break;case2:printf(工件号:);scanf(%s,&p.outfit_num);break;case3:printf(销售商号:);scanf(%s,&p.sale_num);break;case4:printf(工件数量:);scanf(%s,&p.outfit_n);break;case5:menu();}for(i=0;in;i++)for(j=i;jn;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);6}}while(jn);printf(要删除其它吗???\n\t1)是2)返回,i);printf(\t\n请选择:(1-2):[]\b\b);scanf(%d,&w1);}while(w1==1);printf_back();system(PAUSE);}(4)修改模块//流程图示意图//修改模块程序voidmodify(){structprojectp;//FILE*fp;inti,n,k,w0=1,w1,w2=0;n=load();do{k=-1;printf_face();for(i=0;in;i++)是否找到记录修改不成功是否继续返回主菜单输入要修改的号码:开始选择1)工地好2)配件好3)商号是否修改成功显示结果显示所有记录,让用户看哪个要修改7{if((i!=0)&&(i%10==0)){printf(\n\n没有找到更改的数据.按任意键继续);getch();puts(\n\n);}printf_one(i);}do{printf(\n\n输入你想修改的销售商号!销售商号:);scanf(%s,p.sale_num);for(i=0;in;i++)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_face();printf_one(k);w1=modify_data(k,n);if(w1=1){printf(\n成功^-^.\n\n需要更改另外一个吗?\n\t1)需要2)返回保存\t);printf(\n请选择:(1-2):[]\b\b);scanf(%d,&w0);w2=1;}else{w0=0;if(w2==1)pro[k]=p;}if(w0!=1&&w2==1)save(n);}while(w0==1);menu();}(5)插入模块//插入模块voidinsert(){inti,j,n,c;structprojectp;n=load();puts(\n请输入一个数据.\n);do{input(n);printf_face();printf_one(n);printf(\n\n确定?\n\n\t1).确定\t2).取消再试\t3).返回不保存\n);printf(请选择:(1-3):[]\b\b\b);scanf(%d,&c);if(c==1)8{for(i=0;in;i++)for(j=i;jn+1;j++)if(pro[j].outfit_npro[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(){inti,n;n=load();printf_face();for(i=0;in;i++){if(i!=0&&i%10==0){printf(\n\n按任意键继续);getch();puts(\n\n);}printf_one(i);}printf(\t\n有%d个的记录.\n,n);printf(\n按任意键返回);getch();menu();}//销售商-配件-建筑工地浏览模块voidbrowse(){inti,n;n=load();i!=0显示数据n=load();打开所有项目文件i从0到n-1调用输出函数printf_one(i)9print
本文标题:C语言课设之建筑工地信息管理系统
链接地址:https://www.777doc.com/doc-6162975 .html