- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
超长整数的处理报告
目录
一、需求分析 1
二、设计分析 2
三、主要界面截图 10
四、技术要点 11
五、个人总结 12
六、参考文献 13
七、源程序 14
一、需求分析
该课程设计的题目是一个典型的超长整数处理问题。根据程序设计的要求,需要用链表解决一个超长整数奇偶数位相加问题,一方面使我们对链表的运用有了更深刻的认识,另一方面使我们理解了超长整数在计算机中的运算过程。
1.问题要求分析
采用链表来表示一个带符号的超长整数(20位以上)。并且进行如下处理。
(1)将超长整数s上相邻的奇数位和偶数位的数相加,兵存放在奇数位上,构成一个新数(不考虑进位)。显示并保存在文件file31.txt中。
(2)超长整数要用字符串实现输入,按2位截取,转成整型存放在链表中,每个节点存两位,然后进行处理。
2.主要功能分析:
(1)数据输入:允许用户输入多组超长整数,每输入一个数都会将该数存入文件当中。
(2)数据计算:对输入的数据,首先显示出来,允许用户去选择要计算哪个数据,然后按照题目的要求将结果计算出来并保存到文件当中。
二、设计分析
主要有5个功能模块,每个模块对应一个C语言自定义函数。这些函数原型及其功能简述如下:
(1)菜单模块
void menu()
{
printf(***********************************************\n);
printf(***** *****\n);
printf(***** 菜单 *****\n);
printf(***** 1.输入超长整数 *****\n);
printf(***** 2.计算 *****\n);
printf(***** 0.退出 *****\n);
printf(***** *****\n);
printf(***********************************************\n);
}
函数功能:在程序运行之前显示菜单,供用户进行选择。
(2)字符串转换模块
void read(int len)
{
int i,k,count=0;
char ch;
struct unit *p;
for(i=0,k=len-1;ik;i++,k--)
{
ch=num[i];
num[i]=num[k];
num[k]=ch;
}
head=(struct unit*)malloc(sizeof(struct unit));
head-next=NULL;
for(i=1;i=len;i++)
{
if(count==0)
{
p=(struct unit*)malloc(sizeof(struct unit));
p-next=head-next;
head-next=p;
}
if(i%2==0)
{
p-even=num[i-1]-0;
count++;
if(count==2)
count=0;
}
else
{
p-odd=num[i-1]-0;
count++;
}
}
}
函数功能:由于输入的数据用字符串进行存储的,需要将字符串转化成整型并且用链表将其存储,该函数的功能就是将输入的字符串存储到一个链表中。
(3)输入数据模块
void input()
{
FILE *file=fopen(file32.txt,a);
if(file==NULL)
{
printf(文件打开失败!\n);
exit(0);
}
scanf(%s,num);
fprintf(file,%s\n,num);
printf( 写入的数据为:%s\n,num);
fclose(file);
}函数功能:该函数功能是进行数据的输入,并显示到屏幕上,存储到文件当中。
(4)显示数据模块
int show()
{
int i;
FILE *file=fopen(file31.txt,r);
if(file==NULL)
{
printf(打开文件失败!\n);
exit(0);
}
for(i=1;!feof(file);i++)
{
fscanf(file,%s\n,num);
printf(%d.%s\
文档评论(0)