编号:C21
河北工业大学计算机软件技术基础(VC)
课程设计任务书
一、题目:五进制长整数的加减运算(B) 二、目的与要求
1. 目的:
通过编程完成无符号五进制长整数的加减运算,培养学生综合利用C++语言进行程序设计的能力,熟悉字符串的操作方法,加强函数的运用,使学生将所学知识转化为分析和设计简单实际问题进行程序设计的能力以及归纳总结建立程序文档的能力。
2. 基本要求:
1)要求用C++语言编程,在Visual C++环境下调试完成;
2)要求按照程序功能分成几个功能模块来实现,各个功能模块分别使用函数来完成; 3)要求应用本课所讲授的程序设计语言知识来解决问题,使用教材前六章的内容来完成程序;
4)使用cin和cout来实现输入输出(使用scanf和printf的为不合格); 5) 请仔细阅读“课程设计要求”,并按“设计报告模板”完成设计报告。
三、设计方法和基本原理
1. 课题功能描述
本程序的功能:输入两个五进制无符号长整数(位数不超过50),计算得到它们的和、差并输出。
程序运行时,提示用户输入两个五进制长整数,如: Please input number: 34210212341023034 Please input number: 2431143320112302 程序运行后,输出运算结果:
34210212341023034+2431143320112302=42141411211140341 34210212341023034-2431143320112302=31224014020410232
34210212341023034*2431143320112302=211443440323140413443203220440323 或,输入:
Please input number: 2431143320112302 Please input number: 34210212341023034 程序运行后,输出运算结果:
2431143320112302+34210212341023034=42141411211140341 2431143320112302-34210212341023034=-31224014020410232
2431143320112302*34210212341023034=211443440323140413443203220440323
2. 问题的解决方案
使用字符数组来存放输入的两个五进制无符号长整数及其运算结果,并按字符串进行输入和输出。过程如下:
? 输入两个数据到字符数组中,由于是字符型,输入的是243102,数组存储的是这
第6页/共8 页
编号:C21
些数字的ASCII码: a[0] 50 a[1] 52 a[2] 51 a[3] 49 a[4] 48 a[5] 50 a[6] 00 a[7] ? ? ? ? 因输入时数据的高位在下标为0的元素中,而计算时须从低位开始,为使运算时从0下标开始循环,首先对两个字符数组中的字符串求逆序。
? 编写函数求两个五进制数的和:从低位向高位逐位相加;每位数字相加时,实际
是三个数字相加:两个加数的当前位数字和低位向当前位的进位;得到该数位的和,如果>5,则向高位进位为1,和减去5;否则进位为0。求得的和低位在下标为0的元素中,求逆序,输出即为所求和。
? 编写函数求两个五进制数的差:要考虑借位。虽然进行的是两个无符号整数的运
算,但相减后可能得到一个负数。求得的差低位在下标为0的元素中(如果为负数,在下标为1的元素中),求逆序,输出即为所求差。
为实现模块化设计,除求字符串逆序、两个五进制数的和及两个五进制数的差等模块,还可设计如下模块:
? 输入函数:完成一个五进制无符号整数的输入。输入数据到字符数组中,然后检
验用户输入的数据是否合法(例五进制数中只能出现0~4),合法则返回,否则继续输入。
? 字符转数字ctoi:'0'~'4'只需减去'0'即可 ? 数字转字符itoc:只需加上'0'。
主函数中控制函数调用完成输入、计算,并输出计算结果。 提示:进行每位数字相加时(e为低位向当前位的进位): f=ctoi(a[i])+ctoi(b[i])+e;
if (f>=5) {e=1;c[i]=itoc(f-5);} else {e=0;c[i]=itoc(f);}
如果没有将字符与数字的转换作为函数,也可以为: f=a[i]-'0'+b[i]-'0'+e;
if (f>=5) {e=1;c[i]=f-5+'0';} else {e=0;c[i]=f+'0';}
四、创新要求
1) 2) 3) 4)
实现程序功能后,可进行创新设计(实现3项以上为创新):
求两个五进制无符号长整数的乘积(两个因子相乘时,当其中的两个数位相乘时,如a[i]*b[j],对应的乘积的数位应该是i+j)。
使用多文件,即主函数和各个函数分别存放在不同的.cpp文件中,在头文件中进行函数原型声明。
实现两个带符号五进制长整数的运算。
本程序实现的是五进制长整数的运算,可扩充程序功能,由用户输入数据使用的进制,然后输入两个整数,由程序计算并输出这两个数据的和、差及乘积。
五、课程设计的考核方式及评分方法
1.考核方式
(1) 学生要提交书面课程设计报告(A4纸打印);并将设计报告的电子文档、.cpp源文件和.h
头文件放到一个文件夹里上传到所对应班级的学生名称相应文件夹中。
(2) 课程设计结束时,在机房当场验收。教师提供测试数据,由学生运行所设计的系统,检
第7页/共8 页
编号:C21
查运行结果是否正确,并回答教师提出的有关问题。
2.评分方法
根据出勤率、课程设计期间纪律、课程设计运行结果、课程设计报告及答辩情况综合评分。
六、书写设计报告的要求(详细内容见“设计报告模板”)
七、说明:课程设计的有关文档,“设计报告模板”和“课程设计要求”请在下载任务书处下载。
第8页/共8 页