C语言课程
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
-数制转换
目 录
1 前言 ........................................................................................................... 1 2 需求分析 ................................................................................................... 1
2.1 课程设计目的 ................................................................................... 1
2.2 课程设计任务 ................................................................................... 1
2.3 设计环境 ........................................................................................... 1
2.4 开发语言 ........................................................................................... 1 3 分析和设计................................................................................................ 1
3.1 模块设计 ........................................................................................... 1
3.2 系统
流程
快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计
图 ....................................................................................... 2
3.3 主要模块的流程图 ........................................................................... 2 4 具体代码实现 ............................................................................................ 3 5 课程设计
总结
初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf
............................................................................................ 4
5.1 程序运行结果 / 预期运行结果 ....................................................... 4
5.2 课程设计体会 ................................................................................... 5参考文献 ....................................................................................................... 6 致 谢 ........................................................................................................... 6 附 录……………………………………………………………………… 6
1 前言
编写一个程序来处理数制转换。从键盘输入其中某进制的数据与要转换成的进制,输出转换后的结果。
2 需求分析
2.1 课程设计目的
从键盘输入其中某进制的数据与要转换的进制输出转换后的结果。 2.2 课程设计任务
完成二、八、十、十六进制之间的转换。
2.3 设计环境
(1)WINDOWS 2000/2003/XP/7/Vista系统
(2)Visual C++或TC集成开发环境
2.4 开发语言
C语言
3 分析和设计
1、用两个宏定义change1(ch)和change2(in)实现从字符型数值到整型数的相互转换。
2、首先从键盘上选择输入进制及输出进制(2~16)存入整型变量i,k,然后判断输入的数是否在2—16之间,若不在,则提示错误。
3、从键盘上输入需要转换的字符数值存入一个字符数组x[],判断其数值格式是否符合要求,若不符合,则提示错误并中止程序运行。
4、将需要转换的字符数值通过宏定义转化为整型数,然后用公式 m=(m+change1(x[j]))*i累加,之后用m/i把它换成十进制的整型数据存入m。
5、将m通过公式m=m/k及x[j]=change2(n%k)将其转换成需输出的进制 3.1 模块设计
要用到的函数和语句
1(
/*头文件*/
2(#define /*宏定义*/
3(int main /*主函数*/
4(fun1.fun2.fb /*调用函数*/
5(printf() /*输出语句*/
6. scanf() /*输入语句*/
1
7. if语句 /*条件语句*/
8. for语句 /*循环语句*/
3.2 系统流程图
开始
调用函数fa1(v)
调用函数fa2(v)
调用函数fb(v)
调用输出函数printf(v)
结束
图3.2-1.系统流程图
首先从键盘上选择输入进制及输出进制(2~16)存入整型变量i,k,然后判断输入的数是否在2—16之间,若不在,则提示错误。然后就是进入调用函数fa1(v),在fa1(v)的基础上再调用fa2(v),将需输入的进制转换成十进制,最后在调用fb(v),将十进制数转换成输出进制数,最终实现数制转换。
3.3 主要模块的流程图
2
图 3.3-1.判断输入数据格式是否正确 图3.3-2 将十进制数转换成输出进制数
图3.3-3.输入数制以及是否正确 图3.3-4. 将需输入的进制转换成十进制
4 具体代码实现
见附录
3
5 课程设计总结
5.1 程序运行结果 / 预期运行结果
图5.1- 1
图5.1- 1将六进制转换为十五进制,再输入数据12345,得出数据845
图5.1- 2
图5.1-2将四进制转换为十二进制,输入数据123,得出数据23
4
图5.1- 3
图5.1-3将五进制转换为十五进制,输入数据1254,结果输入数据格式错误
图5.1- 4
图5.1-4将二进制转换为十七进制,由于该程序只能在2~16之间转换,所以输入数据错误
5.2 课程设计体会
在这次课程设计中运用了两个宏定义来change1(ch)和change2(in)实现从字符型数值到整型数的相互转换。但是不足的就是在设计的过程中花费的时间很多、步骤有些乱;还有就是很多知识点都忘记了,也就是对书本的不熟悉。这方面要改进,所以在行动之前要有
计划
项目进度计划表范例计划下载计划下载计划下载课程教学计划下载
,这样按计划进行才会有条不紊,还有就是对书本中的基础知识的加深,只有把基础打牢固才会游刃有余。
5
参考文献
[1] 张福祥. C语言程序设计[M]. 沈阳:辽宁大学出版社,2010.1 [2] 张福祥,王萌(C语言程序设计习题解答与实验实训[M](沈阳:辽宁大学出版社,2010.1 [3] 牛莉,刘远军等(计算机等级考试辅导教程[M](北京:中国铁道出版社,2008
致 谢
这次课程设计能做好,老师平时的教导肯定是不可以少的,我也因此才能掌握了
C语言,将C语言运用于程序设计;另外,在设计中我问过老师问题,老师帮助我解
答问题,才使课程设计得以顺利进行。谢谢老师~
附 录
#include
#define change1(ch) (ch>='0'&&ch<='9'?(ch-48):(ch-55))
#define change2(in) (in>=0&&in<=9?(in+48):(in+55))
int i,j,k,n,m=0;char v[254];/*i为输入进制数,j为循环参数,k为输出进制数,
m为输入数值转换成十进制数的值,
n为十进制数输出数值的辅助参数*/ int main()
{
printf("请选择输入及输出的进制:(2~16)\n");
scanf("%d %d",&i,&k);
if(i<2||i>16)
printf("第一个输入数据错误,请重新输入!\n");
else if(k<2||k>16)
printf("第二个输入数据错误,请重新输入!\n");
printf("请选择需要转换的数:\n");
scanf("%s",v);
fa1(v);
}
/*将需输入的进制转换成十进制*/
int fa1(char x[])
6
{
int j;
for(j=0;x[j]!=0;j++)
{
if(x[j]<'0'||x[j]>change2(i-1))
{printf("输入数据格式错误,请重新输入!\n");break;}
}
if(x[j]==0)
fa2(v);
}
int fa2(char x[]) {
for(j=0;x[j]!=0;j++)
{
m=(m+change1(x[j]))*i;
}
m=m/i;
fb(v);
}
/*将十进制数转换成输出进制数*/
int fb(char x[])
{
int j;
n=m;
for(j=0;m/k!=0;j++)
{
m=m/k;
x[j]=change2(m%k);
}
for(j=j-1;j>=0;j--)
printf("%c",x[j]);
x[j]=change2(n%k);
printf("%c\n",x[j]); }
7