C语言学习知识课程实训设计报告(农民工资系统).doc

上传人:小** 文档编号:2541858 上传时间:2020-04-19 格式:DOC 页数:15 大小:259.43KB
返回 下载 相关 举报
C语言学习知识课程实训设计报告(农民工资系统).doc_第1页
第1页 / 共15页
C语言学习知识课程实训设计报告(农民工资系统).doc_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《C语言学习知识课程实训设计报告(农民工资系统).doc》由会员分享,可在线阅读,更多相关《C语言学习知识课程实训设计报告(农民工资系统).doc(15页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、!-C语言课程实训设计报告一、 项目概述 我这次实训的项目主要是农民工资收入统计系统,农民工资收入统计系统主要实现的是农民信息的输入、输出,按农民的门牌号排序,实现农民信息的插入、查找、删除等操作,以及可以计算全村总收入和人均收入,也能够找出小康家庭、中等家庭以及贫困家庭。这次实训的项目主要通过C语言来实现程序的运行,主要通过C语言中的函数调用和结构体来做程序,还要用到许多小的知识点,例如:用冒泡法实现排序;scanf、printf语句;strcpy复制语句;ifelse语句实现选择等等。二、 项目分析和设计主菜单写入文件找出小康家庭等输入信息输出信息升序排序插入并排序查找并删除总收入与人均收

2、入 这个项目的程序可分为几个板块来做,每个板块有每个板块的作用,通过不同程序的不同作用相互调用即可实现整个程序的运行,这个项目程序主要可以分为以下几个板块:1、定义头文件: 运用#include,#include, #include,#include等头文件2、定义结构体数组: 运用typedef struct 农民列表信息变量名表列; 这种类型是直接定义结构体类型变量。3、对调用函数进行声明: 根据所写程序对有些函数进行声明,例如: Void show_menu();在程序中实现的是对菜单函数的调用。4、主函数: Void main()为主函数,在主函数中通过dowhile语句和 switc

3、hcase语句进行选择和函数调用。 Void main() do switch() while();5、菜单函数: 定义函数为 void show_menu() 主要用printf语句输出菜单函数,并且还通过主函数调用菜单函数实现对农民信息的选择。6、输入农民的信息: 定义函数为int create(peasant nu,int n) nu为结构体数组,在此函数中,通过scanf语句实现农民信息的输入,并用while语句判断并实现多余信息的清除,以及判断是否继续进行输入信息,最后还有一个值返还给主函数main()。7、输出农民信息: 定义函数为 void print(peasant nu,in

4、t n) 主要运用printf语句输出农民的信息,并用for语句和if语句判断,如果输入的信息超过十个就停止输入,若没有就继续输。 用system(“pause”)清除界面。8、对函数进行排序: 定义函数为 void sort(peasant nu,int n) 在此函数中,利用两层循环按门牌号进行排序,如果变量在结构体中定义成数组形式,就用strcpy语句进行复制;如果定义成整形就要新定义一个变量作为中间函数进行替换来实现数的交换。9、插入信息并排序: 定义函数为 int insert(peasant nu,int n) 在此函数中,利用scanf语句进行输入信息,再调用排序函数 sort(

5、nu,n)进行排序,最后还要返回一个值到主函数main().10、查找并删除记录: int del(peasant nu,int n) 此程序需要按姓名查找,所以输入姓名,并用while实现循环次数,用strcmp比较输入姓名与原来姓名,若strcmp(a,b)=0,即表明找到该信息并且删除,删除是通过for以及strcpy对查找的信息进行删除,若strcmp(a,b)!=0,即表明没有找到该信息。11、计算全村总收入以及人均收入 定义函数为 void ave(peasant nu,int n) 在此函数中主要运用for语句进行控制,即可计算出总收入以及人均收入并输出。12、找出小康家庭、中等

6、家庭、贫困家庭 定义函数为 void fib(peasant nu,int n) 在此函数中主要运用ifelse语句进行判断选择,判断哪家是小康家庭,哪家是中等家庭,哪家是贫困家庭并且输出. void fib(peasant nu,int n) for(i=0;in;i+) if() printf(n); else if() printf(n); else printf(n); 13、把所有程序写入文件中 定义函数为 void printfile(peasant nu,int n) 首先先定义文件指针,用fopen(“filename”,“w”)打开文件并判断是否能打开文件,最后再用fclos

7、e(文件指针)关闭文件。这个程序大体的设计便是如此,它包含了我们学过的许多知识,运用了许多重要的内容,总体分析即是如此。三、项目关键代码(加注释)#include#include#include#includetypedef struct /*定义结构体数组*/ char num20; char name20; long int income; peasant;peasant nu110000;void show_menu(); int create(peasant nu,int n);void print(peasant nu, int n);void sort(peasant nu,int

8、 n);int insert(peasant nu,int n);int del(peasant nu,int n);void ave(peasant nu,int n);void fib(peasant nu,int n);void printfile(peasant nu,int n);void main() /*主函数*/int n=0;int no; do show_menu(); printf(please input your choicen);scanf(“%d”,&no); switch(no) case 1: printf(输入记录n); n=create(nu1,n);br

