C++面向对象程序设计50道编程题(第03题)

版权声明:版权所有,尊重原创。转载请注明出处: https://blog.csdn.net/qq_36426650/article/details/84582309

C++面向对象程序设计50道编程题(第03题)

摘要:C++程序设计实习是为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析问题和解决问题的能力,提高学生运用所学知识解决实际问题的能力。
  本专辑为编程入门者、高校计算机软件专业学习或复习提供C++程序设计题库。
  读者请先独立思考哦,再与参考程序进行比对检查。

一、问题描述

在这里插入图片描述
在这里插入图片描述

二、考察内容

  基本面向对象概念,如何创建类、对象,对类数据成员和成员函数的理解,简单的数组运算、字符串应用等。

三、难度等级

难度等级:★★★☆☆

四、参考程序

#include<iostream.h>
#include <string.h>
class ID{
	char s[19],x[11];
	int w[17];
public:
	ID(char *str);
	void fun();
	void print(){
		cout<<s<<endl;
	}
};
ID::ID(char *str)
{
	strcpy(s,str);
	char x1[]="10X98765432";
	int w1[]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
	strcpy(x,x1);
	for(int i=0;i<17;i++)
		w[i]=w1[i];
}
void ID::fun()
{
	char t[20];
	strcpy(t,s+6);
	strcpy(s+8,t);
	s[6]='1';
	s[7]='9';
	int ss=0;
	for(int i=0;i<17;i++)
		ss+=(s[i]-'0')*w[i];
	ss%=11;
	s[17]=x[ss];
	s[18]=0;
}
void main()
{
	char st[]="340524800101001";
	ID test(st);
	cout<<"原身份证号:";
	test.print();
	test.fun();
	cout<<"扩展后的原身份证号:";
	test.print();
}

五、心得感受

可以在评论处写下思考和编程此题的感受

猜你喜欢

转载自blog.csdn.net/qq_36426650/article/details/84582309