C語言dos程序源代碼分享(進制轉換器)

今天給你們分享一個dos程序的源代碼windows

這個程序是本人在學習中的經驗分享函數

若是有問題或者建議,歡迎你們一塊兒交流學習

源代碼:spa

  1 /*本程序爲一個進制轉換器
  2 本程序不做爲商業用途,徹底爲技術交流
  3 喜歡C語言的同窗關注個人博客,有值得推薦的我必定會推薦給你們*/
  4 #include <stdio.h>
  5 #include<stdlib.h>
  6 #include <time.h>
  7 #include<windows.h>
  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 }

本代碼僅你們學供習交流,不作其它用途code

相關文章
相關標籤/搜索