Go Back   VN-Zoom forum > Chia sẻ kiến thức > Lập trình > Pascal | C/C++

 

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 04-06-2008, 09:37   #1
Búa Đá
 
20070442's Avatar
 
Tham gia: May 2008
Bài: 52
VZD: 1.862
Điểm: 18/9 bài viết
Default giải giúp mình bài tập c ! khó quá

yêu cầu bài toán:lập chuong trình quản lý bán hàng sau
thông tin hàng hóa duợc luu dưới dạng bản ghi gồm:
tên hàng:ko quá 20 kí tự
mã hàng:6 ký tự
don giá:số thực
số luợng:số nguyên
a>hãy viết chuong trình nhập dữ liệu cho 1 ngáy bán hàng việc nhâp dữ liệu sẽ kết thúc khi tên hàng nhập vào là "***"
b>sắp sếp danh sách theo mã hàng
các bác nào rành giúp mình với 2 tuần nữa thi trên máy rồi,bài này khó ở chỗ ko cho biết tổng số hàng bán ra nếu cho dùng cấu trúc là xong,mình đọc giáo trình thấy bảo những bài lọai này phải dùng tệp ,nghĩa là đoc đượ cái gì từ bàn phím ghi ngay vào tệp sau dó sẽ thao tác trên tệp vì ko thể dùng mảng để lưu trữ ( giả sử số lượng là rất lớn),giúp mình nha (ah các bác giải ko dùng con trỏ nhé) cám on trước
20070442 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-06-2008, 10:00   #2
Rìu Sắt
 
die4rock's Avatar
 
Tham gia: Dec 2007
Bài: 179
VZD: 3.178
Điểm: 37/26 bài viết
Default

Hà hà bài này là thực hành tin đại cương ĐHBk đây mà.Nick bác lại dùng cả SHSV thế kia.Bài này dùng cấu trúc là phải đạo rồi,trong sách thực hành còn ghi rõ rành rành mà.Mình dùng thêm cấp phát bộ nhớ động là xong.Còn dùng tệp và tính toán trên tệp thì đâu đã đc học.

thay đổi nội dung bởi: die4rock, 04-06-2008 lúc 10:11.
die4rock vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-06-2008, 10:09   #3
Búa Đá
 
20070442's Avatar
 
Tham gia: May 2008
Bài: 52
VZD: 1.862
Điểm: 18/9 bài viết
Default

hi dân ta mà, giảng đường chậm mình máy tiết sắp thi rồi mà cái loại bài về tệp thầy vẫn im lìmthees có chết ko chứ bác rảnh ra tay hộ mình cái
20070442 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-06-2008, 10:14   #4
Rìu Sắt
 
die4rock's Avatar
 
Tham gia: Dec 2007
Bài: 179
VZD: 3.178
Điểm: 37/26 bài viết
Default

Mình hướng dẫn ở trên rồi bạn tự viết đi thi đến nơi rồi bận lắm
die4rock vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-06-2008, 10:20   #5
Búa Đá
 
20070442's Avatar
 
Tham gia: May 2008
Bài: 52
VZD: 1.862
Điểm: 18/9 bài viết
Default

lúc đầu mình cũng nghĩ dùng cấu trúc là ngon rồi song hôm ngồi nghe ké giảng đường khac thì thầy nói nếu mình khai báo là:
struct qlbh {
char tenhang[20];
char mahang[6];
float dongia;
int soluong;
}
struct qlbh a[100];
là sai vì nếu số lượng hàng là rất lớn thì mảng cấu trúc chẳng có nghĩa lý gì???????
20070442 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-06-2008, 10:25   #6
Rìu Sắt
 
die4rock's Avatar
 
Tham gia: Dec 2007
Bài: 179
VZD: 3.178
Điểm: 37/26 bài viết
Default

Đúng rồi 100 chẳng có nghĩa gì.Vì thế mới phải dùng cấp phát bộ nhớ động.bạn chưa đc học món này à?
die4rock vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-06-2008, 10:34   #7
Búa Đá
 
20070442's Avatar
 
Tham gia: May 2008
Bài: 52
VZD: 1.862
Điểm: 18/9 bài viết
Default

thì mình đọc trong bài giảng tin đại cương có đâu
cấp phát động? nói nghe xem nào
20070442 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-06-2008, 10:56   #8
Rìu Sắt
 
die4rock's Avatar
 
Tham gia: Dec 2007
Bài: 179
VZD: 3.178
Điểm: 37/26 bài viết
Default

Ông thầy giảng đường mình dạy món này mà.Bạn đi kiếm ngay 1 quyển lập trình C của GS.Phạm Văn Ất đi.Chứ K52 mới học C nên chưa có giáo trình cụ thể đâu.
die4rock vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-06-2008, 11:02   #9
Búa Đá
 
20070442's Avatar
 
Tham gia: May 2008
Bài: 52
VZD: 1.862
Điểm: 18/9 bài viết
Default

trời ông thầy mình là sinh viên k46 trường mình,ổng chẳng đả động đến cái món này ,chết tôi ko cơ chứ,học bk bao nhiêu ? lịch học tin hôm nào thế cho mình ké với
20070442 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-06-2008, 11:45   #10
Rìu Sắt
 
