⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 3.2.cpp

📁 面向对象技术作业银行系统
💻 CPP
字号:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
class ISBN
{
private:
	int groupcode;
	int publishcode;
	int bookcode;
	int verifycode;
	void substr(char* subs,const char *str,int begin,int len)
	{
		
		strcpy(subs,str+begin);
		subs[len]='\0';
		return;
	}
	void itoa(char* str,int i)
	{
		int magnitude=1,num=1;
		for(int j=i;j>10;j/=10)
		{
			magnitude*=10;
			num++;
		}
		for(j=0;j<num-1;i%=magnitude,magnitude/=10,j++)
			str[j]=i/magnitude+48;
		str[j++]=i+48;
		str[j]='\0';
	}

public:
	ISBN(char* isbn)
	{
		setISBN(isbn);
	}
	void setISBN(char* isbn)
	{
		char temp[14];
		substr(temp,isbn,0,1);
		groupcode=atoi(temp);
		substr(temp,isbn,2,3);
		publishcode=atoi(temp);
		substr(temp,isbn,6,5);
		bookcode=atoi(temp);
		if(isbn[12]<48||isbn[12]>57)
			verifycode=isbn[12];
		else
		{
			substr(temp,isbn,12,1);
			verifycode=atoi(temp);
		}
	}
	void getISBN(char* isbn)
	{
		char temp[14];
		itoa(isbn,groupcode);
		strcat(isbn,"-");
		itoa(temp,publishcode);
		strcat(isbn,temp);
		strcat(isbn,"-");
		itoa(temp,bookcode);
		strcat(isbn,temp);
		strcat(isbn,"-");
		if(verifycode<0||verifycode>10)
		{
			temp[0]=verifycode;
			temp[1]='\0';
		}
		else
			itoa(temp,verifycode);
		strcat(isbn,temp);
		
	}
	bool isValid()
	{
		int sum=groupcode;
		int temp=publishcode;
		for(int i=0;i<3;i++)
		{
			sum+=temp/(int)pow(10,2-i)*(int)pow(10,i+1);
			temp%=(int)pow(10,2-i);
		}
		temp=bookcode;
		for(i=0;i<5;i++)
		{
			sum+=temp/(int)pow(10,4-i)*(int)pow(10,i+1);
			temp%=(int)pow(10,4-i);
		}
		if((sum%11==10&&verifycode=='x')||(sum%11!=10&&sum%11==verifycode))
			return true;
		else return false;
	}

};
void main()
{
	char str[]={"0-254-45785-7"};
	bool isvalid;
	ISBN isbn(str);	
	isvalid=isbn.isValid();
	if(isvalid)
		printf("%s is valid!\n",str);
	else
		printf("%s is invalid!\n",str);
	return;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -