《高级语言程序设计》课程设计建筑工地信息管理系统.doc
《《高级语言程序设计》课程设计建筑工地信息管理系统.doc》由会员分享,可在线阅读,更多相关《《高级语言程序设计》课程设计建筑工地信息管理系统.doc(37页珍藏版)》请在三一办公上搜索。
1、 高级语言程序设计三峡大学理学院10级光信息科学与技术专业高级语言程序设计课程设计说明书 设计题目:建筑工地信息管理系统 班 级:光信 学 号: 姓 名: 指导老师: 完成日期:2011/11/20前言课程设计目的高级语言程序设计课程设计是电子信息、光信息专业以及物理学专业集中实践性环节之一,是学习完高级语言程序设计课程后进行的一次全面的综合练习,其目的在于加深对程序设计基本知识的理解,掌握使用C语言进行模块化软件设计的基本方法,提高通过编写程序解决实际问题的能力,为今后从事设计工作和后续各种编程课程的学习打好基础。1、 题目要求设计:“建筑工地信息管理系统”(1)主函数建立四个文件,输出提示
2、用户操作的信息,选择操作文件:R销售商-配件-建筑工地,B建筑工地,F配件,S销售商,空格键查询。(2)数据输入模块 写数据到相应文件中。 (3)数据插入模块 采用追加的方式写数据到文件。 (4)数据删除模块 通过菜单选择相应的文件后,打开该文件,从文件中读一条记录,判断是否要删除,如 果是,则舍弃;否则重新写入文件,读下一条记录。 (5)数据更新模块 与数据删除模块类似,只是判断所读的纪录是否要更新,如果是,则把更新后的纪录写 入文件,否则直接写入文件。 (6)按空格键进入查询操作 通过菜单选择查询零件-供应商或者项目-供应商。例如选择查询零件-供应商。其基本流程如下: 打开销售商-配件-建
3、筑工地文件; While(文件未结束) 读一条记录,得到销售商号码和配件号; 在销售商文件中查找该销售商号码,得到该销售商所在城市; 在配件文件中查找配件号,得到该配件的产地; 如果销售商所在城市与配件的产地相同,则输出销售商号码和配件号码; 查询项目-供应商记录对的操作类似,只需把配件号改为工地号即可。 2、分析 1、需求分析:信息采用文件存储,因而要提供文件的输入输出操作;要插入数据,因而要提供数据的 添加操作; 要实现数据的删除、 更新和查询, 因而要提供文件记录的删除、 修改和查找操作; 另外要提供键盘式选择菜单以实现功能选择。 2、总体设计:整个系统可以被设计为数据输入模块、数据添加
4、模块、数据删除模块、数据查询并修改模块、配对模块。 建筑工地信息管理系统数据输入模块数 据 添 加 模 块删除模块查询修改模块 查 找 配对 模块 功能 选 择 菜 单 图1 系统功能模块图 4、详细设计一、主函数【分析】 主函数一般设计得比较简便,只提供输入、处理和输出部分的函数调用。其中各功能模块用菜单方式选择。void menu()f1()f11() dodo switch(c)switch(c) case 1:f1();break; case 1:f11();break; case 2:f2();break; case 2:f12();break; case 3:f2();break;
5、 case 3:f13();break; case 4:f2();break; case 4:f14();break;case 5:exit(0); case 5:back=0;break; default:break; default:break; while(1); while(1); 图(2) 【程序】/*主菜单*/ void menu() int w; do system(cls); printf(tt*MENU*nn); printf(tttt1.输入n);/*输入*/ printf(tttt2.删除n);/*删除*/ printf(tttt3.查找与修改n);/*查找与修改*/ p
6、rintf(tttt4.配对n);/*查找配对*/ printf(tttt5.添加n); printf(tttt6.退出); printf(nntt*n); printf(Choose your number (1-6): bb); scanf(%d,&w); switch(w) case 1:enter();break; case 2:Delete();break; case 3:search();break; case 4:search2();break; case 5:add();break; case 6:exit(0); default:break; while(1); void m
7、ain()system(cls);system(color 0a9);start();system(PAUSE); menu();二、各功能模块设计(1)数据输入模块【分析】 数据信息存放在文件中,用结构体存放,方便数据输入与数据的保存。另外,输入模块中建立副菜单,用以输入四个文件的信息选项。【程序】(以输入销售商结构体信息为例)/*数据输入模块*/ void SEL_enter () system(cls);int j; char c2; FILE *fp; if(fp=fopen(data4.txt,w)=NULL) printf(Can not open the file!n); exi
8、t(0); for(j=0;ji;j+) fwrite(&selj,sizeof(struct seller),1,fp); while(1) printf(n输入销售商号:); scanf(%s,seli.num); printf(n输入销售商名:); scanf(%s,seli.name); printf(n输入销售商所在城市:); scanf(%s,seli.city); if(fwrite(&seli+,sizeof(struct seller),1,fp)!=1) printf(nFile write errorn); else printf(Successful! -n); pri
9、ntf(是否继续?y/n: bb); scanf(%s,c); if(strcmp(c,n)=0|strcmp(c,N)=0)break; fclose(fp);system(PAUSE); void enter() int m,back; do system(cls); printf(tt*MENU*nn); printf(t以下符号:S-项目、B-建筑工地、P-配件、SEL-销售商n); printf(tttt1.输入数据到Sn); printf(tttt2.输入数据到Bn); printf(tttt3.输入数据到Pn); /*输入菜单*/ printf(tttt4.输入数据到SELn);
10、 printf(tttt5.返回); printf(nntt *n); printf(请选择(1-5): bb); scanf(%d,&m); switch(m) case 1:sal_enter();break; case 2:build_enter();break; case 3:pj_enter();break; case 4:SEL_enter();break; case 5:back=0;break; default:break; if(back=0)break; while(1); (2)删除模块【分析】 建立副菜单,选择要删除的是哪个文件中的信息,输入相应的信息,找到数据将其删除
11、。一般的做法是将数据从文件中删除,删除位置后面的记录往前移。模块如: 开始输入要删除的数据是否找到?删除数据显示成功显示没有找到Y是否继续?是否图(3) 删除模块流程图【程序】(以删除销售商结构体信息为例)/*删除模块*/ void SEL_delete() system(cls);int j,v,flag=0; char a5,c2; 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
12、j,sizeof(struct seller),1,fp)!=1) break; fclose(fp); fp=fopen(data4.txt,w); v=j; for(j=0;jv;j+) if(strcmp(selj.num,a)=0) printf(n销售商号码,销售商名字,城市: n); printf(%s %s %s,selj.num,selj.name,selj.city); for(i=j;iv;i+) seli=seli+1; printf(Successful! -n); flag=1; if(flag=0)printf(Cannot find the data!n); pr
13、intf(是否继续y/n: bb); scanf(%s,c); if(strcmp(c,n)=0|strcmp(c,N)=0)break;while(1);for(j=0;ji;j+)fwrite(&selj,sizeof(struct seller),1,fp); fclose(fp);system(PAUSE);void Delete() int m,back; do system(cls); printf(tt*MENU*nn); printf(t以下符号:S-项目、B-建筑工地、P-配件、SEL-销售商n); printf(tttt1.删除数据到Sn); printf(tttt2.删除
14、数据到Bn); printf(tttt3.删除数据到Pn); /*删除菜单*/ printf(tttt4.删除数据到SELn); printf(tttt5.返回); printf(nntt *n); printf(请选择(1-5): bb); scanf(%d,&m); switch(m) case 1:sal_delete();break; case 2:build_delete();break; case 3:pj_delete();break; case 4:SEL_delete();break; case 5:back=0;break; default:break; if(back=0
15、)break; while(1); (3)查找与修改模块【分析】 选择查找方式,输入相应的数据然后找出对应的数据。模块流程图:开始输入查找的方式:1)项目号;2)工地号;3)配件号;4)销售商号是否找到?显示找到的记录提示没找到Y返回主菜单Y是否继续查找?返回副菜单是否修改? 图(4) 查找修改模块流程图【程序】(以查找修改销售商结构体信息为例)/*查找与修改模块*/ void SEL_search()system(cls);char a5,c2;int j,k=0,flag=0;struct seller p1100,p2100;FILE *fp;printf(n请输入要查找的销售商号:);
16、scanf(%s,a);if(fp=fopen(data4.txt,r)=NULL)printf(n打开文件失败!n); exit(0);for(j=0;!feof(fp);j+)fread(&p1j,sizeof(struct seller),1,fp);if(strcmp(p1j.num,a)=0) printf(n销售商号:%sn,p1j.num); printf(销售商名:%sn,p1j.name); printf(所在城市名:%sn,p1j.city); printf(-n); flag=1;printf(n是否修改y/n: bb); scanf(%s,c); if(strcmp(c
17、,y)=0|strcmp(c,Y)=0) printf(n销售商号:);scanf(%s,p2k.num);strcpy(p1j.num,p2k.num);printf(n销售商名:);scanf(%s,p2k.name);strcpy(p1j.name,p2k.name);printf(n所在城市名:);scanf(%s,p2k.city);strcpy(p1j.city,p2k.city);k+;printf(successful! -n); /else continue;fclose(fp); fp=fopen(data4.txt,w);for(k=0;kj;k+) fwrite(&p1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级语言程序设计 高级 语言程序设计 课程设计 建筑工地 信息管理 系统
链接地址:https://www.31ppt.com/p-2385839.html