- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
长整数的处理
河 南 城 建 学 院
Henan University of Urban Construction
《高级语言程序设计》
课程设计报告
学 号:
姓 名:
专 业:
题 目:
指导老师:
设计时间:
计算机科学与工程系
2013年01月
目录
设计目的
设计内容
概要设计
详细设计
测试数据及运行结果
调试情况、设计技巧及体会
参考文献
附录
一. 设计目的
1) 通过课程设计,加深对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。
2) 通过课程设计,进一步掌握C语言中重要的数据结构。掌握并熟练运用指针、链表、结构体、文件等数据结构。
3) 通过课程设计,提升程序开发能力,能运用合理的控制流编写清晰高效的程序。
4) 通过课程设计,培养C语言知识运用何自学能力,真正的把课堂上获得的知识运用起来,培养自己对程序编写的兴趣,并能独立设计何实现一个小型系统。
5) 通过课程设计,加强了自己的程序分析能力。
二. 设计内容
长整数的处理。假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,则实际的长整数m表示为:m=a[k]×10k-1+a[k-1]×10k-2+….+a[2]×10+a[1]其中a[0]保存该长整数的位数。求: 长整数加长整数或长整数减长整数。
三.概要设计
//////////////////////////////////////////////
功能模块
Get函数,switch函数,jiafa函数,jianfa函数,main函数
各个模块详细的功能描述
get函数:获得用户的输入
Switch函数:选择运算类型
Jiafa函数/jianfa函数:进行加减法运算
//////////////////////////////////////////////
四.详细设计
//////////////////////////////////////////////
功能函数的调用关系
2.各功能函数的数据流程图
1 2
T F
F
T
F
T
T
3.重点设计及编码
#includestdio.h
int c[100]={0};
void get(int d[])
{
int i,temp;
for(i=1;;++i)
{
d[i]=getchar()-48;
if(d[i]==-38||d[i]==-16)
break;
}
d[0]=i-1;
d[i]=0;
for(i=1;i=d[0]/2;++i)
{
temp=d[i];
d[i]=d[d[0]-i+1];
d[d[0]-i+1]=temp;
}
}
void jiafa(int x[],int y[])
{
int i;
c[0]=x[0];
for(i=1;i=x[0];++i)
{
c[i]=x[i]+y[i];
if(c[i]=10)
{
c[i]-=10;
x[i+1]+=1;
}
}
if(x[i]0)
{
c[i]=x[i];
c[0]++;
}
}
void jianfa(int x[],int y[])
{
int i=1;
c[0]=x[0];
for(i=1;i=x[0];++i)
{
c[i]=x[i]-y[i];
if(c[i]0)
{
c[i]+=10;
x[i+1]--;
}
}
while(c[--i]==10)
c[0]--;
}
int daxiao(int x[],int y[])
{
int i;
if(x[0]y[0])
return 1;
if(x[0]y[0])
return 0;
for(i=x[0];i=1;--i)
if(x[i]!=y[i])
break;
if(x[i]y[i])
return 1;
return 0;
}
void main()
{
int d,i,a[100]={0},b[100]={0};
printf(1为加法,2为减法\n);
scanf(%d,d);
getchar();
printf(请输入两个整数:\n);
get(a);
get(b);
switch(d)
{
case 1:
if(a[0]=b[0])
jiafa(a,b);
else
jiafa(b,a);
break;
case 2:
if(daxiao(a,b
您可能关注的文档
最近下载
- DB44T 2719-2025《有限空间智慧安全管控技术规范》.pdf VIP
- 河堤建设工程施工合同.doc VIP
- 2024年执业中药师考试复习资料重点知识点与背诵口诀.pdf VIP
- 职业院校课程思政与思政课程协同育人典型案例.pdf VIP
- 12D101-5(替代94D101-5)110kV及以下电缆敷设.docx VIP
- 北师大版小学六年级数学上册第1单元测试卷(有答案).docx VIP
- 第六章管式反应器.ppt VIP
- 六年级上册分数四则混合运算300题及答案.docx VIP
- 2024—2025学年河南省开封高级中学高一上学期第一次月考物理试卷.doc VIP
- 学校升旗台工程方案范文(3篇).docx VIP
文档评论(0)