今天給你們分享一個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