Chuyên mục tin học
Top 10 PCGuide
cập nhật lúc 04:38 ngày 22/05
Sự kiện Intel
Intel Vietnam

Promote Your Page Too
Giúp mình sửa bài tập này nhé?
nam1
Bài viết: 1
Ngày gởi: 01/11/2010 | Số lần xem: 875 | Góp ý: 2
Giới thiệu bạn bè
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>

struct hangthuoc
{
char tenthuoc[100];
char congdung;    
double dongia;
int soluong;
};
//---------------------------- -----------------

void themloaithuocmoi(hangthuoc dslt[], int *n);
void indanhsachcacloaithuoc(hangthu oc dslt[], int n);
void sapxep(hangthuoc dslt[], int n);
void timthuoctheoten (hangthuoc dslt[], int n);
void xoathuocTheoTen(hangthuoc dslt[], int *n);
//---------------------------- -------------
main()
{
   hangthuoc loaithuoc[100];
   int n=0;
   int chon;
do
{
   system("cls");  
printf("n******************** ***********************");
printf("n* 1 Them loai thuoc moi                   *");
printf("n* 2 In danh sach cac loai thuoc hien co   *");
printf("n* 3 Sap xep danh sach loai thuoc          *");
printf("n* 4 Tim thuoc theo ten va conh dung       *");
   printf("n* 5 Xoa thuoc theo ten                    *");
printf("n* 6 Thoat chuong trinh                    *");
printf("n******************** ***********************");

printf("nBan chon chuc nang nao ? ");
scanf("%d",&chon);
switch(chon)
{
case 1:
        themloaithuocmoi(loaithuoc,&n) ;
break;
case 2:
        indanhsachcacloaithuoc(loaithu oc,n);
break;
case 3:
        sapxep(loaithuoc,n);

break;
case 4:
      timthuoctheoten(loaith uoc,n);
break;
     case 5:
      xoathuocTheoTen(loaith uoc,&n);
break;
case 6:
exit(0);
}
  printf("nAn phim bat ky de tiep tuc.");
  getch();
} while(0==0);

}
//---------------------------- --------------
void themloaithuocMoi(hangthuoc dslt[], int *n)
{
hangthuoc ht;
printf("nNhap thong tin loai thuoc moi:n");
printf("Nhap cong dung:");
scanf("%d", &ht.congdung);
fflush(stdin);
printf("Nhap ten thuoc:");
gets(ht.tenthuoc);
printf("Nhap So luong:");
scanf("%d", &ht.soluong);
printf("Nhap Don gia:");
scanf("%lf", &ht.dongia);

dslt[*n]=ht;
(*n)++;
}
//---------------------------- ------------------------------ -----
void inDanhsachcacloaithuoc(hangthu oc dslt[], int n)
{
  int i;
  hangthuoc ht;
  double tongthanhtien=0;
  printf("%5s %-30s %10s %15s %15s","STT","ten loai thuoc", "so luong", "don gia", "thanh tien");
  for(i=0; i<n; i++)
  {
  ht= dslt[i];
     tongthanhtien+= ht.soluong*ht.dongia;
     printf("n%5d %-30s %10d %15.2f %15.2f",i+1,ht.tenthuoc, ht.soluong, ht.dongia, ht.soluong*ht.dongia);
  }

  printf("nn%40s %0.2f","Tong tri gia kho hang:",tongthanhtien);
}
//---------------------------- ------------------------------ ----
void sapxep(hangthuoc dslt[], int n)
{
int i,j;
  hangthuoc tg;
  for(i=0; i<n-1; i++)
  for(j=i+1; j<n; j++)
      if ( strcmp(dslt[i].tenthuoc , dslt[j].tenthuoc)>0 )
      {
            tg=dslt[i];
            dslt[i]=dslt[j];
            dslt[j]=tg;
        }
}
//---------------------------- ------------------------------ -------
void timthuocTheoTen(hangthuoc dslt[], int n)
{
  char tenthuoctim[100];
  int j;
  hangthuoc ht;
  int timthay=0;

  printf("nNhap ten mat hang can tim:");
  fflush(stdin);
  gets(tenthuoctim);

  for(j=0; j<n; j++)
  if ( strcmp(dslt[j].tenthuoc , tenthuoctim)==0 )
      {
            printf("%5s %-30s %10s %15s %15s","STT","ten loai thuoc", "so luong", "don gia", "thanh tien");
            ht= dslt[j];
            printf("n%5d %-30s %10d %15.2f %15.2f",j+1,ht.tenthuoc, ht.soluong, ht.dongia, ht.soluong*ht.dongia);
            timthay=1;
            break;
        }

 if(timthay==0)
  printf("nKhong co loai thuoc nay trong cua hang  ");

}
//---------------------------- ------------------------------ --------
void xoathuocTheoTen(hangthuoc dslt[], int *n)
{
  char tenthuoctim[100];
  int j;
  hangthuoc ht;
  int vitri=-1;

  printf("nNhap ten loai thuoc can xoa:");
  fflush(stdin);
  gets(tenthuoctim);
  for(j=0; j<(*n); j++)
  if ( strcmp(dslt[j].tenthuoc , tenthuoctim)==0 )
      {
            vitri=j;
            break;
        }

 if(vitri>0)
 {
  for(j=vitri; j<(*n)-1; j++)
     dslt[j]=dslt[j+1];
  (*n)--;
 }

}



// cac ban giup minh xem bai nay sai o cho nao va sua cho minh nha
10
PTS
Câu trả lời hay:
Chưa có
Báo cáo vi phạm
0
Bài viết đã bị đóng.

Câu Trả lời
hungmaster
Bài viết: 2700
Ngày gởi: 08/12/2010 04:51 PM
code bạn làm mình hoa cả mắt
Báo cáo vi phạm
0 bình chọn bài hay
Câu Trả lời
thienduong
Bài viết: 963
Ngày gởi: 02/11/2010 12:53 AM
Mình chưa tiện test bài của bạn nhưng đọc qua mình thấy trong hàm so sánh chuỗi strcmp bạn nên thêm hàm cắt bỏ kí tự trắng thừa và hàm chuyển 2 chuổi so sánh sang hoa hoặc thường thì bài làm của bạn sẽ tốt hơn.vì nếu tìm ten thuoc khi đó sẽ khôg phân biệt hoa thườg mà nếu bạn nhập không đúng với trog ds thì kết quả sẽ là không tìm thấy trog khi tên thuốc đã đúng chỉ khác hoa, thườg hay có kí tự trắng 1 hay hai bên tên thuốc.Đó là góp ý của mình, hi vọg có ích cho bạn.CHÚC BẠN THÀNH CÔNG.
Báo cáo vi phạm
0 bình chọn bài hay

ˆ Lên đầu trang