C语言课程实训设计报告.docx
- 文档编号:2460623
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:17
- 大小:223.28KB
C语言课程实训设计报告.docx
《C语言课程实训设计报告.docx》由会员分享,可在线阅读,更多相关《C语言课程实训设计报告.docx(17页珍藏版)》请在冰豆网上搜索。
C语言课程实训设计报告
C语言课程实训设计报告
一、项目概述
我这次实训的项目主要是农民工资收入统计系统,农民工资收入统计系统主要实现的是农民信息的输入、输出,按农民的门牌号排序,实现农民信息的插入、查找、删除等操作,以及可以计算全村总收入和人均收入,也能够找出小康家庭、中等家庭以及贫困家庭。
这次实训的项目主要通过C语言来实现程序的运行,主要通过C语言中的函数调用和结构体来做程序,还要用到许多小的知识点,例如:
用冒泡法实现排序;scanf、printf语句;strcpy复制语句;if……else语句实现选择……等等。
二、项目分析和设计
这个项目的程序可分为几个板块来做,每个板块有每个板块的作用,通过不同程序的不同作用相互调用即可实现整个程序的运行,这个项目程序主要可以分为以下几个板块:
1、定义头文件:
运用#include
#include
2、定义结构体数组:
运用typedefstruct
{农民列表信息……}变量名表列;
这种类型是直接定义结构体类型变量。
3、对调用函数进行声明:
根据所写程序对有些函数进行声明,例如:
Voidshow_menu();在程序中实现的是对菜单函数的调用。
4、主函数:
Voidmain()为主函数,在主函数中通过do……while语句和
switch……case语句进行选择和函数调用。
Voidmain()
{do
{switch()
……
}
}while();
5、菜单函数:
定义函数为voidshow_menu()
主要用printf语句输出菜单函数,并且还通过主函数调用菜单函数实现对农民信息的选择。
6、输入农民的信息:
定义函数为intcreate(peasantnu[],intn)
nu[]为结构体数组,在此函数中,通过scanf语句实现农民信息的输入,并用while语句判断并实现多余信息的清除,以及判断是否继续进行输入信息,最后还有一个值返还给主函数main()。
7、输出农民信息:
定义函数为voidprint(peasantnu[],intn)
主要运用printf语句输出农民的信息,并用for语句和if语句判断,如果输入的信息超过十个就停止输入,若没有就继续输。
用system(“pause”)清除界面。
8、对函数进行排序:
定义函数为voidsort(peasantnu[],intn)
在此函数中,利用两层循环按门牌号进行排序,如果变量在结构体中定义成数组形式,就用strcpy语句进行复制;如果定义成整形就要新定义一个变量作为中间函数进行替换来实现数的交换。
9、插入信息并排序:
定义函数为intinsert(peasantnu[],intn)
在此函数中,利用scanf语句进行输入信息,再调用排序函数
sort(nu,n)进行排序,最后还要返回一个值到主函数main().
10、查找并删除记录:
intdel(peasantnu[],intn)
此程序需要按姓名查找,所以输入姓名,并用while实现循环次数,用strcmp比较输入姓名与原来姓名,若strcmp(a,b)==0,即表明找到该信息并且删除,删除是通过for以及strcpy对查找的信息进行删除,若strcmp(a,b)!
=0,即表明没有找到该信息。
11、计算全村总收入以及人均收入
定义函数为voidave(peasantnu[],intn)
在此函数中主要运用for语句进行控制,即可计算出总收入以及人均收入并输出。
12、找出小康家庭、中等家庭、贫困家庭
定义函数为voidfib(peasantnu[],intn)
在此函数中主要运用if……else语句进行判断选择,判断哪家是小康家庭,哪家是中等家庭,哪家是贫困家庭并且输出.
voidfib(peasantnu[],intn)
{
for(i=0;i {if()printf("\n"); elseif()printf("\n"); elseprintf("\n"); } } 13、把所有程序写入文件中 定义函数为voidprintfile(peasantnu[],intn) 首先先定义文件指针,用fopen(“filename”,“w”)打开文件并判断是否能打开文件,最后再用fclose(文件指针)关闭文件。 这个程序大体的设计便是如此,它包含了我们学过的许多知识,运用了许多重要的内容,总体分析即是如此。 三、项目关键代码(加注释) #include #include #include #include typedefstruct/*定义结构体数组*/ { charnum[20]; charname[20]; longintincome; }peasant; peasantnu1[10000]; voidshow_menu(); intcreate(peasantnu[],intn); voidprint(peasantnu[],intn); voidsort(peasantnu[],intn); intinsert(peasantnu[],intn); intdel(peasantnu[],intn); voidave(peasantnu[],intn); voidfib(peasantnu[],intn); voidprintfile(peasantnu[],intn); voidmain()/*主函数*/ { intn=0; intno; do { show_menu(); printf("pleaseinputyourchoice\n"); scanf(“%d”,&no); switch(no) { case1: printf("输入记录\n"); n=create(nu1,n);break; case2: printf("输出信息\n"); print(nu1,n);break; case3: printf("按门牌号排序并显示\n"); sort(nu1,n); printf("排序成功! \n"); print(nu1,n); printf("\t\t");break; case4: printf("插入信息并按门牌号排序及显示\n"); n=insert(nu1,n); print(nu1,n); printf("\t\t");break; case5: printf("根据姓名查找并删除记录\n"); n=del(nu1,n); printf("\t\t"); system("pause");break; case6: printf("计算总收入和人均收入\n"); ave(nu1,n);system("pause");break; case7: printf("找出小康家庭,中等家庭,贫困家\n"); fib(nu1,n);system("pause");break; case8: printf("循环写入数据\n"); printfile(nu1,n); printf("\t\t"); system("pause");break; case0: printf("\t\t谢谢使用,祝你好运,再见! \n"); printf("\t\t"); system("pause"); exit(0); } }while(no! =0); } voidshow_menu() {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"); } intcreate(peasantnu[],intn)/*输入信息*/ { inti=0; charsign,x[10];/*x[10]为清除多余的数据所用*/ while(sign! ='n'&&sign! ='N')/*判断*/ { printf("门牌号: ");/*交互输入*/ scanf("%s",nu[n+i].num); printf("姓名: "); scanf("%s",nu[n+i].name); printf("收入: "); scanf("%d",&nu[n+i].income); gets(x);/*清除多余的输入*/ printf("是否继续输入? (Y/N)"); scanf("%c",&sign);/*输入判断*/ i++; } return(n+i); } voidprint(peasantnu[],intn)/*输出结果*/ { inti; printf("--------------------------------------------------\n");/*格式头*/ printf("门牌号姓名收入\n"); printf("--------------------------------------------------\n"); for(i=1;i if(i>1&&i%10==0)/*每十个暂停*/ {printf("--------------------------------------------------\n");/*格式*/ printf("\t\t"); system("pause"); printf("--------------------------------------------------\n"); } } printf("\t\t"); system("pause"); } voidsort(peasantnu[],intn)/*按门牌号排序*/ { inti,j;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程 设计 报告