1、 C C 语言语言课程设计报告课程设计报告 1 目 录 一、一、 需求分析需求分析 二、二、 概要设计概要设计 三、三、 详细设计详细设计 四、四、 测试结果测试结果 五、五、 课程设计总结课程设计总结 参考文献参考文献 附录附录 2 一、需求分析一、需求分析 1、文件数据的处理 (1)输入的形式和输入值的范围:向两个命名分别为 data1.txt 和 data2.txt 的文件中分别输入若干随机数字,两个数字之间用空格 隔开,数字的范围应在-21474836482147483647 之间。 (2)输出的形式:程序运行之后会在指定的位置创建两个命名分别 为 jiaoji.txt 和 bingj
2、i.txt 的文件,在这两个文件中分别有符合 要求的数字,每两个数字之间用空格隔开。 (3)程序所能达到的功能:此程序能分别求出 data1.txt 和 data2.txt 两个文件中数字的交集和并集,并把所求出的数字分别 放进 jiaoji.txt 和 bingji.txt 两个文件中。 2、统计字符出现的频率 (1)输入的形式和输入值的范围:向文件 conf.txt 中输入若干的 连续字符,这些字符可以是数字和大小写的英文字母,数字范围为 09,字母范围为 az 和 AZ。 (2)输出的形式:此程序运行后会在文件 rate.txt 中输入各个字符 出现的频率,其格式形如:K: 2.94%,
3、前面某一字符,接着是此字 符出现的频率,保留两位小数,每一个字符各占一行,没在文件中 出现的字符也输出,其频率为 0。 (3)程序所能达到的功能:程序能从文件 conf.txt 中读取字符, 并计算各个字符出现的频率,把所求的结果输入到文件 rate.txt 中, 此程序支持数字和大小写的字母。 3 二、概要设计二、概要设计 1、文件数据的处理 本程序定义了四个文件指针,分别为*fa、*fb、*fc 和*fd 它 们分别指向 data1.txt、data2.txt、jiaoji.txt 和 bingji.txt, 定义了一个指针型数组*a 和五个整型变量:i、j、x、y、t。 主程序流程:程序
4、先判断四个文件是否能打开,如果不能则在 频幕上输出“cannot open”,接着分别把文件 data1.txt 和 data2.txt 中的数字读入到数组 a 中,此时 x 的值为文件 data1.txt 中数字的个数,y 为两个文件中数字的总数,数组 a 的前 x 个数为 文件 data1.txt 中的数字,其余为令一文件的数字。然后分别判断 两个文件中是否含有重复的数字,重复的数字只保留一个其余赋 0, 接着把数组中的数字按从小到大排列。然后求数组中重复的数字, 并把非零数输入到文件 jiaoji.txt 中,此即为所要求的交集,把数 组中非零的数字输入到文件 bingji.txt 中,
5、此即为所要求的并集, 程序到此结束。 本程序主要用到了文件的格式化读/写函数:fscanf( )、 fprintf()函数,还用到了 for 循环语句和 if 语句。 2、统计字符出现的频率 此程序主要定义了两个文件型指针*fa 和*fb 分别指向 conf.txt 和 rate.txt 两个文件,定义了一个字符型数组 a 和四个 整型变量 len、i、j、num。 主程序流程:本程序在一开始同样先判断能否打开 conf.txt 和 rate.txt 这两个文件,如果不能打开,则在屏幕上输出“cannot open”。然后用 fgets()函数把文件中的字符读入到数组 a 中,并 用 strlen()函数计算字符串长度并赋给 len,接着计算每个字符出 4 现的次数,最后把计算好的频率用 fprintf()函数输入到文件 rate.txt 中。 此程序主要用到了字符串读取函数 fgets()和文件的格式化写 入函数 fprintf()函数,此外还用到了 for 循环语句和 if 语句。 三、详细设计三、详细设计 1、文件数据的处理 本程序算法步骤: (1) 用四个 if 语句判断能否打开所用到的文件,如果不能打开都 输出“cannot open”。 (2) 分别用两个 for 循环把文件 data1.txt 和 data2.txt 中的数