Tải bản đầy đủ (.doc) (24 trang)

Báo Cáo C#--Quản Lý Siêu Thị Mini

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.38 MB, 24 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>TRƯỜNG ĐẠI HỌC CÔNG NGHỆ GIAO THÔNG VẬN TẢIKHOA CÔNG NGHỆ THÔNG TIN</b>

<b> BÁO CÁO MƠN HỌC LẬP TRÌNH TRỰC QUAN C#</b>

<b> ĐỀ TÀI: QUẢN LÝ SIÊU THỊ MINI</b>

<b>Giảng viên hướng dẫn:</b>

<b>Nhóm thành viên: Quang Hồng Ánh SứBạc Anh Tuấn</b>

<b>Lê Thanh HàPhạm Ngọc TiếnNguyễn Tiến Hưng Hà Nội, tháng 1 năm 2024</b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

MỤC LỤC

I. Giới thiệu______________________________________________________3CHƯƠNG 1: KHẢO SÁT VÀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG41.Khảo sát và phân tích bài tốn (đề tài)________________________________42. Xây dựng cơ sở dữ liệu___________________________________________53. Tiến độ thực hiện: Phân bổ nhân sự và thời gian thức hiện các chức năng___7

1,Ngôn ngữ truy vấn SQL___________________________________________82.Ngơn ngữ lập trình C#_____________________________________________9

1.Sơ đồ chức năng của phần mềm____________________________________102.Một số chức năng chính__________________________________________11CHƯƠNG 4: KIỂM THỬ, ĐÁNH GIÁ, KẾT LUẬN VÀ HƯỚNG PHÁT

1.Đánh giá______________________________________________________242.Kết luận_______________________________________________________243. Hướng phát triển________________________________________________24

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>Lời nói đầuI. Giới thiệu</b>

Trong thời đại công nghệ số hiện nay, việc quản lý siêu thị mini đóng vaitrị quan trọng trong việc tối ưu hóa hoạt động kinh doanh và nâng cao hiệu quả.Phần mềm quản lý siêu thị mini được phát triển bằng ngơn ngữ lập trình C# giúpgiải quyết các vấn đề này một cách hiệu quả.

Là một doanh nhân, một chủ doanh nghiệp, một cửa hàng hay một ngườiquản lý, chúng ta mong chờ điều tốt đẹp nhất với doanh nghiệp của mình, đó làlợi nhuận, là thương hiệu và sự phát triển hiện đại hóa lĩnh vực quản lý củadoanh nghiệp.

Qua nghiên cứu, học hỏi thầy cô và bạn bè về giải pháp quản lý bán hàngkết hợp với quá trình khảo sát thực tế trên nhiều cửa hàng, doanh nghiệp em xin

<b>đưa ra giải pháp "Quản Lý Siêu Thị Mini " dành cho các doanh nghiệp vừa và</b>

<b>Như vậy, mục tiêu cuôi cùng là xây dựng một phân mêm Quản Lý Siêu</b>

<b>Thị Mini tổi ưu và dễ sự dụng. Dáp ứng nhu câu xử lý các chức năng nghiệp vụ</b>

trong quá trình thực hiện các hoạt động kinh doanh

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>CHƯƠNG 1: KHẢO SÁT VÀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG1.Khảo sát và phân tích bài toán (đề tài)</b>

-Chức năng của phần mềm: Phần mềm cần hỗ trợ việc quản lý nhân viên,quản lý khách hàng thân thiết, quản lý nhập/xuất kho, quản lý mặt hàng trongsiêu thị, và quản lý tài chính thu chi của siêu thị.

-Đối tượng nghiên cứu: Hệ thống siêu thị và các yếu tố tác động đến việcphát triển hệ thống ở siêu thị.

