ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:207.23KB ,
资源ID:7784500      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7784500.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(建筑工地信息系统 c语言实习报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

建筑工地信息系统 c语言实习报告.docx

1、建筑工地信息系统 c语言实习报告 C语言程序设计 专业:会计学班级:084112姓名:李亮学号:20111002899指导老师:薛老师一、前言 2二、题目要求 3三、详细设计 5四、各功能模块设计 5主菜单 5(1)数据输入模块 7(2)删除模块 10(3)查找模块 12五、上机操作 14六、后记 17七、附录:源程序清单 18 前言课程设计目的:C语言编程实践是学习C语言的一个重要环节,为提高学生的程序设计能力,通过课堂和上机实践使学生的程序设计能力有一个上升的台阶。通过前四单元的温故而知新、庖丁解牛、举一反三、熟能生巧等过程的练习之后能够解决一些简单的实际问题。题目要求设计:“建筑工地信息

2、管理系统”建立如下4个文件(括号内为文件中每条记录的字段内容):(1) 销售商-配件-建筑工地 (销售商号码,配件号,工地号,数量)(2) 建筑工地 (工地号,名字,城市)(3) 配件 (配件号,配件名,颜色,重量,产地)(4) 销售商 (号码,名字,状态,城市)功能:(1) 首先建立文件,然后插入数据,并进行删除、更新操作,最后进行查询操作。(2) 查询与供应商所在城市相同的零件供应商,项目供应商记录对。 分析 根据题目要求,建立文件,应选择结构体数组来存放数据,再定义一个全局变量和文件指针进行程序的运行,然后把数据信息存入文件中,所以要提供结构体和文件的输入输出等操作;在程序中要进行数据的

3、插入、删除、更新、查询等操作,所以需要建立相应的模块来实现,为简便起见,还应建立一个主菜单,在每个模块中建立相应的副菜单;另外,还要提供键盘式选择菜单来实现选择功能,使程序在运行时达到要求。 总体设计根据题目要求,可以将系统分为:1) 数据输入模块;2) 删除模块;3) 查询模块;4) 退出建筑工地信息管理系统 图1 系统功能模块图 详细设计一、主函数【分析】 主函数一般设计得比较简便,只提供输入、处理和输出部分的函数调用。其中各功能模块用菜单方式选择。其流程图: 图2 主函数流程图 【程序】二、各功能模块设计主菜单/*主菜单*/ void menu() int n,w; /*变量n保存选择菜

4、单数字,w判断输入的数字是否在功能菜单对应数字范围内*/ do printf(nnn); printf( 建筑工地信息管理系统 ); printf( 20111002889 李亮 084112 ); printf(nn); printf(nn); printf( *n); printf( *n); printf( *n); printf( * *n); printf( * 1数据输入 2数据删除 *n); printf( * *n); printf( * 3数据查询 5退出 *n); printf( * *n); printf( *n); printf( *n); printf( *n); p

5、rintf( 请选择功能序号:);scanf(%d,&n); if(n4) 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:exit(0); main() menu(); (1)数据输入模块【分析】 数据信息存放在文件中,用结构体存放,方便数据输入与数据的保存。另外,输入模块中建立副菜单,用以输入四个文件的信息选项。 图3 数据输入模块流程图【程序】/*数据输入模块*/ void SAL_enter

6、() int j; char c2; FILE *fp; if(fp=fopen(data1.txt,w)=NULL) printf(Can not open the file!n); exit(0); for(j=0;ji;j+) fwrite(&salj,sizeof(struct sale),1,fp); while(1) printf(Please input the seller number:n); scanf(%d,&sali.num1); printf(Please input the fitting number:n); scanf(%d,&sali.num2); print

7、f(Please input the site number:n); scanf(%d,&sali.num3); printf(Please input the number:n); scanf(%d,&sali.num4); if(fwrite(&sali+,sizeof(struct sale),1,fp)!=1) printf(File write errorn); else printf(Successful!n); printf(Is there any more?( Yesy/Non) n); scanf(%s,c); if(strcmp(c,n)=0)break; fclose(

8、fp);menu(); void enter() int t,m; do puts(tt*MENU*nn); puts(tttt1.SAL_enter new data); /*输入菜单*/ puts(tttt2.Exit); puts(nntt *n); printf(Choose the number(1-2):bb); scanf(%d,&m); if(m2) t=1; getchar(); else t=0; while(t=1); switch(m) case 1:SAL_enter();break; case 2:menu(); (2)删除模块【分析】 建立副菜单,选择要删除的是哪

9、个文件中的信息,输入相应的信息,找到数据将其删除。一般的做法是将数据从文件中删除,删除位置后面的记录往前移。模块如:图4 删除模块流程图【程序】/*删除模块*/ void SAL_delete() int j,v,c; int w; FILE *fp; printf(Please input the seller number which you want to delete:); scanf(%d,&w); fp=fopen(data1.txt,rb); for(j=0;j100;j+) if(fread(&salj,sizeof(struct sale),1,fp)!=1) break;

10、v=j; for(j=0;jv;j+) if(w=salj.num1) c=j; else printf(Cannot find the data!);menu(); fclose(fp); fp=fopen(data1.txt,wb); for(j=0;jv;j+) if(j!=c) fwrite(&salj,sizeof(struct sale),1,fp); fclose(fp); printf(Delete OK!n);menu(); void delete() int t,m; do puts(tt*MENU*nn); puts(tttt1.SAL_delete new data);

11、 /*删除菜单*/ puts(tttt5.Exit); puts(nntt *n); printf(Choose the number(1-2):bb); scanf(%d,&m); if(m2) t=1; getchar(); else t=0; while(t=1); switch(m) case 1:SAL_delete();break; case2:menu(); (3)查找模块【分析】 输入相应的数据然后找出对应的数据。模块流程图: 图5 查找模块流程图【程序】/*查找模块*/ void search() int flag,j,x; int w; FILE *fp; flag=0;

12、printf(请输入销售商号码:); scanf(%d,&w); fp=fopen(data1.txt,rb); for(j=0;j100;j+) if(fread(&salj,sizeof(struct sale),1,fp)!=1) break; if(salj.num2=w) printf(seller number:%dn,salj.num1); printf(fitting number:%dn,salj.num2); printf(site number:%dn,salj.num3); printf(number:%dn,salj.num4); printf(-n); flag=1

13、; if(flag=0) printf(Cannot find the data!n); fclose(fp); menu(); 5、上机操作 (1) 主菜单函数 图6 主菜单(2) 数据输入模块 图7 输入数据删除模块 图8 删除模块(3) 查找模块图9 查找模块 后记刚开始学C语言的时候,很迷茫,在此之前从没有接触过C语言,有点摸不着头脑。可是在上机过后,我觉得编程是很有趣的一件事。我知道要学好C语言不容易,可是我决定完成这件不容易的事。 要学好C语言就要先懂得最基本的语法知识,看课本是必需的。我觉得看不懂也没关系,尽力去理解就好了,在对知识有了一个大致的了解过后,就要上机实践。学习C语言

14、一定要动手,只看不做,眼高手低是不行的。 最开始可以打书上的例题,熟悉程序,慢慢的开始试着编程。在编程时要理清自己的思路,然后再转换成C语言中的语言,这个时候就更要动手了,只有通过上机操作才能验证自己程序的正确性。执行程序,不要害怕错误,其实,我觉得错误是好的,知道了自己所学知识的不足,并根据提示改正程序中发生的错误,一种成就感油然而生,觉得自己的付出都是值得的。 良好的编程习惯是学好C语言的重要因素,只有勤动手,多动脑才能学好C语言,光说不练是不行的。 在学习的时候,不会的一定要问明白,可以求助于老师,同学,不要自己一个人钻牛角尖,浪费时间又学不到东西。 上课的时候一定要认真听,老师讲的肯定

15、是最重要的,错过了就是一大笔损失,认真听讲才可以提高学习效率。我觉得在编程之前,要把自己的想法写在纸上,如果是简单一点的程序不需要这样,如果程序比较复杂,就写下来,这样可以让思路更加清晰。完成程序的编写,决不意味着万事大吉。你认为万无一失的程序,实际上机运行时可能不断出现麻烦。如编译程序检测出一大堆错误。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。程序的调试是一个技巧性很强的工作,对于初学者来说,尽快掌握程序调试方法是非常重要的。有时候一个消耗你几个小时时间的小小错误,调试高手一眼

16、就看出错误所在。通过这次为数不多的几天计算机实践学习,我们了解了一些关于c语言的知识,理解巩固了我们c语言的理论知识,着对我们将来到社会工作将会有莫大的帮助。同时它让我知道,只要你努力,任何东西都不会太难。 七、附录:源程序清单 #include #include #include #include int i=0; struct sale /*定义销售商-配件-建筑工地*/ int num1; /*销售商号码*/ int num2; /*配件号*/ int num3; /*工地号*/ int num4; /*数量*/ sal100; void menu(); /*数据输入模块*/ void

17、SAL_enter() int j; char c2; FILE *fp; if(fp=fopen(data1.txt,w)=NULL) printf(不能打开文件!n); exit(0); for(j=0;ji;j+) fwrite(&salj,sizeof(struct sale),1,fp); while(1) printf(请输入销售商号码:n); scanf(%d,&sali.num1); printf(请输入配件号:n); scanf(%d,&sali.num2); printf(请输入工地号:n); scanf(%d,&sali.num3); printf(请输入销售数量:n);

18、 scanf(%d,&sali.num4); if(fwrite(&sali+,sizeof(struct sale),1,fp)!=1) printf(文件读取错误n); else printf(成功!n); printf(继续输入?( Yesy/Non) n); scanf(%s,c); if(strcmp(c,n)=0)break; fclose(fp);menu(); void enter() int t,m; do puts(tt*MENU*nn); /*输入菜单*/puts(tttt1.SAL_enter new data); puts(tttt2.Exit); puts(nntt

19、 *n); printf(选择数字 (1-2):bb); scanf(%d,&m); if(m2) t=1; getchar(); else t=0; while(t=1); switch(m) case 1:SAL_enter();break; case 2:menu(); /*删除模块*/ void SAL_delete() int j,v,c; int w; FILE *fp; printf(请输入你想要删除的销售商号码:); scanf(%d,&w); fp=fopen(data1.txt,rb); for(j=0;j100;j+) if(fread(&salj,sizeof(stru

20、ct sale),1,fp)!=1) break; v=j; for(j=0;jv;j+) if(w=salj.num1) c=j; else printf(找不到数据!);menu(); fclose(fp); fp=fopen(data1.txt,wb); for(j=0;jv;j+) if(j!=c) fwrite(&salj,sizeof(struct sale),1,fp); fclose(fp); printf(删除成功!n);menu(); void delete() int t,m; do puts(tt*MENU*nn); /*删除菜单*/ puts(tttt1.SAL_de

21、lete new data); puts(tttt2.Exit); puts(nntt *n); printf(选择数字 (1-2):bb); scanf(%d,&m); if(m2) t=1; getchar(); else t=0; while(t=1); switch(m) case 1:SAL_delete();break; case2:menu(); /*查找模块*/ void search() int flag,j; int w; FILE *fp; flag=0; printf(请输入销售商号:); scanf(%d,&w); fp=fopen(data1.txt,rb); fo

22、r(j=0;j100;j+) if(fread(&salj,sizeof(struct sale),1,fp)!=1) break; if(salj.num2=w) printf(seller number:%dn,salj.num1); printf(fitting number:%dn,salj.num2); printf(site number:%dn,salj.num3); printf(number:%dn,salj.num4); printf(-n); flag=1; if(flag=0) printf(找不到数据!n); fclose(fp); menu(); /*主菜单*/ v

23、oid menu() int n,w; /*变量n保存选择菜单数字,w判断输入的数字是否在功能菜单对应数字范围内*/ do printf(nnn); printf( 建筑工地信息管理系统 ); printf( 20111002889 李亮 084112 ); printf(nn); printf(nn); printf( *n); printf( *n); printf( *n); printf( * *n); printf( * 1数据输入 2数据删除 *n); printf( * *n); printf( * 3数据查询 5退出 *n); printf( * *n); printf( *n); printf( *n); printf( *

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1