《C语言程序设计A综合程序设计.pptx》由会员分享,可在线阅读,更多相关《C语言程序设计A综合程序设计.pptx(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C语言程序设计A实验综合程序设计桂林电子科技大学教学实践部秦兴国Outlinen实验目的和实验要求n综合程序设计实验要求n实验提示实验目的和实验要求n利用所学过的C语言编程的基础知识如综合顺序、分支、循环结构和函数,以及数组、指针、结构体和共用体、文件等进行编程,较全面地掌握C语言的知识;n初步掌握输入、输出、查找、排序的编程方法;n逐步掌握C语言编程基本方法和技能。综合程序设计实验要求-1n综合程序设计实验(对应指导书上实验13)由同学们在课外完成;n综合程序设计实验内容涉及文件、结构体、指针等概念;对这些概念不熟悉的同学了解相关理论知识或者对照实验指导书中相关内容进行学习;n实验内容为13
2、(任选一题),实验内容4不要求;综合程序设计实验要求-2n提交报告时间为第18周周3;过期未提交者则该次实验为0分;n提交报告时,请将源代码与实验报告分别单独提交;n不要抄袭,报告提交系统有检测抄袭功能;实验提示:水费电费问题-1n题目及要求如实验指导书p69所述n提示n所有输入数据均从文件input.dat中读取,注意input.dat为文本文件,读取该文件时,应采文本文件格式读取(fp=fopen(“input.dat”,“r”);ninput.dat文件第一行分别为水费和电费的单价;n读取文件时应注意文件指针是否已经到达文件尾;实验提示:水费电费问题-2n提示n对于住户地址、水耗、电耗等
3、信息可以采用多种形式进行存储:以下列出2种1.使用三个数组分别存储住户地址、水耗、电耗三个数组(例如aN,bN,cN)的长度分别为总的用户数,可以通过#define N 6等宏定义进行定义2.使用结构体数组存储住户地址、水耗、电耗定义的结构体应该至少包含3个成员,例如:struct info int address;int water_consume;int elec_consume;arraryN;/定义长度为N的结构数组实验提示:水费电费问题-3n提示n所编写的程序,应该给出足够的提示信息,以便程序运行者能知道程序的功能,以及程序的状态和完成的工作。n程序编写应该具有扩展性,能针对同一格式
4、的输入数据文件,产生一致的结果。n程序应该能够对明显的数据错误进行检查。n读写文件可考虑使用fscanf、fprintf等文件操作函数。实验提示:学生课程信息管理-1n题目及要求如实验指导书p70所述n提示ninput函数要自己编写,其功能是从键盘中输入所有学生的课程信息(包括:学号、姓名、5门课程成绩);n保存键盘输入的学生数据至文件cj.dat中;nPrintScore函数要自己编写,其功能是输出每一门课程的成绩表,注意其输出按照学号从小到大的顺序输出;nPrintScore函数还负责输出全班成绩的统计信息,具体信息如p70最后5行所述;实验提示:学生课程信息管理-2n提示n学生信息的描述
5、,可以采用与“水电费问题”中关于用户信息描述相类似的做法:n定义3个数组用于描述学生的相关信息,例如:1.char idN20;2.char nameN20;3.int scoreN7;n其中N代表学生总数,对于某一个学生的id,姓名可以通过scanf(“%s”,idi);scanf(“%s”,namei);进行输入;实验提示:学生课程信息管理-3n提示nscore数组则用于存储学生的成绩和总分以及平均分;对于某一个学生而言,其对应scorei开始的数组元素;则scorei0scorei4可用于保存学生的5门课程成绩;scorei5、scorei6则可分别用于保存总分和平均分;n通过这样,则可
6、在每输入完一个学生的成绩后即可算出其总分和平均分,并将其保存至score数组相应元素中,方便后续操作使用;n注意输入成绩应使用类似的格式:scanf(“%d”,&scoreij);其中0=j=4,0=i 0)/说明idi对应的学号比idj对应的学号要大 else/说明idi对应的学号比idj对应的学号要小实验提示:学生课程信息管理-5n提示n课程成绩表按学号大小进行排序时,可采用简单的排序算法,但应该注意在排序算法中进行元素交换时,不应该只是某2个学生的学号进行交换,而应该包括与这2个学号对应的学生的所有信息都进行交换。if(strcmp(idi,idj)0)/说明idi对应的学号比idj对应
7、的学号要大 /学号对应的位置进行交换 strcpy(temp_id,idi);/temp_id 是长度为20的char数组strcpy(idi,idj);strcpy(idj,temp_id);/姓名对应的位置进行交换strcpy(temp_name,namei);strcpy(namei,namej);strcpy(namej,temp_name);/课程成绩对应的位置进行交换for(k=0;k 7;k+)temp_score=scoreik;/temp_score为int类型 scoreik=scorejk;scorejk=temp_score;实验提示:学生课程信息管理-6n提示n所编写
8、的程序,应该给出足够的提示信息,以便程序运行者能知道程序的功能,以及程序的状态和完成的工作。n程序应该能够对明显的数据错误进行检查。实验提示:职工档案管理程序-1n题目及要求如实验指导书p71所述n提示n基本思路与上述两个项目较相似,在熟读上述两个项目提示的前提下,相信对此项目能较准确的把握;n主要还是注意用什么结构或类型描述职工的信息;n保存职工信息时,需要进行按职工号进行排序,思想与项目2中学号排序一致;n查找某一职工档案时,根据姓名查找则可能会使用到strcmp函数;实验提示:职工档案管理程序-2n提示n工资最高和工资最低职工的查找相对较简单;n打印年龄分布则需要统计各年龄段的员工数目,相关操作在以前实验中应该有所涉及,不会则可翻阅实验指导书相关章节内容。n所编写的程序,应该给出足够的提示信息,以便程序运行者能知道程序的功能,以及程序的状态和完成的工作。n程序应该能够对明显的数据错误进行检查。