die4rock's Avatar
 
Tham gia: Dec 2007
Bài: 179
VZD: 3.178
Điểm: 37/26 bài viết
Default

Ông thầy mình là ông Tô Văn Nam thì phải nhưng 2 tuần nay ông có đi dạy đâu.dạy hết rồi.
Phần tệp thì bọn mình mới chỉ học sử dụng tệp chứa kết quả thôi chứ chưa để tính toán.Đề thi bọn kỳ 1 cũng thế mà.Mua lấy 1 quyển sách mà học,tội gì."Kỹ thuật lập trình C-cơ bản và nâng cao" GS.Phạm Văn Ất.
die4rock vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-06-2008, 11:48   #11
Rìu Sắt
 
darling's Avatar
 
Tham gia: Dec 2007
Bài: 175
VZD: 4.046
Điểm: 61/36 bài viết
Default

ôi!! bài này dài wá!!! nhưng bài ko khó, bạn kia chỉ hết rồi!!! cố lên. Mình cũng sắp thì rồi.

Nói ngoài lề chút nha: 2 bạn cùng học trong trường ĐHBK hả?? mình là KHTN
__________________

Bạn có trang web với địa chỉ dài khó nhớ, muốn dễ nhớ như http://it9x.co.cc thì click vào hình dưới để đăng kí tên miền free CO.CC . Ủng hộ it9x thì bạn click vào hình để đăng kí nha.


List bài tập lập trình C cơ bản và tổng hợp

List mảng một chiều

List ma trận (mảng 2 chiều)

darling vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-06-2008, 12:23   #12
Búa Gỗ
 
Yeuhayhok's Avatar
 
Tham gia: Apr 2008
Bài: 12
VZD: 968
Điểm: 16/4 bài viết
Default