9、eak; case 2: printf(输出信息n); print(nu1,n);break; case 3: printf(按门牌号排序并显示n); sort(nu1,n); printf(排序成功!n); print(nu1,n); printf(tt);break; case 4: printf(插入信息并按门牌号排序及显示n); n=insert(nu1,n); print(nu1,n); printf(tt);break; case 5: printf(根据姓名查找并删除记录n); n=del(nu1,n); printf(tt); system(pause);break; case

10、 6: printf(计算总收入和人均收入n); ave(nu1,n); system(pause);break; case 7: printf(找出小康家庭,中等家庭,贫困家n); fib(nu1,n); system(pause);break; case 8: printf(循环写入数据n); printfile(nu1,n); printf(tt); system(pause);break; case 0: printf(tt谢谢使用,祝你好运,再见!n); printf(tt); system(pause); exit(0); while(no!=0);void show_menu()

11、 system(cls); /*运行前清屏*/ printf(*主菜单*n);printf(*1.输入农民工的门牌号、姓名、收入 *n);printf(*2.输出所有农民工的信息 *n);printf(*3.实现按门牌号进行升序排序 *n);printf(*4.实现农民信息的插入,后按门牌号从小到大输出 *n);printf(*5.根据姓名查找,并删除该信息 *n);printf(*6.计算全村总收入和人均收入 *n);printf(*7.找出小康家庭,中等家庭,贫困家庭 *n);printf(*8.把所有农民工信息写入到文件中去 *n);printf(*0.退出 *n);printf(*n)

