还剩15页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
五、注意事项或操作要点使用字符串比较函数strcmp,需要包含头文件string,h
六、拓展训练与思考实验三使用结构体的程序设计、实验目的
1、掌握结构体类型变量与数组的定义和使用
2、掌握结构体指针变量和结构体指针数组的使用
二、知识要点结构体类型变量的定义、初始化及引用,结构体类型数组的使用
三、实验内容给定学生成绩登记表1所示编写一个C程序,对该学生成绩表按成绩(grade)从低到高进行排序表1学生成绩登记表学号num姓名name成绩(grade)02Lin9203Zhang8704Zhao7205Ma9109Zhen8511Wang10012Li8613Xu8316Mao7817Hao9520Lu8221Song7622Wu88具体要求1定义一个结构体数组表示学生成绩登记表,其中的每个元素依次存放在表1中各学生情况结构体类型为struck student{}int num;char name
[10];int grade;};2在程序中另外定义一个结构体指针数组,在排序前,其中每一个数组元素依次指向学生成绩登记表为结构体类型数组中的各学生情况3在程序中,首先输出排序前的学生情况,然后输出排序后的结果,输出形式如表1所示,但不要表中的框线3将冒泡排序的功能独立编写成一个函数
四、实验步骤
1、新建项目学生姓名的拼音_sy
032、建立一个.c的文件,名称为学生姓名的拼音_sy
03.c
3、在编辑窗口中输入代码
4、编译程序,单击〃调试〃-〃开始执行(不调试)〃或按Ctrl+F5开始运行,修改程序错误
5、运行并查看运行结果
五、注意事项(或操作要点)在实际的排序过程中,并不需要交换学生成绩登记表中的各学生情况,而只需要交换另一指针数组中的各指针因此,排序的最后结果,学生成绩登记表中各学生情况之间的存储顺序并没有改变,而只是指针数组中各指针元素顺序指向的各学生情况是按成绩有序的
六、拓展训练与思考课后可以思考,除了冒泡排序之外,还可以运用哪些排序的方法进行程序设计?实验四使用文件的程序设计、实验目的
1、掌握文件与文件指针的概念
2、学会使用文件打开、文件关闭、文件读写等基本的文件操作函数
二、知识要点文件打开、文件关闭、文件读写等基本的文件操作函数
三、实验内容
1、编写程序,将26个大写英文字母写到文件asc.txt中,然后将其读出并转换为小写输出到屏幕
2、由键盘输入一个班某门课程的分数以负数结束输入,存入名为score,txt的文件中,然后将成绩再次读出并求出平均分输出到屏幕
四、实验步骤
1、新建项目学生姓名的拼音_sy
042、建立一个.c的文件,名称为学生姓名的拼音_sy
04.c
3、在编辑窗口中输入代码
4、编译程序,单击〃调试〃-〃开始执行不调试〃或按Ctrl+F5开始运行,修改程序错误
5、运行并查看运行结果
五、注意事项或操作要点注意fgetc、fputc,fgets,fputs这几个函数的参数的个数和类型
六、拓展训练与思考实验五综合程序设计、实验目的综合性的实验,目的是进一步提高程序设计的能力
二、知识要点I利用所学过的C语言编程的基本知识如顺序,分支,循环结构和函数,以及数组,指针,结构体、文件等进行编程,较全面地掌握c语言的知识
三、实验内容编写一个C语言程序,统计一个班(最多有35人)的学生成绩实现如下4个功能
1、有键盘输入每个同学的学号和四门课程的成绩
2、计算每个学生的平均分和总分
3、按总分从高到低排出名次,并按名次输出每个学生的情况,包括学号、各科成绩、平均分和总分
4、根据用户要求输出某门课程(由键盘输入课程号)成绩在90分以上(含90分)且总分在前五名的学生情况,包括学号、各科成绩、平均分和总分
四、实验步骤
1、新建项目学生姓名的拼音_sy
052、建立一个.c的文件,名称为学生姓名的拼音_sy
05.c
3、在编辑窗口中输入代码
4、编译程序,单击〃调试〃-〃开始执行(不调试)〃或按Ctrl+F5开始运行,修改程序错误
5、运行并查看运行结果
五、注意事项(或操作要点)设计好流程图,再在各个流程注明用到的函数方法,然后是上机按功能逐块编写程序,最后把各块功能函数整合
六、拓展训练与思考实验中,没有要求程序检查用户输入数据的有效性当输入的数据量较大时,输入不出错的可能性极小那么如果在程序中加入异常处理,检查用户输入数据的有效性,以保证程序的健壮性呢?实验概述课程性质《C语言程序设计II》是计算机科学与技术、数据科学与大数据技术、智能科学与技术专业的一门专业基础课通过教学,使学生掌握C语言的基本语法,基本概念和面向过程的程序设计方法,学习使用流程图分析问题,能对一般问题进行分析和程序设计,具备根据流程图编写C语言程序的能力该课程的先修课程为《C语言程序设计I》,为后续C语言课程设计》等课程打下坚实基础课程定位要求学生在掌握c语言开发环境、熟练掌握C语言基本语句、语法、数据类型、运算符和表达式,顺序、选择、循环结构程序设计的基础上更加深入掌握程序与内存机制熟练使用数组、函数、指针、文件、结构体类型变量、结构体培养目标通过本课程的学习,能掌握扎实的C语言基本语法能力,面向过程的结构化程序设计思想,数据及流程的表达,C标准库函数的搜索和应用,简单算法设计与程序联机调试同时熟悉程序设计方案的基本撰写要求和规范以此达到能分析模块功能,独立开发及编写程序的能力前期具备的能力要求掌握模块设计的4个步骤,通过不断训练形成编程技能和编程能力;要求掌握在VC++2010中文版的环境下单步调试与断点调试能力;要求掌握编写规范代码的能力,并在实验中熟练使用;.要求深入掌握函数的格式和函数的各种使用技巧和变通能力;
一、实验工具/实验设备/实验环境主流配置PC,Windows7以上操作系统,安装有VC++2010中文企业版的环境
二、实验内容和时间安排序学实验类型备号实验项目实验要求注时按实验指导书操作,实验步1模块化程序设计2验证型骤规范,实验报告工整按实验指导书操作,实验步2使用指针的程序设计2验证型骤规范,实验报告工整按实验指导书操作,实验步3使用结构体的程序设计2验证型骤规范,实验报告工整按实验指导书操作,实验步4使用文件的程序设计2验证型骤规范,实验报告工整按实验指导书操作,实验步5综合程序设计4综合型骤规范,实验报告工整注:
1、实验要求学生完成实验项目程度
2、实验类型验证型、设计型或综合型
三、实验报告要求请标出题号,写出完成实验内容的过程注意运行结果的部分,请用截图方式截取主要界面,必要时加入文字注释
四、成绩评定、考核办法成绩评定按照百分制进行打分,从学生的实验报告书、实验实际操作过程等方面综合给分考核办法实验实际操作+实验报告书
五、参考资料(参考书、网络资源等)
1、张玉生主编《C语言程序设计实训指导》,上海:上海交通大学出版社,
2018.实验一模块化程序设计
一、实验目的
1、掌握定义函数的方法;
2、掌握函数实参与形参的对应关系以及“值传递”的方式;
3、掌握递归函数的设计方法
二、知识要点函数的定义、被调函数的实现及调用过程以及递归函数的应用
三、实验内容
1、编写一个函数,其功能为计算出两个数的平方和,并演示运行结果
2、编写一个函数,其功能为当输入一个整数时,计算出它的阶乘例:n=5,阶乘为5*4*3*2*1n=-5,阶乘为-5*-4*-3*-2*T;并规定0的阶乘为
13、计算并输出m!AA=-------------m-n!n!具体要求1编写一个计算n!的递归函数,其函数名返回n!的值2编写一个主函数,首先从键盘输入和n的值要求m3nNO,然后调用1HI中的函数,计算人m!A=-------------m-n!n!的值3在计算n!的递归函数中,要检查形参n的合理性,当n〈0时,应输出出错信息,并返回
0.4在主函数中应检查从键盘输入数据的合理性,对于不合理的输入,应输出出错信息,并不调用计算5分别输入m,n=3,-2,0,0,7,7,9,6,6,9运行你的程序
四、实验步骤
1、新建项目学生姓名的拼音_sy
012、建立一个.c的文件,名称为学生姓名的拼音_sy
01.c
3、在编辑窗口中输入代码
4、编译程序,单击〃调试〃-〃开始执行不调试〃或按Ctrl+F5开始运行,修改程序错误
5、运行并查看运行结果
五、注意事项或操作要点
1、参数是一个函数与外界的接口,其有无、多少,取决于在实现该函数功能时是否需要已知数据,以及需要多少,它的所需,即为参数
2、注意函数调用返回的特点返回调用处,而后继续执行下面的语句
3、函数中无return语句时,函数的类型定义为void或int,不可定义为其他
4、当被调函数定义在主调函数之后时,应在主调函数中说明被调函数,否则,调用时将出现错误
六、拓展训练与思考当一个程序由2个或2个以上的源程序文件组成时,必须将这些源程序文件组织在一个工程一一项目文件中在编译时,系统会分别对项目文件中的每个文件进行编译,然后将所得到的目标文件连接成一个整体,再与系统的有关资源连接,生成一个可执行文件,最后执行这个文件实验二使用指针的程序设计
一、实验目的
1、掌握使用指针变量的程序设计
2、掌握使用指针数组的程序设计
3、掌握使用函数指针的程序设计
4、掌握字符串冒泡排序的方法
二、知识要点指针的概念、指针的使用方法,理解指针与数组之间的关系,用指针引用数组元素的方法,指针与数组”、“指针与函数”的相关操作,熟悉”指向指针的指针”
三、实验内容利用冒泡法对给定的单词序列进行排序具体要求1编写一个函数,其功能是对由n个单词所字符串序列按非递减顺序进行冒泡排序其中单词序列中的各单词即字符串由长度为n的一维字符串指针数组中的各元素指向2编写一个主函数,调用1中的函数,对下列单词序列进行排序zhang,gou,xu,zheng,mao,zhao,li,bai,qing其中该单词序列中各单词以赋初值的方式用一维字符串指针数组的各元素指向
(3)在主函数中,要求先输出原序列,换行后再输出排序后的序列输出时各单词之间用两个空格分隔
四、实验步骤
1、新建项目学生姓名的拼音_sy
022、建立一个.c的文件,名称为学生姓名的拼音_sy
02.c
3、在编辑窗口中输入代码
4、编译程序,单击〃调试〃-〉〃开始执行(不调试)〃或按Ctrl+F5开始运行,修改程序错误
5、运行并查看运行结果方法说明冒泡排序的基本方法如下从前向后扫描字符串序列,依次比较相邻两个字符串的大小,若发现逆序,则进行交换,最后使最大者换到序列的最后然后从后向前扫描剩下的字符串序列,比较相邻两个字符串的大小,若发现逆序,则进行交换,最后使最小者换到序列的最前面对剩下的序列重复这个过程,直到剩下的序列为空为止在实际排序的过程中,并不需要交换各字符串,而只需要交换指针数组中的各指针因此,排序的最后结果,各字符串之间的存储顺序并没有改变,而只是按指针数组中各指针元素顺序指向的各字符串是有序的在C语言中,对两个字符串进行比较,要使用函数strcmp(字符串b字符串20字符串比较的规则为:对两个字符串中的字符从左到右按ASCII码值逐个进行比较,直到发现不同的字符或遇到字符串结束符“\0”为止,如果全部字符均相同,则认为这两个字符串相等;则以第一次发现的不相同字符的比较结果为准字符串比较结果分以下三种情况若字符串1二字符串2,则返回的函数值为0;若字符串1字符串2,则返回的函数值为一正整数;若字符串字符串2,则返回的函数值为一负整数字符串冒泡排序模块的流程图如下图所示形参说明char*p|];int n;K=O;m=n-lKmj=m-l;m=O;I=kijno空m=Ii=i+lj=k+l;k=O;i=m;iFp[i-l]p[i]yes no—p[i]空k=ii=i-l。