今天给大家分享一个dos程序的源代码
这个程序是本人在学习中的经验分享
如果有问题或者建议,欢迎大家一起交流
源代码:
1 /*本程序为一个进制转换器 2 本程序不作为商业用途,完全为技术交流 3 喜欢C语言的同学关注我的博客,有值得推荐的我一定会推荐给大家*/ 4 #include5 #include 6 #include 7 #include 8 9 //对函数的声明 10 void fact1(); 11 int func1(int n); 12 void func2(int n, int num); 13 void func3(int *a, int i, int n); 14 void func4(int m); 15 void func5(); 16 17 int menu; //定义菜单做为一个全局变量 18 int count = 1; 19 int main(void) 20 { 21 //给菜单设置一个循环 22 do 23 { 24 printf("第%d次\n", count++); 25 printf("**********************************************\n"); 26 //调用倒计时函数 27 func5(); 28 //定义菜单的功能 29 puts("!!欢迎使用进制转换器!!\n"); 30 puts("1.十进制->二进制"); 31 puts("2.十进制->八进制"); 32 puts("3.十进制->十六进制"); 33 puts("0.退出\n"); 34 //输入菜单 35 printf("请输入你的选项:"); scanf_s("%d", &menu); 36 //执行菜单 37 if (menu == 0) break; 38 else if (menu >= 1 && menu <= 3) 39 fact1(); 40 else 41 printf("抱歉,你输入的选项有误;请重新输入!!!\n"); 42 printf("\n**********************************************\n"); 43 printf("\n\n"); 44 } while (menu != 0); 45 46 } 47 //定义菜单为1时的函数 48 void fact1() 49 { 50 int num; 51 int n; 52 printf("请输入一个数:"); scanf_s("%d", &num); 53 n = func1(menu); 54 func2(n, num); 55 56 } 57 //定义需要转化的进制数的函数 58 int func1(int n) 59 { 60 //如果为1,则返回2进行二进制 61 if (menu == 1) 62 return 2; 63 //如果为2,则返回8进行八进制 64 else if (menu == 2) 65 return 8; 66 else 67 return 16; 68 } 69 //定义处理进制的函数 70 void func2(int n, int num) 71 { 72 int i = 0; 73 int a[100]; 74 do 75 { 76 *(a + i) = num % n; 77 num /= n; 78 i++; 79 } while (num != 0); 80 func3(a, i, n); 81 } 82 //定义输出进制的函数 83 void func3(int *a, int i, int n) 84 { 85 int j; 86 printf("转换为%d进制为:", n); 87 for (j = i - 1;j >= 0;j--) 88 { 89 if (n == 16 && (*(a + j)) >= 10 && (*(a + j)) <= 16) 90 func4((*(a + j))); 91 else 92 printf("%d", *(a + j)); 93 } 94 } 95 //定义转换16进制的时候函数 96 void func4(int m) 97 { 98 switch (m) 99 {100 case 10: printf("A"); break;101 case 11: printf("B"); break;102 case 12: printf("C"); break;103 case 13: printf("D"); break;104 case 14: printf("E"); break;105 case 15: printf("F"); break;106 }107 }108 //自定义倒计时函数109 void func5()110 {111 int i;112 //从5开始倒计时113 for (i = 5;i >= 1;i--)114 {115 printf("%d\b", i);116 Sleep(1000); //设置延时1秒117 }118 printf("\b");119 }
本代码仅大家学供习交流,不做其它用途