Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * File: chemistry.c
- * Author: CaptFuzzyboots
- *
- * Created on November 4, 2013, 3:32 PM
- */
- #include <stdio.h>
- #include <stdlib.h>
- #define et &&
- #define ROOM_TEMP 24
- int findstate(int mp, int bp)
- {
- if(ROOM_TEMP < mp)
- return 1;
- else if(ROOM_TEMP < bp et ROOM_TEMP > mp)
- return 2;
- else
- return 3;
- }
- /*
- State...
- 1 - Gaseous
- 2 - Liquid
- 3 - Solid
- */
- int main(int argc, char** argv) {
- struct element {
- char name[20];
- char symbol[3];
- int atomicnum;
- int atomicmass;
- int bp;
- int mp;
- int state;
- };
- int choice, i;
- /************************/
- // initialize list [ bp > mp ]
- char list[88] = {
- {
- "Hydrogen", "H", 1, 1, -253, -259
- }
- {
- "HELIUM", "He", 2, 4 , -269, -272
- }
- {
- "Lithium", "Li", 3, 6, 1347, 180
- }
- {
- "Berryllium", "Be", 4, 9, 2970, 1278
- }
- {
- "Boron", "B", 5, 10, 2550, 2300
- }
- {
- "Carbon", "C", 6, 12, 4827, 3500
- }
- {
- "Nitrogen", "N", 7, 14, -196, 210
- }
- {
- "Oxygen", "O", 8, 15, -183, -218
- }
- {
- "Flourine", "F", 9, 18, -188, -220
- }
- {
- "NEON", "Ne", 10, 20, -246, - 249
- }
- {
- "Sodium", "Na", 11, 23, 883, 98
- }
- {
- "Magnesium", "Mg", 12, 24, 1090, 639
- }
- {
- "Aluminum", "Al", 13, 26, 2467,660
- }
- {
- "Silicon", "Si", 14, 28, 2355, 1410
- }
- {
- "Phosphorus", "P", 15, 30, 280, 44,
- }
- {
- "Sulfur", "S", 16, 32, 0.052, 2.7,
- }
- {
- "Chlorine", "Cl", 17, 35, -35, -101
- }
- {
- "ARGON", "Ar", 18, 39, -186, -189
- }
- {
- "Potassium", "K", 19, 39, 774, 64
- }
- {
- "Calcium", "C", 20, 40, 1484, 839
- }
- {
- "Scandium", "Sc", 21, 44, 2832, 1539
- }
- {
- "Titanium", "Ti", 22, 47, 3287, 1660
- }
- {
- "Vanadium", "V", 23, 50, 3380, 1890
- }
- {
- "Chromium", "Cr", 24, 51, 2672, 1857
- }
- {
- "Manganese", "Mn", 25, 54, 1962, 1245
- }
- {
- "Iron", "Fe", 26, 55, 2750, 1535
- }
- {
- "Cobalt", "Co", 27, 58, 2870, 1495
- }
- {
- "Nickel", "Ni", 28, 58, 2732, 1453
- }
- {
- "Copper", "Cu", 29, 63, 2567, 1083
- }
- {
- "Zinc", "Zn", 30, 65, 420, 907
- }
- {
- "Gallium", "Ga", 31, 69, 29, 2284
- }
- {
- "Germanium", "Ge", 32, 72, 937, 2830
- }
- {
- "Arsenic", "As", 33, 74, 814, 615
- }
- {
- "Selenium", "Se", 34, 78, 217, 688
- }
- {
- "Bromine", "Br", 35, 79, -7, 58
- }
- {
- "KRYPTON", "Kr", 36, 83, -157, -153
- }
- {
- "Rubidium", "Rb", 37, 85, 39, 696
- }
- {
- "Strontium", "Sr", 38, 87, 769, 1384
- }
- {
- "Yttrium", "Y", 39, 88, 1500, 4400
- }
- {
- "Zirconium", "Zr", 40, 91, 1852, 4400
- }
- {
- "Niobium", "Nb", 41, 92, 2410, 5100
- }
- {
- "Molybdenum", "Mo", 42, 95, 2610, 4825
- }
- {
- "Technetium", "Tc", 43, 97, 2200, 4877
- }
- {
- "Ruthenium", "Ru", 44, 101, 2250, 4150
- }
- {
- "Rhodium", "Rh", 45, 102, 1970, 3727
- }
- {
- "Palladium", "Pd", 46, 106, 1560, 2927
- }
- {
- "Silver", "Ag", 47, 107, 962, 2212
- }
- {
- "Cadmium", "Cd", 48, 112, 321, 767
- }
- {
- "Indium", "In", 49, 114, 156, 2000
- }
- {
- "Tin", "Sn", 50, 118, 232, 2270
- }
- {
- "Antimony", "Sb", 51, 121, 631, 1380
- }
- {
- "Tellurium", "Te", 52, 127, 450, 1390
- }
- {
- "Iodine", "I", 53, 126, 114, 184
- }
- {
- "XENON", "Xe", 54, 131, -112, -107
- }
- {
- "Caesium", "Cs", 55, 132, 28, 669
- }
- {
- "Barium", "Ba", 56, 137, 725, 1640
- }
- {
- "(R)Lanthanum", "La", 57, 138, 826
- }
- {
- "(R)Cerium", "Ce", 58, 140, 799, 3426
- }
- {
- "(R)Praseodymium", "Pr", 59, 140, 941, 3512
- }
- {
- "(R)Neodymium", "Nd", 60, 144, 3100, 1024,
- }
- {
- "(R)Promethium", "Pm", 61, 145, 3000, 1100
- }
- {
- "(R)Samarium", "Sm", 62, 150, 1803, 1072
- }
- {
- "(R)Europium", "Eu", 63, 151, 1527, 826
- }
- {
- "(R)Gandolinium", "Gd", 64, 157, 3250, 1585
- }
- {
- "(R)Terbium", "Tb", 65, 158, 3230, 1356
- }
- {
- "(R)Dysprosium", "Dy", 66, 162, 2567, 1407
- }
- {
- "(R)Holmium", "Ho", 67, 164, 2720, 1461
- }
- {
- "(R)Erbium", "Er", 68, 167, 2868, 1529
- }
- {
- "(R)Thulium", 'Tm', 69, 168, 1950, 1545
- }
- {
- "(R)Ytterbium", "Yb", 70, 173, 1196, 824
- }
- {
- "(R)Lutetium", "Lu", 71, 174, 3402, 1925
- }
- {
- "Hafnium", "Hf", 72, 178, 4603, 2233
- }
- {
- "Tantalum", Ta, 73, 180, 5458, 3017
- }
- {
- "Tungsten", "W", 74, 183, 5555, 3422
- }
- {
- "Rhenium", "Re", 75, 186, 5596, 3186
- }
- {
- "Osmium", "Os", 76, 190, 5012, 3033
- }
- {
- "Iridium", "Ir", 77, 192, 4428, 2466
- }
- {
- "Platium", "Pt", 78, 195, 3825, 2041
- }
- {
- "Gold", "Au", 79, 196, 2856, 1064
- }
- {
- "Mercury", "Hg", 80, 200, 356, -38
- }
- {
- "Thallium", "Tl", 81, 204, 1473, 304
- }
- {
- "Lead", "Pb", 207, 1749, 327
- }
- {
- "Bismuth", "Bi", 208, 1564, 271
- }
- {
- "Polonium", "Po", 84, 209, 962, 254
- }
- {
- "Astatine", "At", 85, 210, 230, 302
- }
- {
- "Radon", "Rn", 86, 222, -61, -71
- }
- {
- "Francium", "Fr", 87, 223, 598, 30
- }
- {
- "Radon", "Ra", 88, 226, 1737, 700
- }
- };
- /************************/
- // initialize element.state
- for(i = 1; i <= 88; i++)
- list[i].state = findstate(list[i].bp, list[i].mp);
- /************************/
- // I/O
- while(1)
- {
- // clrscr();
- printf("Welcome\nPlease make a choice\n1. Get info about an element\n2. exit");
- scanf("%d",&choice);
- if(choice == 2 )
- return 0;
- //clrscr();
- /************************/
- // display list of elements
- for(i = 1; i <= 88; i++)
- {
- printf("|%2d| %c\t|%2d| %c\n", i, list[i].name, ++i, list[i].name);
- }
- scanf("%d",&choice);
- if(choice < 89 et choice > 0)
- {
- //clrscr();
- 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);
- switch(list[choice].state)
- {
- case 1 :
- printf("State at RT : Gaseous");
- break;
- case 2 :
- printf("State at RT : Liquid");
- break;
- case 3 :
- printf("State at RT : Solid");
- break;
- }
- }
- else
- {
- printf("\nInvalid input...\nPlease try again\n>");
- getch();
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement