化学方程式配平【测试中】【未完成】

化学元素周期表(Element.txt):

1    H    氢    1
2    He    氦    4
3    Li    锂    7
4    Be    铍    9
5    B    硼    11
6    C    碳    12
7    N    氮    14
8    O    氧    16
9    F    氟    19
10    Ne    氖    20
11    Na    钠    23
12    Mg    镁    24
13    Al    铝    27
14    Si    硅    28
15    P    磷    31
16    S    硫    32
17    Cl    氯    35.5
18    Ar    氩    40
19    K    钾    39
20    Ca    钙    40
21    Sc    钪    45
22    Ti    钛    48
23    V    钒    51
24    Cr    铬    52
25    Mn    锰    55
26    Fe    铁    56
27    Co    钴    59
28    Ni    镍    59
29    Cu    铜    64
30    Zn    锌    66
31    Ga    镓    70
32    Ge    锗    73
33    As    砷    75
34    Se    硒    79
35    Br    溴    79
36    Kr    氪    84
37    Rb    铷    86
38    Sr    锶    88
39    Y    钇    89
40    Zr    锆    91
41    Nb    铌    93
42    Mo    钼    96
43    Tc    锝    98
44    Ru    钌    101
45    Rh    铑    103
46    Pd    钯    107
47    Ag    银    108
48    Cd    镉    113
49    In    铟    115
50    Sn    锡    119
51    Sb    锑    122
52    Te    碲    128
53    I    碘    127
54    Xe    氙    131
55    Cs    铯    133
56    Ba    钡    137
57    La    镧    139
58    Ce    铈    140
59    Pr    镨    141
60    Nd    钕    144
61    Pm    钷    145
62    Sm    钐    151
63    Eu    铕    152
64    Gd    钆    157
65    Tb    铽    159
66    Dy    镝    163
67    Ho    钬    165
68    Er    铒    167
69    Tm    铥    169
70    Yb    镱    173
71    Lu    镥    175
72    Hf    铪    179
73    Ta    钽    181
74    W    钨    184
75    Re    铼    186
76    Os    锇    190
77    Ir    铱    192
78    Pt    铂    195
79    Au    金    197
80    Hg    汞    201
81    Tl    铊    205
82    Pb    铅    207
83    Bi    铋    209
84    Po    钋    209
85    At    砹    210
86    Rn    氡    222
87    Fr    钫    223
88    Ra    镭    226
89    Ac    锕    227
90    Th    钍    232
91    Pa    镤    231
92    U    铀    238
93    Np    镎    237
94    Pu    钚    244
95    Am    镅    243
96    Cm    锔    247
97    Bk    锫    247
98    Cf    锎    251
99    Es    锿    252
100    Fm    镄    257
101    Md    钔    258
102    No    锘    259
103    Lr    铹    262
104    Rf    鑪    261
105    Db    钅杜    270
106    Sg    钅喜    273
107    Bh    钅波    274
108    Hs    钅黑    272
-1

[未完成的代码请多指教]:

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
typedef struct Element//元素信息
{
    int An;//原子序数
    double Ar;//相对原子质量
    char name_CN[3];//中文名字
    char symbol[4];//元素符号
}Ele;
struct Material//化学式信息
{
    int hxjls;//化学计量数
    int e[30];//元素的原子序数
    int num[30];//元素原子在化学式中所占个数
    int tot;//有多少个元素
};

Ele map[120];
struct Material in[16],out[16];
int in_num=0,out_num=0;//有多少个反应物/生成物
void PutSingleMaterial(struct Material *input)
{
    
    return ;
}
void ReadSingleMaterial(struct Material *input,char first)//用来进行单个化学式的输入
{
    char ch=first;
    char SElt[4];//Single Element单个元素
    int i,i_SElt;
    
    input->hxjls=0;//清零化学计量数
    while(‘0‘<=ch&&ch<=‘9‘)//ch是化学计量数的一部分
    {
        input->hxjls*=10;
        input->hxjls+=ch-‘0‘;
        scanf("%c",&ch);
    }
    
    input->tot=0;
    while(ch!=‘+‘&&ch!=‘=‘)//输入的是化学式
    {
        
        i_SElt=0;
        while( (‘A‘<=ch&&ch<=‘Z‘) || (‘a‘<=ch&&ch<=‘z‘) )//ch属于元素部分
        {
            SElt[i_SElt]=ch;
            i_SElt++;
            scanf("%c",&ch);
        }
        SElt[i_SElt]=‘\0‘;
        for(i=1;i<=108;i++)//匹配,确定元素原子序数
        {
            if(strcmp(SElt,map[i].symbol)==0)
            {
                input->e=i;
            }
        } //元素输入结束
        
        while(‘0‘<=ch&&ch<=‘9‘)//ch是元素原子个数的一部分
        {
            input->num[input->tot]=input->num[input->tot]*10+ch-‘0‘;
            scanf("%c",&ch);
        }
        
        input->tot++;
    }
    
    return ;
}
void PreLoad()//Stands for the edit
{
    int i;
    FILE *ein;
    char ch;
    ein=fopen("Element.txt","r");
    //输入元素周期表
    for(i=1;i<=108;i++)
    {
        fscanf(ein,"%d",&map[i].An);
        fscanf(ein,"%c",&ch);
        
        fscanf(ein,"%s",map[i].symbol);
        fscanf(ein,"%c",&ch);
        
        fscanf(ein,"%s",map[i].name_CN);
        fscanf(ein,"%c",&ch);
        
        fscanf(ein,"%lf",&map[i].Ar);
        fscanf(ein,"%c",&ch);
    }
    fscanf(ein,"%c",&ch);
    //Completed!!!
    
    //输入化学方程式
    struct Material *p;//它将指向当前所需要输入的化学式
    scanf("%c",&ch);
    while(ch!=‘=‘)// 输入反应物群
    {
        in[in_num].tot=0;//单个反应物元素个数初始化
        p=&in[in_num];//将p指向当前所需输入的化学式
        ReadSingleMaterial(p,ch);//进行单个化学式的输入
        //PutSingleMaterial(p);
    }
    
    
    return ;
}
int main()//化学方程式配平
{
    PreLoad();
    return 0;
}

