VC课程设计报告模板-五进制长整数的加减运算

2019-03-03 15:05

编号:C21

河北工业大学计算机软件技术基础(VC)课程设计报告

学院 班级 姓名 学号 成绩 __ ___

一、 题目:

五进制长整数的加减运算 (C21)

二、设计思路

1、总体设计

1)分析程序的功能:通过此程序进行任意两个五进制长整数(位数不超过50)的加减乘运算。 2)系统总体结构:

本程序采用多文件,由主函数和4个分函数构成,功能是: ① 输入两个数据到字符数组中 ② 对两个字符数组中的字符串求逆序

③ 调用相加函数求两个数的和,再对所得字符串求逆序,然后输出 ④ 调用相乘函数求两个数的积,再对所得字符串求逆序,然后输出 ⑤ 调用相减函数求两个数的差,再对所得字符串求逆序,然后输出 2、各功能模块的设计:

① 输入函数:完成一个五进制无符号长整数的输入。输入数据到字符数组中,然后检验用户输入的数据是否合法(例五进制数中只能出现0~4),合法则返回,否则继续输入。 ② 求字符数组中字符串的逆序

③ 求和函数:求两个数据(字符数组中)的和 ④ 求积函数:求两个数据(字符数组中)的积 ⑤ 求差函数:求两个数据(字符数组中)的差 3、设计中的主要困难及解决方案

在这部分论述设计中遇到的主要困难及解决方案。 在这部分论述设计中遇到的主要困难及解决方案。 困难1 单个字符与数字的转换。

解决方案:在字符转数字时,'0'~'4'只需减去'0'即可;同样的,数字转字符时,只需加上'0'。

第1页/共8 页

编号:C21

困难2 应用多文件,在主函数中实现对多个分函数的调用,将程序的功能分解到不同的函数中去完成。

解决方案:将多个cpp文件放到一个工程中,用文件包含,通过#include “all.h”,来实现对分函数的调用。

4、你所设计的程序最终完成的功能

1)说明你编制的程序能完成的功能: 输入要加减乘的两个五进制长整数即显示其结果。 2)准备的测试数据及运行结果:输入两个五进制长整数: 12341342123 1232134 显示其结果为:

三、程序清单

如果是使用一个文件完成的程序,只需列出程序代码。

如果是使用多文件完成的程序,首先说明程序中的代码存放在哪些文件中,说明文件名(例如:本程序包含first.cpp、second.cpp、third.cpp和all.h四个文件);然后依次给出每个文件名及该文件清单,例如:

1、1.cpp文件清单 #include #include #include #include\void main() {

char a[50],b[50]; int i,j=0;

while(j==0) //利用\语句实现判断输入数字是否符合要求,并可多次输入

第2页/共8 页

{

j=1; //标签 input(a,b);

for(i=0;i<50;i++) {

if(a[i]>52||b[i]>52) //检验数字是否合法 {

cout<<\数字不合法,请重新输入:\ j=0;break; } } }

change(a,b); }

2、2.cpp文件清单 #include

void input(char a[],char b[]) {

cout<<\cin.getline(a,50);

cout<<\cin.getline(b,50); }

3、3.cpp文件清单 #include #include #include #include\

void change(char a[],char b[]) {

int i,N1=0,N2=0,n1,n2; int c1[50],c2[50];

strrev(a); //对字符串求逆序 strrev(b);

n1=strlen(a); //求字符长度 n2=strlen(b);

for(i=0;i

c1[i]=(a[i]-48)*pow(5,i); N1=N1+c1[i]; }

for(i=0;i

c2[i]=(b[i]-48)*pow(5,i); N2=N2+c2[i];

编号:C21

第3页/共8 页

}

strrev(a); //对字符串求逆序 strrev(b);

cout<

cout<

cout<

4、4.cpp文件清单 #include #include #include

void add(int N1,int N2) {

int M1=N1+N2,i;

char m1[100]={0}; //初始化数组

for(i=0;M1!=0;i++) //将十进制整数转化为五进制字符数组 {

m1[i]=M1%5; M1=M1/5;

m1[i]=m1[i]+48; }

strrev(m1); //对字符串求逆序 cout<

void minus(int N1,int N2) {

int M2=abs(N1-N2),i;

char m2[100]={0}; //初始化数组

for(i=0;M2!=0;i++) //将十进制整数转化为五进制字符数组 {

m2[i]=M2%5; M2=M2/5;

m2[i]=m2[i]+48; }

strrev(m2); //对字符串求逆序

if(N1

void multiply(int N1,int N2) {

int M3=N1*N2,i;

编号:C21

第4页/共8 页

编号:C21

char m3[60]={0}; //初始化数组

for(i=0;M3!=0;i++) //将十进制整数转化为五进制字符数组 {

m3[i]=M3%5; M3=M3/5;

m3[i]=m3[i]+48; }

strrev(m3); //对字符串求逆序 cout<

5、tou.h文件清单

void input(char a[],char b[]); void change(char a[],char b[]); void add(int N1,int N2); void minus(int N1,int N2); void multiply(int N1,int N2);

(说明:程序清单中一定要有注释。程序清单部分的行间距设为1行即可)

四、对该设计题目有何更完善的方案

1、对自己完成程序进行自我评价。

基本完成了题目的要求,实现了两个长整数的相加,但仍有待提高,改善之处,需要不断学校完善。

2、对课题提出更完善的方案

可以通过进一步改进,实现两个带符号整数的运算;或更加创新,由用户输入数据使用的进制,然后输入两个整数,又程序计算并输出这两个数的和、差及积。

五、收获及心得体会

1、通过本次课程设计,自己在哪些方面的能力有所提高。

对数组有了进一步的学习提高,通过设计,是我在对c++的实际应用上有所提高,使自学能力和对所学知识的调用能力都有提升。

2、收获和心得体会。

由于知识上的缺陷会导致常常出现同样的错误,通过本次课程设计,我受益匪浅,学习了很多知识,应认真与人交流汲取知识,自我完善;新的知识可能导致程序的大量简化,思路更清楚结构,结构更简单,应不停的学习,并通过练习提高能力。也让我倍加体会到编程的乐趣,我将更加努力学习本门课程。

日期: 2011 年 06月 23日

第5页/共8 页


VC课程设计报告模板-五进制长整数的加减运算.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:[最新]高中历史第一单元第一次世界大战第4课综合探究极端民族主

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: