Trờng Đại Học Bách Khoa Hà Nội Khoa Công Nghệ Thông TinBáo cáo thực tập cơ sở Đề tài : Lập chơng trình quản lý cửa hàng đơn giản Giáo viên hớng dẫn : Nguyễn Thị Ngọc Bích A Sinh viên :
Trang 1Trờng Đại Học Bách Khoa Hà Nội Khoa Công Nghệ Thông Tin
Báo cáo thực tập cơ sở
Đề tài :
Lập chơng trình quản lý cửa hàng đơn giản
Giáo viên hớng dẫn : Nguyễn Thị Ngọc Bích A
Sinh viên : Nguyễn Thanh
Lớp : Tin 5 - K46
Hà Nội -05/ 2004
Lời giới thiệu
Ngày nay cùng với sự phát triển vợt bậc của khoa học kỹ thuật thì côngnghệ thông tin là một trong những ngành có đóng góp to lớn nhất, bởi lẽ công
Trang 2nghệ thông tin đã và đang có mặt trong hầu hết các lĩnh vực của cuộc sống, đặtbiệt là trong trong công tác quản lý Với sự phát triển nhanh chóng của côngnghệ thông tin thì việc áp dụng nó lại đòi hỏi mỗi nhà thiết kế hệ thống phải cómột cái nhìn tổng quan về hệ thống trong lĩnh vực xử lý thông tin Tuy nhiên vớitrình độ ở nớc ta vẫn còn hạn chế nên việc áp dụng các quá trình quản lý bằngmáy tính vẫn còn gặp nhiều khó khăn, và nó đòi hỏi sự cố gắng trong tơng lai
đối với mỗi sinh viên khoa công nghệ thông tin nói riêng và những ngời yêuthích máy tính nói chung
Để thực hành những lý thuyết đã đợc học ở trờng, cô Nguyễn Thị NgọcBích A đã phân công cho em viết một chơng trình nhỏ để quản lý hàng hoá trongmột cửa hàng Với yêu cầu bài toán nh vậy, em đã áp dụng những kiến thức đãhọc ở trờng kết hợp với những tài liệu tham khảo để phân tích và thiết kế ch ơngtrình quản lý cửa hàng đơn giản Vì thời gian và kiến thức có hạn nên cha thực
sự đầy đủ, tỉ mỉ vì vậy không thể tránh khỏi những khiếm khuyết Nhng emmong đây sẽ là tiền đề, là cơ sở cho em về sau để thiết kế những chơng trình lớnhơn, mang tính hệ thống cao hơn
Cuối cùng em muốn tỏ lòng biết ơn của em về sự hớng dẫn, chỉ bảo vàgiúp đỡ nhiệt tình của cô giáo Nguyễn Thị Ngọc Bích A, Khoa công nghệ thôngtin trờng Đại học Bách Khoa Hà Nội đã giúp em hoàn thành bản báo cáo này
Ch ơng I : Giới thiệu nội dung đề tài
1 Giới thiệu đề tài :
Đề tài thực tập cơ sở “ Lập chơng trình quản lý cửa hàng đơn giản ”
do cô giáo Nguyễn Thị Ngọc Bích A phân công và trực tiếp hớng dẫn
Để quản lý hàng hoá trong cửa hàng cần có một danh sách các loại hàng
đang có trong cửa hàng :
+ Các thuộc tính của hàng :
Trang 3- Loại khỏi danh sách các loại hàng vừa bán
- Sửa lại thông tin của một loại hàng hóa
Ch ơng II : Phân tích hệ thống
1 Mục đích :
- Tập tự tổ chức một chơng trình
2 Các chức năng của hệ thống :
+ Các yêu cần xử lý hàng hoá :
- Xem loại hàng trớc loại hàng hiện tại
- Xem loại hàng sau loại hàng hiện tại
Trang 4- Tìm một loại hàng hóa nào đó + In hoá đơn thanh toán khi bán hàng, hoá đơn gồm có :
3 H ớng giải quyết bài toán :
Với bài toán này em đã mạnh dạn sử dụng ngôn ngữ Visual Basic, đây làmột trong những ngôn ngữ rất mạnh và hay đợc dùng nhất Nó có thể liên kếtvới những cơ sở dữ liệu khác bằng những ứng dụng của Data Control,MSFlexGrid Control và một số điều khiển khác trong Visual Basic Nhng với bàitoán này thì em sẽ dùng kiểu dữ liệu bản ghi để quản lý các thuộc tính hàng hoá
Để quản lý các thuộc tính của hàng hóa ta dùng một Module
Do chức năng của hệ thống cũng không nhiều nên em không dùng tớiMenu mà dùng trực tiếp các nút lệnh (CommandButton) trên một Form chứa cácchức năng xử lý hàng Vì Visual Basic là ngôn ngữ lập trình hớng đối tợng chonên chỉ cần viết lệnh cho từng nút lệnh là đủ Và chúng ta sẽ nói rõ giải thuậtcủa các nút lệnh hơn trong chơng sau
Ngoài ra, chức năng in hóa đơn nó đòi hỏi một số tuỳ chọn nữa cho nênchức năng in sẽ đợc đặt riêng trên một Form dành cho viêc điều khiển in
Và cuối cùng để quản lý cả 2 Form trên thì cần một Form cha, nên ta sẽchọn thêm một MDI Form
Trang 5Ch ơng III : Chơng trình quản lý cửa hàng
1 Đặc tả ch ơng trình :
Theo hớng giải đã nói thì chúng ta có 3 Form :
- MDI Form là Form cha của 2 Form còn lại và có tên làMDIFormqlchdg
Và sau đây chúng ta sẽ đi sâu hơn vào từng Form đã nêu trên và kèmtheo là mã lệnh trong từng Form
2 MDI Form cha – MDIFormqlchdg :
Ta thiết kế MDI Form nh hình sau :
Bảng các thuộc tính của các đối tợng trong MDI Form
Trang 6CaptionWindow State
Quan ly cua hang don gian2-Maximized
B¶ng Menu cña MDI Form
ViÕt Code cho c¸c thñ tôc trong MDI Form
- ViÕt lÖnh cho thñ tôc Menuexit_Click()
Private Sub menuexit_Click()
End
End Sub
3 Form con – Formin :
Ta thiÕt kÕ Formin nh h×nh sau :
Trang 7Bảng thuộc tính của các đối tợng trong Formin
BackColorCaptionMDIChild
ForminMàu gạch nhạt
Điều khiển in ấnTrue
Label6Màu ghi nhạtTen khach hang
MS Sans Serif10
Bold
BackColorCaptionFont NameFont SizeFont Style
Label1Màu ghi nhạt
Ma hang xuat
MS Sans Serif10
Bold
BackColorCaption
Label2Màu ghi nhạtTen hang xuat
Trang 8Font NameFont SizeFont Style
MS Sans Serif10
Bold
BackColorCaptionFont NameFont SizeFont Style
Label3Mµu ghi nh¹tDon gia xuat
MS Sans Serif10
Bold
BackColorCaptionFont NameFont SizeFont Style
Label4Mµu ghi nh¹tDac diem
MS Sans Serif10
Bold
BackColorCaptionFont NameFont SizeFont Style
Label5Mµu ghi nh¹t
So luong xuat
MS Sans Serif10
Bold
BackColorCaptionFont NameFont SizeFont Style
Label7Mµu ghi nh¹tTong tien
MS Sans Serif10
Bold
n
NameCaptionFont NameFont SizeFont Style
CcinChon in
MS Sans Serif12
Bold
n
NameCaptionFont NameFont SizeFont Style
CkinKhong in
MS Sans Serif12
Bold
Trang 9ViÕt Code cho c¸c thñ tôc trong Formin
- ViÕt lÖnh trong phÇn General cña Formin
Option Explicit
- ViÕt lÖnh cho thñ tôc ccin_Click() cña Formin
Private Sub ccin_Click()
Dim i As Byte
Dim j As Byte
txt1 = "Ban dang in tren may in"
j = InputBox("Ban muon in bao nhieu lan", "So trang duoc in", "1", 6000, 3000)
i = 1
Do While i <= j
Printer.FontName = "Tahoma" 'Chon font khi in
Printer.FontSize = 12
Printer.Print Space(20) & "HOA DON BAN HANG"
Printer.Print Space(10) & "Ho ten khach hang: " & Text6.Text
Printer.Print Space(10) & "Ma hang: " & Text1.Text
Printer.Print Space(10) & "Ten hang: " & Text2.Text
Printer.Print Space(10) & "Don gia: " & Text3.Text
Printer.Print Space(10) & "Dac diem: " & Text4.Text
Printer.Print Space(10) & "So luong: " & Text5.Text
Printer.Print Space(10) & "Tong tien: " & Text7.Text
- ViÕt lÖnh cho thñ tôc ckin_Click() cña Formin
Private Sub ckin_Click() Unload Me
Trang 10End Sub
4 Form con – qlchdg :
Ta thiết kế Form : qlchdg nh hình sau :
Bảng các thuộc tính của các đối tợng trong qlchdg
QlchdgXanh dơngChuong trinh quan ly cua hang don gianTrue
CaptionFont NameFont SizeFont Style
CxtruocXem &truoc
MS Sans Serif12
Bold
Trang 11Font NameFont SizeFont Style
MS Sans Serif12
Bold
CaptionFont NameFont SizeFont Style
CtkiemTim &kiem
MS Sans Serif12
Bold
CaptionFont NameFont SizeFont Style
cin
&In hoa don
MS Sans Serif12
Bold
CaptionFont NameFont SizeFont Style
cnhang
&Nhap hang
MS Sans Serif12
Bold
CaptionFont NameFont SizeFont Style
cxhang
&Xuat hang
MS Sans Serif12
Bold
CaptionFont NameFont SizeFont Style
ccsua
&Chinh sua
MS Sans Serif12
Bold
CaptionFont NameFont SizeFont Style
CexitT&hoat
MS Sans Serif12
Bold
BackColorCaption
LabelMµu tÝm nh¹t
CHUONG TRINH QUAN LY CUA HANG
Trang 12Font NameFont SizeFont Style
MS Serif18
Bold
BackColorCaptionFont NameFont SizeFont Style
LshowMµu tÝm(§Ó trèng)Tahoma10Bold
BackColorCaptionFont NameFont SizeFont Style
LmhVµng nh¹t
Ma hang
MS Sans Serif10
Bold
BackColorCaptionFont NameFont SizeFont Style
LthVµng nh¹tTen hang
MS Sans Serif10
Bold
BackColorCaptionFont NameFont SizeFont Style
LdgVµng nh¹tDon gia
MS Sans Serif10
Bold
BackColorCaptionFont NameFont SizeFont Style
LddVµng nh¹tDac diem
MS Sans Serif10
Bold
BackColorCaption
LslVµng nh¹t
So luong
Trang 13Font SizeFont Style
10Bold
Text
Tmh(§Ó trèng)
Text
Tth(§Ó trèng)
Text
Tdg(§Ó trèng)
Text
Tdd(§Ó trèng)
Text
Tsl(§Ó trèng)
hhoa.bas
Option ExplicitType hhoa mahang As String * 10 tenhang As String * 50 dgia As Long
ddiem As String * 200 soluong As LongEnd Type
ViÕt Code cho c¸c thñ tôc trong Form Qlchdg
Option Explicit
'Khai bao cac bien toan cuc
Dim hanghoa As hhoa ' Hang hoa
Dim sohhoa As Integer ' So hang khac nhau co trong kho
Dim cdhhoa As Long ' Chieu dai hang
Dim hhoahh As Long ' Hang hoa hien hanh
Dim hhoacuoi As Long ' Hang hoa cuoi
Trang 14Dim x1 As String, x2 As String, x4 As String
Dim x3 As Long, x5 As Long
(Lu hµng ho¸ hiÖn hµnh)
(HiÖn hµng ho¸ hiÖn hµnh)
(ChØnh söa hµng ho¸ hiÖn hµnh)
Private Sub ccsua_Click()
luuhhoahh
End Sub
Trang 15Private Sub cexit_Click()
Close sohhoa
End
End Sub
(ChuyÓn ®iÒu khiÓn sang Formin)
Private Sub cin_Click()
Private Sub cnhang_Click()
Dim mhnhap As String
Dim thnhap As String
Dim dgnhap As Long
Dim ddnhap As String
Dim slnhap As Long
Dim hhso As Long
Dim thay As Boolean
Trang 16' Neu hang cung ma thi ta se cong voi luong hang cu
' Neu la hang moi thi ta se them vao
For hhso = 1 To hhoacuoi
Get #sohhoa, hhso, tmphh
If mhnhap = Trim(tmphh.mahang) Then
Trang 17Private Sub ctkiem_Click()
'De thuan tien thi ta se chi tim kiem theo ma hang
Dim matim As String
Dim thay As Boolean
Dim hhso As Long ' Hang hoa thu bao nhieu
Dim tmphanghoa As hhoa
matim = InputBox(" Nhap ten ma hang can tim")
For hhso = 1 To hhoacuoi
Get #sohhoa, hhso, tmphanghoa
If matim = Trim(tmphanghoa.mahang) Then
Trang 18tmh.SetFocus
End Sub
(B¸n hµng ho¸)
Private Sub cxhang_Click()
Dim mhxuat As String ' Ma hang xuat
Dim thay As Boolean
Dim hhso As Long, tmphhso As Long
Dim tmpsohhoa As Long ' Bien tam cua so loai hang hoa
Dim slxuat As Long ' So luong xuat
Dim xuat As String
Dim tmphanghoa As hhoa
mhxuat = InputBox(" Nhap ma loai hang se xuat", "Xuat hang", "", 6000, 3000)
For hhso = 1 To hhoacuoi
Get #sohhoa, hhso, tmphanghoa
If mhxuat = Trim(tmphanghoa.mahang) Then
Get #sohhoa, hhoahh, tmphanghoa
slxuat = InputBox("Nhap so luong hang can xuat", "Xuat hang", "",
6000, 3000)
If slxuat > tmphanghoa.soluong Then
Trang 19Exit Sub
Else
xuat = InputBox("Co can xuat hang khong (c/k) ?", "Xuat hang", "c")
If xuat = "c" Or xuat = "C" Then
' Hien thi hoa don xuat
If slxuat = tmphanghoa.soluong Then
' Xuat het hang
If Dir("hanghoa.tmp") = "hanghoa.tmp" Then
Do While hhso <= hhoacuoi
If hhso <> hhoahh Then
Get #sohhoa, hhso, tmphanghoa
Put #tmpsohhoa, tmphhso, tmphanghoa
Trang 20Open "hanghoa.dat" For Random As sohhoa Len = cdhhoa
(Xem hµng ho¸ ngay sau hµng hiÖn t¹i)
Private Sub cxsau_Click()
If hhoahh = hhoacuoi Then
MsgBox "Day la mat hang cuoi cung roi !", 1, "Thong bao"
Else
hhoahh = hhoahh + 1
hienhhoahh
Trang 21End Sub
(Xem hµng ho¸ ngay tríc hµng hiÖn t¹i)
Private Sub cxtruoc_Click()
Private Sub Form_Load()
Tµi liÖu tham kh¶o
1 Gi¸o tr×nh CÊu tróc d÷ liÖu vµ gi¶i thuËt (§ç Xu©n L«i)
Quang TuÊn)