进制转换C语言课程设计.docx
- 文档编号:29694280
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:18
- 大小:144.10KB
进制转换C语言课程设计.docx
《进制转换C语言课程设计.docx》由会员分享,可在线阅读,更多相关《进制转换C语言课程设计.docx(18页珍藏版)》请在冰豆网上搜索。
进制转换C语言课程设计
序号:
06
学号:
课程设计
设计课程名称:
C语言课程设计
题目:
进制转换
学生姓名:
学院(系):
怀德学院三系专业班级:
指导教师:
专业技术职务:
讲师
设计时间:
2011年9月8日2011年9月20日
一、设计题目进制转换系统
二、设计内容
【题目描述】
本系统要求具有以下功能:
1、具有将十进制转换为二进制功能
2、具有将十进制转换为十六进制功能
3、具有将二进制转换为十进制功能
4、具有将十六进制转换为十进制功能
【题目要求】
(1)为各项操作功能设计一个菜单。
应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目;
(2)要求以上功能分别用函数实现。
并要求用C语言的文件操作语句将以上所有结果保存在文件XX.out。
【输入/输出要求】
(1)应用程序运行后,先显示一个菜单,然后用户根据需要选择相应的操作项目。
进入每个操作后,根据程序的提示输入相应的信息;
(2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
三、基本要求
1、编写源程序的要求:
(1)能够实现任务书中的功能;
(2)尽可能使界面友好、直观、易操作
(3)源程序要有适当的注释,使程序容易阅读。
2、撰写“课程设计报告”,要求如下:
(1)封面:
统一采用《江苏工业学院课程设计说明书》封面格式
(2)任务书
(3)目录
(4)“课程设计报告”正文
3、课程设计验收要求:
(1)运行所设计的系统;
(2)回答有关问题;(3)提交课程设计报告;(4)提交源程序。
四、进度安排
1、系统分析、设计准备阶段:
8学时
2、编程调试阶段:
46学时
3、总结和书写课程设计报告阶段:
4学时
4、考核阶段:
2学时
指导教师:
王军2011年月日
系主任:
2011年月日
教学院长:
2011年月日
1意义及功能
1.1意义:
加强学生对节省计算的时间,方便使用者快速、简洁得到答案。
1.2功能:
1、能将十进制转换为二进制
2、能将十进制转换为十六进制
3、能将二进制转换为十进制
4、能将十六进制转换为十进制
2功能结构图:
2.1结构图
2.2流程图
3各功能介绍
3.1十变二功能
主界面输入1后回车,调用input()函数,调用输入函数#include"stdio.h",输入十进制数,将十进制数用短除法初以2,能整除返回0,若不能整除返回二,将结果保存到一个数组中,调用输出函数#include"stdio.h"函数将数组元素逆序输出,并运算结果保存在“十变二”.out文件中,所得结果即为所转换的二进制数。
3.2十变十六功能
主界面输入2后回车,调用del()函数,调用输入函数#include"stdio.h",输入十进制数,用短除法处以十六,如果所除得结果的数码为0-9,则保存在一个数组中,若数码大于9则需要将它得ASCII码加55变成相应的字符数码,将结果保存到数组中,调用输出函数#include"stdio.h"最后将数组元素逆序输出,运算结果保存在“十变十六”.out文件中,所得结果即为所转换的十六进制数。
3.3二变十功能
主界面输入3后回车,调用arrge()函数,调用输入函数#include"stdio.h"输入二进制数,调用字符串函数#include”string.h”,求得输入二进制的长度,从最低位开始用每位的ASCII码减去0的ASCII码,求的每位数的大小,再用一个循环每位的大小最后将每位想家,所得之和即为所要十进制数,调用输入函数#include"stdio.h",将结果输出,并最后将运算结果保存在“二变十”.out文件中,所得结果即为所转换的二进制数。
3.4十六变十功能
主界面输入4后回车,调用find()函数,调用输入函数#include"stdio.h"输入十六进制数,调用#include”string.h”,求的所输入十六进制数的长度,从第一位起判断所输入的十六进制数码是否属于0-9,直接用该数的ASCII码与0的ASCII码相减,得到该数的大小,若该数的数码不属于0-9,用该数码减去a的ASCII码在加10,s=t*16n-1就可以求每位数所代表的十进制数的大小,最后将总数相加,调用输入函数#include"stdio.h"输十进制数,并将结果保存在“十六”.out磁盘中所得结果即为所转换的十制数。
3.5退出功能
主界面输入5回车,退出程序。
4调试运行
4.1主界面
组建后运行的主界面,该界面主要有五个功能,每个功能的实现必须从主界面进入,功能实现之后按回车键返回主菜单。
4.2十进制转换为二进制
4.3十进制转换为十六进制
4.4二进制转换为十进制
4.5十六进制转换为十进制
5系统说明
5.1十进制转换为二进制使用说明
主界面输入1,进入十变二程序界面,根据提示输入一个十进制数,按回车即输出所转换的二进制数,按回车返回主菜单。
5.2十进制转换为十六进制使用说明
主界面输入2,进入十变十六程序界面,根据提示输入一个十进制数,按回车即输出所转换的十六进制数,按回车返回主菜单。
5.3二进制转换为十进制使用说明
主界面输入3,进入二变十程序界面,根据提示输入一个二进制数,按回车即输出所转换的十进制数,按回车返回主菜单。
5.4十六进制转换为十进制使用说明
主界面输入,进入十六变十程序界面,根据提示输入一个十六进制数,按回车即输出所转换的十进制数,按回车返回主菜单。
6源程序代码
//3.cpp:
Definestheentrypointfortheconsoleapplicatio
#include"stdafx.h"
#include"stdio.h"//输入输出函数//
#include"stdlib.h"//动态分配存储空间函数//
#include"string.h"//数组与字符串转换函数//
voidinput();//十变二模块//
voiddel();//十变十六模块//
voidarrange();//二变十模块//
voidfind();//十六变十模块//
voidmain()//主函数//
{
charc;
inti;
do
{
system("cls");//清屏//
printf("\n");//输出主界面//
printf("\n");
for(i=0;i<36;i++)
printf("*");
printf("进制转换");
for(i=0;i<36;i++)
printf("*");
printf("\n");
printf("1:
十进制转换为二进制\n");
printf("2:
十进制转换为十六进制\n");
printf("3:
二进制转换为十进制\n");
printf("4:
十六进制转换为十进制\n");
printf("5:
退出\n");
printf("请选择输入项[1\\2\\3\\4\\5]\n");
printf("\n");
do
{
for(i=0;i<80;i++)
printf("*");
printf("请选择您想转换的类型:
");
c=getchar();
}while(c!
='1'&&c!
='2'&&c!
='3'&&c!
='4'&&c!
='5');
getchar();//吃掉上一部的回车键//
switch(c)//选择想要转换的类型//
{
case'1':
input();break;
case'2':
del();break;
case'3':
find();break;
case'4':
arrange();break;
case'5':
exit(0);
}
printf("按回车键返回主菜单:
\n");
getchar();
system("cls");//清屏//
}while
(1);
}
voidinput()
{
FILE*fp;//定义文件指针//
inta=0,i,k,n;
intb[32];
fp=fopen("十变二.out","w");//已只写的方式打开"十变二.out"文件//
system("cls");//清屏//
printf("输入十进制数:
\n");
scanf("%d",&i);
printf("转换为二进制数:
\n");
if(i==0)printf("0");
while(i>0)
{
k=i%2;//对输入的数取模//
b[a++]=k;
i=i/2;
}
n=a;
while(a>0)
{
printf("%d",b[--a]);//结果逆序输出//
}
if(i<0)printf("error");
getchar();
while(n>0)
{
fprintf(fp,"%d",b[--n]);//将结果写到磁盘文件中//
}
fclose(fp);//关闭文件指针//
}
voiddel()
{
FILE*fp;
inti=0,j,n;
intb[8];//存放输入的十六进制数//
chara[16];//保存所得结果//
fp=fopen("十变十六.out","w");//已只写的方式打开"十变十六.out"文件//
system("cls");
printf("输入十进制数:
\n");
scanf("%d",&n);
while(n)
{
b[i]=n%16;//取模//
n/=16;//取整//
i++;
}
printf("十六进制数为:
\n");
for(j=0;j
{
if(b[j]>9)//判断出得数的范围//
{
b[j]=b[j]+55;a[j]=b[j];//将结果ASCII换成字母//
}
elsea[j]=b[j]+48;//将结果ASCII换成数字//
}
for(j=i-1;j>=0;j--)//结果逆序输出//
printf("%c",a[j]);
getchar();
for(j=i-1;j>=0;j--)//结果保存到磁盘文件中//
{
fprintf(fp,"%c",a[j]);}
fclose(fp);//关闭文件//
}
voidfind()
{
FILE*fp;
inti,t,n,sum=0;
chars[50];
fp=fopen("二变十.out","w");//已只写的方式打开"二变十.out"文件//
system("cls");
printf("输入二进制数:
\n");
gets(s);
n=strlen(s);//计算输入二进制数的长度//
for(i=0;i { t=s[i]-'0'; sum=sum*2+t; } printf("十进制数为: \n%d",sum); fprintf(fp,"该二进制转换的十进制为%d",sum); getchar(); fclose(fp); } voidarrange() { FILE*fp; inti,t,n,sum=0; chars[50]; fp=fopen("十六变十.out","w"); system("cls"); printf("输入十六进制数: \n"); scanf("%s",s); n=strlen(s); for(i=0;i { if(s[i]<='9')t=s[i]-'0'; elset=s[i]-'a'+10; sum=sum*16+t; } printf("十进制数为: \n%d",sum); fprintf(fp,"该十六进制转换的十进制为%d",sum); getchar(); fclose(fp); } 7心得体会 这几个礼拜的课程设计使我收获很多,尤其是在解决一个问题方面,老师交给我们的不仅仅是只是,更是解决问题的能力,从问题的分析、寻找解题思路、查阅资料寻找解题方法到最后的解决问题,这些都是对我们能力的锻炼。 我们在完成一个程序的同时不仅需要扎实的C语言基础,还要有熟练的上机操作能力,从排版到制作流程图,我们还要对word的基本操作有一定的了解,还有当我遇到一些难题的时候一个人解决不了我们就需要学会合作,学会请教别人,单靠一个人的力量是很难完场一件事的,我们必须要有团队合作意识。 不论题目有多难,只要我们努力去做了,而不是敷衍了事,我们就一定可以顺利完成! 8日志 9.8 刚刚拿到课程设计的题目,看了好久,发现跟书上的题目相差很远,有些知识都是没有教过的,毫无头绪。 9.9 听老师给我们讲解了一个例子之后,对一个解题过程有了大致的了解 9.12 查阅了很多资料后对这个程序有了一定的了解,基本确定了大致思路,具体算法设计还是不会做 9.13 根据我之前的思路,在查阅了一定的资料以及请教了许多同学之后我终于做好了第一个项目“十进制转换成二进制”,心情有点激动 9.14 发现第一个功能其实跟第二个差不多,顺藤摸瓜的把第二个“十进制转换为十六进制”做出来了 9.15 继续查找资料,努力思考剩下两个程序 9.18 经过几天的努力摸索,整个程序基本被我摸索出来了,剩下的就是逐步完善整个程序了 9.19 晚自习老师给我们讲解了一下课程设计的格式要求,看了一段关于文档排版视频之后,大致明白了课程设计报告怎么做 9.20 做课程设计报告,把文档排版号,画好流程图 9.21 检查和完善程序,准备答辩 9参考文献 [1]H.M.DeitelP.J.Deitel.,C程序设计教程。 北京: 机械工程出版社,2000.7 [2]谭浩强.c程序设计.第三版.北京: 清华大学出版社,2005年 [3]苏小红.C语言程序设计教程。 北京: 电子工业出版社,2002年 [4]向艳,C语言程序设计清华大学出版社,2008.9 [5]袁启昌,C++语言程序设计北京机械工程出版社,200.7 [6]谭浩强.c程序设计.第三版.北京: 清华大学出版社,2005年 [7]RobertB.Murry,C++StrategiesandTactics,Addison-Wesley,1993 [8]王松编著.VisualC++6.0程序设计与开发指南。 北京: 高等教与出版设,1999 [9]沈孟涛计算机信息技术基础北京: 机械工程出版社,2000.7 [10]白康生vb程序设计学习和实验指导北京: 机械工程出版社,2000.7 [11]SchildtH著若等译。 ANSIC标准详解。 北京: 学苑出版设,1994 [12]张基温编著.C程序设计案例教程..北京: 清华大学出版社,2007 [13]崔武子编著.C程序设计教程.北京: 清华大学出版社,2007 [14]甘玲等编著.解析C程序设计.北京: 清华大学出版社,2007
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 转换 语言 课程设计