01/10/2018, 01:07

Chương trình bị lỗi?

bị lỗi ji v mọi người!!! chạy dc vài cái nó bị z luôn

X viết 03:09 ngày 01/10/2018

Post code lên thì mọi người mới biết được lỗi ở đâu nhe bạn ơi :v

lien viết 03:16 ngày 01/10/2018

Post code lên thì mọi người mới biết được lỗi ở đâu nhe bạn ơi :v

cho e hỏi cái lỗi đó là lỗi ji v?

Tao Không Ngu. viết 03:19 ngày 01/10/2018

Hi lienlien11a2.
Theo minh là lỗi đọc ghi vùng nhớ không được phép.

Người bí ẩn viết 03:13 ngày 01/10/2018

cho e hỏi cái lỗi đó là lỗi ji v?

Bạn post code lên đi, chứ 1 bức ảnh thì khó biết lắm, mà biết thì cũng không sửa được

lien viết 03:16 ngày 01/10/2018

Hi lienlien11a2.Theo minh là lỗi đọc ghi vùng nhớ không được phép.

sao sửa đây ạ… ns khái quát cách sửa đc ko ạ?

lien viết 03:18 ngày 01/10/2018

Bạn post code lên đi, chứ 1 bức ảnh thì khó biết lắm, mà biết thì cũng không sửa được

sao post lên giwof a?? e post dạng .rar ko chịu nhận

Người bí ẩn viết 03:09 ngày 01/10/2018

Bạn copy cái source code của bạn rồi paste lên cái khung trả lời này, nhớ markdown code lại cho dễ nhìn (về cách markdown thì có thể search trên diễn đàn)

lien viết 03:23 ngày 01/10/2018

Bạn copy cái source code của bạn rồi paste lên cái khung trả lời này, nhớ markdown code lại cho dễ nhìn (về cách markdown thì có thể search trên diễn đàn)


#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <Windows.h>
#include <time.h>
#include <math.h>
#include "header.h"

