C语言课设之建筑工地信息管理系统.docx
- 文档编号:7581262
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:36
- 大小:804.39KB
C语言课设之建筑工地信息管理系统.docx
《C语言课设之建筑工地信息管理系统.docx》由会员分享,可在线阅读,更多相关《C语言课设之建筑工地信息管理系统.docx(36页珍藏版)》请在冰豆网上搜索。
C语言课设之建筑工地信息管理系统
C语言课程实习报告
建筑工地信息管理系统
一.题目要求
《建筑工地信息管理系统》要求要建立与建筑相关的四个文件信息:
1)项目2)工地
3)配件4)商家;建立文件以后,根据项目、工地或商家完成各项工作的追加、删除、修改和更新查询操作。
二.需求分析
要求整个系统设计为建筑工地的信息输入、追加、删除、修改、浏览、查询模块。
三.总体设计如示意图:
四.详细设计
1.主函数
main()
{
menu();
}
2.菜单
menu()
{
intn,w1;
do
{
puts("\n\t\t********************MENU********************\n");
puts("\t\t建筑工地信息系统\n\n");
puts("\t\t\t\t1.Enterdata");
puts("\t\t\t\t2.Additiondata");
puts("\t\t\t\t3.Deletedata");
puts("\t\t\t\t4.Modifydata");
puts("\t\t\t\t5.Insertdata");
puts("\t\t\t\t6.Browseall");
puts("\t\t\t\t7.Browseproject");
puts("\t\t\t\t8.Browsesite");
puts("\t\t\t\t9.Browseoutfit");
puts("\t\t\t\t10.Browsesale");
puts("\t\t\t\t11.Searchdate");
puts("\t\t\t\t12.Exit");
puts("\n\n\t\t*******************************************\n");
printf("Choiceyournumber(1-12):
[]\b\b\b");
scanf("%d",&n);
if(n<1||n>12)
{
w1=1;
getchar();
}
elsew1=0;
}
while(w1==1);
switch(n)
{
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
//流程示意图:
//程序实现
enter()
{
inti,n;
printf("Howmanyinformation(0-%d)?
:
",N-1);
scanf("%d",&n);
printf("\nEnterdatanow\n\n");
for(i=0;i { printf("\nInput%dthstudentrecord.\n",i+1); input(i); } if(i! =0) { save(n); save_project(n); save_site(n); save_outfit(n); save_sale(n); } printf_back(); } (2)追加模块 [流程图] //追加模块程序 add() { inti,n,m,k; FILE*fp; n=load(); printf("Howmanyrecordareyouwanttoadd(0-%d)? : ",N-1-n); scanf("%d",&m); k=m+n; for(i=n;i { printf("\nAddtion%dthprojectrecord.\n",i-n+1); input(i); } for(i=n;i { if((fp=fopen("main.txt","ab"))==NULL) printf("Cannotopenfile\n"); if(fwrite(&pro[i],sizeof(structproject),1,fp)! =1) printf("filewriteerror\n"); fclose(fp); if((fp=fopen("project.txt","ab"))==NULL) { printf("\nCannotopenfile\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("\nCannotopenfile\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) { printf("\nCannotopenfile\n"); returnNULL; } fprintf(fp,"%s,%s,%s,%s,%d",pro[i].outfit_num,pro[i].outfit_name, pro[i].outfit_color,pro[i].outfit_pla, pro[i].outfit_n); fclose(fp); if((fp=fopen("sale.txt","ab"))==NULL) { printf("\nCannotopenfile\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(); } (3)删除模块 //删除模块程序 del() { structprojectp; FILE*fp; inti,n,w1,w2,j; n=load(); do { printf_face(); for(i=0;i printf_one(i); do { printf("\n\nWhichneededdelete? Whatdoyouwantenter? \n\t1).site_num2)outfit_num3)sale_num4)outfit_n5)NOandback\n"); printf("Pleasechoose: (1-5): []\b\b\b"); scanf("%d",&w2); switch(w2) { case1: printf("site_num: ");scanf("%s",&p.site_num);break; cas2: printf("outfit_num: ");scanf("%s",&p.outfit_num);break; case3: printf("sale_num: ");scanf("%s",&p.sale_num);break; case4: printf("outfit_n: ");scanf("%s",&p.outfit_n);break; case5: menu(); } for(i=0;i for(j=i;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)|| (p.outfit_n==pro[i].outfit_n))==0); { pro[i]=pro[j]; printf("%dthrecordhasbeendeleted! \n",i-1); n--; save(n); printf_face(); printf_one(i-1); } } while(j printf("Areyoudeleteanother? ? ? \n\t1)Yes2)NoandBack",i); printf("\t\nPleasechoose: (1-2): []\b\b"); scanf("%d",&w1); } while(w1==1); printf_back(); } (4)修改模块 //流程图示意图 //修改模块程序 modify() { structprojectp; FILE*fp; inti,n,k,w0=1,w1,w2=0; n=load(); do { k=-1; printf_face(); for(i=0;i { if((i! =0)&&(i%10==0)) { printf("\n\nRememberNO.whichneededmodify. passanykeytocontinue..."); getch(); puts("\n\n"); } printf_one(i); } do { printf("\n\nEnterSale_numthatyouwanttomodify! sale_num: "); scanf("%s",p.sale_num); for(i=0;i if(strcmp(p.sale_num,pro[i].sale_num)==0) { k=i; p=pro[i]; } if(k==-1)printf("\n\nNOexist! pleaseagain"); }while(k==-1); printf_face(); printf_one(k); w1=modify_data(k,n); if(w1=1) { printf("\nSuccessful^-^.\n\nAreyoumodifyanother? \n\t 1)Yes2)Backwithsave\t"); printf("\nPleasechoose: (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)插入模块 //插入模块 insert() { inti,j,n,c,t; structprojectp; n=load(); puts("\nInputonedata.\n"); do { input(n); printf_face(); printf_one(n); printf("\n\nAreyousure? \n\n\t1).Sure\t2).cancelandagain\t 3).Backwithoutsave\n"); printf("Pleasechoose: (1-3): []\b\b\b"); scanf("%d",&c); if(c==1) { for(i=0;i for(j=i;j if(pro[j].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)浏览模块 //浏览模块示意图 //所有项目显示模块 browse() { inti,j,n; n=load(); printf_face(); for(i=0;i { if(i! =0&&i%10==0) { printf("\n\nPassanykeytocontinue..."); getch(); puts("\n\n"); } printf_one(i); } printf("\t\nThereare%drecord.\n",n); printf("\nPassanykeytoback..."); getch(); menu(); } //销售商-配件-建筑工地浏览模块 browse_project() { inti,j,n; n=load(); printf_project1(); for(i=0;i { if(i! =0&&i%10==0) { printf("\n\nPassanykeytocontinue..."); getch(); puts("\n\n"); } printf_project(i); } printf("\t\nThereare%drecord.\n",n); printf("\nPassanykeytoback..."); getch(); menu(); } //建筑工地浏览模块 browse_site() { inti,j,n; n=load(); printf_site1(); for(i=0;i { if(i! =0&&i%10==0) { printf("\n\nPassanykeytocontinue..."); getch(); puts("\n\n"); } printf_site(i); } printf("\t\nThereare%drecord.\n",n); printf("\nPassanykeytoback..."); getch(); menu(); } //配件浏览模块 browse_outfit() { inti,j,n; n=load(); printf_outfit1(); for(i=0;i { if(i! =0&&i%10==0) { printf("\n\nPassanykeytocontinue..."); getch(); puts("\n\n"); } printf_outfit(i); } printf("\t\nThereare%drecord.\n",n); printf("\nPassanykeytoback..."); getch(); menu(); } //销售商浏览模块 browse_sale() { inti,j,n; n=load(); printf_sale1(); for(i=0;i { if(i! =0&&i%10==0) { printf("\n\nPassanykeytocontinue..."); getch(); puts("\n\n"); } printf_sale(i); } printf("\t\nThereare%drecord.\n",n); printf("\nPassanykeytoback..."); getch(); menu(); } (7)查找模块 //查找示意图 //查找模块 search() { inti,j,n,k,w1=1,w2,w3,w4,w5; structprojectp; n=load(); do { do { k=-1; printf_face(); for(i=0;i printf_one(i); printf("\n\nWhatnumdoyouwantenter? \n\t1)sale_city2).site_city3)NOandback\n"); printf("Pleasechoose: (1-3): []\b\b\b"); scanf("%d",&w5); switch(w5) { case1: printf("sale_city: ");scanf("%s",p.sale_city);break; case2: printf("site_city: ");scanf("%s",p.site_city);break; case3: menu(); } for(i=0;i if((strcmp(p.site_city,pro[i].site_city)&& strcmp(p.sale_city,pro[i].sale_city))==0) { k=i; printf_one(k); } if(k==-1) { printf("\n\nNOexist! "); printf("\n\nAreyouagain? \n\t1).again2)NOandback\n"); printf("Pleasechoose: (1-2): []\b\b"); scanf("%d",&w1); if(w1==2)break; } } while(k==-1&&w1==1); w4=0;w3=0; if(k! =-1) { printf("\n\nWhatdoyouwanttodo? \n\t1).Searchanother2).Modify3).Delete4).Backmenu\n"); printf("Pleasechoose: (1-4): []\b\b\b"); scanf("%d",&w2); switch(w2) { case2: w3=modify_data(k,n);break; case3: {printf("\nAreyousure? \n\t1).Sure 2).Noandback");scanf("%d",&w4);} } if(w3==1||w4==1) { save(n); printf("\n\nSuccessful.^-^."); printf("\n\nWhatdoyouwanttodo? \n\t 1).Searchanother2).Back\n"); printf("Pleasechoose: "); scanf("%d",&w2); } } }while(w2==1); menu(); } 4.公共函数 //保存整个系统数据 save(intn) { FILE*fp; inti; if((fp=fopen("main.txt","wb"))==NULL) { printf("\nCannotopenfile\n"); returnNULL; } for(i=0;i if(fwrite(&pro[i],sizeof(structproject),1,fp)! =1) printf("filewriteerror\n"); fclose(fp); } //保存主项目 save_project(intn) { FILE*fp; inti; if((fp=fopen("project.txt","wb"))==NULL) { printf("\nCannotopenfile\n"); returnNULL; } for(i=0;i fprintf(fp,"%s,%s,%s,%d",pro[i].sale_num,pro[i]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 建筑工地 信息管理 系统