Hotline: 01628228880 Tìm kiếm
Showing posts with label ltC. Show all posts
Showing posts with label ltC. Show all posts

Bài tập quản lý thư viện trong C, C++, C#

Bài tập quản lý thư viện trong C, C++
Một bài tập được khá nhiều bạn quan tâm trong thời gian vừa qua. Các hàm xây dựng để quản lý thư viện có liên kết với nhau. Bài tập quản lý thư viện này được các bạn thường sử dụng cho môn học CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT.
code quan ly thu vien trong c, bai tap quan ly thu vien trong c

 Mình đã gửi tới các bạn bài này khá lâu rồi, thời gian đầu làm quen với Blogger mình có đưa bài này.
Các hàm có trong quản lý thư viện quản lý sách như:
- Thêm sách
- Tìm sách
- Xóa sách
- Sửa sách
- Thể loại sách
....
Các hàm quản lý thời hạn, tình trạng sách... đều được thể hiện trong bài quản lý thư viện Code C này. Nếu các bạn trình bày ở dạng console trong C# thì các bạn khai báo tương tự
Các bạn có thể tham khảo
Lấy Code tại đây

----------------------------
Chúc các bạn học tập tốt !

Xử lý ngày - tháng - năm trong C, C#

Trong tập hợp các bài tập về C, C# của ITViet360 đáng chú ý tới bài xử lý ngày - tháng - năm. Bởi vì bài này có một số ràng buộc rất khắt khe.
bai tap xu ly ngay thang nam trong C, C#
Bài tập xử lý ngày tháng năm trong C
Bài code hoàn chỉnh có những hàm, giải quyết các vấn đề sau của xử lý ngày-tháng-năm:
1. Nhập ngày tháng năm
2. Cập nhật ngày tháng năm
3. Kiểm tra ngày tháng năm có hợp lệ
4. Tính số ngày
5. Tìm ngày.
6. In lịch theo tháng, năm.
7. Đọc ngày tháng năm (Ví dụ: 12/11/1990: Ngày mười hai tháng mười một năm một ngàn chín trăm chín mươi)
8. Tìm thứ.
Các bạn quan tâm tới code bài xử lý ngày tháng năm trong C, C# này thì DOWNLOAD CODE TẠI ĐÂY
- Các bạn vào Code sửa
Menu1 -> Menu
Chon1 -> Chon
Main1 -> Main
------------------------
Chúc các bạn học tập tốt !

Bài toán dãy số Fibonacci - Đệ quy trong C, C++

Ở bài giới thiệu C, C++ này itviet360 gửi tới các bạn Code C, C++ bài toán dãy số Fibonacci - Đệ quy. Khái niệm đệ quy không được giới thiệu ở đây nên các bạn có thể tham khảo ở rất nhiều trang đưa ra những đ/n khái quát.
Bài toán dãy số Fibonacci trong C
Code dưới đây là theo code C, đối với console trong C# cũng tương tự.
Các bạn tham khảo code Full:

#include <stdio.h>
#include <conio.h>

void DaoSo(long a)
{
if(a>9)
{
printf("%d",a%10);
DaoSo(a/10);
}
else
printf("%d",a);

}

long Fibonaci(int vt)
{
if(vt==1||vt==2)
return 1;
else
return (Fibonaci(vt-2)+Fibonaci(vt-1));

}

void InDayFibonaci(int n,long a=1,long b=0)
{
long kq;
if(n>0)
{
kq=a+b;
printf("%ld ",kq);
InDayFibonaci(n-1,b,kq);
}



}

void main()
{
clrscr();
long a,b;
int choice;

menu:
//Menu Select
printf("\t\t\t www.itviet360.com \n");
printf("\t\t\tCac Chuc Nang\n\n");
printf("\t\t1. Dao So\n");
printf("\t\t2. Tim 1 PT Cua Day Fibonaci\n");
printf("\t\t3. In Day Fibonaci co n pha tu\n");
printf("\t\t4. Thoat\n");


do{
printf("\n\tNhap Lua Chon Cua Ban:");
scanf("%d",&choice);
}while(choice<1||choice>4);


clrscr();
switch(choice)
{
case 1:
printf("\nNhap 1 So Nguyen:");
scanf("%ld",&a);
printf("So Sau khi dao Thu Tu:");
DaoSo(a);
getch(); clrscr();
goto menu;

case 2:
do{
printf("\n%s","Nhap Vi Tri Cua So Fibonaci Can Tim:");
scanf("%d",&b);
}while(b<0);
printf("%s%ld","Phan Tu Can Tim La:",Fibonaci(b));
getch(); clrscr();
goto menu;

case 3:
printf("\nNhap So PT Cua Day Fibonaci can xem:");
scanf("%d",&b);
printf("Day Fibonaci:\n");
InDayFibonaci(b);
getch(); clrscr();
goto menu;

case 4:
break;
}

}

