Advertisement
Guest User

Untitled

a guest
Dec 1st, 2015
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.65 KB | None | 0 0
  1. #include <conio.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include <cctype>
  6. FILE *fw,*fr;
  7. void menu();
  8. int x=0;
  9. char *encription(const char S),*decription(char *text);
  10. void menu(){
  11. printf("***** Speak friend and enter *****\n");
  12. printf("***** Welcome to a program which (en/de)crypts text with a Morse code *****\n");
  13. printf("***** Enter 1 for encrypting *****\n");
  14. printf("***** Enter 2 for decrypting *****\n");
  15. printf("***** Enter 3 for help *****\n");
  16. printf("***** Enter 4 to close the program *****\n");
  17. }
  18. int main() {
  19. fw=fopen("I:\\Documents and Settings\\Jacek\\Pulpit\\meh\\tlumaczenie2.txt","w");
  20. fr=fopen("I:\\Documents and Settings\\Jacek\\Pulpit\\meh\\morse.txt","r");
  21. if(fr==NULL)
  22. {
  23. printf("error");
  24. exit(1);
  25. }
  26. menu();
  27. char S=0;
  28. char text[100];
  29.  
  30. while(S!=4)
  31. {
  32. scanf("%d",&S);
  33. switch(S)
  34. {
  35. case 1:
  36. {
  37. printf("***** encryption of given text, which is: *****\n\n");
  38. fgets(text,200,fr);
  39. puts(text);
  40. printf("\n***** morse code *****\n");
  41. printf("***** every letter is separated by | sign *****\n");
  42. printf("***** every word is separated by space *****\n\n");
  43. while(text[x]!='\0')
  44. {
  45. if(x==strlen(text)){
  46. text[++x]='\0';
  47. }
  48.  
  49. fprintf(fw,"%s",encription(toupper(text[x])));
  50. fprintf(fw,"|");
  51. printf("%s",encription(toupper(text[x])));
  52. printf("|");
  53. x++;
  54. }
  55. break;
  56. }
  57.  
  58. case 2:
  59. {
  60. printf("***** decryption of given morse code, which is: *****\n");
  61. fgets(text,100,fr);
  62. puts(text);
  63. printf("***** decrypted text *****\n");
  64. text[strlen(text)+1]='\0';
  65. puts(decription(text));
  66. break;
  67.  
  68. }
  69. case 3:
  70. {
  71. printf(" 1 - latin to morse \n 2 - morse to latin \n 4 - close the program \n");
  72. printf(" Morse code consists of . (dot) and - (dash)\n");
  73. printf("and these are only signs you're allowed to use in morse\n");
  74. printf("In case of used not allowed signs, you will receive \n");
  75. printf("(unspecified) in encryption \n nothing in decryption\n");
  76. break;
  77. }
  78.  
  79. default:
  80. {
  81. printf("***** Please type 3 for more informations *****\n");
  82. break;
  83. }
  84.  
  85. }
  86. }
  87. fclose(fw);
  88. fclose(fr);
  89. return 0;
  90. }
  91. char *encription(const char S)
  92. {
  93.  
  94. switch(S)
  95. {
  96. case 'A':{
  97. return(".-");
  98. break;
  99. }
  100. case 'B':{
  101. return("-...");
  102. break;
  103. }
  104. case 'C':{
  105. return("-.-.");
  106. break;
  107. }
  108. case 'D':{
  109. return("-..");
  110. break;
  111. }
  112. case 'E':{
  113. return(".");
  114. break;
  115. }
  116. case 'F':{
  117. return("..-.");
  118. break;
  119. }
  120. case 'G':{
  121. return("--.");
  122. break;
  123. }
  124. case 'H':{
  125. return("....");
  126. break;
  127. }
  128. case 'I':{
  129. return("..");
  130. break;
  131. }
  132. case 'J':{
  133. return(".---");
  134. break;
  135. }
  136. case 'K':{
  137. return("-.-");
  138. break;
  139. }
  140. case 'L':{
  141. return(".-..");
  142. break;
  143. }
  144. case 'M':{
  145. return("--");
  146. break;
  147. }
  148. case 'N':{
  149. return("-.");
  150. break;
  151. }
  152. case 'O':{
  153. return("---");
  154. break;
  155. }
  156. case 'P':{
  157. return(".--.");
  158. break;
  159. }
  160. case 'Q':{
  161. return("--.-");
  162. break;
  163. }
  164. case 'R':{
  165. return(".-.");
  166. break;
  167. }
  168. case 'S':{
  169. return("...");
  170. break;
  171. }
  172. case 'T':{
  173. return("-");
  174. break;
  175. }
  176. case 'U':{
  177. return("..-");
  178. break;
  179. }
  180. case 'V':{
  181. return("...-");
  182. break;
  183. }
  184. case 'W':{
  185. return(".--");
  186. break;
  187. }
  188. case 'X':{
  189. return("-..-");
  190. break;
  191. }
  192. case 'Y':{
  193. return("-.--");
  194. break;
  195. }
  196. case 'Z':{
  197. return("--..");
  198. break;
  199. }
  200. case '1':{
  201. return(".----");
  202. break;
  203. }
  204. case '2':{
  205. return("..---");
  206. break;
  207. }
  208. case '3':{
  209. return("...--");
  210. break;
  211. }
  212. case '4':{
  213. return("....-");
  214. break;
  215. }
  216. case '5':{
  217. return(".....");
  218. break;
  219. }
  220. case '6':{
  221. return("-....");
  222. break;
  223. }
  224. case '7':{
  225. return("--...");
  226. break;
  227. }
  228. case '8':{
  229. return("---..");
  230. break;
  231. }
  232. case '9':{
  233. return("----.");
  234. break;
  235. }
  236. case '0':{
  237. return("-----");
  238. break;
  239. }
  240. case ' ':
  241. {
  242. return(" ");
  243. break;
  244. }
  245. default:
  246. {
  247. return("(unspecified)");
  248. break;
  249. }
  250. }
  251. }
  252. char *decription(char *text)
  253. {
  254. int a=0,b=0,c=0;
  255. int lenght;
  256. lenght=strlen(text);
  257. char *tab[]= {".-","-...","-.-.","-..", ".", "..-.", "--.",
  258. "....", "..", ".---", "-.-", ".-..", "--",
  259. "-.", "---", ".--.", "--.-", ".-.", "...", "-",
  260. "..-", "...-", ".--", "-..-", "-.--", "--..",
  261. ".----","..---","...--","....-",".....","-....",
  262. "--...","---..","----.","-----"};
  263. char *result,*str;
  264. str=(char*)calloc(5,sizeof(char));
  265. result=(char*)calloc(lenght, sizeof(char));
  266. while(*text)
  267. {
  268. str[a]=*text;
  269. if(*text=='|' || *text=='\0')
  270. {
  271. str[a]=0;
  272. text++;
  273. for(c=0;c<=36;c++)
  274. {
  275. if(strcmp(str,tab[c])==0)
  276. {
  277. result[b]=c+'A';
  278. b++;
  279. }
  280. a=0;
  281. }
  282. }
  283. else
  284. {
  285. a++;
  286. text++;
  287. }
  288. }
  289. _getch();
  290. return result;
  291. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement