【发布时间】:2018-10-23 22:39:11
【问题描述】:
所以我必须制作一个程序,当用户在控制台应用程序中输入“FIN”时停止,否则程序会继续。问题是我无法将之后给出的数字转换为整数。 这是代码
[https://pastebin.com/USTia33i]
Cet algorithme, permet l'identifiaction de numéros de cartes de crédit ainsi que leur 验证。倒入cela, l'utilisateur entre le numéro sous la forme ABCDEF GH IJKL MNOP, puis selon le type de carte, l'algorithme transforme le numéro sous la forme appropriée et fait la validation de la carte en fonction de son type。
using System;
using static System.Console;
using static System.Convert;
using static System.Math;
namespace Partie_2_Cartes_de_crédit
{
class Program
{
static void Main()
{
// Numéro de carte de crédit séparé blocs
Write("Entrez les 6 premiers chiffres de votre carte (ABCDEF) ou (FIN) pour arreter : ");
sting abcdef = ReadLine();
for (; ; )
{
/***/
if (abcdef == "FIN") break;
/***/
{
// Numéro de carte de crédit séparé blocs
Write("Entrez les 2 chiffres suivants de votre carte (GH) : ");
int gh = ToInt32(ReadLine());
Write("Entrez les 4 chiffres suivants de votre carte (IJKL) : ");
int ijkl = ToInt32(ReadLine());
Write("Entrez les 4 chiffres suivants de votre carte (MNOP) : ");
int mnop = ToInt32(ReadLine());
// Vérification pour une carte American Express
if (abcdef / 10000 == 34 || abcdef / 10000 == 37)
{
int abcde = abcdef / 10; // Numéro de carte de crédit séparé blocs
int fghijk = abcdef % 10 * 100000 + gh * 1000 + ijkl / 10;
int lmnop = ijkl % 10 * 10000 + mnop;
WriteLine("Le numéro " + abcde + " " + fghijk + " " + lmnop +
" indique une carte American Express, à valider en ligne.");
}
else
{
// Vérification pour une carte Visa
int abcd = abcdef / 100; // Numéro de carte de crédit séparé blocs
int efgh = abcdef % 100 * 100 + gh;
if (abcd / 1000 == 4)
{
WriteLine("Le numéro " + abcd + " " + efgh + " " + ijkl + " " + mnop +
" indique une carte Visa à valider en ligne.");
}
// Vérification pour une carte MasterCard
else if (abcd / 100 >= 51 && abcd / 100 <= 55)
{
WriteLine("Le numéro " + abcd + " " + efgh + " " + ijkl + " " + mnop +
" indique une carte MasterCard à valider en ligne.");
}
// Vérification pour une carte Sears
else if (abcd / 10 == 628 && abcd % 10 != 0 && efgh / 1000 != 0 && efgh / 100 % 10 != 0)
{
// Formule de Luhn
int i = ijkl / 1000; // Numéro de carte de crédit séparé en chiffre
int j = ijkl / 100 % 10;
int k = ijkl / 10 % 10;
int l = ijkl % 10;
int m = mnop / 1000;
int n = mnop / 100 % 10;
int o = mnop / 10 % 10;
int p = mnop % 10;
i *= 2;
k *= 2;
m *= 2;
p *= 2;
if (i >= 10)
{
i -= 9;
}
if (k >= 10)
{
k -= 9;
}
if (m >= 10)
{
m -= 9;
}
if (p >= 10)
{
p -= 9;
}
if (i + j + k + l + m + n + o + p % 10 == 0)
{
WriteLine("Le numéro " + abcd + " " + efgh + " " + ijkl + " " + mnop +
" indique une carte Sears valide.");
}
else
{
WriteLine("Le numéro " + abcd + " " + efgh + " " + ijkl + " " + mnop +
" indique une carte Sears invalide.");
}
}
// Vérification pour une carte Zellers
else if (abcd / 10 == 700)
{
// Formule de Luhn
int i = ijkl / 1000; // Numéro de carte de crédit séparé en chiffre
int j = ijkl / 100 % 10;
int k = ijkl / 10 % 10;
int l = ijkl % 10;
int m = mnop / 1000;
int n = mnop / 100 % 10;
int o = mnop / 10 % 10;
int p = mnop % 10;
i *= 2;
k *= 2;
m *= 2;
p *= 2;
if (i >= 10)
{
i -= 9;
}
if (k >= 10)
{
k -= 9;
}
if (m >= 10)
{
m -= 9;
}
if (p >= 10)
{
p -= 9;
}
if (i + j + k + l + m + n + o + p % 10 == 0)
{
WriteLine("Le numéro " + abcd + " " + efgh + " " + ijkl + " " + mnop +
" indique une carte Zellers valide.");
}
else
{
WriteLine("Le numéro " + abcd + " " + efgh + " " + ijkl + " " + mnop +
" indique une carte Zellers invalide.");
}
}
else
{
WriteLine("Le numéro " + abcd + " " + efgh + " " + ijkl + " " + mnop +
" indique une carte inconne.");
}
}
}
}
}
}
}
【问题讨论】:
-
您需要将您的
abcdef转换并存储为一个新变量:int input1 = ToInt32(abcdef)。然后稍后在您的代码中使用input1而不是abcdef。 -
谢谢它的工作!
-
你应该因为你的变量名而被否决
-
另外,永远永远永远使用任何
<type>.Parse方法解析用户输入,总是使用TryParse -
哈哈变量代表信用卡号!