您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > AI人工智能 > 14级C语言程序设计综合实训任务书-指导书资料
1编制部门:计算机系编制人:申时全编制日期:2014年12月6日项目编号C09项目名称综合应用实训训练对象14软件工程本科(3)(4)学时48课程名称C语言程序设计教材《C语言程序设计项目化教程》刘军主编实训目标1、掌握选择结构、循环结构程序设计方法;2、掌握一维数组、二维数组应用程序设计方法3、掌握结构体、链表应用。完成一个链表应用程序设计和调试。4、掌握用函数进行模块化程序设计。5、掌握文件读写(二进制格式或文本格式化文件)操作。主要监测点1、基本实训任务:共7个项目。2、扩展实训任务:包括3个题目,从给定内容至少选做1题。实施条件个人计算机,WindowsXP或windows7,安装VC6.0编译开发环境实训内容一、基本内容:1、用结构体表示日期,输入一个日期(年、月、日),计算从输入年的1月1日到输入的日期的总天数days并输出。2、从键盘输入n(2),计算斐波那契数列的前n项并按每行10个数据输出。3、编写程序,生成并输出杨辉三角形(10行)。4、从键盘输入两个double类型数据啊,a,b,通过调用函数max_ab实现求a与b的最大值输出,并定义函数max_ab。5、编写程序从键盘输入10个float类型数存入一维数组a中,求这10个数的平均值,然后用函数aver实现平均值计算,输出这10个数以及平均值,要求数组和元素个数作为参数传递。6、编写程序,从键盘输入10个int类型数,按从小到大顺序进行排序,然后输出。要求用函数sort()进行排序,用函数input()输入数据,用函数output()输出数据。7、基于数组存储和函数的一卡通系统设计与实现。8、基于结构体和文件存储的一卡通系统设计与实现。二、扩展实训内容(可任选1道完成):1、基于链表的一卡通系统程序设计。2、五子棋游戏程序3、打印日历程序2014级本科C语言程序设计综合实训任务书-指导书2实施步骤与技术要点.一、基本内容:1、用结构体表示日期,输入一个日期(年、月、日),计算从输入年的1月1日到输入的日期的总天数days并输出。。技术要点:(1)用结构体存储输入日期,定义结构体和日期变量如下:typedefstructdate{intyeay;intmonth;intday;}DATE;DATEdate;(2)scanf()函数输入年号date.year,月号date.month,日期date.day,输入语句如下:scanf(%d%d%d,&date.year,&date.month,&date.day);(3)用下述条件确定是否闰年:year%4==0&&year%100!==0||year%400==0由此确定2月份天数days是28天还是29天。(4)用一维数组m_day[12]存每月天数:intm_day[12]={31,28,31,30,31,30,31,31,30,31,30,31};(5)用for循环计算到输入月份上月底的天数for(mm=1,days=0;mmdate.month;mm++)days+=m_day[mm-1];(6)根据是否大于2月且是否闰年决定天数是否加1if(date.month2){if(date.year%400==0||date.year%4==0&&date%100!=0)days++;}实施步骤:3(1)运行VC6.0或Visualstudio2012集成环境(2)建立一个控制台应用项目projection1,建立源文件date.c(3)根据前述要点编写和输入程序(4)调试和运行程序,保存结果截图。2、从键盘输入n(2),计算斐波那契数列的前n项并按每行10个数据输出。技术要点:(1)用变量fib0表示当前计算项的前2项,fib1表示前1项,初始fib0=1,fib=1,用迭代法计算当前项:fib=fib0+fib1;fib0=fib1;fib1=fib;(2)用for循环输出从第3项开始的项。实施步骤:(1)运行VC6.0或Visualstudio2012集成环境(2)建立一个控制台应用项目projection2,建立源文件fibo.c(3)根据前述要点编写和输入程序(3)调试和运行程序,保存结果截图3、编写程序,生成并输出杨辉三角形(10行)。技术要点:(1)用一维数组yh[]存储一行数据,生成一行就打印一行。(2)通过已输出的行计算当前要输出的行,计算从行号开始向0移动for(col=row;col0;col--)yh[col]=yh[col]+yh[col-1];(3)核心代码intyh[N]={1};for(row=0;rowN;row++){for(col=row;col0;col--)yh[col]=yh[col]+yh[col-1];for(col=0;col=row;col++)printf(%5d,yh[col]);putchar('\n');}实施步骤:4(1)运行VC6.0或Visualstudio2012集成环境(2)建立一个控制台应用项目projection3,建立源文件以后yh.c(3)根据前述要点编写和输入程序(4)调试和运行程序,保存结果截图4、从键盘输入两个double类型数据啊,a,b,通过调用函数max_ab实现求a与b的最大值输出,并定义函数max_ab。技术要点:(1)声明函数max_ab:doublemax_ab(doublea,doubleb);(2)在主函数输入a,b调用函数max_ab(a,b)求最大值并输出。(3)函数定义:用xy?x:y条件表达式求两个数最大值并返回。doublemax_ab(doublex,doubley){returnxy?x:y;}实施步骤:(1)运行VC6.0或Visualstudio2012集成环境(2)建立一个控制台应用项目projection4,建立源文件以后maxab.c(3)根据前述要点编写和输入程序(5)调试和运行程序,保存结果截图5、编写程序从键盘输入10个float类型数存入一维数组a中,求这10个数的平均值,然后用函数aver实现平均值计算,输出这10个数以及平均值,要求数组和元素个数作为参数传递。技术要点:(1)定义一维数组a[N],这里N定义为10(2)声明函数avar:floataver(floata[],intn);(3)主函数输入10个数据,用for循环语句输入:for(i=0;iN;i++)scanf(%f,&a[i]);5(4)主函数调用函数aver计算并输出平均值printf(平均值是:%f,aver(a,N));实施步骤:(1)运行VC6.0或Visualstudio2012集成环境(2)建立一个控制台应用项目projection5,建立源文件以后average.c(3)根据前述要点编写和输入程序(5)调试和运行程序,保存结果截图6、编写程序,从键盘输入10个int类型数,按从小到大顺序进行排序,然后输出。要求用函数sort()进行排序,用函数input()输入数据,用函数output()输出数据。技术要点:(1)主函数定义数组a[N],N定义为10(2)函数声名:voidinput(int*,intn);voidoutput(int*,intn);voidsort(int*,intn);(3)主函数调用函数实现程序功能。(4)函数定义voidinput(int*a,intn){//输入数据的语句}voidoutput(int*a,intn){//输出数据的语句}voidsort(int*a,intn){//排序语句}实施步骤:(1)运行VC6.0或Visualstudio2012集成环境(2)建立一个控制台应用项目projection6,建立源文件sort.c6(3)根据前述要点编写和输入程序(4)调试和运行程序,保存结果截图7、基于数组和函数的一卡通系统设计与实现。技术要点:(1)数据存储定义:在主函数内定义数据存储:char*name[MAXNUM];//持卡人姓名intcnum[MAXNUM]={0};//存储每个卡的卡号,从1号开始编号intflag[MAXNUM]={0};//存储每张卡有效条件的值floatcmoney[MAXNUM]={0};//存储每个卡的每次充值金额floatcbalance[MAXNUM]={0};//存储每张卡余额intnum=0;//当前卡计数(2)各模块函数申明:voiddisp_init();//显示初始画面模块intselect_menu();//显示菜单并输入功能选择voidaddnew(int*,int*,char*name[],float*,float*,int*);//建新卡模块voidlogout(int*,int*,char*name[],float*,float*,int*);//注销模块voidmodify(int*,int*,char*name[],float*,float*,int*);//卡信息修改模块voidreadcard(int*,int*,char*name[],float*,float*,int*);//消费模块voidsavemoney(int*,int*,char*name[],float*,float*,int*);//充值模块voidinquiry(int*,int*,char*name[],float*,float*,int*);//查询卡信息模块voidexitout();//退出模块intfindcard(intcardnumber,int*,int*);//查询卡号//显示卡信息voiddispone(int*cnum,char*pname[],float*cmoney,float*cbalance,intindex);(3)主函数结构:intmain(intargs,char*argv[]){intcnum[MAXNUM];//存储每个卡的卡号,从1号开始编号intflag[MAXNUM];//存储每张卡有效条件的值,0-有效,1-无效char*name[MAXNUM];//持卡人姓名floatcmoney[MAXNUM];//存储每个卡的每次充值金额floatcbalance[MAXNUM]={0};//存储每张卡余额intnum=0;//当前卡数intchoose;//功能选择disp_init();//显示系统初始欢迎界面while(choose!=7){choose=select_menu();//显示菜单并输入功能选择switch(choose){case1:addnew(cnum,flag,name,cmoney,cbalance,&num);break;//新建卡功能case2:logout(cnum,flag,name,cmoney,cbalance,&num);break;//注销卡功能case3:modify(cnum,flag,name,cmoney,cbalance,&num);break;//卡信息修改功能case4:readcard(cnum,flag,name,cmoney,cbalance,&num);break;//消费功能case5:savemoney(cnum,flag,name,cmoney,cbalance,&num);break;//充值功能case6:inquiry(cnum,flag,name,cmoney,cbalance,&num);break;//卡信息查询功能case7:choose=exitout();break;//退出功能7default:printf(功能选择输入错误!\n);}system(pause);}return0;}(4)各函数模块定义:给出建新卡功能的函数定义如下新建卡功能函数定义/******************************************************************新建卡模块:通过参数传递卡信息数组和卡数num****本功能模块间建立
本文标题:14级C语言程序设计综合实训任务书-指导书资料
链接地址:https://www.777doc.com/doc-3349201 .html