武汉华东师范大学-武汉华东师范大学
课程名称:
设计名称:
专业班级:软件
学生姓名:
指导教师:
课程设计
程序设计课程设计
相邻数对、
ISBN
识别码
文本文件单词统计、构造可以使
n
个城市连接的最小生成树
1502
班
学号:
09
冯旭超
吕进来
2017
p>
年
06
月
23
日
太原理工大学课程设计任务书
学生姓名
课程名称
设计名称
设计
任务
主要
设计
参数
专业班级
软件
程序设计课程设计(
Programming Curriculum Design
)
相邻数对
,ISBN< /p>
识别码
,
文本文件单词统计等
设计周数
2
1.
基本要求
掌握
或
C++
语言、结构化程序和面向对象程序设计方法、数据 结构和离
散数学理论知识,熟悉
C
或
C+ +
程序的开发环境及调试过程,巩固和加深对理
论课中知识的理解,提高
学生对所学知识的综合运用能力。
2.
培养学生以下技能
①培养
学生查阅参考资料、
手册的自学能力,
通过独立思考深入钻研问题,
学会自己分析、解决问题。
②通过对所选题目分析,
找出解决方法,
设计算法,
编制程序与调试程序。
③能熟练调试程序,在教师的指导下,完成课题任务。
④按课程设计报告的要求撰写设计报告。
1.
设计内容
设计内容
设计要求
①相邻数对;
②
ISBN
识别码;
③文本文件单词统计;
④构造可以使
n
个城
市连接的最小生成树;⑤送货;⑥学生信息管理系统
2.
设计要求
①至少完成上述
设计内容中的
4
个设计题目;②对每个题目要给出设计方
案、功能模块划分、算法思想;③选择使用的数据结构;④给出题目的程序实
现;⑤按要
求撰写设计报告。
1.
《程序设计课程设计》指导书;
< br>2.
《程序设计技术》
、
《数据结构》等课程教材;
3.
其他自选的相关资料。
主要参考
资
料
学生提交
归档文件
课程设计报 告封面应给出专业、
班级、
姓名、
学号、
指导教师 和完成日期。
每个设计题目的内容包括以下几项:设计题目、问题描述、问题分析、功能
实
现、测试实例及运行结果、源程序清单。
注:
1.
课程设计完成后,< /p>
学生提交的归档文件应按照:
封面—任务书—说明书—图纸的顺序
< br>进行装订上交(大张图纸不必装订)
。
2.
可根据实际内容需要续表,但应保持原格式不变。
指导教师签名
:
日期
:
目
录
1.
相邻数对
...............................................
错误
!
未定义书签。
2.
ISBN
识别码
.
< p>................................................ ............
3
3.
文
本
文
件
单 p>
计……………………………………………………………….
5
4.
构
造
可
以
使
n < /p>
个
城
市
连
接
的
树………………………………………
11
词
最
小
统
生<
/p>
成
题目一
相邻数对
【问题描述】
给定
n
个不同的整数,问这些数中有多少对整数,它们 的值正好相差
1
。
输入格式
输入的第一行包含一个整数
n
,表示给定整数的个数。
第二行包含所给定的
n
个整数。
输出格式
输出一个整数,表示值正好相差
1
的数对的个数。
【设计及分析】
输入输出
6
10 2 6 3 7 8
3
测试数据输出说明
值正好相差
1
的数对包括
(2, 3), (6, 7), (7, 8)
。所以输出
:3
数据约定
1<=n<=1000
,给定的整数为不超过
10000
的非负整数。
【设计功能的实现】
#include
#include
using
namespace
std;
int
main()
{
int
n;
int
m = 0;
cout <<
请输入数字个数
:
;
cin
>> n;
int
A[1000];
cout <<
分别为:
n
;
for
(
int
i = 0; i < n; i++){
}
for
(
int
i = 0; i < n; i++){
}
for
(
int
j = i + 1; j < n; j++){
}
if
(((A[i] - A[j]) == 1) || ((A[j] - A[i]) == 1))
{
}
m++;
cin >>
A[i];
cout <<
相邻数对个数为:
<< m << endl;
}
return
0;
【测试及运行结果】
【总结】
这个实验主要使用两个循环即可完成实验。
题目二
ISBN
识别码
【问题描述】
每一本正式出版的图书都有一个
ISBN
号码与之对应,
ISBN
码包括
9
位数字、
1
位识别码和
3
位分隔符,其规定格式如“
x-xxx-xxxxx-x
”,其中符号“
-
”是分隔符(键盘上的减号),
最后一
位是
识别码,
例如
0-670-82162-4
就是一个标准的
ISBN
码。
ISBN
码的首位数字表示书籍的出版
语言,
例如
0
代表英语;第一个分隔符“
-< /p>
”之后的三位数字代表出版社,例如
670
代表维京出版
社;第二
个分隔之后的五位数字代表该书在出版社的编号;最后一位为识别码。
识别码的计算方法如下:
首位数字乘以
1
加上次位数字乘以
2< /p>
……以此类推,用所得的结果
mod 11
,所得的余数即为
识别码,
如果余 数为
10
,
则识别码为大写字母
X
。
例如
ISBN
号码
0-670-82162-4
中的识别码
4
是
这样得到的:对
0
这
9
个数字,从左至右,分别乘以
1
,
2
,…, p>
9
,再求和,即
0
×
1+6
×
2+
……
+2
×
9=158
,然后取
158 mod 11
的结果
4
作为识别码。
编写程序判断输入的
ISBN
号码中识别码是否正确, 如果正确,则仅输出“
Right
”;如果错
误,
则输出是正确的
ISBN
号码。
输入格式
输入只有一行,
是一个字符序列,
表示一本书的
ISBN
号码
(保证输入符合
ISBN
号码的格式
要求)。
输出格式
输出一行,假如输入的
ISBN
号码的识别码正确,那 么输出“
Right
”,否则,按照规定的格
式,输出正确的
ISBN
号码(包括分隔符“
-
”)。
【设计及分析】
输入
1
输出
1
0-670-82162-4
Right
输入
2
输出
2
0-670-82162-0
0-670-82162-4
【设计功能的实现】
#include
#include
using
namespace
std;
char
a[13];
int
main(){
int
i = 1, sum = 0;
int
x;
cout <<
请输入标准
ISBN
码(
X-XXX- XXXXX-X
)
:
;
for
(
int
i = 1; i <= 13; i++)
{
}
}
cin >> a[i];
sum = a[1] * 1 + a[3] * 2 + a[4] * 3 +
a[5] * 4 + a[7] * 5 + a[8] * 6 + a[9] * 7 + a[10]
sum = sum - 45 *
'0'
;
x = sum %
11;
if
(x == 10 && a[13] ==
'X'
)
{cout <<
<< endl;
}
else
if
(x == a[13]-
'0'
){
}
else
for
(
int
i = 1; i <= 12; i++){ cout << a[i]; }
if
(x == 10){
}
else
cout << x << endl;
return
0;
cout <<
< 0;
<< endl;
0;
0;
return
cout <<
return
return
* 8
+ a[11] * 9;
【测试及运行结果】