太原理工大学软件课程设计Word文件下载.docx
《太原理工大学软件课程设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《太原理工大学软件课程设计Word文件下载.docx(22页珍藏版)》请在冰豆网上搜索。
相邻数对,ISBN识别码,文本文件单词统计等
设计周数
2
设计
任务
主要
参数
1.基本要求
掌握C或C++语言、结构化程序和面向对象程序设计方法、数据结构和离散数学理论知识,熟悉C或C++程序的开发环境及调试过程,巩固和加深对理论课中知识的理解,提高学生对所学知识的综合运用能力。
2.培养学生以下技能
①培养学生查阅参考资料、手册的自学能力,通过独立思考深入钻研问题,学会自己分析、解决问题。
②通过对所选题目分析,找出解决方法,设计算法,编制程序与调试程序。
③能熟练调试程序,在教师的指导下,完成课题任务。
④按课程设计报告的要求撰写设计报告。
设计内容
设计要求
1.设计内容
①相邻数对;
②ISBN识别码;
③文本文件单词统计;
④构造可以使n个城市连接的最小生成树;
⑤送货;
⑥学生信息管理系统
2.设计要求
①至少完成上述设计内容中的4个设计题目;
②对每个题目要给出设计方案、功能模块划分、算法思想;
③选择使用的数据结构;
④给出题目的程序实现;
⑤按要求撰写设计报告。
主要参考
资料
1.《程序设计课程设计》指导书;
2.《程序设计技术》、《数据结构》等课程教材;
3.其他自选的相关资料。
学生提交
归档文件
课程设计报告封面应给出专业、班级、姓名、学号、指导教师和完成日期。
每个设计题目的内容包括以下几项:
设计题目、问题描述、问题分析、功能实现、测试实例及运行结果、源程序清单。
注:
1.课程设计完成后,学生提交的归档文件应按照:
封面—任务书—说明书—图纸的顺序进行装订上交(大张图纸不必装订)。
2.可根据实际内容需要续表,但应保持原格式不变。
指导教师签名:
日期:
2017.6.3
3.文本文件单词统计……………………………………………………………….5
4.构造可以使n个城市连接的最小生成树………………………………………11
题目一相邻数对
1.1【问题描述】
给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1。
输入格式
输入的第一行包含一个整数n,表示给定整数的个数。
第二行包含所给定的n个整数。
输出格式
输出一个整数,表示值正好相差1的数对的个数。
1.2【设计及分析】
输入输出
6
1026378
3
测试数据输出说明
值正好相差1的数对包括(2,3),(6,7),(7,8)。
所以输出:
数据约定
1<
=n<
=1000,给定的整数为不超过10000的非负整数。
1.3【设计功能的实现】
#include"
stdafx.h"
#include<
iostream>
usingnamespacestd;
intmain()
{
intn;
intm=0;
cout<
<
"
请输入数字个数:
"
;
cin>
>
n;
intA[1000];
cout<
分别为:
\n"
for(inti=0;
i<
i++){
cin>
A[i];
}
for(intj=i+1;
j<
j++){
if(((A[i]-A[j])==1)||((A[j]-A[i])==1))
{
m++;
}
}
}
相邻数对个数为:
<
m<
endl;
return0;
}
1.4【测试及运行结果】
1.5【总结】
这个实验主要使用两个循环即可完成实验。
题目二ISBN识别码
2.1【问题描述】
每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3
位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是
识别码,例如0-670-82162-4就是一个标准的ISBN码。
ISBN码的首位数字表示书籍的出版语言,
例如0代表英语;
第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;
第二
个分隔之后的五位数字代表该书在出版社的编号;
最后一位为识别码。
识别码的计算方法如下:
首位数字乘以1加上次位数字乘以2……以此类推,用所得的结果mod11,所得的余数即为
识别码,如果余数为10,则识别码为大写字母X。
例如ISBN号码0-670-82162-4中的识别码4是
这样得到的:
对067082162这9个数字,从左至右,分别乘以1,2,…,9,再求和,即
0×
1+6×
2+……+2×
9=158,然后取158mod11的结果4作为识别码。
编写程序判断输入的ISBN号码中识别码是否正确,如果正确,则仅输出“Right”;
如果错误,
则输出是正确的ISBN号码。
输入只有一行,是一个字符序列,表示一本书的ISBN号码(保证输入符合ISBN号码的格式
要求)。
输出一行,假如输入的ISBN号码的识别码正确,那么输出“Right”,否则,按照规定的格
式,输出正确的ISBN号码(包括分隔符“-”)。
2.2【设计及分析】
输入1输出1
0-670-82162-4Right
输入2输出2
0-670-82162-00-670-82162-4
2.3【设计功能的实现】
chara[13];
intmain(){
inti=1,sum=0;
intx;
请输入标准ISBN码(X-XXX-XXXXX-X):
for(inti=1;
=13;
i++)
{
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]*8+a[11]*9;
sum=sum-45*'
0'
x=sum%11;
if(x==10&
&
a[13]=='
X'
)
{cout<
Right"
elseif(x==a[13]-'
){
elsefor(inti=1;
=12;
i++){cout<
if(x==10){
X"
endl;
elsecout<
x<
return0;
2.4【测试及运行结果】
2.5【总结】
这个的关键点在于字符必须减去‘0’才可以进行运算。
题目三文本文件单词统计
3.1【问题描述】
假设有如下的英文文本文档:
(此处为太原理工大学学校简介英文版)
TAIYUANUNIVERSITYOFTECHNOLOGY
TaiyuanUniversityofTechnology(TUT)hasitshistorytracedallthewaybacktotheWesternLearningSchoolof
ShanxiGrandAcademy(1902),whichwasoneofthethreeearliestnationaluniversitiesinChina.Withthetraditionand
developmentofover100years,TUTisnowageneraluniversitywithengineeringasthemajor,sciencesandtechnology
integratedandcoordinatedevelopmentofmultipledisciplines.Itisauniversitythatisincludedinthe“Project211”---
thenationalhighereducationpromotionprogramfor100topuniversitiesinChina.
……
Recollectingthecentennialhistory,generationsofTUThavecreateditsmissionandgloryofacenturywithresponsibility
andconfidence;
expectingthepromisingtomorrow,over30,000TUTstudentsandfacultyareproducingsplendorand
perspectivesbytheirwisdomanddiligence.Inthenewera,TaiyuanUniversityofTechnology,followingtheConception
ofScientificDevelopment,isdeterminedtofurtherthereformationoneducation,toreinforcetheteachingmanagementso
astoupgradeitsteachingandresearchinglevels.TaiyuanUniversityofTechnologywillbeturningitselfintoa
research-baseduniversity.
设计C或C++程序,统计在这样的英文文本文件中,出现了多少个单词,每个单词出现了几
次。
连续的英文字符都认为单词(不包括数字),单词之间用空格或标点符号分隔。
3.2【设计及分析】
要统计英文文本文件中出现了哪些单词,就要从文件中读取字符,读取出来的连续英文字符
认为是一个单词,遇空格或标点符号单词结束。
使用线性表记录单词以及每个单词出现的次数。
线性表中的单词按字典顺序存储。
线性表的顺序存储结构如下:
#defineLIST_INIT_SIZE100//线性表存储空间的初始分配量
#defineLISTINCREMENT10//线性表存储空间的分配增量
typedefstruct{
charword[21]//存储单词,不超过20个字符
i