Quản lý nhân viên - Danh sách liên kết trong C, C++

Bài tập quản lý nhân viên theo danh sách liên kết trong C, C++ là một ví dụ điển hình về sanh sách liên kết. Việc xây dựng danh sách liên kết để quản lý nhân viên ở bài code dưới đây gửi tới các bạn các hàm để quản lý nhân viên như: thêm, xóa, sửa thông tin nhân viên, code tính bảng lương nhân viên, in bảng lương nhân viên...
Bài tập quản lý nhân viên theo danh sách liên kết trong C
Ở bài code dưới đây là code theo C, Console trong C# cũng tương tự như thế. Các bạn xem một số hàm tham khảo và Download code Full ở cuối bài viết.
- Tất cả các hàm trong bài code đều có ràng buộc.
Ví dụ: thêm, sửa thông tin nhân viên có ràng buộc tuổi, ngày tháng năm sinh,...
Đi vào Code cụ thể:
Hàm Nhập nhân viên:

void nhapNV(NHANVIEN &nv)
{
clrscr();
printf("\n\t Nhap cac thong tin cua nhan vien: Ho lot, ten, ...\n");
fflush(stdin);
printf("\n\t Ho lot : ");
gets(nv.holot);
fflush(stdin);
printf("\n\t Ten : ");
gets(nv.ten);
do{
fflush(stdin);
printf("\n\t Ngay thang nam sinh (ngay/thang/nam): ");
scanf("%d/%d/%d",&nv.ngaysinh.ngay, &nv.ngaysinh.thang,&nv.ngaysinh.nam);
}while(!IsValidDate(nv.ngaysinh.ngay,nv.ngaysinh.thang,nv.ngaysinh.nam));

do{
fflush(stdin);
printf("\n\t Phai (0:Nu, 1:Nam ): ");
scanf("%d" ,&nv.phai);
}while(nv.phai!=0 && nv.phai!=1);

fflush(stdin);
printf("\n\t Noi sinh : ");
gets(nv.noisinh);

fflush(stdin);
printf("\n\t Phu cap :");
scanf("%ld",&nv.phucap);

fflush(stdin);
printf("\n\t Luong co ban :");
scanf("%ld",&nv.luongcb);

fflush(stdin);
printf("\n\t Ngay cong :");
scanf("%d",&nv.ngaycong);

}

Hàm tìm nhân viên:

NODEPTR timNV(NODEPTR dsnv, char key[])
{
NODEPTR p = dsnv;
while (p!=NULL)
{
if(strcmp(p->info.maNV,key)==0) break;
p=p->pNext;
}
return p;
}


Hàm thêm nhân viên

void themNV(NODEPTR &dsnv,NHANVIEN nv)
{
NODEPTR n;
n = new NODE;
n->info = nv;
n->pNext = dsnv;
dsnv = n;
}

Hàm thêm nhiều nhân viên 1 lúc các bạn Download trong Code full nhé.
Hàm xóa nhân viên, sửa thông tin nhân viên, bảng lương nhân viên đã có trong Code Full.
CODE FULL DOWNLOAD TẠI ĐÂY
chúc các bạn học tập tốt

Đổi (đọc) số thành chữ trong C, C++

Đổi (đọc) số thành chữ trong C, C++
Một bài tập lập trình  tiếp theo của những bài C# trước mình gửi tới các bạn. Code đọc số thành chữ trong C, C++. Yêu cầu của bài là nhập 1 dãy số từ bàn phím, chương trình xuất ra chuỗi ký tự chữ tương ứng với con số vừa nhập.
Ví dụ:
- Nhập: 123456789
- Xuất: mot tram hai muoi ba trieu bon tram nam muoi sau nghin bay tram tam muoi chin
Đọc số thành chữ trong C
Ý tưởng: Đọc theo Block số 3 số
Cụ thể:
Code:

#include <conio.h>
#include <stdio.h>
#include <string.h>
void readblock3(char scr[],char result[])
{
int len=strlen(scr);
int vt=0;
char *chu[10]={" ","Mot","Hai","Ba","Bon","Nam","Sau","Bay","Tam","Chin"};


if(len==3)
{
if(scr[0]=='0')
strcat(result," Khong Tram ");
else
{
strcat(result,chu[scr[vt]-48]);
strcat(result," Tram ");
}
--len;
++vt;
}

if(len==2)
{
if(scr[vt]=='0')
{
if(scr[vt+1]!='0')
strcat(result," Le ");
}
else if(scr[vt]=='1')
strcat(result," Muoi ");
else
{
strcat(result,chu[scr[vt]-48]);
if(scr[vt+1]!='0')
strcat(result," Muoi ");
}
--len; ++vt;

}

if(len==1)
{
if(scr[vt]=='1')
strcat(result," Mot ");
else
strcat(result,chu[scr[vt]-48]);

}

}
void readall(char scr[],char result[])
{
int len=strlen(scr);
int i,j,vt=0,dv;
char *donvi[4]={""," Ngan "," Trieu "," Ti "};
char tmp[200];

if(len%3==0)
dv=len/3-1;
else
dv=len/3;

if(len%3!=0)
{
for(j=0;j<len%3;++j)
tmp[j]=scr[vt++];
tmp[j]=NULL;
readblock3(tmp,result);
strcat(result,donvi[dv]);
--dv;
}


for(i=0;i<len/3;++i)
{
for(j=0;j<3;++j)
tmp[j]=scr[vt++];
tmp[j]=NULL;
readblock3(tmp,result);
strcat(result,donvi[dv]);
--dv;

}
}
void main()
{
char chuoi[255];
char result[255];
strcpy(result,"");
printf("Nhap Mot Chuoi So:");
scanf("%s",chuoi);
readall(chuoi,result);
printf("%s%s","\nChuoi Sau Khi Doi:\n",result);
getch();
}

Chúc các bạn học tập tốt !

Bài tập Stack - Queue trong C, C# - Code Demo (2)

Bài tập Stack - Queue trong C, C# - Code Demo cài theo phương thức hướng đối tượng. Ở Bài tập Queue - Stack trong C, C# này mình đã giới thiệu Code về Queue. Tiếp theo mình giới thiệu về Stack.
Stack là gì ?
- Trong khoa học máy tính, một ngăn xếp (còn gọi là bộ xếp chồng, tiếng Anh: stack) là một cấu trúc dữ liệu trừu tượng hoạt động theo nguyên lý "vào sau ra trước" (Last In First Out (LIFO.
Ngăn xếp - Stack
- Cụ thể:
Code Push (thêm phần tử vào Stack)

public void push(int x) // Cai phuong thuc (thua ke giao dien) them phan tu vao Stack
{
if (!this.isFull())
{
this.top++;
this.day[this.top] = x;
}
else
Console.WriteLine("\n\n\t Stack day !!!");
}

Code Pop (lấy phần tử khỏi Stack)

public void pop(ref int x) // Cai phuong thuc (thua ke giao dien) lay phan tu vao Stack
{
if (!this.isEmpty())
{
x = this.day[this.top];
top--;
}
else
Console.WriteLine("\n\n\t Stack rong !!!");
}

-------------------------------------------
Bài cài đầy đủ (copy and run ^_^) các bạn Download tại đây !
chúc các bạn học tập tốt !

Bài tập Queue - Stack trong C, C# - Code Demo

Ở bài này mình sẽ chia ra làm 2 phần để trình bày về Queue - Stack. Sau đó là Code dành cho các bạn tham khảo. Code cài theo lập trình hướng đối tượng
1. Giới thiệu:
  • Queue là gì?
Queue - Hàng đợi: là một cấu trúc dữ liệu dùng để chứa các đối tượng làm việc theo cơ chế FIFO (viết tắt từ tiếng Anh: First In First Out), nghĩa là "vào trước ra trước". Tham khảo trang wikipedia
Queue - Queue là gì ?

Đi vào code cụ thể:
Hàm push - Thêm phần tử vào Queue:
Code:

public void push(int x) // Cai phuong thuc (thua ke giao dien) them phan tu vao Queue
{
if (!this.isFull())
{
this.top++;
this.day[this.top] = x;
}
else
Console.WriteLine("\n\n\t Queue day !!!");
}

Queue = Vào trước ra trước:
Hàm pop - Lấy phần tử ra khỏi queue

public void pop(ref int x) // Cai phuong thuc (thua ke giao dien) lay phan tu Queue
{
x = this.day[0];
for (int i = 0; i < this.top; i++)
{
this.day[i] = this.day[i + 1];
}
this.top--;
}

------------------------
Bài Code hoàn chỉnh TẠI ĐÂY
Các bạn lấy Code hoàn chỉnh về tham khảo nhé!
- Stack mình sẽ gửi các bạn sau.
Chúc các bạn học tập tốt

Giải phương trình bậc 2 trong C, C# - Lập trình hướng đối tượng

Giải phương trình bậc 2 trong C, C# - Bài tập nhập môn của lập trình hướng đối tượng. Giải phương trình bậc 2 chắc hẳn chúng ta đã quen với nhiều phương pháp khác nhau. Bài Code ở đây trình bày theo hướng lập trình hướng đối tượng.
Giải phương trình bậc 2 trong C
Hàm nhập gồm 3 thuộc tính A, B, C
Code:

public void Nhap()
{
Console.Write("\t Nhap he so a: ");
this.a = float.Parse(Console.ReadLine());
Console.Write("\t Nhap he so b: ");
this.b = float.Parse(Console.ReadLine());
Console.Write("\t Nhap he so c: ");
this.c = float.Parse(Console.ReadLine());
}

Phương thức giải phương trình bậc 2.
Code:

public void GiaiPT()
{
float delta, x1, x2;
delta = this.b * this.b - 4 * this.a * this.c;
if (delta > 0)
{
x1 = (float)(-this.b - Math.Sqrt(delta)) / (2 * this.a);
x2 = (float)(-this.b + Math.Sqrt(delta)) / (2 * this.a);
Console.WriteLine("\n Phuong trinh co 2 nghiem la X1 = {0} va X2 = {1}", x1.ToString("0.000"), x2.ToString("0.000"));
}
else if (delta == 0)
{
x1 = (-this.b) / (2 * this.a);
Console.WriteLine("\n Phuong trinh co nghiem duy nhat X = {0}", x1.ToString("0.000"));
}
else
Console.WriteLine("\n Phuong trinh vo nghiem");
}

Code đầy đủ các bạn TẢI TẠI ĐÂY
- Sửa lại chữ Menu4 thành Menu dùm mình.
----------------------
Chúc các bạn học tập tốt !

Xử lý phân số trong C, C# - cộng, trừ, nhân, chia, ước số chung lớn nhất

Bài tập lập trình hướng đối tượng tiếp theo mình gửi tới các bạn: Xử lý phân số trong C, C#. Gồm các hàm: Cộng 2 phân số, trừ 2 phân số, tích 2 phân số, thương 2 phân số, tìm ước số chung lớn nhất của tử số và mẫu số, mục đích là để tối giản, rút gọn phân số.
Cộng trừ nhân chia phân số trong C
Cụ thể các hàm:
- Tìm ước số chung lớn nhất

public int USCLN()
{
int t, m;
//lay gia tri tuyet doi cua va mau
t = Math.Abs(this.tu);
m = Math.Abs(this.mau);
//tim USCLN
while (t != 0)
if (t > m)
t = t - m;
else
m = m = t;
//tra ket qua
return t; //hay return m
}

- Cộng 2 phân số:

public Phanso cong(Phanso ps) //phuong thuc cong hai phan so
{
Phanso p_s; //khai bao doi tuong
//tao phan so p_s trong bo nho
p_s = new Phanso();
//tim tu va mau cua phan so p_s
p_s.tu = (this.tu * ps.mau + this.mau * ps.tu);
p_s.mau = (this.mau * ps.mau);
//toi gian phan so
p_s.toigian();
//doi dau mau
p_s.doidaumau();
//tra ket qua
return p_s;
}

- Trừ 2 phân số:

public Phanso tru(Phanso ps)
{
Phanso p_s;
//tao phan so p_s trong bo nho
p_s = new Phanso();
//tim tu va mau cua phan so p_s
p_s.tu = (this.tu * ps.mau - this.mau * ps.tu);
p_s.mau = (this.mau * ps.mau);
//toi gian phan so
p_s.toigian();
//doi dau mau
p_s.doidaumau();
//tra ket qua
return p_s;
}

- Nhân 2 phân số

public Phanso nhan(Phanso ps)
{
Phanso p_s;
//tao phan so p_s trong bo nho
p_s = new Phanso();
//tim tu va mau cua phan so p_s
p_s.tu = (this.tu * ps.tu);
p_s.mau = (this.mau * ps.mau);
//toi gian phan so
p_s.toigian();
//tra ket qua
return p_s;
}

- Chia 2 phân số:

public Phanso chia(Phanso ps)
{
Phanso p_s;
//tao phan so p_s trong bo nho
p_s = new Phanso();
//tim tu va mau cua phan so p_s
p_s.tu = (this.tu * ps.mau);
p_s.mau = (this.mau * ps.tu);
//tra ket qua
return p_s;
}

trên đây là những hàm xử lý phân số.
Bài code hoàn hình các bạn TẠI ĐÂY
Chúc các bạn học tập tốt !

Tính thể tích - diện tích hình trụ trong C C# - Bài toán hình trụ

Bài Code tiếp theo về lập trình hướng đối tượng, lớp (class) thừa kế. Gửi tới các bạn Code Tính thể tích - diện tích hình trụ trong C C# - Bài toán hình trụ. Trong Code này mình có sử dụng thừa kế của lớp hình tròn. Lớp hình tròn mình đã giới thiệu Ở ĐÂY. Bài toán xử lý hình trụ mình xây dựng thêm các hàm tính thể tích, diện tích của hình trụ.
Tính thể tích - diện tích hình trụ trong C

Vẫn như những bài Code trước, các hàm nhập, cập nhật...
Cụ thể:
Code:

public class HinhTru : HinhTron //thua ke class HinhTron
{
//thuoc tinh
private float h;
//phuong thuc
public void NhapHTru()
{
base.Nhap();
Console.Write("Nhap chieu cao: ");
this.h = float.Parse(Console.ReadLine());
}
public void CapNhatChieuCao(float cc)
{
this.h = cc;
}
public double TheTich()
{
double tt;
tt = this.Dientich() * this.h;
return tt;
}
public double DienTichXQ()
{
double dtxq;
dtxq = this.Chuvi() * this.h;
return dtxq;
}
public void Xuat()
{
Console.WriteLine("\t Chieu cao: " + this.h + "\n");
base.Xuat();
Console.ReadLine();
}
public void Menu(out byte Chon)
{
Console.Clear();
Console.WriteLine("\n\t|| BAN DA LUA CHON - THAO TAC VOI HINH TRU");
Console.WriteLine("\t||----------------------------------------||");
Console.WriteLine("\t|| 1. - Nhap thong tin hinh tru ||");
Console.WriteLine("\t|| 2. - Cap nhap diem ||");
Console.WriteLine("\t|| 3. - Cap nhap hoanh do ||");
Console.WriteLine("\t|| 4. - Cap nhap tung do ||");
Console.WriteLine("\t|| 5. - Cap nhat chieu cao ||");
Console.WriteLine("\t|| 6. - Cap nhap ban kinh ||");
Console.WriteLine("\t|| 7. - Tinh the tich hinh tru ||");
Console.WriteLine("\t|| 8. - Tinh dien tich hinh tru ||");
Console.WriteLine("\t|| 9. - Xuat thong tinh hinh tru ||");
Console.WriteLine("\t|| 0. - Ve menu chinh ||");
Console.WriteLine("\t||----------------------------------------||");
Console.Write("\n\t\t NHAP LUA CHON: ");
Chon = byte.Parse(Console.ReadLine());
}
public void Main()
{
HinhTru HTru = new HinhTru();
byte Chon;
char kitu10;
int a, b;
float h1;
double r1;
do
{
Menu(out Chon);
switch (Chon)
{

case 1:
Console.Clear();
HTru.NhapHTru();
break;
case 2:
Console.Clear();
Console.Write("\t= Nhap ten diem: ");
kitu10 = char.Parse(Console.ReadLine());
HTru.Capnhapdiem(kitu10);
break;
case 3:
Console.Write("\t= Nhap hoanh do: ");
a = int.Parse(Console.ReadLine());
HTru.Capnhaphoanhdo(a);
break;
case 4:
Console.Write("\t= Nhap tung do: ");
b = int.Parse(Console.ReadLine());
HTru.Capnhattungdo(b);
break;
case 5:
Console.Write("\t= Nhap chieu cao: ");
h1 = int.Parse(Console.ReadLine());
HTru.CapNhatChieuCao(h1);
break;
case 6:
Console.Write("\t= Nhap ban kinh r = ");
r1 = int.Parse(Console.ReadLine());
HTru.Capnhapbankinh(r1);
break;
case 7:
Console.Clear();
double V;
V = HTru.TheTich();
Console.Write("\t\n The tich hinh tru la: " + V.ToString("0.000")); // Xu ly cat chuoi
Console.ReadLine();
break;
case 8:
Console.Clear();
double Sht;
Sht = HTru.DienTichXQ();
Console.Write("\t\n Dien tich hinh tru la: " + Sht.ToString("0.000")); // Xu ly cat chuoi
Console.ReadLine();
break;
case 9:
Console.Clear();
Console.Write("Thong tin cua hinh tru \n");
HTru.Xuat();
Console.ReadLine();
break;
case 0:
break;
default:
Console.WriteLine("\n\t Khong co lua chon nay ! !");
break;
}
} while (Chon != 0);
}
}

-----------------------
Chúc các bạn học tập tốt !

BACK TO TOP