时间: 2024-10-20 19:38:12

化学方程式配平【测试中】【未完成】的相关文章

Python趣用—配平化学方程式

不知不觉已经毕业多年了,不知道大家是否还记得怎么配平化学方程式呢?反正小编我是已经记不太清了,所以今天的文章除了分享如何用python配平化学方程式,顺带着还会复习 一些化学方程式的知识,希望广大化学爱好者喜欢. 1.化学方程式复习篇 1)定义 化学方程式是指用化学式表示化学反应的式子,它不仅表明了反应物.生成物和反应条件:同时,化学计量数代表了各反应物.生成物物质的量关系,通过相对分子质量或相对原子 质量还可以表示各物质之间的质量关系,对于气体反应物.生成物,还可以直接通过化学计量数得出体积比

应用测试中的弱网络模拟测试-微信测试工程师手把手教程

应用测试中的弱网络模拟测试-微信测试工程师手把手教程 优测小优有话说: app研发不同于实验室里做研究,哪里有"理想环境".理想里,用户用着性能卓越的手机,连着畅通无阻的wifi网络.现实是,他们可能正用着你闻所未闻的机型,穿梭于地铁.公交.火车.乡间.大山-.. 信号"若隐若现,扑朔迷离""我去!又crash了!""唉,怎么又连不上网了,其他app好好的啊."这大概就是理想与现实之间的差距吧. 机型碎片化的问题,腾讯优测通过

游戏测试中的sql语句

基本的内容在这里就不写了. 游戏测试中经常使用到1个复合条件的 游戏内一般要查下用户剩余多少钱.例如有个字段为energy代表体力 表名为db_role 关键字段 id,name(唯一) 要查询条件为 energy在1500一档,然后二档是500~1000之间的 语句为 select id,name,energy from db_name where energy=1500 OR(energy >=500 and energy<1000) 喜欢as的话 可以再要看的列之前加as  select

【转】移动App测试中的最佳做法

一说起软件测试,测试员想到肯定是去检查文件,功能,API,性能并确定软件是否安全,以及关于软件特定部分的其他事项.但是对于移动测试,测试员不得不基于用户移动使用模式考虑移动相关的功能. 本文是基于我的工作经验而写的.作为一名敏捷软件开发团队的软件质量保证经理,我一心投入iPhone,Android,WindowsPhone7的移动apps和移动webapps.在XING移动团队的日常工作以及与其他移动测试专家交流的过程中,我深刻了解了移动测试工作的困难.渐渐地,我明确了什么是帮助改进同事们和我的

Cgroup和Namespace在测试中的使用(上)

Cgroup和Namespace在测试中的使用(上) 很多时候需要测试程序在资源受限情况下的表现,普通的做法可能是不断对系统加压使能够分配给目标程序的资源变少,换另一个思路思考,可以尝试限制分配给目标程序的资源总数,使得机器状态健康的情况下让程序资源使用达到饱和. 作为一个正在做着容器项目的人,知道容器技术是依靠Cgroup和Namespace来实现的.在容器中,cpu和内存资源是使用Cgroup来控制,PID.IPC.网络等资源是通过Namespace来划分.在程序没有部署在容器的情况下,我们

Cgroup和Namespace在测试中的使用(下)

Cgroup和Namespace在测试中的使用(下) Namespace介绍 使用Namespace又叫做命名空间,可以让每个进程组具有独立的PID.IPC和网络空间等,也就是说这些系统资源不再是全局性的,而是属于特定的Namespace,每个Namespace里面的资源对其他Namespace都是透明的,从而达到资源的隔离效果. 目前namespace的种类如下 分类 系统调用参数 Mount namespaces CLONE_NEWNS UTS namespaces CLONE_NEWUTS

LoadRunner之Paramater在负载测试中的数据生成规则

LoadRunner之Paramater在负载测试中的数据生成规则 前段时间在做性能测试的时候,基于业务的需求,使用到了Unique Number的参数类型. 脚本的业务是注册以alien开头,后面接数字的用户帐号,填写相关帐号信息.提交企业信息进行审核. 其中用户帐号是alien开头拼接一个唯一数字的参数,如图: 下面对Unique Number进行相关解释,先引用官方资料:(相信大家也理解这段话的意思) Unique Number: Assigns a range of numbers to

压力测试中需要掌握的几个基本概念

1:吞吐率(Requests per second) 服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数.某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率. 记住:吞吐率是基于并发用户数的.这句话代表了两个含义,1:吞吐率和并发用户数相关:2:不同的并发用户数下,吞吐率一般是不同的. 计算公式:总请求数 / 处理完成这些请求数所花费的时间,即 Request per second = Complete requests / Time ta

移动App测试中的最佳做法

每项开发的新功能都需要进行测试.移动app测试中功能测试是一个重要方面,移动测试员应该要进行手动测试和自动化测试.刚开始测试时,测试员必须把移动app 当做"黑盒"一样进行手动测试,看看提供的功能是否正确并如设计的一样正常运作.除了经典软件测试,像点击按钮看看会发生什么,测试员还必须执行更多功能的移动设备专门的测试. 如今,现代移动设备都有触摸屏,要求多点触控动作来与它们互动.设备可以是纵向或横向显示屏.它们提供动作,倾斜和螺旋传感器.它们有不同的接口可以连接其他设备或服务,比如GPS