12、;int create(peasant nu,int n) /*输入信息*/ int i=0; char sign,x10; /*x10为清除多余的数据所用*/ while(sign!=n&sign!=N) /*判断*/ printf(门牌号:); /*交互输入*/ scanf(%s,nun+i.num); printf(姓名:); scanf(%s,nun+i.name); printf(收入:); scanf(%d,&nun+i.income); gets(x); /*清除多余的输入*/ printf(是否继续输入?(Y/N); scanf(%c,&sign); /*输入判断*/ i+;r

13、eturn(n+i);void print(peasant nu, int n) /* 输出结果*/ int i; printf(-n); /*格式头*/ printf(门牌号 姓名 收入 n); printf(-n); for(i=1;i1&i%10=0) /*每十个暂停*/ printf(-n); /*格式*/ printf(tt); system(pause); printf(-n); printf(tt);system(pause);void sort(peasant nu,int n) /*按门牌号排序*/ int i,j; char t10; int s; for(i=0;in-1

14、;i+) /*冒泡法排序*/ for(j=0;j0) strcpy(t,nuj+1.num); strcpy(nuj+1.num,nuj.num); strcpy(nuj.num,t); strcpy(t,nuj+1.name); strcpy(nuj+1.name,nuj.name); strcpy(nuj.name,t); s=nuj.income;nuj.income=nuj+1.income;nuj+1.income=s; int insert(peasant nu,int n) /*插入记录,并按门牌号升序排序*/ char x100; /*清除多余输入所用*/ printf(农民门

15、牌号:); /*交互式输入*/ scanf(%s,nun.num); printf(农民姓名:); scanf(%s,nun.name); printf(农民工资:); scanf(%d,&nun.income); gets(x); n+; sort(nu,n); /*调用排序函数*/ printf(插入记录成功!n); /*返回成功信息*/ return(n);int del(peasant nu,int n) /*按姓名查找并删除记录*/char s20; int i=0,j; printf(输入农民的姓名:); /*交互式问寻*/ scanf(%s,s); while(strcmp(nu

16、i.name,s)!=0&in) i+; /*查找判断*/ if(i=n) printf(对不起没找到该农民!n); /*返回失败信息*/ return(n); for(j=i;jn-1;j+) /*删除操作*/ strcpy(nuj.num,nuj+1.num); strcpy(nuj.name,nuj+1.name); nuj.income=nuj+1.income; printf(删除记录成功!n); /*返回成功信息*/ return(n-1);void ave(peasant nu,int n)int i;float average=0.0;long int sum=0; peasa

17、nt *p; p=nu; for(i=0;iincome;average=sum/n;printf(全村总收入是:%ldn,sum);printf(人均收入是:%f,average);void fib(peasant nu,int n) int i; for(i=0;i20000) printf(是小康家庭n); else if(nui.income10000) printf(是中等家庭n); else printf(是贫困家庭n); void printfile(peasant nu,int n) int i=0; FILE *fp; /*定义文件指针*/ char filename100;

18、 /*定义文件名*/ printf(循环写入数据n); /*输入文件名*/ printf(输入文件名:); scanf(%s,filename); if(fp=fopen(filename,w)=NULL) /*打开文件*/ printf(无法打开该文件n); system(pause); return; fprintf(fp,%dn,n); /*循环写入数据*/ while(in) fprintf(fp,%-10s%-10s%-10s%-10dn,nui.num,nui.name,nui.income); i+; fclose(fp); /*关闭文件*/ printf(写入成功!n); /*

19、返回成功信息*/ 四、项目调试和运行(界面)1、输入农民的信息并显示出界面2、选择2,显示出输入的农民的信息3、按任意键并选择3,可以对输入的信息进行升序排序4、按任意键并选择4,可以插入一条记录并会按升序排序显示出来5、按任意键并选择5,可以查找一条记录并会删除该条记录6、按任意键并选择6,可以计算出全村总收入和人均收入7、按任意键并选择7,可以找出小康家庭等8、按任意键并选择8,可以写入文件图见下面五、实训设计的心得体会 在为期将近十天的C语言程序设计过程中,我从中学到很多,我受益匪浅,感受很深,让我从中了解到C语言程序编程的奥妙,学会了许多关于编程的代码,我在这次编写程序中,虽然有点累,

20、但是我从中也得到了乐趣,我觉得编写程序越来越有趣。但是在编写程序的过程中并不是一帆风顺、顺顺利利的,一开始编写的时候并不知道该怎么着手去编写,很茫然,但是后来经过老师的提点以及提示,我能够去试着编写一个一个小片段,当我把这些小程序拼到一起变成大程序时,我很高兴,因为我毕竟做出来一些内容了。当我将这些程序利用VC进行编译、链接的时候,程序出现了许多错误,当时吓了一跳,但我并没有气馁,我试着去找这些错误并改正,其中程序中的错误有很多种,比如有语法错误,逻辑错误等。语法错误例如:(1)字符与字符串应该用单引号还是用双引号,在程序中我将单引号错用成双引号;(2)忘记定义变量。在该程序中我忘记了定义有些

21、所用变量。(3)函数声明与函数定义不一致。在程序中我声明函数时,将参数顺序不匹配。(4)函数实参与形参的类型不一致,在此程序中,我将一个定义成整型,而定义另一个时却定义成单精度型,导致程序出错误。语法错误还有很多,我在程序中还改正了很多,这些错误让我印象深刻,在以后的编写程序中我要牢牢记住。除了许多语法错误外,还有很多逻辑错误以及警告,这些就要我们一步一步去检查程序。在这个程序中使我印象最深刻的错误是:程序运行出来,但是结果却一闪而过,有些界面不能显示出来,但是经过老师的指导,我将这个错误解决了。在实训过程中自己有时候也想过放弃,可是当自己看到这么一大段代码是放弃的心又被淹没了,因为看到这长长

22、的代码自己的信心又被提升起来,编写程序的乐趣也有了。在这次的实训中我知道了要做一个程序,首先要知道程序的算法,在了解算法的基础上要知道怎样运用算法,进一步说是怎样运用算法写程序,不管是大程序还是小程序都要用到算法。平时我们学习C语言只是为了考试以及做一些简单的题目,然而这次我们做实训给我们将所学知识运用于解决实际问题的机会,我们从中得到了很多,在运用所学知识的过程中,记住这些知识,让我们将这些知识应用到更广泛的领域。这次的编写程序又让我感受到学习编写程序可以锻炼缜密的思维,在平时我们只编写一些小程序,句段比较少,一些错误都很容易被检查出来,但是这次实训项目的程序语段比较多,难以检查,那一刹那感到很着急,但是改正了一些之后,信心就被提了上来,在经过老师的指点,改正了许多错误。 实训不仅是检查一个人知识掌握了多少,其实更重要的实检测你的实践能力,以及看你是否细心、是否有缜密的思维,这次实训懂得了只要你具备以上几个条件,那么你的实践能力不会太差,所以,在这方面我们要加强锻炼,磨练自己,使自己有更高的提高。六、参考文献 1、C程序设计(第三版) 清华大学出版社 谭浩强 编著 2、C语言程序设计实验指导 人民邮电出版社 张丽华 主编 3、C语言程序设计案例教程(习题解析与实验指导) 清华大学出版社 张基温 编著

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com