1、 课程设计 课程名称: 程序设计课程设计 设计名称: 相邻数对、ISBN 识别码 文本文件单词统计、构造最小生成树 送货、学生信息管理系统 专业班级: 学号: 学生姓名: 指导教师: 2017 年 06 月 21 日 I 课程设计任务书 学生姓名 专业班级 课程名称 程序设计课程设计(程序设计课程设计(Programming Curriculum Design) 设计名称 相邻数对,ISBN 识别码,文本文件单词统计等 设计周数 2 设计 任务 主要 设计 参数 1.1.基本要求基本要求 掌握 C 或 C+语言、结构化程序和面向对象程序设计方法、数据结构和离 散数学理论知识,熟悉 C 或 C+
2、程序的开发环境及调试过程,巩固和加深对理 论课中知识的理解,提高学生对所学知识的综合运用能力。 2.2.培养学生以下技能培养学生以下技能 培养学生查阅参考资料、 手册的自学能力, 通过独立思考深入钻研问题, 学会自己分析、解决问题。 通过对所选题目分析, 找出解决方法, 设计算法, 编制程序与调试程序。 能熟练调试程序,在教师的指导下,完成课题任务。 按课程设计报告的要求撰写设计报告。 设计内容 设计要求 1.1.设计内容设计内容 相邻数对;ISBN 识别码;文本文件单词统计;构造可以使 n 个城 市连接的最小生成树;送货;学生信息管理系统 2.2.设计要求设计要求 至少完成上述设计内容中的
3、4 个设计题目;对每个题目要给出设计方 案、功能模块划分、算法思想;选择使用的数据结构;给出题目的程序实 现;按要求撰写设计报告。 主要参考 资 料 1.程序设计课程设计指导书; 2.程序设计技术、数据结构等课程教材; 3. 其他自选的相关资料。 学生提交 归档文件 课程设计报告封面应给出专业、班级、姓名、学号、指导教师和完成日期。 每个设计题目的内容包括以下几项:设计题目、问题描述、问题分析、功能实 现、测试实例及运行结果、源程序清单。 注: 1.课程设计完成后,学生提交的归档文件应按照:封面任务书说明书图纸的顺序 进行装订上交(大张图纸不必装订)。 2.可根据实际内容需要续表,但应保持原格
4、式不变。 II 目目 录录 1. 相邻数对 3 2. ISBN 识别码 4 3. 文本文件单词统计 7 4. 构造可以使 n 个城市连接的最小生成树 . 13 5. 送货 . 18 6. 学生信息管理系统 . 23 3 题目一题目一 相邻数对相邻数对 1.11.1【问题描述】【问题描述】 给定 n 个不同的整数,问这些数中有多少对整数,它们的值正好相差 1。 输入格式输入格式 输入的第一行包含一个整数 n,表示给定整数的个数。 第二行包含所给定的 n 个整数。 输出格式输出格式 输出一个整数,表示值正好相差 1 的数对的个数。 1 1.2.2【设计及分析】【设计及分析】 先设定一个全局数组 a
5、,数组的大小尽量大,数组的下标对应的是输入的整数范围。数 组内 0 表示没有对应于该下标的整数,1 表示有对应于该下标的整数。将数组全部初始化为 0,表示没有进行输入。然后输入整数个数和相应的整数对数组进行修改,然后进行相邻数 对筛选得出数对及数对的个数。 数据流图如图 1-1。 1 1.3.3【设计功能的实现】【设计功能的实现】 #include int a1005; void inita(int *a)/初始化数组 int n=0; for(;nAjj.strl) a=Ajj; Ajj=Aii; Aii=a; for(i=0;Ai.num !=0;i+) printf(“%s 单词个数有:
6、%dn“,Ai.str,Ai.num); printf(“nn“); return 0; 11 3 3.4.4【测试及运行结果】【测试及运行结果】 12 13 3 3.5.5【总结】【总结】 1、设置了全局数组 A 和全局变量 s 用于存放单词和单词总数,用全局变量可以在使用对应 函数时直接进行修改。 2、在获取单词时,如果不进行大小写转换的话,相同的单词会因为大小写的不同而出现两 次甚至多次,与题意不符,所以在获取单词的同时可以将大小写进行统一,便于最后统计的 正确性。在本次实验我选择的是将大小写字母统一为小写字母,然后进行统计排序。 3、在对所获取的单词进行排序时,先按单词出现的频率排序,将数组 A 中 sum 值为 0 的一 律排到最后,便于进行下一步统计。第二步按照首字母进行排序,大致将单词进行了分段。 第三步按照首字母相同的单词组进