(1)没有强制用户的输入值必须为9位数字;
(2)取每位数字错误;
(3)只计算了余数,没有计算差。(详见“校验码的计算方法”)
修改后的Java程序:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package javaapplication1
/**
*
* @author Jinchuan
*/
import java.util.Scanner
public class Exercise03_09 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in)
String temp
int isbn
//限制用户只能输入9位数字
while(true){
System.out.print("Enter the first 9-digit of an ISBN number as integer: ")
temp = input.next()
try{
isbn = Integer.parseInt(temp)
}
catch(Exception e){
continue
}
if(temp.length() == 9)
break
}
//isbn = 730904547
int a = isbn / 100000000 //第1位
int b = (isbn / 10000000) % 10 //第2位
int c = (isbn / 1000000) % 10
int d = (isbn / 100000) % 10
int e = (isbn / 10000) % 10
int f = (isbn / 1000) % 10
int g = (isbn / 100) % 10
int h = (isbn / 10) % 10
int j = isbn % 10
int r = 11 - (a*10 + b*9 + c*8 + d*7 + e*6 + f*5 + g*4 + h*3 + j*2) % 11
if (r == 10)
System.out.print("The ISBN number is " + a + b + c + d + e + f + g + h + j + "X")
else if (r == 11)
System.out.print("The ISBN number is " + a + b + c + d + e + f + g + h + j + "0")
else
System.out.print("The ISBN number is " + a + b + c + d + e + f + g + h + j + r)
}
}
运行测试:
Enter the first 9-digit of an ISBN number as integer: 12345
Enter the first 9-digit of an ISBN number as integer: 1234567890
Enter the first 9-digit of an ISBN number as integer: 730904547
The ISBN number is 7309045475
源代码如下:
#include<iostream>
#include<iomanip>
#include<string>
#include<fstream>
#include<stdio.h>
using namespace std
const int maxb=10000 //最多的图书
class book//图书类
{
int tag //删除标记1:已删0:未删
int number //isbn书号
char name[20] //书名
char author[10]//主编
char number2[10]//版次
char position[20]//出版社
char time[20]//出版年
void addbook(int n,char *na,char *au,char *n2,char *da,char *ti,int pr) //增加图书
{
tag=0
number=n
price=pr
strcpy(name,na)
strcpy(author,au)
strcpy(number2,n2)
strcpy(position,da)
strcpy(time,ti)
onshelf=1
}
扩展资料
1、源程序中,很多符号都是成对匹配出现的,为避免遗漏必须配对使用的符号。
2、用花括号括起来的部分,但从程序结构清晰,便于阅读、理解、维护的角度出发,建议在书写程序时应遵循以下规则,以养成良好的编程习惯。
3、一个说明或一条语句占一行,与该结构开始处的左花括号对齐。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)