《程序设计课程设计》指导书2017(1)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序设计课程设计
指导书
软件学院软件工程系
2017 年 6 月 1 日
太原理工大学课程设计任务书
1.课程设计完成后,学生提交的归档文件应按照:封面—任务书—说明书—图纸的顺序进行装订上交(大张图纸不必装订)。
2.可根据实际内容需要续表,但应保持原格式不变。
指导教师签名:日期:2017.6.3
前言
《程序设计课程设计》是计算机科学与技术专业的重要实践性课程。目的在于培养学生分析问题和解决问题的能力,为学生提供了一个既动手又动脑,独立实践的机会。将数据结构、算法设计与分析、离散数学和C(C++)语言等课本上的的理论知识和实际应用问题进行有机结合,提高学生问题分析、程序设计、程序调试及项目开发能力。为后续课程:操作系统、软件工程,
编译原理等课程的学习奠定必要的实践基础。
本课程设计是利用数据结构、算法设计与分析、离散数学、C语言理论知识和实验课中学到
的编程知识和编程技巧,通过布置具有一定难度、一定编程量的课程设计题目,利用C(C++)语言作为开发工具,使学生通过课程设计掌握高级编程语言的知识和编程技术,掌握程序设计的思想和方法,初步具备利用计算机求解实际问题的能力。
通过《程序设计课程设计》课程的学习,能够帮助学生加深理解数据结构、离散数学、C语
言基本概念,达到培养学生良好程序设计的习惯和运用C语言编写程序解决实际问题的能力。使学生学会把书本知识用于解决实际问题,起到深化理解和灵活掌握教学内容的目的。同时使学生在程序设计方法及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
通过该课程设计,学生应该掌握C或C++语言程序设计、结构化程序和面向对象程序设计方法、数据结构和离散数学理论知识,熟悉C或C++程序的开发环境及C或C++程序的调试过程,巩固和加深对理论课中知识的理解,提高学生对所学知识的综合运用能力。
通过本课程设计训练,学生应该具备如下基本技能:
①培养学生查阅参考资料、手册的自学能力,通过独立思考深入钻研问题,学会自己分析、解决问题。
②通过对所选题目方案分析比较,确立方案,编制程序与调试程序。
③能熟练调试程序,在教师的指导下,完成课题任务。
④根据个人的设计调试过程,按课程设计报告的要求撰写设计报告。
选用教材及主要参考书:
1 教材
呼克佑. C 语言程序设计电子工业出版社,2013
严蔚敏. 数据结构(C 语言版) 清华大学出版社,2012
- 1 -
设计题目(6选4)
1. 相邻数对
1.1【问题描述】
给定 n 个不同的整数,问这些数中有多少对整数,它们的值正好相差 1。
输入格式
输入的第一行包含一个整数 n,表示给定整数的个
数。第二行包含所给定的 n 个整数。
输出格式
输出一个整数,表示值正好相差 1 的数对的个数。
1.2【测试数据】
测试数据输出说明
值正好相差 1 的数对包括(2, 3), (6, 7), (7, 8)。所以输出:3
数据约定
1<=n<=1000,给定的整数为不超过 10000 的非负整数。
2. ISBN 识别码
2.1【问题描述】
每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第二个分隔之后的五位数字代表该书在出版社的编号;最后一位为识别码。
识别码的计算方法如下:
首位数字乘以1加上次位数字乘以2……以此类推,用所得的结果mod 11,所得的余数即为识别码,如果余数为10,则识别码为大写字母X。例如ISBN号码0-670-82162-4中的识别码4是这样得到的:对067082162这9个数字,从左至右,分别乘以1,2,…,9,再求和,即
0×1+6×2+……+2×9=158,然后取 158 mod 11 的结果 4 作为识别码。
编写程序判断输入的ISBN号码中识别码是否正确,如果正确,则仅输出“Right”;如果错误,则输出是正确的ISBN号码。
输入格式
输入只有一行,是一个字符序列,表示一本书的 ISBN 号码(保证输入符合 ISBN 号码的格式要求)。
输出格式
输出一行,假如输入的 ISBN 号码的识别码正确,那么输出“Right”,否则,按照规定的格式,输出正确的 ISBN 号码(包括分隔符“-”)。
- 2 -
2.2【测试数据】
3. 文本文件单词统计
3.1【问题描述】
假设有如下的英文文本文档:(此处为太原理工大学学校简介英文版)
TAIYUAN UNIVERSITY OF TECHNOLOGY
Taiyuan University of Technology (TUT) has its history traced all the way back to the Western Learning School of Shanxi Grand Academy (1902), which was one of the three earliest national universities in China. With the tradition and development of over 100 years, TUT is now a general university with engineering as the major, sciences and technology integrated and coordinate development of multiple disciplines. It is a university that is included in the “Project 211” ---
the national higher education promotion program for 100 top universities in China.
……
Recollecting the centennial history, generations of TUT have created its mission and glory of a century with responsibility and confidence; expecting the promising tomorrow, over 30,000 TUT students and faculty are producing splendor and perspectives by their wisdom and diligence. In the new era, Taiyuan University of Technology, following the Conception of Scientific Development, is determined to further the reformation on education, to reinforce the teaching management so as to upgrade its teaching and researching levels. Taiyuan University of Technology will be turning itself into a research-based university.
设计C或C++程序,统计在这样的英文文本文件中,出现了多少个单词,每个单词出现了几次。连续的英文字符都认为单词(不包括数字),单词之间用空格或标点符号分隔。
3.2【设计需求及分析】
要统计英文文本文件中出现了哪些单词,就要从文件中读取字符,读取出来的连续英文字符认为是一个单词,遇空格或标点符号单词结束。
使用线性表记录单词以及每个单词出现的次数。线性表中的单词按字典顺序存储。
线性表的顺序存储结构如下:
#define LIST_INIT_SIZE 100//线性表存储空间的初始分配量
#define LISTINCREMENT 10//线性表存储空间的分配增量
typedef struct{
char word[21]//存储单词,不超过 20 个字符
int count;//单词出现的次数
} ElemType;
typedef struct{
ElemType *elem;//存储空间基址
int length;//当前长度
int listsize;//当前分配的存储容量