Advertisement
Guest User

Chemistry Project

a guest
Nov 9th, 2013
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.  * File:   chemistry.c
  3.  * Author: CaptFuzzyboots
  4.  *
  5.  * Created on November 4, 2013, 3:32 PM
  6.  */
  7.  
  8. #include <stdio.h>
  9. #include <stdlib.h>
  10. #define et &&
  11. #define ROOM_TEMP 24
  12.  
  13. int findstate(int mp, int bp)
  14. {
  15.     if(ROOM_TEMP < mp)
  16.         return 1;
  17.     else if(ROOM_TEMP < bp et ROOM_TEMP > mp)
  18.         return 2;
  19.     else
  20.         return 3;
  21. }
  22. /*
  23.  State...
  24.  1 - Gaseous
  25.  2 - Liquid
  26.  3 - Solid
  27.  */
  28. int main(int argc, char** argv) {
  29.     struct element {
  30.         char name[20];
  31.         char symbol[3];
  32.         int atomicnum;
  33.         int atomicmass;
  34.         int bp;
  35.         int mp;
  36.         int state;
  37.     };
  38.     int choice, i;
  39.     /************************/
  40.     // initialize list [ bp > mp ]
  41.     struct element list[88] = {
  42.                 {
  43.             "Hydrogen", "H", 1, 1, -253, -259
  44.         }
  45.  
  46.         {
  47.             "HELIUM", "He", 2, 4 , -269, -272
  48.         }
  49.  
  50.         {
  51.             "Lithium", "Li", 3, 6, 1347, 180
  52.         }
  53.  
  54.         {
  55.             "Berryllium", "Be", 4, 9, 2970, 1278
  56.         }
  57.        
  58.         {
  59.             "Boron", "B", 5, 10, 2550, 2300
  60.         }
  61.        
  62.         {
  63.             "Carbon", "C", 6, 12, 4827, 3500
  64.         }
  65.  
  66.         {
  67.             "Nitrogen", "N", 7, 14, -196, 210
  68.         }
  69.  
  70.         {
  71.             "Oxygen", "O", 8, 15, -183, -218
  72.         }
  73.  
  74.         {
  75.             "Flourine", "F", 9, 18, -188, -220
  76.         }
  77.  
  78.         {
  79.             "NEON", "Ne", 10, 20, -246, - 249
  80.         }
  81.  
  82.         {
  83.             "Sodium", "Na", 11, 23, 883, 98
  84.         }
  85.  
  86.         {
  87.             "Magnesium", "Mg", 12, 24, 1090, 639
  88.         }
  89.  
  90.         {
  91.             "Aluminum", "Al", 13, 26, 2467,660
  92.         }
  93.  
  94.         {
  95.             "Silicon", "Si", 14, 28, 2355, 1410
  96.         }
  97.  
  98.         {
  99.             "Phosphorus", "P", 15, 30, 280, 44,
  100.         }
  101.  
  102.         {
  103.             "Sulfur", "S", 16, 32, 0.052, 2.7,
  104.         }
  105.  
  106.         {
  107.             "Chlorine", "Cl", 17, 35, -35, -101
  108.         }
  109.  
  110.         {
  111.             "ARGON", "Ar", 18, 39, -186, -189
  112.         }
  113.  
  114.         {
  115.             "Potassium", "K", 19, 39, 774, 64
  116.         }
  117.  
  118.         {
  119.             "Calcium", "C", 20, 40, 1484, 839
  120.         }
  121.  
  122.         {
  123.             "Scandium", "Sc", 21, 44, 2832, 1539
  124.         }
  125.  
  126.         {
  127.             "Titanium", "Ti", 22, 47, 3287, 1660
  128.         }
  129.  
  130.         {
  131.             "Vanadium", "V", 23, 50, 3380, 1890
  132.         }
  133.  
  134.         {
  135.             "Chromium", "Cr", 24, 51, 2672, 1857
  136.         }
  137.  
  138.         {
  139.             "Manganese", "Mn", 25, 54, 1962, 1245
  140.         }
  141.  
  142.         {
  143.             "Iron", "Fe", 26, 55, 2750, 1535
  144.         }
  145.  
  146.         {
  147.             "Cobalt", "Co", 27, 58, 2870, 1495
  148.         }
  149.  
  150.         {
  151.             "Nickel", "Ni", 28, 58, 2732, 1453
  152.         }
  153.  
  154.         {
  155.             "Copper", "Cu", 29, 63, 2567, 1083
  156.         }
  157.  
  158.         {
  159.             "Zinc", "Zn", 30, 65, 420, 907
  160.         }
  161.  
  162.         {
  163.             "Gallium", "Ga", 31, 69, 29, 2284
  164.         }
  165.  
  166.         {
  167.             "Germanium", "Ge", 32, 72, 937, 2830
  168.         }
  169.  
  170.         {
  171.             "Arsenic", "As", 33, 74, 814, 615
  172.         }
  173.  
  174.         {
  175.             "Selenium", "Se", 34, 78, 217, 688
  176.         }
  177.  
  178.         {
  179.             "Bromine", "Br", 35, 79, -7, 58
  180.         }
  181.  
  182.         {
  183.             "KRYPTON", "Kr", 36, 83, -157, -153
  184.         }
  185.  
  186.         {
  187.             "Rubidium", "Rb", 37, 85, 39, 696
  188.         }
  189.  
  190.         {
  191.             "Strontium", "Sr", 38, 87, 769, 1384
  192.         }
  193.  
  194.         {
  195.             "Yttrium", "Y", 39, 88, 1500, 4400
  196.         }
  197.  
  198.         {
  199.             "Zirconium", "Zr", 40, 91, 1852, 4400
  200.         }
  201.  
  202.         {
  203.             "Niobium", "Nb", 41, 92, 2410, 5100
  204.         }
  205.  
  206.         {
  207.             "Molybdenum", "Mo", 42, 95, 2610, 4825
  208.         }
  209.  
  210.         {
  211.             "Technetium", "Tc", 43, 97, 2200, 4877
  212.         }
  213.  
  214.         {
  215.             "Ruthenium", "Ru", 44, 101, 2250, 4150
  216.         }
  217.  
  218.         {
  219.             "Rhodium", "Rh", 45, 102, 1970, 3727
  220.         }
  221.  
  222.         {
  223.             "Palladium", "Pd", 46, 106, 1560, 2927
  224.         }
  225.  
  226.         {
  227.             "Silver", "Ag", 47, 107, 962, 2212
  228.         }
  229.  
  230.         {
  231.             "Cadmium", "Cd", 48, 112, 321, 767
  232.         }
  233.  
  234.         {
  235.             "Indium", "In", 49, 114, 156, 2000
  236.         }
  237.  
  238.         {
  239.             "Tin", "Sn", 50, 118, 232, 2270
  240.         }
  241.  
  242.         {
  243.             "Antimony", "Sb", 51, 121, 631, 1380
  244.         }
  245.  
  246.         {
  247.             "Tellurium", "Te", 52, 127, 450, 1390
  248.         }
  249.  
  250.         {
  251.             "Iodine", "I", 53, 126, 114, 184
  252.         }
  253.  
  254.         {
  255.             "XENON", "Xe", 54, 131, -112, -107
  256.         }
  257.  
  258.         {
  259.             "Caesium", "Cs", 55, 132, 28, 669
  260.         }
  261.  
  262.         {
  263.             "Barium", "Ba", 56, 137, 725, 1640
  264.         }
  265.  
  266.         {
  267.             "(R)Lanthanum", "La", 57, 138, 826
  268.         }
  269.  
  270.         {
  271.             "(R)Cerium", "Ce", 58, 140, 799, 3426
  272.         }
  273.  
  274.         {
  275.             "(R)Praseodymium", "Pr", 59, 140, 941, 3512
  276.         }
  277.  
  278.         {
  279.             "(R)Neodymium", "Nd", 60, 144, 3100, 1024,
  280.         }
  281.  
  282.         {
  283.             "(R)Promethium", "Pm", 61, 145, 3000, 1100
  284.         }
  285.  
  286.         {
  287.             "(R)Samarium", "Sm", 62, 150, 1803, 1072
  288.         }
  289.  
  290.         {
  291.             "(R)Europium", "Eu", 63, 151, 1527, 826
  292.         }
  293.  
  294.         {
  295.             "(R)Gandolinium", "Gd", 64, 157, 3250, 1585
  296.         }
  297.  
  298.         {
  299.             "(R)Terbium", "Tb", 65, 158, 3230, 1356
  300.         }
  301.  
  302.         {
  303.             "(R)Dysprosium", "Dy", 66, 162, 2567, 1407
  304.         }
  305.  
  306.         {
  307.             "(R)Holmium", "Ho", 67, 164, 2720, 1461
  308.         }
  309.  
  310.         {
  311.             "(R)Erbium", "Er", 68, 167, 2868, 1529 
  312.         }
  313.  
  314.         {
  315.             "(R)Thulium", 'Tm', 69, 168, 1950, 1545
  316.         }
  317.  
  318.         {
  319.             "(R)Ytterbium", "Yb", 70, 173, 1196, 824
  320.         }
  321.  
  322.         {
  323.             "(R)Lutetium", "Lu", 71, 174, 3402, 1925
  324.         }
  325.  
  326.         {
  327.             "Hafnium", "Hf", 72, 178, 4603, 2233
  328.         }
  329.  
  330.         {
  331.             "Tantalum", Ta, 73, 180, 5458, 3017
  332.         }
  333.  
  334.         {
  335.             "Tungsten", "W", 74, 183, 5555, 3422
  336.         }
  337.  
  338.         {
  339.             "Rhenium", "Re", 75, 186, 5596, 3186
  340.         }
  341.  
  342.         {
  343.             "Osmium", "Os", 76, 190, 5012, 3033
  344.         }
  345.  
  346.         {
  347.             "Iridium", "Ir", 77, 192, 4428, 2466
  348.         }
  349.  
  350.         {
  351.             "Platium", "Pt", 78, 195, 3825, 2041
  352.         }
  353.  
  354.         {
  355.             "Gold", "Au", 79, 196, 2856, 1064
  356.         }
  357.  
  358.         {
  359.             "Mercury", "Hg", 80, 200, 356, -38
  360.         }
  361.  
  362.         {
  363.             "Thallium", "Tl", 81, 204, 1473, 304
  364.         }
  365.  
  366.         {
  367.             "Lead", "Pb", 207, 1749, 327
  368.         }
  369.  
  370.         {
  371.             "Bismuth", "Bi", 208, 1564, 271
  372.         }
  373.  
  374.         {
  375.             "Polonium", "Po", 84, 209, 962, 254
  376.         }
  377.  
  378.         {
  379.             "Astatine", "At", 85, 210, 230, 302
  380.         }
  381.  
  382.         {
  383.             "Radon", "Rn", 86, 222, -61, -71
  384.         }
  385.  
  386.         {
  387.             "Francium", "Fr", 87, 223, 598, 30
  388.         }
  389.  
  390.         {
  391.             "Radon", "Ra", 88, 226, 1737, 700
  392.         }
  393.     };
  394.  
  395.     /************************/
  396.     // initialize element.state
  397.     for(i = 1; i <= 88; i++)
  398.         list[i].state = findstate(list[i].bp, list[i].mp);
  399.     /************************/
  400.     // I/O
  401.     while(1)
  402.     {
  403.         // clrscr();
  404.         printf("Welcome\nPlease make a choice\n1. Get info about an element\n2. exit");
  405.         scanf("%d",&choice);
  406.         if(choice == 2 )
  407.             return 0;
  408.        
  409.         //clrscr();
  410.         /************************/
  411.         // display list of elements
  412.         for(i = 1; i <= 88; i++)
  413.         {
  414.             printf("|%2d| %c\t|%2d| %c\n", i, list[i].name, ++i, list[i].name);    
  415.         }
  416.         scanf("%d",&choice);
  417.         if(choice < 89 et choice > 0)
  418.             {
  419.                 //clrscr();
  420.                 printf("%sSymbol : %s\n\nAtomic Number : %d\nAtomicMass : %d\nBoiling Point : %d°C\nMelting Point : %d°C\n",list[choice].name, list[choice].symbol, list[choice].atomicnum, list[choice].atomicmass, list[choice].bp, list[choice].mp);
  421.                 switch(list[choice].state)
  422.                 {
  423.                     case 1 :
  424.                     printf("State at RT : Gaseous");
  425.                     break;
  426.    
  427.                     case 2 :
  428.                     printf("State at RT : Liquid");
  429.                     break;
  430.    
  431.                     case 3 :
  432.                     printf("State at RT : Solid");
  433.                     break;
  434.                 }
  435.    
  436.             }
  437.         else
  438.         {
  439.             printf("\nInvalid input...\nPlease try again\n>");
  440.             getch();
  441.         }
  442.     }
  443.     return 0;
  444. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement