1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Bài tập ngôn ngữ lập trình C/C++ có code

80 8K 9
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài tập ngôn ngữ lập trình C/C++ có code
Trường học University of Science and Technology
Chuyên ngành Computer Science
Thể loại Bài tập
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 80
Dung lượng 114,26 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài tập ngôn ngữ lập trình C/C++ Điện tử viễn thông ĐH Bách Khoa Hà Nội

Trang 2

case 0: cout<<"thuong"; break;

case 7: cout<<"deu"; break;

Trang 3

case 2: days=(year&3 ?28:29); break;

case 4: case 6: case 9: case 11: days=30;

Trang 4

switch(FindRoot( a, b, c, &x1, &x2)){

case 0: cout<<"Vo nghiem"<<endl; break;case 1: cout<<"Pt co nghiem kep x= "<<x1; break;default:

cout<<"Pt co 2 nghiem phan biet "<<"x1=

"<<x1<<endl<<"x2= "<<x2;

}cout<<endl;

//hàm tao thiet lap tu hai tham so

complex(double r=0, double i=0) : re(r), im(i) {}

//hàm tao copy tu mot so phuc

complex(const complex &c) : re(c.re), im(c.im) {}

public:

complex operator+ (complex c);

complex operator- (complex c);

complex operator* (complex c);

complex operator/ (complex c);

public:

//Ham dinh nghia toan tu luong ra

friend ostream& operator<<(ostream &out, complex c)

Trang 5

return complex((this->re*c.re)-(this->im*c.im),(this

->re*c.im)+(c.re*this->im));

phanso operator + (phanso p);

phanso operator - (phanso p);

phanso operator * (phanso p);

phanso operator / (phanso p);

public:

friend ostream& operator(ostream &out,phan so p)

Trang 6

cout<<x<<"-"<<y<<"="<<x-y<<endl;

cout<<x<<"*"<<y<<"="<<x*y<<endl;

cout<<x<<"/"<<y<<"="<<x/y<<endl;

Matrix(int m, int n=0);

Matrix(int m, int n, const _T*);

Matrix(const Matrix& M);

~Matrix(){deleteData();}

public:

Trang 7

_T& operator()(int i, int j){return data[i][j];}

Matrix operator+(const Matrix& M);

Matrix& operator=(const Matrix& M);

friend ostream& operator<<(ostream& left, Matrix& right){

for(int i=0; i<right.rows; i++)

for(int j=0; j<right.cols; j++){

left<<right.data[i][j]<<"\t";

if((j+1)%right.cols==0)

left<<endl;

}return left;

data = new _T* [rows];

for(int i=0; i<rows; i++)

data[i] = new _T [cols];

for(int i=0; i<rows; i++)

for(int j=0; j<cols; j++)

Trang 8

for(int i=0;i<rows;i++)

for(int j=0;j<cols;j++)

for(int i=0; i<rows; i++)

for(int j=0; j<cols; j++){

temp.data[i][j]=data[i][j]+M.data[i][j];}

for(int i=0; i<rows; i++)

for(int j=0; j<cols; j++)

void DFT(int v, int *mark);

};

Trang 9

void Graphic DFT(int v)

{

int mark=new int[size];

for(int i=0; i<size; i++)

Trang 10

PROGRAM 1: Tạo lớp Phân số có các thành phần sau:

Trang 12

-PROGRAM 2: Tạo lớp complex (real + image *i ) có các thành phần sau:

- Các thuộc tính : real , image;

friend complex operator+(float x,complex c);

friend ostream& operator<<(ostream &out,complex c);

friend istream& operator>>(istream &inp,complex& c);

};

complex::complex(float r,float i)

Trang 13

cout<<" Tru hai so phuc :"<<c3;

cout<<" Nhap vao x :";

cin>>x;

Trang 14

-PROGRAM 3: Xây dựng lớp xaukytu có các thành phần sau :

- Các thuộc tính : char * str, int length

- Hàm tạo không tham số

- Hàm tạo một tham số ( char * s)

- Hàm hiển thị xâu và độ dài xâu

- Hàm nối xâu để cộng hai xâu (xaukytu s)

Trang 15

strcpy(str,temp); //copy xau temp vao xau str

strcat(str,s.str);//noi hai xau s.str va str

xaukytu s1(" Truong Dai Hoc ");

xaukytu s2(" Dien Luc ");

-PROGRAM 4: Tạo một lớp vector gồm có các thành phần sau:

- Các thuộc tính : float * v; int n

Trang 16

- Hàm thiết lập không tham số

vector();//ham thiet lap khong tham so

vector(int size);//ham thiet lap mot tham so

