C语言课程设计___建筑工地信息管理系统

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

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

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

资源描述

1C语言课程设计名称:学院班级:姓名:学号:指导老师:2目录前言………………………………………………….............(3)1.题目要求…………………………………………………..(3)2.分析………………………………………………………..(3)3.总体设计…………………………………………………..(3)4.详细设计…………………………………………………..(4)一.主函数…………………………………………………(4)二.功能模块设计…………………………………………(5)(1)数据输入设计……………………………………….(5)(2)删除设计…………………………….......................(10)(3)查询设计…………………………………………...(13)(4)查找配对设计……………………………………...(16)5.上机操作…………………………………………………(18)后记………………………………………………………...(20)附录:程序源清单………………………………………….(20)=3前言课程设计目的:C语言编程实践是学习C语言的一个重要环节,为提高学生的程序设计能力,通过课堂和上机实践使学生的程序设计能力有一个上升的台阶。通过前四单元的温故而知新、庖丁解牛、举一反三、熟能生巧等过程的练习之后能够解决一些简单的实际问题。1、题目要求设计:“建筑工地信息管理系统”建立如下4个文件(括号内为文件中每条记录的字段内容):(1)销售商-配件-建筑工地(销售商号码,配件号,工地号,数量)(2)建筑工地(工地号,名字,城市)(3)配件(配件号,配件名,颜色,重量,产地)(4)销售商(号码,名字,状态,城市)功能:(1)首先建立文件,然后插入数据,并进行删除、更新操作,最后进行查询操作。(2)查询与供应商所在城市相同的零件——供应商,项目——供应商记录对。2、分析根据题目要求,建立文件,应选择结构体数组来存放数据,再定义一个全局变量和文件指针进行程序的运行,然后把数据信息存入文件中,所以要提供结构体和文件的输入输出等操作;在程序中要进行数据的插入、删除、更新、查询等操作,所以需要建立相应的模块来实现,为简便起见,还应建立一个主菜单,在每个模块中建立相应的副菜单;另外,还要提供键盘式选择菜单来实现选择功能,使程序在运行时达到要求。3、总体设计根据题目要求,可以将系统分为:1)插入数据模块;2)删除模块;3)查询模块;44)查找配对;5)功能选择菜图1系统功能模块图4、详细设计一、主函数【分析】主函数一般设计得比较简便,只提供输入、处理和输出部分的函数调用。其中各功能模块用菜单方式选择。其流程图:开始显示一系列功能选择输入n,判断w是否是0到4?根据n值调用各功能模块函数结束N建筑工地信息管理系统数据输入模块删除模块查询模块功能选择菜单查找配对模块5图2主函数流程图【程序】/************************主菜单*********************************/voidmenu(){intn,w;/*变量n保存选择菜单数字,w判断输入的数字是否在功能菜单对应数字范围内*/do{puts(\t\t*************建筑工地信息管理****************\n\n);puts(姓名:覃振孔);puts(学号:20081002799);puts(班学号:052081-24);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.Exit);puts(\n\n\t\t**************************************\n);printf(Chooseyournumber(1-5):[]\b\b);scanf(%d,&n);if(n1||n5){w=1;getchar();}elsew=0;}while(w==1);switch(n){case1:enter();break;case2:delete();break;case3:search();break;case4:search2();break;case5:exit(0);}}main(){menu();}二、各功能模块设计(1)数据输入设计【分析】数据信息存放在文件中,用结构体存放,方便数据输入与数据的保存。另外,输入模块中建立副菜单,用以输入四个文件的信息选项。6图3数据输入模块流程图【程序】/*****************************数据输入模块************************************/voidsal_enter(){intj;charc[2];FILE*fp;if((fp=fopen(data1.txt,w))==NULL){printf(Cannotopenthefile!\n);exit(0);}for(j=0;ji;j++){fwrite(&sal[j],sizeof(structsale),1,fp);}while(1){printf(输入销售商号码:\n);scanf(%d,&sal[i].num1);printf(输入配件号码:\n);scanf(%d,&sal[i].num2);printf(输入工地号码:\n);scanf(%d,&sal[i].num3);printf(输入数量r:\n);scanf(%d,&sal[i].num4);if(fwrite(&sal[i++],sizeof(structsale),1,fp)!=1)开始输入用户信息是否继续进行?结束返回主菜单Y7printf(Filewriteerror\n);elseprintf(Successful!\n);printf(是否继续?(是[y]/否[n])\n);scanf(%s,c);if(strcmp(c,n)==0)break;}fclose(fp);menu();}voidbuild_enter(){intj;charc[2];FILE*fp;if((fp=fopen(data2.txt,w))==NULL){printf(Cannotopenthefile!\n);exit(0);}for(j=0;ji;j++){fwrite(&build[j],sizeof(structbuilding),1,fp);}while(1){printf(输入工地号:\n);scanf(%d,&build[i].num);printf(输入工地名:\n);scanf(%s,build[i].name);printf(输入工地城市:\n);scanf(%s,build[i].city);if(fwrite(&build[i++],sizeof(structbuilding),1,fp)!=1)printf(Filewriteerror\n);elseprintf(Successful!\n);printf(Isthereanymore?(Yes[y]/No[n])\n);scanf(%s,c);if(strcmp(c,n)==0)break;}fclose(fp);menu();}voidpj_enter(){intj;charc[2];FILE*fp;if((fp=fopen(data3.txt,w))==NULL){8printf(Cannotopenthefile!\n);exit(0);}for(j=0;ji;j++){fwrite(&pj[j],sizeof(structpeijian),1,fp);}while(1){printf(输入配件号:\n);scanf(%d,&pj[i].num);printf(输入配件名:\n);scanf(%s,pj[i].name);printf(输入配件颜色:\n);scanf(%s,pj[i].color);printf(输入配件重量:\n);scanf(%d,&pj[i].weight);printf(输入配件产地:\n);scanf(%s,pj[i].area);if(fwrite(&pj[i++],sizeof(structpeijian),1,fp)!=1)printf(Filewriteerror\n);elseprintf(Successful!\n);printf(Isthereanymore?(Yes[y]/No[n])\n);scanf(%s,c);if(strcmp(c,n)==0)break;}fclose(fp);menu();}voidSET_enter(){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);9scanf(%d,&sel[i].num);printf(输入销售商名:\n);scanf(%s,sel[i].name);printf(输入销售商状态:\n);scanf(%s,sel[i].state);printf(输入销售商所在城市:\n);scanf(%s,sel[i].city);if(fwrite(&sel[i++],sizeof(structseller),1,fp)!=1)printf(Filewriteerror\n);elseprintf(Successful!\n);printf(Isthereanymore?(Yes[y]/No[n])\n);scanf(%s,c);if(strcmp(c,n)==0)break;}fclose(fp);menu();}voidenter(){intt,m;do{puts(\t\t***************目录*************\n\n);puts(\t\t\t\t1.sal_enternewdata);puts(\t\t\t\t2.build_enternewdata);puts(\t\t\t\t3.pj_enternewdata);/***************输入菜单****************/puts(\t\t\t\t4.SET_enternewdata);puts(\t\t\t\t5.Exit);puts(\n\n\t\t********************************\n);printf(Choosethenumber(1-5):[]\b\b);scanf(%d,&m);if(m1||m5){t=1;getchar();}elset=0;}while(t==1);switch(m){case1:sal_enter();break;case2:build_enter();break;case3:pj_enter();break;case4:SET_enter();break;case5:menu();}10}(2)删除设计【分析】建立副菜单,选择要删除文件中的信息,输入相应的信息,找到数据将其删除。一般的做法是将数据从文件中删除,删除位置后面的记录往前移。模块如:图4删除模块流程图【程序】/******************************删除模块************************************/voidsal_delete(){intj,v;intw;FILE*fp;printf(请输入要删除的销售商号码:);scanf(%d,&w

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

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

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

×
保存成功