建筑工地信息管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言课程设计报告
课程名称:计算机高级语言课程设计(C)教师姓名:陈喆
本科生姓名:张宸
本科生学号: ***********
本科生专业:土地资源管理
所在院系:公共管理学院
类别: C. 本科生
日期: 2016.01.14
课程设计评语
注:1、无评阅人签名成绩无效;
2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;
3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。
目录
前言 (4)
一、题目要求 (4)
二、题目分析 (5)
三、总体设计 (5)
四、详细设计 (6)
1、主函数 (6)
2、各功能模块设计 (9)
(1)数据输入设计 (9)
(2)删除设计 (15)
(3)查询设计 (20)
(4)查找配对设计 (24)
五、上机操作 (27)
后记 (30)
附录:所有程序代码 (32)
前言
C程序课程设计的目的:为加深学生对基础知识的了解,同时提高综合程序设计能力,在课堂教学结束后,集中安排了课程设计强化训练,目的是使学生融会贯通基本算法,提高综合程序设计能力。通过前四单元的温故而知新、庖丁解牛、举一反三、熟能生巧等过程的练习之后能够解决一些简单的实际问题。
一、题目要求
设计:“建筑工地信息管理系统”
建立如下4个文件(括号内为文件中每条记录的字段内容):
(1)销售商-配件-建筑工地(销售商号码,配件号,工地号,数量)(2)建筑工地(工地号,名字,城市)
(3)配件(配件号,配件名,颜色,重量,产地)
(4)销售商(号码,名字,状态,城市)
功能:
(1)首先建立文件,然后插入数据,并进行删除、更新操作,最后进行查询操作。
(2)查询与供应商所在城市相同的零件——供应商,项目——供应商记录对。
二、题目分析
根据题目要求,建立文件,应选择结构体数组来存放数据,再定义一个全局变量和文件指针进行程序的运行,然后把数据信息存入文件中,所以要提供结构体和文件的输入输出等操作;在程序中要进行数据的插入、删除、更新、查询等操作,所以需要建立相应的模块来实现,为简便起见,还应建立一个主菜单,在每个模块中建立相应的副菜单;另外,还要提供键盘式选择菜单来实现选择功能,使程序在运行时达到要求。
三、总体设计
根据题目要求,可以将系统分为:
1)插入数据模块;
2)删除模块;
3)查询模块;
4)查找配对;
;
图一:系统功能模块图
四、详细设计
1、主函数
【分析】主函数一般设计得比较简便,只提供输入、处理和输出部分的函数调用。其中各功能模块用菜单方式选择。其流程图:
图二 :主函数流程图
开始
显示一系列功能选择 输入n ,判断w 是否是0到4? 根据n 值调用各 功能模块函数
结束
N
【程序】
void menu()
{
int n,w; //变量n保存选择菜单数字,w判断输入的数字是否在功能菜单对应数字范围内
do
{
puts("\t\t*************建筑工地信息管理****************\n\n");
puts("姓名:陈文昕");
puts("学号:20141003384");
puts(班号:175142");
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(n<1||n>5)
{
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();
}
2、各功能模块设计
(1)数据输入设计
【分析】数据信息存放在文件中,用结构体存放,方便数据输入与数据的保存。另外,输入模块中建立副菜单,用以输入四个文件的信息选项。
图三:数据输入模块流程图
【程序】
//销售商-配件-建筑工地信息输入模块
void SFB_enter()
{
int j;
char c[2];
FILE *fp;
if((fp=fopen("data1.txt","w"))==NULL)
{
printf("Cannot open the file!\n");
exit(0);
}
for(j=0;j
{
fwrite(&SFB[j],sizeof(struct SellerFitBuild),1,fp);
}
while(1)
{
printf("输入销售商号码:\n");
scanf("%d",&SFB[i].seller_code);
printf("输入配件号:\n");
scanf("%d",&SFB[i].fit_code);
printf("输入工地号:\n");
scanf("%d",&SFB[i].build_code);
printf("输入项目号:\n");
scanf("%d",&SFB[i].subject_code);
printf("输入销售数量:\n");
scanf("%d",&SFB[i].num);
if(fwrite(&SFB[i++],sizeof(struct SellerFitBuild),1,fp)!=1) printf("File write error\n");
else printf("Successful!\n");
printf("是否继续?(是[y]/否[n]) \n");
scanf("%s",c);
if(strcmp(c,"n")==0)
break;
}
fclose(fp);menu();
}