C语言课设之建筑工地信息管理系统.docx
- 文档编号:25675159
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:37
- 大小:587.54KB
C语言课设之建筑工地信息管理系统.docx
《C语言课设之建筑工地信息管理系统.docx》由会员分享,可在线阅读,更多相关《C语言课设之建筑工地信息管理系统.docx(37页珍藏版)》请在冰豆网上搜索。
C语言课设之建筑工地信息管理系统
封面
作者:
PanHongliang
仅供个人学习
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 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 i++) { printf("\nAddtion%dthprojectrecord.\n",i-n+1)。 input(i)。 } for(i=n。 i 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 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 i++) for(j=i。 j 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 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 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 i++) for(j=i。 j 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 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 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 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 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 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 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 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 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 i++) fprintf(fp,"%s,%s,%s,%d",pro[i].sale_num,pro[i].outfit_num, pro[i].site_num,pro[i].outfit_n)。 fclose(fp)。 } //保存建筑工地信息 save_site(intn) { FILE*fp。 inti。 if((fp=fopen("site.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 建筑工地 信息管理 系统