vector(int size,float * a);//ham thiet lap hai tham so

cout<<" Su dung ham thiet lap khong tham so :"<<endl;

cout<<" Tao mot doi tuong lop vecto co dia chi tai:"<<this<<endl;

cout<<" Nhap vao so toa do :";

{ cout<<" Su dung ham thiet lap mot tham so :"<<endl;

cout<<" Tao mot doi tuong lop vecto co dia chi tai:"<<this<<endl;

n=size;

v=new float[n];

cout<<" Xin cap phat mot vung bo nho cho "<<n<<"so thuc"<<" tai dia chi

Trang 17

cout<<" Su dung ham thiet lap hai tham so :"<<endl;

cout<<" Tao mot doi tuong lop vecto co dia chi tai:"<<this<<endl;

Trang 18

+ Hàm tính diện tích tam giác

+ Hàm kiểm tra tam giác(đều, vuông cân, cân, vuông, thường)

+ Hàm hiển thị thông tin( diện tích, tính chất tam giác)

Viết một chương trình kiểm tra

cout<<"Nhap canh a:";cin>>a;

cout<<"Nhap canh b:";cin>>b;

cout<<"Nhap canh c:";cin>>c;

Trang 19

else

return 3;

else

if(a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b) return 4;

Trang 20

-PROGRAM 6: Xây dựng một lớp Time mô tả các thông tin vê giờ, phút,

giây.Lớp Time có các thành phần sau:

- Các thuộc tính mô tả giờ, phút, giây;

- Các hàm thành phần dùng để xác lập giá trị cho từng thành phần giờ, phút, giây(Có kiểm tra điều kiện giờ (0->23), phút(0->59), giây(0-

>59);

- Hàm thành phần setTime(int,int,int) để xác lập thời gian

- Hàm hiển thị giờ theo định dạng 24 tiếng (vd : 23:54:40);

- Hàm hiển thị giờ theo định dạng 12 tiếng( vd : 11:54:40 PM);

- Hàm tăngGiây()để tăng thời gian mỗi lần lên một giây Chú ý cáctrường hợp tăng sang phút tiếp theo, tăng sang giờ tiếp theo,tăng sang ngày tiếp theo

Viết chương trình chính khai báo một đối tượng thời gian là 23:59:58 và thực hiện tăng thời gian 5 giây đồng thời hiển thị thời gian cho mỗi lần tăng

Trang 22

-PROGRAM 7: Viết một chương trình xây dựng hai lớp: một lớp thí sinh và một

lớp danh sách thí sinh Trong đó lớp thí sinh có dữ liệu bao gồm các thông tin: số báo danh, điểm toán, điểm hoá, điểm lý Lớp danh sách thí sinh có dữ liệu một mảng các thí sinh và số lượng phần tử thuộc mảng đó Viết chương trình thực hiện các công việc sau:

1 Nhập và hiển thị một danh sách các thí sinh từ bàn phím

2 Sắp xếp danh sách các thí sinh theo thứ tự tăng dần về điểm số

3 Hiển thị thông tin của các sinh viên có tổng điểm trên 18

Trang 23

cout<<"So bao danh "<<sbd;

cout<<" Diem toan:"<<dtoan<<" Diem ly:"<<dly<<" Diem hoa:"<<dhoa; cout<<" Tong diem: "<<tdiem()<<endl;

Trang 24

-PROGRAM 8: Chương trình dưới đây xây dựng một lớp hình tròn đơn giản có thành

phần dữ liệu là bán kính r và có các phương thức như: nhập dữ liệu cho r,tính toán và hiển thị chu vi, diện tích của hình tròn đó

Trang 25

cout<<"Chu vi hinh tron la:"<<chuvi()<<endl;

cout<<"Dien tich hinh tron la:"<<dientich()<<endl;

-PROGRAM 9: Viết một chương trình nhập vào hai danh sách sinh viên vào 2 mảng

một chiều,sắp xếp hai mảng giảm dần theo điểm số của sinh viên và trộn 2 mảng trên thành một mảng giảm dần.Trong chương trình sử dụng các chương trình con sau:NHAP(sinhvien *sv, int n );HIENTHI(sinhvien *sv, int n );SAPXEP(sinhvien

Trang 26

*sv, int n);SWAP(sinhvien *x,sinhvien *y);sinhvien *TRON_DS(sinhvien * sv1,sinhvien * sv2,int n1,int n2);

Lưu ý : Việc trộn mảng thì luôn có một mảng kết thúc trước do vậy phải biết mảng nào chưa hết phải thêm vào

void nhap(sinhvien *sv, int n );

void hienthi(sinhvien *sv, int n );

void sapxep(sinhvien *sv, int n);

void swap(sinhvien *x,sinhvien *y);

sinhvien * tron_ds(sinhvien * sv1,sinhvien * sv2,int n1,int n2);

void main()

{

int n1,n2;

sinhvien sv1[20],sv2[20];

printf("\n Ban hay nhap danh sach sinh vien vao 2 mang!");

printf("\n Nhap so luong sinh vien vao danh sach thu nhat n1:");

Trang 27

void sapxep(sinhvien *sv, int n)

Trang 28

Xây dựng lớp date1 có các thành phần sau:

- Các thuộc tính: day, month, year

Trang 29

cout<<"Thang "<<mn<<" khong hop le:"<<endl;

Xây dựng lớp date1 có các thành phần sau:

- Các thuộc tính : day, month, year

- Hàm thiết lập có tham số mặc định

- Hàm kiểm tra năm nhuận

- Hàm kiểm tra ngày cuối tháng

Trang 30

date1(int d=1,int m=1,int y=1900);

void setdate(int d,int m,int y);

date1 &operator++();

date1 &operator+=(int addday);

bool leapyear(int y);//kiem tra nam nhuan

bool endofmonth(int d);//kiem tra ngay cuoi thang

friend ostream & operator<<(ostream & out,date1 &date);};

const int date1::days[]={0,31,28,31,30,31,30,31,31,30,31,30,31};

date1::date1(int d,int m,int y)

year=(y>=1900 && y<=2100)?y:1900;

if( month==2 && leapyear(y))

Trang 31

if(month==2 && leapyear(year))

Trang 32

out<< date.day <<"/"<<monthname[date.month]<<" / " <<date.year<<endl; return out;

Tạo lớp điểm (point) có thuộc tính là các toạ độ x, y

Xây dựng các hàm cần thiết như nhập và hiển thị các toạ độ, tính khoảng cách giữa hai điểm

Viết chương trình nhập vào n điểm từ bàn phím.Tìm và hiển thị khoảng cách lớnnhất giữa hai điểm trong n điểm đó

Trang 33

Xây dựng lớp nhanvien có các thành phần sau:

- Các thuộc tính: tendem, ho, ngaysinh, ngayvaolam Chú ý : sử

dụng con trỏ char cho tendem, ho và ngaysinh, ngayvaolam có kiểu lớp date1vừa xây dựng ở bài tập trước

Trang 35

cout << " Ho va ten la:"<<lastname<<" " << firstname <<endl;

cout<<" Ngay sinh la:";

Trang 36

Xây dựng các lớp theo cây thừa kế sau:Lớp hình tròn, hình vuông, tam giác đều là thừa kế từ lớp hai chiều, lớp lập phương, lớp hình cầu là thừa kế từ lớp ba chiều.Lớp hai chiều, lớp ba chiều là thừa kế từ lớp hình vẽ

virtual void in()=0;

virtual char *ten()=0;

virtual float dientich()=0;

Trang 39

class lapphuong:public bachieu

Chương trình sử dụng khuôn hình (template) để thực hiện việc tìm phân

số nhỏ nhất, sau đó đưa kết quả lên màn hình

Trang 40

Sử dụng khuôn hình lớp xây dựng lớp List có các tính chất sau:

- Các thuộc tính :T a[max], int size;

- Các phương thức : Chèn, xoá , tìm kiếm, sắp xếp các phần

Trang 41

bool is_empty();

void insert(int index, T &itemp);

void remove(int index);

T retrieve(int index);

int find_max(int start,int end);

int search(T & itemp);

void append(T &itemp);

void sort(int start,int end);

template<class T,int max>

void list<T,max>::append(T &itemp)

{

a[size]=itemp;

size++;

}

template<class T,int max>

void list<T,max>::insert(int index,T & itemp){

Trang 42

void list<T,max>::remove(int index)

template<class T,int max>

int list<T,max>::find_max(int start,int end){

template <class T,int max>

int list<T,max>::search(T& itemp)

{

Trang 43

template<class T,int max>

void list<T,max>::sort(int start,int end){

Trang 44

Sử dụng khuôn hình lớp xây dựng lớp stack có các thành phần sau:

- Các thuộc tính: T a[max]; int top;

Trang 45

template<class T,int max>

void stack<T,max>::push(T itemp){

Trang 47

public:

phanso();

phanso(phanso & p);

bool operator<(phanso & p);

friend ostream& operator<<(ostream &mh,phanso &p); friend istream& operator>>(istream &bp,phanso &p);};

Trang 51

-PROGRAM 20:

Xây dựng lớp vector sử dụng hàm tạo và hàm huỷ(C++9) (14/09/2006)

Tạo một lớp vector gồm có các thành phần sau:

- Các thuộc tính : float * v; int n

- Hàm thiết lập không tham số

vector();//ham thiet lap khong tham so

vector(int size);//ham thiet lap mot tham so

vector(int size,float * a);//ham thiet lap hai tham so

cout<<" Su dung ham thiet lap khong tham so :"<<endl;

cout<<" Tao mot doi tuong lop vecto co dia chi tai:"<<this<<endl; cout<<" Nhap vao so toa do :";

Trang 52

cin>>v[i];

}

}

vector::vector(int size)

{ cout<<" Su dung ham thiet lap mot tham so :"<<endl;

cout<<" Tao mot doi tuong lop vecto co dia chi tai:"<<this<<endl; n=size;

cout<<" Su dung ham thiet lap hai tham so :"<<endl;

cout<<" Tao mot doi tuong lop vecto co dia chi tai:"<<this<<endl; n=size;

Trang 53

1 Viết hàm tìm giá trị lớn nhất của 1 mảng

2 Viết hàm trả về địa chỉ của phần tử lớn nhất trong 1 mảng

Viết chương trình ứng dụng các hàm trên

3 Viết một hàm đồng thời tìm giá trị lớn nhất và giá trị nhỏ nhất của 1 mảng.Viết 1 chương trình ứng dụng hàm đó

void nhap (int *a, int n);

int gtln (int *a,int n);

int _tmain(int argc, _TCHAR* argv[])

Trang 55

int diachi (int *a,int n)

if (*q>max) max=int(&q);

void nhap (int *a, int n);

int diachi (int *a,int n);

Trang 57

// Assign the string passed

String(char* s){ length=strlen(s); l=length+1;

str=new char[l]; strcpy(str,s);

*(str+length)='\0'; tmp=new char[1];}

//Destructor

~String() { delete str; delete tmp; }

//Length of the string

long Length(){length=strlen(str);return length;}

//like in Java, toString returns the entire string

char* toString(){ return str;};

//Get the substring providing start and length parameters

char* subString(long stt,long len);

//Get the wordcount "default delimiter is spaces and CRLF

long WordCount();

Trang 58

//Get the location of a particular string or character inside the actual string

str=new char[l]; strcpy(str,s);

*(str+length)='\0'; tmp=new char[1];

Trang 60

if ((*(str+a)== ' ' || a==length || *(str+a)=='\n') && !

(*(str+a)==' ' && 1)==' ') && !(*(str+a)=='\n' && 1)=='\n') && !(*(str+a-1)==' ' && *(str+a)=='\n') && !(*(str+a-1)=='\n' && *(str+a)==' ') && !(*(str+a-1)=='\n' && a==length) && !(*(str+a-1)==' ' && a==length))

//Define default string

String x("Hello world This is new C++");

//show the string to check

cout<<x.toString()<<endl;

//get its length

cout <<endl<<"The string length is " <<x.Length()<<endl;

//Get the location of the word "world"

cout<<"\n'world' is found at " <<x.getCharLoc("world",1)<<endl; //Get the loc of 'new'

cout<<"'new' is found at "<<x.getCharLoc("new",1) <<endl;

Trang 61

//Change the string

x.setString("Bull ****");

//show the string to check

cout<<x.toString()<<endl;

//get its length

cout <<endl<<"The new string length is " <<x.Length()<<endl; system("pause");

}

Chạy trương trình:

Hello world This is new C++

The string length is 27'world' is found at 7'new' is found at 21Bull ****

The new string length is 9

Trang 62

#include <assert.h>

class String

{

private:

char *Ptr; //Con tro tro den diem bat dau cua chuoi

int Length; //Chieu dai chuoi

public:

String(const char * = ""); //Constructor chuyen doi

String(const String &); //Constructor sao chep

~String(); //Destructor

const String &operator=(const String &);

//Phep gan

String &operator+=(const String &);

int operator!() const;

int operator==(const String &) const; //So sanh bang` int operator!=(const String &) const; //So sanh khong bang int operator<(const String &) const; //So sanh nho hon int operator>(const String &) const; //So sanh lon hon int operator>=(const String &) const; //So sanh >=

int operator<=(const String &) const; //So sanh <=

char & operator[](int); //Tra ve ky tu tham chieu

String &operator()(int, int); //Tra vemot chuoi con

int GetLength() const; //Lay do dai

friend ostream &operator<<(ostream &, const String &);

friend istream &operator>>(istream &, String &);

Ngày đăng: 24/03/2014, 22:51

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w