int ThemSach(int &P, char ISBN[][30], char tensach[][30], char tacgia[][30], char nhaxuatban[][30], char theloai[][30], int ngayxuatban[], int thangxuatban[], int namxuatban[], float giasach[], float soquyensach[])
{
	char s;
	char ten[100][30];
	char ts[100][30], GT[100][30], ms[100][30], tls[100][30];
	float tym;
	do
	{
		system("cls");
		P++;
		fflush(stdin);
		gets_s(ten[P]);
		do
		{
			printf("Nhap vao Ma sach (ISBN) :  ");
			fflush(stdin);
			gets_s(ms[P]);		// mảng tạm dùng để lưu ISBN nhập vào và so sánh
			if (KiemTraLap(ISBN, ms, P) == 1) printf("Ma sach bi trung, nhap lai\n");
		} while (KiemTraLap(ISBN, ms, P) == 1);		//kiểm tra xem ISBN có bị trùng không
		strcpy_s(ISBN[P], ms[P]);			// lưu ISBN vào mảng
		do
		{
			printf("Nhap vao ten sach:  ");
			fflush(stdin);
			gets_s(ts[P]);
			if (KiemTraLap(tensach, ts, P) == 1) printf("Ten sach bi trung, nhap lai\n");
		} while (KiemTraLap(tensach, ts, P) == 1);	// kiểm tra tên sách có bị trùng không
		strcpy_s(tensach[P], ts[P]);
		printf("Nhap vao ten tac gia:  ");
		fflush(stdin);
		gets_s(tacgia[P]);
		printf("Nhap vao nha xuat ban:  ");
		gets_s(nhaxuatban[P]);
		int d, m, y;
		do
		{
			printf("Nhap vao ngay/thang/nam xuat ban(dd/mm/yyyy):  ");
			scanf_s("%d/%d/%d", &d, &m, &y);
			if (KiemTraNgay(d, m, y) == 0) printf("Ngay,thang,nam nhap vao khong hop le.Nhap lai\n");
		} while (KiemTraNgay(d, m, y) == 0); // kiểm tra ngày/tháng/năm nhập vào hợp lệ không
		ngayxuatban[P] = d;
		thangxuatban[P] = m;
		namxuatban[P] = y;
		printf("CO 12 THE LOAI SACH:\n+Sach binh luan van hoc\n+Sach khoa hoc gia tuong\n+Sach giao khoa\n+Sach khoa hoc\n");
		printf("+Sach kinh doanh\n+Sach chinh tri\n+Sach lich su\n+Sach thieu nhi\n+Sach thieu nien\n+Sach tu luc\n+Sach dia ly\n+Sach phi hu cau\n");
		gets_s(ten[P]); //
		do
		{
			printf("Nhap  the loai sach:  ");
			fflush(stdin);
			gets_s(tls[P]);		//mảng tạm lưu thể loại sách để kiểm tra
			if (KiemTraTheLoai(tls, P) == 0) printf("The loai sach khong hop le, nhap lai\n");
		} while (KiemTraTheLoai(tls, P) == 0);
		strcpy_s(theloai[P], tls[P]);
		do
		{
			printf("Nhap vao gia tien sach:  ");
			scanf_s("%f", &giasach[P]);
			if (giasach[P] <= 0) printf("Gia sach khong hop le, nhap lai\n");
		} while (giasach[P] <= 0); // kiểm tra giá tiền là số dương
		do
		{
			printf("Nhap vao so luong sach:  ");
			scanf_s("%f", &tym);
			if (tym <= 0 || fmod(tym, 1) != 0) printf("So luong sach khong hop le, nhap lai\n");
		} while (tym <= 0 || fmod(tym, 1) != 0); // kiểm tra số quyên sách phải nguyên dương hay không
		soquyensach[P] = int(tym);
		printf("Ban co muon nhap them khong(Y/N) ");
		s = _getch();
	} while (s == 'y' || s == 'Y');
	return P;
}
void XemDanhSachCacSach(int P, char ISBN[][30], char tensach[][30], char tacgia[][30], char nhaxuatban[][30], char theloai[][30], int ngayxuatban[], int thangxuatban[], int namxuatban[], float giasach[], float soquyensach[])
{
	system("cls");
	printf("DANH SACH CAC QUYEN SACH TRONG THU VIEN\n");
	printf("\n-----------------------------------------\n");
	if (P == 0) printf("Chua co sach trong danh sach");
	else
	{
		for (int i = 1; i <= P; i++)
		{
			printf("Ma sach (ISBN): %s\n", ISBN[i]);
			printf("Ten sach: %s\n", tensach[i]);
			printf("Tac gia: %s\n", tacgia[i]);
			printf("Nha xuat ban: %s\n", nhaxuatban[i]);
			printf("Ngay/thang/nam xuat ban:%d/%d/%d\n", ngayxuatban[i], thangxuatban[i], namxuatban[i]);
			printf("The loai sach: %s\n", theloai[i]);
			printf("Gia tien 1 quyen sach: %f\n", giasach[i]);
			printf("So sach co trong thu vien:%.0f", soquyensach[i]);
			printf("\n------------------------------------\n");
		}
	}
}

void ChinhSuaThongTinSach(int P, char ISBN[][30], char tensach[][30], char tacgia[][30], char nhaxuatban[][30], char theloai[][30], int ngayxuatban[], int thangxuatban[], int namxuatban[], float giasach[], float soquyensach[])
{
	char s;
	char ten[100][30], b[100][30], mdg[100][30];
	int tym;
	char tam1[100][30];
	char ts[100][30], GT[100][30], ms[100][30], tls[100][30];
	char tam[100][30];//lấy ISBN của sách cần thay đổi
	int k = -1;//lấy vị trí lưu sách cần thay đổi
	do
	{
		system("cls");
		fflush(stdin);
		gets_s(tam1[P]);//
		printf("Nhap Ma sach (ISBN) cua sach ban muon thay doi: ");
		fflush(stdin);
		gets_s(tam[P]);
		for (int i = 1; i <= P; i++)
		{
			if (KiemTraLap(ISBN, tam, P) == 1) k = i; break;
		}
		if (k == -1) printf("Sach ban can thay doi khong co trong danh sach");
		else
		{
			printf("Nhap thong tin moi cho sach\n");
			do
			{
				printf("Nhap vao Ma sach (ISBN):  ");
				fflush(stdin);
				gets_s(ms[P]);
				if (KiemTraLap(ISBN, ms, P) == 1) printf("Ma sach bi trung, nhap lai\n");
			} while (KiemTraLap(ISBN, ms, P) == 1);
			strcpy_s(ISBN[k], ms[P]);
			do
			{
				printf("Nhap vao ten sach:  ");
				fflush(stdin);
				gets_s(ts[P]);
				if (KiemTraLap(tensach, ts, P) == 1) printf("Ten sach bi trung, nhap lai\n");
			} while (KiemTraLap(tensach, ts, P) == 1);
			strcpy_s(tensach[k], ts[P]);
			printf("Nhap vao ten tac gia:  ");
			fflush(stdin);
			gets_s(tacgia[k]);
			printf("Nhap vao nha xuat ban:  ");
			gets_s(nhaxuatban[k]);
			int d, m, y;
			do
			{
				printf("Nhap vao ngay/thang/nam xuat ban(dd/mm/yyyy):  ");
				scanf_s("%d/%d/%d", &d, &m, &y);
				if (KiemTraNgay(d, m, y) == 0) printf("Ngay,thang,nam nhap vao khong hop le.Nhap lai\n");
			} while (KiemTraNgay(d, m, y) == 0);
			ngayxuatban[k] = d;
			thangxuatban[k] = m;
			namxuatban[k] = y;
			printf("CO 12 THE LOAI SACH:\n-Sach binh luan van hoc\n-Sach khoa hoc gia tuong\n-Sach giao khoa\n-Sach khoa hoc\n");
			printf("-Sach kinh doanh\n-Sach chinh tri\n-Sach lich su\n-Sach thieu nhi\n-Sach thieu nien\n-Sach tu luc\n-Sach dia ly\n-Sach phi hu cau\n");
			gets_s(ten[P]); //
			do
			{
				printf("Nhap vao the loai sach:  ");
				fflush(stdin);
				gets_s(tls[P]);
				if (KiemTraTheLoai(tls, P) == 0) printf("The loai sach khong hop le, nhap lai\n");
			} while (KiemTraTheLoai(tls, P) == 0);
			strcpy_s(theloai[k], tls[P]);
			do
			{
				printf("Nhap vao gia tien sach:  ");
				scanf_s("%f", &giasach[k]);
				if (giasach[k] <= 0) printf("Gia sach khong hop le, nhap lai\n");
			} while (giasach[k] <= 0);
			do
			{
				printf("Nhap vao so luong sach:  ");
				scanf_s("%f", &soquyensach[k]);
				if (soquyensach[k] <= 0 || fmod(soquyensach[k], 1) != 0) printf("So luong sach khong hop le, nhap lai\n");
			} while (soquyensach[k] <= 0 || fmod(soquyensach[k], 1) != 0);
		}
		printf("Ban co muon thay doi them khong(Y/N) ");
		s = _getch();
	} while (s == 'y' || s == 'Y');
}
void XoaThongTinSach(int P, char ISBN[][30], char tensach[][30], char tacgia[][30], char nhaxuatban[][30], char theloai[][30], int ngayxuatban[], int thangxuatban[], int namxuatban[], float giasach[], float soquyensach[])
{
	char s;
	int tym;
	char tam[100][30], tam1[100][30];
	char ts[100][30], GT[100][30], ms[100][30], tls[100][30];
	int k = -1;//lấy vị trí lưu của sách cần xoá
	do
	{
		system("cls");
		fflush(stdin);
		gets_s(tam1[P]);//
		printf("Nhap Ma sach (ISBN) ban muon xoa: ");
		fflush(stdin);
		gets_s(ms[P]);		//mảng tạm lưu mã ISBN của sách cần thay đổi
		k = TimViTriCanThaoTac(ISBN, ms, P); // lấy vị trí lưu của sách cần xoá 
		if (k == -1) printf("Sach ban can xoa khong co trong danh sach");
		else
		{
			for (int i = k; i <= P - 1; i++) // xoá sách được lưu trong mảng
			{
				strcpy_s(ISBN[i], ISBN[i + 1]);
				strcpy_s(tensach[i], tensach[i + 1]);
				strcpy_s(tacgia[i], tacgia[i + 1]);
				strcpy_s(nhaxuatban[i], nhaxuatban[i + 1]);
				strcpy_s(theloai[i], theloai[i + 1]);
				ngayxuatban[i] = ngayxuatban[i + 1];
				thangxuatban[i] = thangxuatban[i + 1];
				namxuatban[i] = namxuatban[i + 1];
				giasach[i] = giasach[i + 1];
				soquyensach[i] = soquyensach[i + 1];
			}
			P--;			//trả lại giá trị của mảng
			printf("Sach da duoc xoa\n");
		}
		printf("\nBan co muon xoa them sach khong(Y/N) ");
		s = _getch();
	} while (s == 'y' || s == 'Y');
}
void TimKiemSachTheoISBN(int P, char ISBN[][30], char tensach[][30], char tacgia[][30], char nhaxuatban[][30], char theloai[][30], int ngayxuatban[], int thangxuatban[], int namxuatban[], float giasach[], float soquyensach[])
{
	char s;
	char ms[100][30], d[100][30];
	int tym;
	int k = -1;//biến dùng để lấy vị trí sách cần tìm kiếm
	do
	{
		system("cls");
		fflush(stdin);
		gets_s(d[P]);//
		printf("Nhap ISBN cua sach ban muon tim: ");
		fflush(stdin);
		gets_s(ms[P]);
		k = TimViTriCanThaoTac(ISBN, ms, P); // lấy vị trí lưu của sách đang tìm kiếm
		if (k == -1) printf("Sach ban can tim khong co trong danh sach");
		else
		{
			printf("Ma sach (ISBN): %s\n", ISBN[k]);
			printf("Ten sach: %s\n", tensach[k]);
			printf("Tac gia: %s\n", tacgia[k]);
			printf("Nha xuat ban: %s\n", nhaxuatban[k]);
			printf("Ngay/thang/nam xuat ban:%d/%d/%d\n", ngayxuatban[k], thangxuatban[k], namxuatban[k]);
			printf("The loai sach: %s\n", theloai[k]);
			printf("Gia tien 1 quyen sach: %f\n", giasach[k]);
			printf("So sach co trong thu vien:%.0f", soquyensach[k]);
			printf("\n===============================================\n");
		}
		printf("\nBan co muon tim them sach khong(Y/N) ");
		s = _getch();
	} while (s == 'y' || s == 'Y');
}
void TimKiemSachTheoTenSach(int P, char ISBN[][30], char tensach[][30], char tacgia[][30], char nhaxuatban[][30], char theloai[][30], int ngayxuatban[], int thangxuatban[], int namxuatban[], float giasach[], float soquyensach[])
{
	char s;
	char ts[100][30], d[100][30];
	int tym;
	int k = -1;			//biến dùng để lấy vị trí sách cần tìm kiếm
	do
	{
		system("cls");
		fflush(stdin);
		gets_s(d[P]);//
		printf("Nhap ten cua sach ban muon tim: ");
		fflush(stdin);
		gets_s(ts[P]);
		k = TimViTriCanThaoTac(tensach, ts, P);
		if (k == -1) printf("Sach ban can tim khong co trong danh sach");
		else
		{
			printf("Ma sach (ISBN): %s\n", ISBN[k]);
			printf("Ten sach: %s\n", tensach[k]);
			printf("Tac gia: %s\n", tacgia[k]);
			printf("Nha xuat ban: %s\n", nhaxuatban[k]);
			printf("Ngay/thang/nam xuat ban:%d/%d/%d\n", ngayxuatban[k], thangxuatban[k], namxuatban[k]);
			printf("The loai sach: %s\n", theloai[k]);
			printf("Gia tien 1 quyen sach: %f\n", giasach[k]);
			printf("So sach co trong thu vien:%.0f", soquyensach[k]);
			printf("\n===============================================\n");
		}
		printf("\nBan co muon tim them sach khong(Y/N) ");
		s = _getch();
	} while (s == 'y' || s == 'Y');
}
Hidan viết 03:10 ngày 01/10/2018

hình như vòng lặp bị lỗi lặp vô hạn

Tao Không Ngu. viết 03:21 ngày 01/10/2018

Hi lienlien11a2.
Các lỗi liên quan đến con trỏ. VD duyệt mảng :
for (int i = 1; i <= P; i++)
Con trỏ không được cấp phát. hàm scanf new delete malloc v.v.v…
Các lỗi logic không có 1 mẫu chuẩn tìm và sửa. Bạn cần code nhiều có phong cách lập trình sạch sẽ và thuật toán rõ ràng. Thời gian code dủ dài và có kinh nghiệm debug.
Chúc bạn thành công.

Bài liên quan
0