-Phạm vi nghiên cứu: Trường Đại Học Công Nghệ Giao Thông Vận Tải vàbài tập lớn được thực hiện trên phạm vi mơn học lập trình trực quan c (C#).

-Công nghệ sử dụng: C# là ngôn ngữ lập trình chính được sử dụng. SQLcũng được sử dụng như là ngôn ngữ tiêu chuẩn cho các hệ cơ sở dữ liệu quan hệ

-Phân tích và thiết kế hệ thống: Cần phải tiến hành các giai đoạn như khảosát và xác định yêu cầu, phân tích và thiết kế hệ thống, thiết kế chi tiết, và lậptrình

-Đánh giá và kiểm thử: Sau khi xây dựng xong phần mềm, cần phải tiếnhành các bước kiểm thử để đảm bảo phần mềm hoạt động đúng và ổn định.

-Phương pháp nghiên cứu: Phương pháp khảo sát, thu thập thông tin.Phương pháp quan sát, tổng hợp. Phương pháp phân tích, thiết kế.

-Ý nghĩa khoa học của đề tài:

+Toàn bộ đề tài này sẽ trở thành tài liệu nghiên cứu, tham khảo, dễ hiểu vàthiết thực hơn cho những bạn sinh viên hay ai đó u thích hướng đi ứng dụngquản lý.

-Ý nghĩa thực tiễn của đề tài:

+Với sự thành công của đề tài này sẽ góp phần giúp ích cho việc tối ưu hóaq trình quản lý siêu thị, loại bỏ những khó khăn trong việc quản lý siêu thị.

<b>Bố cục báo cáo đồ án Quản lý siêu thị Mini </b>

Chương 1: Khảo Sát Và Phân Tích Thiết Kế Hệ ThốngChương 2: Cơ Sở Nghiên Cứu Lý Thuyết

Chương 3: Xây dựng phần mềm,Giao diện chương trình.Chương 4: Kết luận.

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>2. Xây dựng cơ sở dữ liệuA,Thực thể Nhanvien</b>

- Tên thực thể: Nhân viên- Khoá thực thể: MaNV- Diễn giải:

thực thể NhanVien có các thuộc tính+ Manhanvien: Mã nhân viên

+ Tennhanvien: Họ tên nhân viên+ NTNsinh: Năm sinh

+ SDTnhanvien: Số điện thoại nhân viên+ Diachi: Địa chỉ nhân viên

+Chucvu: chức vụ+ UserName+ Pass

<b> B,Thực thể Hanghoa</b>

- Tên thực thể: Hàng hóa- Khố của thực thể: MaHang- Diễn giải:

thực thể HangHoa + MaHang: mã hàng+ Tenhang: Tên hàng+ Manhacungcap: Mã nhà cung cấp

+ Dongianhap: Đơn giá nhập+Dongiaban: Đơn giá bán+Soluong: Số lượng

+Hansudung: Ngày Nhập hàng+ Donvitinh: Đơn vị tính

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

+Noisanxuat: Nơi sản xuất+Ngaysx: Ngày sản xuất;+Hansd: Hạn sử dụng

<b>C,Thực thể Nhacungcap</b>

- Tên thực thể: Nhà Cung Cấp- Khoá của thực thể: MaNCC- Diễn giải:

thực thể NhaCC có các thuộc tính:+ MaNCC: Mã nhà cung cấp

+ TenNCC: tên nhà cung cấp

+ DiaChiNCC: địa chỉ nhà cung cấp+ SDTNCC: số điện thoại nhà cung cấp

+ SoTaiKhoanNCC: Số tài khoản nhà cung cấp+ MaSoThueNCC: Mã số thuế nhà cung cấp

+Quyen: Quyền.

<b>E,Thực thể Hoadonnhap</b>

-Tên thực thể: Hoadonnhap.-Khố của thực thể: Mahang.-Diễn giải:

Thực thể Hoadonnhap có các thuộc tính:+Mahang: Mã hàng.

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

+Tenhang: Tên hàng.+Soluong: Số lượng.

+Dongianhap: Đơn giá nhập.+Hansudung: Hạn sử dụng.

<i>3. Tiến độ thực hiện: Phân bổ nhân sự và thời gian thức hiện các chức năng</i>

Tên Bài Tập : Xây dựng phần mềm quản lí siêu thị miniNgày bắt đầu : 23/10/2023

Ngày kết thúc : 11/01/2024

Người quản lí bài tập(Project Manager) : Quang Hồng Ánh Sứ.

<b>Bảng vai trò và trách nhiệm (Roles and Responsibilities)</b>

Quang Hồng ÁnhSứ

73DCTT22466Lên Ý Tưởng,Thiết Kế, Tạo BáoCáo,Hỗ Trợ…

Trưởng Nhóm

73DCTT23310Hỗ Trợ, Thiết Kế,Viết Code,..

Thành ViênBạc Anh Tuấn73DCTT22257Chọn Chủ Đề,Hỗ

Trợ, Thiết Kế,Viết Code,..

Thành Viên

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>CHƯƠNG 2: CƠ SỞ NGHIÊN CỨU LÝ THUYẾT1,Ngôn ngữ truy vấn SQL </b>

-Mục đích: Thêm dữ liệu vào bảng.

-Cú pháp: Insert into <Tên_bảng>(ds các cột muốn nhậpdl)

Values(ds các giá trị tương ứng với cột)

-Vídụ:

Values('User2',N'Nguyen Van

-Mục đích: Sửa dữ liệu trong bảng

-Cú pháp: Update <tên_ba0ng> Set <tên_cột1>=<giá_trị1> <tên_cột2>=<giá_trị2>,...

Where <điê7u_kiện>

-Mục đích: Xoá dữ liệu trong bảng.

-Cú pháp: Xóa tồn bộ dữ liệu trong bảng <sub>Delete From </sub><sub><</sub><sub>tên_bảng</sub><sub>></sub> Xóa theo điều kiện

<sub>Delete From </sub><sub><</sub><sub>tên_bảng</sub><sub>></sub> Where <Điê7u_kiện>

-ví dụ:

Xóa tồn bộ dữ liệu trong bảng Loaisach delete from LoginPQXóa Loại sách có mã loại là LS004

Delete from LoginPQ where TenDangNhap='User'

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

-Mục đích: sử dụng để truy vấn hoặc lấy dữ liệu từ bảng trong database.-Cú pháp: SELECT column_list FROM table-name -Ví dụ: : SELECT* FROM LoginPQ

-Cú Pháp: CREATE PROCEDURE StoredProcedureName AS

<b>Form: Trong Windows Forms, một Form là một đối tượng đại diện cho</b>

một cửa sổ hoặc hộp thoại trên giao diện người dùng.

<b>Các Control (điều khiển cơ bản): Đây là các thành phần giao diện người</b>

dùng mà bạn có thể thêm vào Form. Mỗi control có các thuộc tính và sự kiệnriêng. Ví dụ:

<b>Label: Hiển thị văn bản không thể chỉnh sửa.TextBox: Cho phép người dùng nhập văn bản.</b>

<b>ComboBox: Hiển thị danh sách các mục mà người dùng có thể chọn từ đó.ListBox: Hiển thị danh sách các mục.</b>

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b>ListView: Hiển thị danh sách các mục theo nhiều cách khác nhau.Button: Khi nhấn vào, nó sẽ kích hoạt một sự kiện.</b>

<b>RadioButton: Cho phép người dùng chọn một trong nhiều tùy chọn.CheckBox: Cho phép người dùng chọn nhiều tùy chọn.</b>

<b>DataGridView: Hiển thị dữ liệu theo dạng bảng.</b>

<b>ADO.NET: Đây là một tập hợp các thành phần cho phép bạn tương tác với</b>

cơ sở dữ liệu từ ứng dụng .NET. Các thành phần quan trọng bao gồm:

<b>SqlConnection: Đại diện cho một kết nối đến cơ sở dữ liệu SQL Server.SqlCommand: Đại diện cho một câu lệnh SQL hoặc Stored Procedure.SqlDataAdapter: Được sử dụng để truy vấn và lưu dữ liệu.</b>

<b>DataSet: Chứa dữ liệu từ nhiều bảng.DataTable: Chứa dữ liệu từ một bảng.</b>

<b>CHƯƠNG 3: XÂY DỰNG PHẦN MỀM1.Sơ đồ chức năng của phần mềm</b>

<b>Đăng Nhập</b>

<b>Trang Chủ</b>

Nhân Viên Bán Hàng

Bán Hàng

Xuất Hoá Đơn

Quản Lý TổngQuản Lý

Tìm Kiếm

Hố Đơn

Xuất

Quản Lý Hàng Nhập

<small>Quản Lý Nhà Cung </small>

Quản Lý Nhân Viên

Nhập hàng,sửa hàng,xem thơng tin

Thêm,sửa,xố,lưu nhàcung cấp, thơngtin nhà cung cấp

Thơng TinNhân Viên,Thêm,Sửa, xố,

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<b>2.Một số chức năng chínhA,Chức năng 1 (Đăng Nhập)-Mô tả:</b>

+chức năng này cho phép người dùng đăng nhập với phân quyền của Admin và User, với phân quyền này sẽ hạn chế được một số quyền truy cập củatừng loại tài khoản.

+Nhập tên đăng nhập , mật khẩu để đăng nhập(tài khoản được cấp bởi quản lí).

+Sai tên đăng nhập hoặc mật khẩu sẽ khơng truy cập được phần mềm.

<b>-Giao Diện:</b>

// Kết nối vào SQL Server:

<?xmlversion="1.0" encoding="utf-8" ?><configuration>

e.Cancel = true; }

}2. else {

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

MessageBox.Show(" Đăng Nhập Thất Bại ", " Xin Lỗi!!! ", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

<b>B,Chức năng 2 (Cập nhật Hàng Hố)-Mơ tả:</b>

+Chức năng này cho phép người dùng cập nhật thơng tin của hàng hố bao gồm Mã Hàng, Tên Hàng, Mã Nhà Cung Cấp, Giá Nhâp Hàng, Giá Bán Hàng,Số Lượng, Thời Điểm Nhập Hàng, Đơn Vị Tính, Nơi Sản Xuất, Ngày Sản Xuất Và Hạn Sử Dụng.

+ Thêm thơng tin hàng hố.+ Sửa thơng tin hàng hố.+ Xố thơng tin hàng hố.+ Lưu thơng tin vào Database.+ Danh sách hàng hố được nhập.-Giao diện:

//Thêm thơng tin hàng hoá được nhập.

private void bt_them_Click(object sender, EventArgs e){

DateTime p_hansudung =DateTime.Parse (dsp_hansudung.Value.ToString("yyyy/MM/dd")); string p_dvtinh = tb_donvitinh.Text.Trim();

string p_noisx = tb_noisanxuat.Text.Trim();

DateTime p_ngaysx = DateTime.Parse(dsp_ngaysx.Value.ToString("yyyy/MM/dd")); DateTime p_hsd = DateTime.Parse(dsp_hsd.Value.ToString("yyyy/MM/dd"));

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

int kq = 0;

Kiemtrma(p_mahang, ref kq);

int soLuongCong = Convert.ToInt32(tb_soluong.Text);

int soLuongHienTai = Convert.ToInt32(dgv_hanghoa.CurrentRow.Cells[5].Value);

if (kq == 1) {

dgv_hanghoa.CurrentRow.Cells[5].Value = soLuongHienTai + soLuongCong; MessageBox.Show("Cộng thêm hàng!");

if (con.State == ConnectionState.Closed) con.Open();

string sq = "MERGE INTO Hanghoa USING (VALUES ('"+p_mahang+"', '"+p_soluong+"')) AS temp(Mahang, Soluong) ON Hanghoa.Mahang = temp.Mahang WHEN MATCHED THEN UPDATE SET Soluong = Hanghoa.Soluong + temp.Soluong WHEN NOT MATCHED THEN INSERT (Mahang, Soluong) VALUES (temp.Mahang, temp.Soluong);";

SqlCommand cm = new SqlCommand(sq, con); cm.ExecuteNonQuery();

cm.Dispose(); con.Close();

tb_mahang.Focus(); return;

}

if (con.State == ConnectionState.Closed) con.Open();

string sql = "Insert Hanghoa values(N'" + p_mahang + "',N'" + p_tenhang + "','" + p_mancc+ "','" + p_dgnhap + "'," +

MessageBox.Show("Thêm Mới Thành Cơng!"); Load_dgv_hanghoa();

//Cập nhật thơng tin hàng hố được nhập.

private void bt_luu_Click(object sender, EventArgs e) {

string p_mahang = tb_mahang.Text.Trim(); string p_tenhang = tb_tenhang.Text.Trim();

string p_mancc = cb_nhacungcap.SelectedValue.ToString(); int p_dgnhap = int.Parse(tb_dongianhap.Text.Trim()); int p_dgban = int.Parse(tb_dongiaban.Text.Trim()); int p_soluong = int.Parse(tb_soluong.Text.Trim());

DateTime p_hansudung = DateTime.Parse(dsp_hansudung.Value.ToString("yyyy/MM/dd")); string p_dvtinh = tb_donvitinh.Text.Trim();

string p_noisx = tb_noisanxuat.Text.Trim();

DateTime p_ngaysx = DateTime.Parse(dsp_ngaysx.Value.ToShortDateString()); DateTime p_hsd = DateTime.Parse(dsp_hsd.Value.ToShortDateString());

if (con.State == ConnectionState.Closed) {

con.Open(); }

string sql = "Update hanghoa Set Tenhang=N'" + p_tenhang + "',Manhacungcap = '"+p_mancc+"'," +

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

"Dongianhap='" + p_dgnhap + "',Dongiaban='" + p_dgban + "',Soluong = '" +

p_soluong + "',Hansudung=N'" + p_hansudung + "',Donvitinh=N'"+p_dvtinh+"',Noisanxuat =N'"+p_noisx+"',Ngaysx ='"+p_ngaysx+"',Hansd = '"+p_hsd+"' Where mahang=N'" + p_mahang + "' ";

SqlCommand cmd = new SqlCommand(sql, con); cmd.ExecuteNonQuery();

cmd.Dispose(); con.Close();

MessageBox.Show("SỬA THÀNH CÔNG"); Load_dgv_hanghoa();

Load_dgv_nhacungcap(); bt_luu.Enabled = true; }

// Xố thơng tin hàng hoá

private void bt_xoa_Click(object sender, EventArgs e) {

string p_mahang = tb_mahang.Text.Trim(); if (con.State == ConnectionState.Closed) con.Open();

string sql = "Delete From Hanghoa WHERE Mahang='" + p_mahang + "'"; SqlCommand cmd = new SqlCommand(sql, con);

cmd.ExecuteNonQuery(); cmd.Dispose();

con.Close();

MessageBox.Show("ĐÃ XỐ THÀNH CƠNG!"); Load_dgv_hanghoa();

tb_mahang.Enabled = true; }

<b>C,Chức năng 3 (Cập nhật Nhà Cung Cấp)-Mô tả:</b>

+Chức năng này cho phép người dùng cập nhật thông tin của Nhà Cung cấp bao gồm Mã Nhà Cung Cấp, Tên Nhà Cung Cấp, Số Điện Thoại, Email và Địa Chỉ Nhà Cung Cấp

+ Thêm thông tin Nhà Cung Cấp.+ Sửa thông tin Nhà Cung Cấp.+ Xố thơng tin Nhà Cung Cấp.

+ Lưu thơng tin Nhà Cung Cấp vào Database.+ Danh sách Nhà Cung Cấp được nhập.+Tìm kiếm thơng tin nhà cung cấp cần tìm.

<b>-Giao Diện</b>

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

// Tìm kiếm thơng tin nhà cung cấp

private void button5_Click(object sender, EventArgs e) {

if (con.State == ConnectionState.Closed) con.Open();

string sql = tb_timkiemncc.Text != "" ? "select * from Nhacungcap where Mancc like '%" +tb_timkiemncc.Text + "%'" : "select * from Nhacungcap";

SqlCommand cmd = new SqlCommand(sql, con); SqlDataAdapter da = new SqlDataAdapter(cmd); DataTable dt = new DataTable();

da.Fill(dt); cmd.Dispose(); con.Close();

dgv_nhacungcap.DataSource = dt; }

// Load bảng Datagribview

private void Load_dgv_nhacungcap(){

if (con.State == ConnectionState.Closed) con.Open();

SqlCommand cmd = new SqlCommand("Select* from Nhacungcap", con); SqlDataAdapter da = new SqlDataAdapter(cmd);

DataTable tb = new DataTable(); da.Fill(tb);

dgv_nhacungcap.DataSource = tb; dgv_nhacungcap.Refresh();

+ Thêm thông tin Nhân Viên.+ Sửa thông tin Nhân Viên.+ Xố thơng tin Nhân Viên.

+ Kết nối dữ liêu thông tin Nhân Viên vào Database.+ Danh Nhân Viên được thêm.

<b>-Giao Diện:</b>

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<b>// Thêm nhân viên</b>

private void bt_themnv_Click(object sender, EventArgs e) {

string p_manv = tb_manv.Text.Trim(); string p_tennv = tb_hotennv.Text.Trim();

DateTime p_ntnsinh = DateTime.Parse(dsp_ngaysinh.Value.ToString("yyyy/MM/dd")); string p_sdtnv = tb_sdtnv.Text.Trim();

string p_dcnv = tb_diachinv.Text.Trim(); string p_chucvu = tb_chucvu.Text.Trim();

if (con.State == ConnectionState.Closed) con.Open();

string sql = "Insert Nhanvien values(N'" + p_manv + "',N'" + p_tennv + "','" + p_ntnsinh +

MessageBox.Show("Thêm Mới Thành Công!"); Load_dgv_nhanvien();

}

//sửa thông tin nhân viên

private void bt_suanv_Click(object sender, EventArgs e) {

string p_manv = tb_manv.Text.Trim(); string p_tennv = tb_hotennv.Text.Trim();

DateTime p_ntnsinh = DateTime.Parse(dsp_ngaysinh.Value.ToString("yyyy/MM/dd")); string p_sdtnv = tb_sdtnv.Text.Trim();

string p_dcnv = tb_diachinv.Text.Trim(); string p_chucvu = tb_chucvu.Text.Trim(); if (con.State == ConnectionState.Closed) con.Open();

string sql = "Update Nhanvien set Hovaten = N'" + p_tennv + "',NTNsinh = '" + p_ntnsinh + "',SDTnhanvien = '" + p_sdtnv + "',Diachi =N '" + p_dcnv + "',Chucvu=N'" + p_chucvu + "' where Manhanvien = '"+p_manv+"' ";

SqlCommand cmd = new SqlCommand(sql, con); cmd.ExecuteNonQuery();

cmd.Dispose(); con.Close();

MessageBox.Show("Sửa Thành Công!"); Load_dgv_nhanvien();

}

//Cell click nhan vien

private void dgv_nhanvien_CellClick(object sender, DataGridViewCellEventArgs e) {

int i = e.RowIndex;

tb_manv.Text = dgv_nhanvien.Rows[i].Cells[0].Value.ToString(); tb_hotennv.Text = dgv_nhanvien.Rows[i].Cells[1].Value.ToString(); dsp_ngaysinh.Text = dgv_nhanvien.Rows[i].Cells[2].Value.ToString(); tb_sdtnv.Text = dgv_nhanvien.Rows[i].Cells[3].Value.ToString(); tb_diachinv.Text = dgv_nhanvien.Rows[i].Cells[4].Value.ToString(); tb_chucvu.Text = dgv_nhanvien.Rows[i].Cells[5].Value.ToString();

}

</div>

×