1、 二一二二一三学年第一学期二一二二一三学年第一学期 信息科学与工程学院信息科学与工程学院 计算机与程序设计语言计算机与程序设计语言 课程设计报告课程设计报告 课程名称:课程名称:计算机与程序设计语言计算机与程序设计语言 班班 级:级: 电气信息电气信息 2012 级级 1206 班班 学学 号:号: 姓姓 名:名: 指导教师:指导教师: 二二0一二年十二月一二年十二月 目录:目录: 1. 题目大意题目大意 2. 需求分析需求分析 3. 总体设计总体设计 4. 程序流程图程序流程图 5. 详细设计(程序源代码)详细设计(程序源代码) 6. 程序运行结果程序运行结果 7. 课程感悟课程感悟 8.
2、参考资料参考资料 一:文件数据的处理一:文件数据的处理 1 1. .两个文件:两个文件:data1.txtdata1.txt 和和 data2.txtdata2.txt,两个文件中都有很多数字,用,两个文件中都有很多数字,用 空格隔开。如:空格隔开。如: 45 78 85 45 63 21 47 8645 78 85 45 63 21 47 86 运行程序,计算这两个文件中数字的交集,并且排好序,存放在运行程序,计算这两个文件中数字的交集,并且排好序,存放在 jiao.txtjiao.txt 中;计算这两个文件中数字的并集,并且排好序,存放在中;计算这两个文件中数字的并集,并且排好序,存放在
3、bing.txtbing.txt 中。中。 2 2. .需求分析需求分析 在电脑硬盘内, 有两个数据文件在电脑硬盘内, 有两个数据文件 date1.txtdate1.txt 和和 date2.txtdate2.txt, 要把这要把这 两个文件中的数据两个文件中的数据读出来,并设计程序求出两组数据的交集和并集。读出来,并设计程序求出两组数据的交集和并集。 求出交集和并集后,用冒泡法进行排序,最后要把两组排序后的数字求出交集和并集后,用冒泡法进行排序,最后要把两组排序后的数字 分别存储到文件分别存储到文件 jiao.txtjiao.txt 和和 bing,txtbing,txt 中。中。 3.3.
4、总体总体设计设计 首先,可以采用文件打开的办法将两个文件中的数据读出来,并首先,可以采用文件打开的办法将两个文件中的数据读出来,并 把它们分别放到整型数组把它们分别放到整型数组 date1date1和和 date2date2中。如果读入失败,也可中。如果读入失败,也可 以选用手动从键盘以选用手动从键盘输入,并利用格式化输入的方法把这两组数据写到输入,并利用格式化输入的方法把这两组数据写到 硬盘的文件中。硬盘的文件中。 然后, 利用两个然后, 利用两个 forfor 循环控制数组的个数, 如果循环控制数组的个数, 如果 date1date1和和 date2date2 中的元素相同,则放到另一个数
5、组中,以此类推,求出两组数中的元素相同,则放到另一个数组中,以此类推,求出两组数据的交据的交 集和并集,分别放到两个数组集和并集,分别放到两个数组 jiaojiao和和 bingbing中。中。 第三,采用冒泡法对两个数组第三,采用冒泡法对两个数组 jiaojiao和和 bingbing中的元素进行从小中的元素进行从小 到大的排序。到大的排序。 最后,利用格式化输出函数最后,利用格式化输出函数 fprintffprintf()把这两个数组中的()把这两个数组中的元素写元素写 到硬盘的到硬盘的 jiao.txtjiao.txt 文件和文件和 bing.txtbing.txt 文件中。文件中。 至
6、此,该问题已经得到解决。至此,该问题已经得到解决。 4 4. .程序框图程序框图 采用文件打开的方式把两个文件中的数据读出来,分别放到采用文件打开的方式把两个文件中的数据读出来,分别放到 两个整型数组两个整型数组 date1 和和 date2中。如果不能读入,则采用中。如果不能读入,则采用 手动输入的方式。手动输入的方式。 5 5. .详细设计详细设计 附附 源代码与程序分析源代码与程序分析 #include /#include /编译预处理编译预处理 #include int main()int main() FILE *fp1,*fp2,*fp3,*fp4;/FILE *fp1,*fp2,*fp3,*fp4;/定义四个指针变量定义四个指针变量 int date115,date215,jiao15,bing30;/i