c语言课程设计建筑工地信息管理系统
(31页)
本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!
29.9 积分
1C 语言课程设计 名称:建筑工地信息管理系统学院:工程学院班级:055071-30姓名:文富奎学号:20071003889指导老师:刘文中2前言课程设计目的:C 语言编程实践是学习 C 语言的一个重要环节,为提高学生的程序设计能力,通过课堂和上机实践使学生的程序设计能力有一个上升的台阶。通过前四单元的温故而知新、庖丁解牛、举一反三、熟能生巧等过程的练习之后能够解决一些简单的实际问题。1、 题目要求设计:“建筑工地信息管理系统”建立如下 4 个文件(括号内为文件中每条记录的字段内容):(1) 销售商-配件-建筑工地 (销售商号码,配件号,工地号,数量)(2) 建筑工地 (工地号,名字,城市)(3) 配件 (配件号,配件名,颜色,重量,产地)(4) 销售商 (号码,名字,状态,城市)功能:(1) 首先建立文件,然后插入数据,并进行删除、更新操作,最后进行查询操作。(2) 查询与供应商所在城市相同的零件——供应商,项目——供应商记录对。2、分析根据题目要求,建立文件,应选择结构体数组来存放数据,再定义一个全局变量和文件指针进行程序的运行,然后把数据信息存入文件中,所以要提供结构体和文件的输入输出等操作;在程序中要进行数据的插入、删除、更新、查询等操作,所以需要建立相应的模块来实现,为简便起见,还应建立一个主菜单,在每个模块中建立相应的副菜单;另外,还要提供键盘式选择菜单来实现选择功能,使程序在运行时达到要求。3、总体设计根据题目要求,可以将系统分为:1) 插入数据模块;2) 删除模块;3) 查询模块;4) 查找配对;35) 功能选择菜图 1 系统功能模块图4、详细设计一、主函数【分析】 主函数一般设计得比较简便,只提供输入、处理和输出部分的函数调用。其中各功能模块用菜单方式选择。其流程图:开始显示一系列功能选择输入 n,判断 w 是否是 0 到 4?根据 n 值调用各功能模块函数结束N图 2 主函数流程图建筑工地信息管理系统数据输入模块删除模块查询模块功能选择菜单查找配对模块4【程序】/************************主菜单*********************************/ void menu() { int n,w; /*变量 n 保存选择菜单数字,w 判断输入的数字是否在功能菜单对应数字范围内 */ do { puts("\t\t*************建筑工地信息管理****************\n\n"); puts("姓名:文富奎 "); puts("学号:20071003889"); puts("班学号: 055071-30"); puts("\t\t****************MENU*******************\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("Choose your number (1-5):[ ]\b\b"); scanf("%d",&n); if(n5) { w=1; getchar(); } else w=0; } while(w==1); switch(n) { case 1:enter();break; case 2:delete();break; case 3:search();break; case 4:search2();break; case 5:exit(0); } } main() { menu(); } 二、各功能模块设计(1)数据输入模块【分析】 数据信息存放在文件中,用结构体存放,方便数据输入与数据的保存。另外,输入模块中建立副菜单,用以输入四个文件的信息选项。5开始输入用户信息是否继续进行?结束返回主菜单Y图 3 数据输入模块流程图【程序】/*****************************数据输入模块************************************/ void sal_enter() { int j; char c[2]; FILE *fp; if((fp=fopen("data1.txt","w"))==NULL) { printf("Can not open the file!\n"); exit(0); } for(j=0;j5) { t=1; getchar(); } else t=0; } while(t==1); switch(m) { case 1:sal_enter();break; case 2:build_enter();break; case 3:pj_enter();break; case 4:SET_enter();break; case 5:menu(); } } 9(2) 删除模块【分析】 建立副菜单,选择要删除的是哪个文件中的信息,输入相应的信息,找到数据将其删除。一般的做法是将数据从文件中删除,删除位置后面的记录往前移。模块如:开始输入要删除的数据是否找到?删除数据显示成功显示没有找到Y结束图 4 删除模块流程图【程序】/******************************删除模块************************************/ void sal_delete(){int j,v; int w; FILE *fp; printf("请输入要删除的销售商号码:"); scanf("%d",&w); fp=fopen("data1.txt","rb"); for(j=0;j5) { t=1; getchar(); } else t=0; } while(t==1); switch(m) { case 1:sal_delete();break; case 2:build_delete();break; case 3:pj_delete();break; case 4:SET_delete ();break; case 5:menu(); } } (3) 查找模块【分析】 选择查找方式,输入相应的数据然后找出对应的数据。模块流程图:开始输入查找的方式:1)项目号;2)工地号;3)配件号;4)销售商号是否找到?显示找到的记录 提示没找到Y结束Y 是否继续查找? 返回主菜单图 5 查找模块流程图13【程序】/********************************查找模块***********************************/ void search() { int flag,j,x; int w,v,z,y; FILE *fp; printf("1.By 项目号\n"); printf("2.By 工地号\n"); printf("3.By 配件号\n");printf("4.By 销售商号\n");printf("请选择项:\n"); scanf("%d",&x); if(x==3) { flag=0; printf("Please input the 配件号:"); scanf("%d",&w); fp=fopen("data3.txt","rb"); for(j=0;j #include #include #include int i=0; struct sale /*定义销售商-配件 -建筑工地*/ {int num;/*项目号*/ int num1; /*销售商号码*/ int num2; /*配件号*/ int num3; /*工地号*/ int num4; /*数量*/ }sal[100]; struct building /*定义建筑工地结构体 */ {int num; /*工地号*/ char name[20]; /*工地名*/ char city[20]; /*城市名*/ }build[100]; struct peijian /*定义配件结构体*/ {int num; /*配件号*/ char name[20]; /*配件名*/ char color[20]; /*颜色*/ int weight; /*重量*/ char area[20]; /*产地*/ }pj[100]; struct seller /*定义销售商结构体*/ {int num ; /*销售商号码*/ char name[20]; /*销售商名字*/ char state[20]; /*状态*/ char city[20]; /*城市*/ }sel[100]; void menu(); /*****************************数据输入模块************************************/ void sal_enter() { int j; char c[2]; FILE *fp; 21if((fp=fopen("data1.txt","w"))==NULL) { printf("Can not open the file!\n"); exit(0); } for(j=0;j5) { t=1; getchar(); } else t=0; } while(t==1); switch(m) { case 1:sal_enter();break; case 2:build_enter();break; case 3:pj_enter();break; case 4:SET_enter();break; case 5:menu(); } } /******************************删除模块************************************/ void sal_delete() {int j,v; int w; FILE *fp; printf("请输入要删除的销售商号码:"); scanf("%d",&w); fp=fopen("data1.txt","rb"); for(j=0;j5) { 27t=1; getchar(); } else t=0; } while(t==1); switch(m) { case 1:sal_delete();break; case 2:build_delete();break; case 3:pj_delete();break; case 4:SET_delete ();break; case 5:menu(); } } /********************************查找模块***********************************/ void search() { int flag,j,x; int w,v,z,y; FILE *fp; printf("1.By 项目号\n"); printf("2.By 工地号\n"); printf("3.By 配件号\n");printf("4.By 销售商号\n");printf("请选择项:\n"); scanf("%d",&x); if(x==3) { flag=0; printf("Please input the 配件号:"); scanf("%d",&w); fp=fopen("data3.txt","rb"); for(j=0;j5) { w=1; getchar(); } else w=0; } while(w==1); switch(n) { case 1:enter();break; case 2:delete();break; case 3:search();break; case 4:search2();break; case 5:exit(0); } } main() { menu(); } 关 键 词: 语言 课程设计 建筑工地 信息管理 系统
天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。