cai nay tui chiu tui chua hoc den nhung ma chi tinh ra dc lâ` ko biet co dung ko
Yeuhayhok vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-06-2008, 13:45   #13
Rìu Sắt
 
darling's Avatar
 
Tham gia: Dec 2007
Bài: 175
VZD: 4.046
Điểm: 61/36 bài viết
Default

Bạn tham khảo thử xem --> đây cũng là bài hàng hóa trong lớp mình đó
trong file .h
PHP Code:
#ifndef _HUNGDAUTROC_h_
#define _HUNGDAUTROC_h_

#include "stdio.h"
#include "conio.h"
#include "windows.h"
#include "string.h"

struct mathang
{
    
char name[50],msmh[10];
    
long giaban,giamua;
    
int soluong;
};

void menu()
{
    
printf("-----------------------------------------------------------------------------\n");
    
printf("| CHON |   1  |   2   |    3   |   4   |    5   |    6   |    7   |    8    |\n");
    
printf("       ----------------------------------------------------------------------\n");
    
printf("| MENU | READ |  ADD  | DELETE |  BUY  |  GIAM  |  TANG  | SEARCH |  FINISH |\n");
    
printf("-----------------------------------------------------------------------------\n");
}

void nhap1mathang(mathang &dau)
{
    
printf("\n---------------\n|NHAP MAT HANG|\n---------------\n");
    
printf("MSMH: ");fflush(stdin);gets(dau.msmh);
    
printf("NAME: ");fflush(stdin);gets(dau.name);
    
printf("GIA BAN: ");scanf("%ld", &dau.giaban);
    
printf("GIA MUA: ");scanf("%ld", &dau.giamua);
    
printf("SO LUONG: ");scanf("%d", &dau.soluong);
}

void xuat1mathang(mathang dau)
{
    
printf("\n---------------\n");
    
printf("|XUAT MAT HANG|\n");
    
printf("---------------\n");
    
printf("\nMSMH: %s",dau.msmh);
    
printf("\nNAME: %s",dau.name);
    
printf("\nGIA BAN: %ld",dau.giaban);
    
printf("\nGIA MUA: %ld"dau.giamua);
    
printf("\nSO LUONG: %d"dau.soluong);
}

void nhapNmathang(mathang moi[], int &mh);

void xuatNmathang(mathang moi[], int mh);

void sapxepmathang(mathang moi[], int mh);

void addhangmoi(mathang moi[], int &mh,mathang innew[], int mhnew);

void xoamathang(mathang moi[], int &mhmathang canxoa[], int mhxoa);

void khachmuahang(mathang moi[], int &mhmathang canmua[], int &muaint &tienthanhtoan);

void searchMH(mathang moi[],int mhmathang search);

void main()/*===================MAIN NE========================*/
{
    
int linh1=0;
    do
    {
        
system("cls");
        
menu();

        
int linh2=0;
        
int mh;    
        
mathang moi[1000];
        
printf("\tNHAP SO MAT HANG: ");scanf("%d", &mh);
        
nhapNmathang(moi,mh);
        do
        {
            
int luuchon;
            
printf("\n\tNHAP LUU CHON: ");scanf("%d", &luuchon);
            if(
luuchon==1)
            {
                
sapxepmathang(moi,mh);
                
xuatNmathang(moi,mh);
            }

            if(
luuchon==2)
            {
                
int mhnew;
                
printf("\tNHAP SO MAT HANG ADD: ");scanf("%d", &mhnew);
                
mathang innew[1000];
                
nhapNmathang(innew,mhnew);
                
addhangmoi(moi,mh,innew,mhnew);
            }

            if(
luuchon==3)
            {
                
int mhxoa;
                
printf("CAN XOA BAO NHIU MAT HANG: ");scanf("%d", &mhxoa);

                while(
mhxoa<0||mhxoa>mh)
                {
                    
printf("CAN XOA BAO NHIU MAT HANG: ");scanf("%d", &mhxoa);
                }
                
mathang canxoa[1000];
                for(
int i=1;i<=mhxoa;i++)
                {
                    
printf("\tNAME %d: ",i);fflush(stdin);gets(canxoa[i].name);
                }

                
xoamathang(moi,mh,canxoa,mhxoa);
            }

            if(
luuchon==4)
            {
                
int tienthanhtoan=0,i;
                
mathang canmua[1000];
                
int mua;
                
printf("\n\tNHAP SO LUONG MAT HANG MUA: ");scanf("%d", &mua);
                for(
i=1;i<=mua;i++)
                {
                    
printf("NHAP NAME: ");fflush(stdin);gets(canmua[i].name);
                    
printf("SO LUONG: ");scanf("%d", &canmua[i].soluong);
                }
                
khachmuahang(moi,mh,canmua,mua,tienthanhtoan);
                if(
mua==0)
                    
printf("\nSO TIEN BAN CAN TRA LA: %d  $\n"tienthanhtoan);
                else
                {
                    
printf("\nMOT SO MAT HANG CHUNG TOI CHUA CO:\t");
                    for(
i=1;i<=mua;i++)
                    {
                        
printf("%s   ",strupr(canmua[i].name));
                    }
                    
printf("\nVAY SO TIEN BAN CAN TRA LA: %d  $\n"tienthanhtoan);
                }
            }

            if(
luuchon==5||luuchon==6)
            {
                
printf("\nCHUA DEN MUA CHUA GIAM GIA HOAC TANG GIA\n");
            }

            if(
luuchon==7)
            {
                
int mhsearch;
                
printf("\n\tNHAP SO MAT HANG CAN TIM: ");scanf("%d", &mhsearch);

                for(
int i=1;i<=mhsearch;i++)
                {
                    
mathang search;
                    
printf("\n\tNHAP NAME: ");fflush(stdin);gets(search.name);
                    
searchMH(moi,mh,search);
                }
            }

            if(
luuchon==8)
            {
                return;
            }

            if(
mh==0)
            {
                
printf("\nWARNIG: MAT HANG DA HET XIN NHAP MAT HANG MOI\n");
                
system("PAUSE");
                
linh2=1;
            }
            else
            {
                
int linh;
                
printf("\n\nNeu nhap 0 quay lai menu\nNeu nhap 1 star\nNhap bat ky thoat\n");
                
printf("NHAP LUU CHON 2: ");scanf("%d", &linh);

                if(
linh==1)
                {
                    
system("color 1a");
                    
Sleep(300);
                    
system("color 2a");
                    
Sleep(300);
                    
system("color 3a");
                    
Sleep(300);
                    
system("color 4a");
                    
Sleep(300);
                    
system("color 5a");
                    
Sleep(300);
                    
system("color 6a");
                    
Sleep(300);
                    
system("color 7a");
                    
Sleep(300);
                    
system("color 8a");
                    
Sleep(300);
                    
system("color 9a");
                    
Sleep(300);
                    
linh2=1;
                    
system("cls");
                }

                else 
                {    
                    if(
linh==0)
                    {  
                        
system("cls");
                        
menu();
                        
xuatNmathang(moi,mh);
                    }

                    else
                        return;
                }
            }

        }while(
linh2==0);

    }while(
linh1==0);
}

#endif 
trong file CPP
PHP Code:
#include "HUNGDAUTROC.h"

void nhapNmathang(mathang moi[], int &mh)
{
    for(
int i=1;i<=mh;i++)
        
nhap1mathang(moi[i]);
}

void xuatNmathang(mathang moi[], int mh)
{
    for(
int i=1;i<=mh;i++)    
        
xuat1mathang(moi[i]);
}

void sapxepmathang(mathang moi[], int mh)
{
    
mathang hv[10];
    for(
int i=1;i<=mh;i++)
        for(
int j=i+1;j<=mh;j++)
            if(
moi[i].name[0]>moi[j].name[0])
            {
                
hv[i]=moi[i];
                
moi[i]=moi[j];
                
moi[j]=hv[i];
            }
}

void addhangmoi(mathang moi[], int &mh,mathang innew[], int mhnew)
{
    
int tam=mh;
    
int lan=0;
    for(
int j=1;j<=mhnew;j++)
    {
        
int dem=0;
        for(
int i=1;i<=mh;i++)
        {
            if(
strcmp(moi[i].name,innew[j].name)==0)
                
dem++;
            if(
lan