计算机高级语言-课程
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
-建筑工地信息管理系统
.
C语言课程设计
课程名称 计算机高级语言课程设计(C) 教师姓名 本科生姓名 本科生学号
本科生专业 机械设计制造及其自动化 所在院系 机电学院 类别: C. 本科生 日期: 2012年7月11日
.
.
课程设计评语 对课程论文的评语:
平时成绩: 课程论文成绩: 总 成 绩: 评阅人签名:
注:1、无评阅人签名成绩无效;
2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;
.
.
3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。
.
.
目 录
1(题目要求..................................................................... 1 2(需求
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
..................................................................... 1 3(总体设计..................................................................... 1 4(详细设计..................................................................... 2 5(上机操作................................................................... 24 6(总结......................................................................... 308 7(致谢......................................................................... 309 参考文献....................................................................... 319 附:源代码..................................................................... 30
.
.
1(题目要求
建立如下4个文件:
(1) 销售商--配件--建筑工地(销售商号码,配件号你,工地号,数量)。
(2) 建筑工地(工地号,名字,城市)。
(3) 配件(配件号,配件名,颜色,重量,产地)。
(4) 销售商(号码,名字,城市)。
功能:
(1) 首先建立文件,然后插入数据,并进行删除、更新操作,最后进行查询操作。
(2) 查询与供应商所在城市相同的零件(配件)--供应商(销售商)、项目(建筑工地)--供应商(销售商)
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
对。
2(需求分析
根据题目要求,信息采用文件存储,因而要提供文件的输入/输出操作;要插入数据,因而要提供数据的添加操作;要实现数据的删除、更新和查询,因而要提供文件记录的删除、修改和查找操作;要显示销售商与同一城市的配件和工地配对,因而要提供文件查找配对的操作;另外,还要提供键盘式选择菜单以实现功能选择。
3(总体设计
根据上面的需求分析,可以将该系统的设计分为八大模块,即输入/输出、浏览、添加、删除、更新、查询、配对和退出,如图(1)所示。
建筑工地信息管理系统
输入/输出 浏览添加 删除 更新 查询 配对 退出
图(1) 系统功能模块图
.
.
4(详细设计 1.主函数
主函数只提供输入、处理和输出部分的函数调用。其中各功能模块用菜单方式选择。具体
流程
快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计
如图(2)所示。
开始
显示一系列功能选项
输入n,判断n N
是否是1~8
Y
根据n的值调用各 功能模块函数
结束 图(2) 主函数流程图 【程序】
/******************主函数******************/
void Re_file1();
void Re_file2();
void Re_file3();
void Re_file4();
void menu();
void Append();
void Display();
void SFB_delete();
void BS_delete();
void Fit_delete();
void Seller_delete(); void Delete();
void Update();
void Query();
.
.
void Match();
void Wr_file1();
void Wr_file2();
void Wr_file3();
void Wr_file4();
int N=0,M=0,P=0,Q=0;
main()
{
Re_file1();//读建筑工地信息文件
Re_file2();
Re_file3();
Re_file4();
menu();
}
主函数体内的界面选择部分语句单独抽取出来作为一独立菜单函数menu(),目的在于系统执行完每部分功能模块后能够方便地返回到系统界面。menu()的函数如下:
/************************主菜单**********************/ void menu()
{
int sele;
sele=1;
while(sele)
{ system("cls");
printf("\n\n");
printf("\t\t*************建筑工地信息管理系统*************\n");
printf("\t\t**********************MENU********************\n");
printf("\t\t* *\n");
printf("\t\t* 1:浏览 *\n");
printf("\t\t* 2:添加 *\n");
printf("\t\t* 3:删除 *\n");
printf("\t\t* 4:更新 *\n");
printf("\t\t* 5:查询 *\n");
printf("\t\t* 6:配对 *\n");
printf("\t\t* 7:退出 *\n");
printf("\t\t* *\n");
printf("\t\t**********************************************\n");
printf("\t\t******************072122陈勋******************\n");
printf("\n\n请选择功能序号:");
scanf("%d",&sele);
switch(sele)
{
.
.
case 1:Display();break;
case 2:Append();Display();break;
case
3:Delete();Wr_file1();Wr_file2();Wr_file3();Wr_file4();Display();break;
case 4:Update();Display();break;
case 5:Query();break;
case 6:Match();break;
case 7:sele=0;
}
printf("\n\n按任意键继续\n");
getch();
}
Wr_file1();
Wr_file2();
Wr_file3();
Wr_file4();//写文件
}
2.各功能模块设计
(1)数据读入和输出模块
【数据结构】
原始数据有四类:项目信息(销售商-配件-建筑工地)、建筑工地信息、配件信息和销售商信息。四类信息分别保存在四个文件中,项目信息文件命名为SellerFitBuild.txt,建筑工地信息文件命名为BuildingSite.txt,配件信息文件命名为Fitting.txt,销售商信息文件命名为Seller.txt。
【分析】
从各个数据信息来看,销售商号码,配件号,工地号,以及工地名,城市,配件名,颜色,产地,销售商名称都采用的是字符型数据,销售数量用的是整型数据,配件重量是浮点型数据。
四类信息采用结构体数组的形式存放:
//项目(销售商--配件--建筑工地)信息的结构体
struct SellerFitBuild
{
char seller_code[10]; //销售商号码
char fit_code[10]; //配件号
char build_code[10]; //工地号
int num; //销售数量
}SFB[100]; //seller_code号销售商销售num个fit_code号配件给build_code工地
//建筑工地信息的结构体
struct BuildingSite
{
.
.
char build_code[10]; //工地号
char build_name[10]; //工地名
char city[10]; //城市 }BS[100];
//配件信息的结构体
struct Fitting
{
char fit_code[10]; //配件号
char fit_name[10]; //配件名
char color[10]; //配件颜色
float weight; //配件重量
char city[10]; //配件产地 }Fit[100];
//销售商信息的结构体
struct Seller
{
char seller_code[10]; //销售商号码
char seller_name[10]; //销售商名称
char city[10]; //销售商城市 }Seller[100];
【程序】
/******************数据读入和输出模块****************/
void Re_file1()
{
FILE*fp;
fp=fopen("SellerFitBuild.txt","r");
if(fp==NULL)
{
printf("cannot open the file");
exit(0);//退出
}
while(fscanf(fp,"%s%s%s%d",SFB[N].seller_code,SFB[N].fit_code,SFB[N].build_c
ode,
&SFB[N].num)!=EOF)
N++;
fclose(fp);
}
void Re_file2()
{
FILE*fp;
fp=fopen("BuildingSite.txt","r");
.
.
if(fp==NULL)
{
printf("cannot open the file");
exit(0);
}
while(fscanf(fp,"%s%s%s",BS[M].build_code,BS[M].build_name,BS[M].city)!=EOF)
M++;
fclose(fp);
}
void Re_file3()
{
FILE*fp;
fp=fopen("Fitting.txt","r");
if(fp==NULL)
{
printf("cannot open the file");
exit(0);
}
while(fscanf(fp,"%s%s%s%f%s",Fit[P].fit_code,Fit[P].fit_name,Fit[P].color,&F
it[P].weight,
Fit[P].city)!=EOF)P++;
fclose(fp);
}
void Re_file4()
{
FILE*fp;
fp=fopen("Seller.txt","r");
if(fp==NULL)
{
printf("cannot open the file");
exit(0);
}
while(fscanf(fp,"%s%s%s",Seller[Q].seller_code,Seller[Q].seller_name,Seller[
Q].city)!=EOF)Q++;
fclose(fp);
}
void Wr_file1()
{
int i;
FILE*fp;
fp=fopen("SellerFitBuild.txt","w");
.
.
for(i=0;i
5)
{
t=1;
getchar();
}
else t=0;
}
while(t==1);
switch(m)
{
case 1:SFB_delete();break;
case 2:BS_delete();break;
case 3:Fit_delete();break; .
.
case 4:Seller_delete();break;
case 5:menu();
}
}
(4)数据更新模块
【需求分析】
该模块的功能是根据销售商号码,配件号,工地号在相应的文件里找到要修改的记录,并提示用户修改该记录的哪部分信息(销售数量,工地名,城市等等),然后根据用户的选择修改相应信息。具体的流程图如下图(6):
开始
输入要进行操作的文件
输入要修改的项目
N
是否找到
Y
输入新信息
浏览修改后的文件
主菜单
结束
图(6)数据更新模块流程图
【程序】
/*********************数据更新模块*******************/ void Update()
{
int i,j=-1,d=0,t,n,k=1,f=1;char m[20];
loop: while(f)
{
system("cls");
printf("请选择要更新的项目:\n1.销售商-配件-建筑工地\n2.建筑工地\n3.配.
.
件\n4.销售商\n");
scanf("%d",&n);
if(n==1)
{
printf("1.销售商号码\n2.配件号\n3.工地号\n");
printf("请输入修改选项:");
scanf("%d",&f);
if(f==1)
{
printf("请输入销售商号码:");
scanf("%s",&m);
for(i=0;i
步骤
新产品开发流程的步骤课题研究的五个步骤成本核算步骤微型课题研究步骤数控铣床操作步骤
:编译、链接和运行
.
.
3运行结果:
下面是各个模块的界面效果:
(1)主函数界面(主界面)如图5.1所示
图5.1主界面 (2)数据浏览模块
在主界面中输入“1”,然后按Enter键,进入数据浏览模块,如图5.2所示。
图5.2数据浏览模块 .
.
(3)数据添加模块
在主界面中输入“2”,然后按Enter键,进入数据添加模块,选择要添加的文件,选择要添加的数目,输入相关信息,结果如图5.3所示。
图5.3数据添加模块
(4)数据删除模块
在主界面中输入“3”,然后按Enter键,进入数据删除模块,选择要操作的文件,选择要删除的选项,如图5.4所示。
.
.
图5.4数据删除模块
(5)数据更新模块
在主界面中输入“4”,然后按Enter键,进入数据更新模块,选择要操作的文件,选择要修改
的选项,如图5.5所示。
图5.5数据更新模块
.
.
(6)数据查询模块
在主界面中输入“5”,然后按Enter键,进入数据查询模块,选择要操作的文件,选择要查询的选项,如图5.6所示。
图5.6数据查询模块
(7)数据配对模块
在主界面中输入“6”,然后按Enter键,进入数据配对模块运行结果如图5.7所示。 .
.
图5.7数据配对模块
6(总结
在编译过程中我遇到了很多难题,最难的是删除模块无法正常运行,还有数据无法写进文件,但经过老师的调试和同学的纠错,这些错误我都做了一一改正。在这次编程过程中我进一步加深了对C语言的基础知识的理解,对结构体在程序中的应用有了更深的认识,对我的程序设计能力有了很大的提高,我会继续努力,提高我的编程能力。
7(致谢
在编译过程中老师和同学给了我很大的帮助,在这里要感谢张心心同学和余俊同学对我的帮助,和老师对我的指导。
.
.
参考文献
[1] 谭浩强. C程序设计(第三版)[M]. 北京: 清华大学出版社, 2005.
[2] 张冬梅, 刘远兴, 陈晶, 等《基于PBL的C语言课程设计及学习指导》[M]. 北京: 清华
大学出版社, 2011.
【源代码】
#include
#include
#include
#include
.
. //销售商--配件--建筑工地
struct SellerFitBuild {
char seller_code[10]; //销售商号码
char fit_code[10]; //配件号
char build_code[10]; //工地号
int num; //销售数量 }SFB[100]; //seller_code号销售商销售num个fit_code号配件给build_code
工地
//建筑工地
struct BuildingSite {
char build_code[10]; //工地号
char build_name[10]; //工地名
char city[10]; //城市 }BS[100];
//配件
struct Fitting
{
char fit_code[10]; //配件号
char fit_name[10]; //配件名
char color[10]; //配件颜色
float weight; //配件重量
char city[10]; //配件产地 }Fit[100];
//销售商
struct Seller
{
char seller_code[10]; //销售商号码
char seller_name[10]; //销售商名称
char city[10]; //销售商城市 }Seller[100];
/******************主函数******************/
void Re_file1(); void Re_file2(); void Re_file3(); void Re_file4(); void menu();
void Append();
void Display(); void SFB_delete(); .
.
void BS_delete();
void Fit_delete();
void Seller_delete();
void Delete();
void Update();
void Query();
void Match();
void Wr_file1();
void Wr_file2();
void Wr_file3();
void Wr_file4();
int N=0,M=0,P=0,Q=0;
main()
{
Re_file1();//读建筑工地信息文件
Re_file2();
Re_file3();
Re_file4();
menu();
}
/************************主菜单**********************/ void menu()
{
int sele;
sele=1;
while(sele)
{ system("cls");
printf("\n\n");
printf("\t\t*************建筑工地信息管理系统*************\n");
printf("\t\t**********************MENU********************\n");
printf("\t\t* *\n");
printf("\t\t* 1:浏览 *\n");
printf("\t\t* 2:添加 *\n");
printf("\t\t* 3:删除 *\n");
printf("\t\t* 4:更新 *\n");
printf("\t\t* 5:查询 *\n");
printf("\t\t* 6:配对 *\n");
printf("\t\t* 7:退出 *\n");
printf("\t\t* *\n");
printf("\t\t*********************************************\n");
printf("\n\n请选择功能序号:");
.
.
scanf("%d",&sele);
switch(sele)
{
case 1:Display();break;
case 2:Append();Display();break;
case 3:Delete();Wr_file1();Wr_file2();Wr_file3();Wr_file4();Display();break;
case 4:Update();Display();break;
case 5:Query();break;
case 6:Match();break;
case 7:sele=0;
}
printf("\n\n按任意键继续\n");
getch();
}
Wr_file1();
Wr_file2();
Wr_file3();
Wr_file4();//写文件
}
/*********************数据输入模块*******************/ void Re_file1()
{
FILE*fp;
fp=fopen("SellerFitBuild.txt","r");
if(fp==NULL)
{
printf("cannot open the file");
exit(0);//退出
}
while(fscanf(fp,"%s%s%s%d",SFB[N].seller_code,SFB[N].fit_code,SFB[N].build_code,&SFB
[N].num)!=EOF)
N++;
fclose(fp);
}
void Re_file2()
{
FILE*fp;
fp=fopen("BuildingSite.txt","r");
if(fp==NULL)
{
printf("cannot open the file"); .
.
exit(0);
}
while(fscanf(fp,"%s%s%s",BS[M].build_code,BS[M].build_name,BS[M].city)!=EOF)M++;
fclose(fp);
}
void Re_file3()
{
FILE*fp;
fp=fopen("Fitting.txt","r");
if(fp==NULL)
{
printf("cannot open the file");
exit(0);
}
while(fscanf(fp,"%s%s%s%f%s",Fit[P].fit_code,Fit[P].fit_name,Fit[P].color,&Fit[P].weight,Fit
[P].city)!=EOF)P++;
fclose(fp);
}
void Re_file4()
{
FILE*fp;
fp=fopen("Seller.txt","r");
if(fp==NULL)
{
printf("cannot open the file");
exit(0);
}
while(fscanf(fp,"%s%s%s",Seller[Q].seller_code,Seller[Q].seller_name,Seller[Q].city)!=EOF)
Q++;
fclose(fp);
}
void Wr_file1()
{
int i;
FILE*fp;
fp=fopen("SellerFitBuild.txt","w");
for(i=0;i5)
{
.
.
t=1;
getchar();
}
else t=0;
}
while(t==1);
switch(m)
{
case 1:SFB_delete();break;
case 2:BS_delete();break;
case 3:Fit_delete();break;
case 4:Seller_delete();break;
case 5:menu();
}
}
/*********************数据更新模块*******************/
void Update()
{
int i,j=-1,d=0,t,n,k=1,f=1;char m[20];
loop: while(f)
{
system("cls");
printf("请选择要更新的项目:\n1.销售商-配件-建筑工地\n2.建筑工地\n3.配件\n4.销售商
\n");
scanf("%d",&n);
if(n==1)
{
printf("1.销售商号码\n2.配件号\n3.工地号\n");
printf("请输入修改选项:");
scanf("%d",&f);
if(f==1)
{
printf("请输入销售商号码:");
scanf("%s",&m);
for(i=0;i
本文档为【计算机高级语言-课程设计-建筑工地信息管理系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。