高级语言程序设计说明书-建筑工地信息管理系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1高级语言程序设计三峡大学理学院10级光信息科学与技术专业《高级语言程序设计》课程设计说明书设计题目:建筑工地信息管理系统班级:光信学号:2010146103姓名:刘昌锋指导老师:杨先卫完成日期:2011/11/202前言课程设计目的《高级语言程序设计》课程设计是电子信息、光信息专业以及物理学专业集中实践性环节之一,是学习完《高级语言程序设计》课程后进行的一次全面的综合练习,其目的在于加深对程序设计基本知识的理解,掌握使用C语言进行模块化软件设计的基本方法,提高通过编写程序解决实际问题的能力,为今后从事设计工作和后续各种编程课程的学习打好基础。1、题目要求设计:“建筑工地信息管理系统”(1)主函数建立四个文件,输出提示用户操作的信息,选择操作文件:R[销售商-配件-建筑工地],B[建筑工地],F[配件],S[销售商],空格键[查询]。(2)数据输入模块写数据到相应文件中。(3)数据插入模块采用追加的方式写数据到文件。(4)数据删除模块通过菜单选择相应的文件后,打开该文件,从文件中读一条记录,判断是否要删除,如果是,则舍弃;否则重新写入文件,读下一条记录。(5)数据更新模块与数据删除模块类似,只是判断所读的纪录是否要更新,如果是,则把更新后的纪录写入文件,否则直接写入文件。(6)按空格键进入查询操作通过菜单选择查询零件-供应商或者项目-供应商。例如选择查询零件-供应商。其基本流程如下:打开销售商-配件-建筑工地文件;While(文件未结束){读一条记录,得到销售商号码和配件号;在销售商文件中查找该销售商号码,得到该销售商所在城市;在配件文件中查找配件号,得到该配件的产地;如果销售商所在城市与配件的产地相同,则输出销售商号码和配件号码;}3查询项目-供应商记录对的操作类似,只需把配件号改为工地号即可。2、分析1、需求分析:信息采用文件存储,因而要提供文件的输入输出操作;要插入数据,因而要提供数据的添加操作;要实现数据的删除、更新和查询,因而要提供文件记录的删除、修改和查找操作;另外要提供键盘式选择菜单以实现功能选择。2、总体设计:整个系统可以被设计为数据输入模块、数据添加模块、数据删除模块、数据查询并修改模块、配对模块。图1系统功能模块图4、详细设计一、主函数【分析】主函数一般设计得比较简便,只提供输入、处理和输出部分的函数调用。其中各功能模块用菜单方式选择。建筑工地信息管理系统数据输入模块删除模块查询修改模块功能选择菜单查找配对模块数据添加模块4voidmenu()f1()f11(){{···{···do{do{···switch(c)switch(c)}{case1:f1();break;{case1:f11();break;case2:f2();break;case2:f12();break;case3:f2();break;case3:f13();break;case4:f2();break;case4:f14();break;case5:exit(0);case5:back=0;break;default:break;}default:break;}}while(1);}while(1);······}}图(2)【程序】/************************主菜单*********************************/voidmenu(){intw;do{system(cls);printf(\t\t****************MENU*******************\n\n);printf(\t\t\t\t1.输入\n);/*输入*/printf(\t\t\t\t2.删除\n);/*删除*/printf(\t\t\t\t3.查找与修改\n);/*查找与修改*/printf(\t\t\t\t4.配对\n);/*查找配对*/printf(\t\t\t\t5.添加\n);printf(\t\t\t\t6.退出);printf(\n\n\t\t**************************************\n);printf(Chooseyournumber(1-6):[]\b\b);scanf(%d,&w);switch(w){case1:enter();break;case2:Delete();break;case3:search();break;case4:search2();break;case5:add();break;case6:exit(0);default:break;}}while(1);}5voidmain(){system(cls);system(color0a9);start();system(PAUSE);menu();}二、各功能模块设计(1)数据输入模块【分析】数据信息存放在文件中,用结构体存放,方便数据输入与数据的保存。另外,输入模块中建立副菜单,用以输入四个文件的信息选项。【程序】(以输入销售商结构体信息为例)/*****************************数据输入模块************************************/voidSEL_enter(){system(cls);intj;charc[2];FILE*fp;if((fp=fopen(data4.txt,w))==NULL){printf(Cannotopenthefile!\n);exit(0);}for(j=0;ji;j++){fwrite(&sel[j],sizeof(structseller),1,fp);}while(1){printf(\n输入销售商号:);scanf(%s,sel[i].num);printf(\n输入销售商名:);scanf(%s,sel[i].name);printf(\n输入销售商所在城市:);scanf(%s,sel[i].city);if(fwrite(&sel[i++],sizeof(structseller),1,fp)!=1)printf(\nFilewriteerror\n);elseprintf(Successful!^-^\n);printf(是否继续?[y/n]:[]\b\b);scanf(%s,c);if(strcmp(c,n)==0||strcmp(c,N)==0)break;}fclose(fp);system(PAUSE);}······6voidenter(){intm,back;do{system(cls);printf(\t\t***************MENU*************\n\n);printf(\t以下符号:[S]-项目、[B]-建筑工地、[P]-配件、[SEL]-销售商\n);printf(\t\t\t\t1.输入数据到S\n);printf(\t\t\t\t2.输入数据到B\n);printf(\t\t\t\t3.输入数据到P\n);/***************输入菜单****************/printf(\t\t\t\t4.输入数据到SEL\n);printf(\t\t\t\t5.返回);printf(\n\n\t\t********************************\n);printf(请选择(1-5):[]\b\b);scanf(%d,&m);switch(m){case1:sal_enter();break;case2:build_enter();break;case3:pj_enter();break;case4:SEL_enter();break;case5:back=0;break;default:break;}if(back==0)break;}while(1);}(2)删除模块【分析】建立副菜单,选择要删除的是哪个文件中的信息,输入相应的信息,找到数据将其删除。一般的做法是将数据从文件中删除,删除位置后面的记录往前移。模块如:开始输入要删除的数据是否找到?删除数据显示成功显示没有找到Y是否继续?是否7图(3)删除模块流程图【程序】(以删除销售商结构体信息为例)/******************************删除模块************************************/voidSEL_delete(){system(cls);intj,v,flag=0;chara[5],c[2];FILE*fp;if((fp=fopen(data4.txt,r))==NULL){printf(\n打开文件失败!\n);exit(0);}do{printf(请输入号码:);scanf(%s,a);for(j=0;j100;j++){if(fread(&sel[j],sizeof(structseller),1,fp)!=1)break;}fclose(fp);fp=fopen(data4.txt,w);v=j;for(j=0;jv;j++){if(strcmp(sel[j].num,a)==0){printf(\n销售商号码,销售商名字,城市:\n);printf(%s%s%s,sel[j].num,sel[j].name,sel[j].city);for(i=j;iv;i++)sel[i]=sel[i+1];printf(Successful!^-^\n);flag=1;}}if(flag==0)printf(Cannotfindthedata!\n);printf(是否继续[y/n]:[]\b\b);scanf(%s,c);if(strcmp(c,n)==0||strcmp(c,N)==0)break;}while(1);for(j=0;ji;j++)fwrite(&sel[j],sizeof(structseller),1,fp);fclose(fp);8system(PAUSE);}voidDelete(){intm,back;do{system(cls);printf(\t\t***************MENU*************\n\n);printf(\t以下符号:[S]-项目、[B]-建筑工地、[P]-配件、[SEL]-销售商\n);printf(\t\t\t\t1.删除数据到S\n);printf(\t\t\t\t2.删除数据到B\n);printf(\t\t\t\t3.删除数据到P\n);/*********删除菜单****************/printf(\t\t\t\t4.删除数据到SEL\n);printf(\t\t\t\t5.返回);printf(\n\n\t\t********************************\n);printf(请选择(1-5):[]\b\b);scanf(%d,&m);switch(m){case1:sal_delete();break;case2:build_delete();break;case3:pj_delete();break;case4:SEL_delete();break;case5:back=0;break;default:break;}if(back==0)break;}while(1);}(3)查找与修改模块【分析】选择查找方式,输入相应的数据然后找出对应的数据。模块流程图:9图(4)查找修改模块流程图【程序】(以查找修改销售商结构体信息为例)/****************************查找与修改模块*****************************/voidSEL_search(){system(cls);chara[5],c[2];intj,k=0,flag=0;structsellerp1[100],p2[100];FILE*fp;printf(\n请输入要查找的销售商号:);scanf(%s,a);if((fp=fopen(data4.txt,r

1 / 37
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功