1. 程式人生 > >C++面向物件程式設計50道程式設計題(第03題)

C++面向物件程式設計50道程式設計題(第03題)

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();
}

五、心得感受

可以在評論處寫下思考和程式設計此題的感受