1. Trang chủ
  2. » Luận Văn - Báo Cáo

bài toán quản lý cửa hàng báo cáo bài tập lớn môn cấu trúc dữ liệu và giải thuật

22 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Trang 1

TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI TRUNG TÂM ĐÀO TẠO ELEARNING

TRƯƠNG DUY NHẤT - LỚP

TRƯƠNG DUY NHẤT - LỚP TRƯƠNG DUY NHẤT - LỚP

BAI TOAN QUAN LY CUA HANG

BAO CAO BAI TAP LON

MON: CAU TRUC DU LIEU VA GIAI THUAT

Giảng viên hướng dẫn:

Trang 2

MỤC LỤC

I XÁC ĐỊNH BÀI TỐN s:22222221222211222122112211221112211110.212121 ke 2 2 XÁC ĐỊNH CTDL BIÊU DIỄN BÀI TỐN -5222:22222222122212221221 221.2 2 3 XÁC ĐỊNH CÁC THUẬT TỐN - CÁC CHỨC NĂNG :-2222c 2222222 2 4 LẬP TRÌNH - CÀI ĐẶTT 2: 2222222212222112221122211122112111211121121111 21121 c6 3 5 KIÊM THỬ - LẬP BỘ TEST -222:222222221122221221122111211122112211121 1c 15

"° 0.1 n5 ga 5 l5

5.2 Nhập thơng tin sinh viên và điểm - 5 E1 1 1111112121111 E1 11tr 15 5.3 Danh sach sinh viên đã nhập - 2 2C 2201122011323 1151 1153111511151 1 181111811 16 5.4 Sắp xếp sinh viên theo tên - 2s St E21 211112111111111 1111112121211 11tr 16 5.5 Sắp xếp danh sách sinh viên theo điểm giảm dân - 52 1S SE SE2112121E12xe2 17

5.6 Tìm kiếm sinh viên cĩ điểm trung bình lớn nhắt 2 2S +2 SESE2222EzEzEzzcez 17 5.7 Tim kiếm sinh viên cĩ điểm trung bình nhỏ nhất - 5-5 S 21821 £22222222 552 17

5.8 Tìm kiếm thơng tin sinh viên theo tên + s21 11211155 EE511112171E111 15111 xxe 18 5.0 Xố một sinh viên trong danh sách - 2 2 2221220112311 123 115111511111 551111 se 18 5.10 Đếm tổng số lượng sinh viên trong đanh sách - 2 2211 22152111112 22z22 18 5.11 Téng điểm 3 mơn của sinh Vidi cccccccccccccscssesessesscsessesessessvsesevsesevsevevsesseseres 19 5.12 Tìm sinh viên cĩ điểm mơn tốn cao nhất - 5: s s1 E1 EEEE1EE1111522222222xze 19 5.13 Tìm sinh viên cso điểm mơn tốn thấp nhát - 5 ST S111 EE5E521212171E12xe2 19 5.14 Ghi fđile danh sách sinh viên - - 2c 22 22221112251 131511 11113 1111112111111 1x12 20

Trang 3

ĐỀ TÀI: Viết chương trình quản lý các đối tượng để thực hiện cho bài tốn “Quản lý cửa hàng” | Nội dung: * Chương trình thực hiện quản lý thơng tin sinh viên, điểm mơn học của sinh viên * Các chức năng cơ bản xây dựng: - Nhập - In danh sách đối tượng - Thêm, sửa, xố đối tượng - Tìm kiếm đối tượng - Sắp xếp đối tượng - Tìm phần tử lớn nhất, nhỏ nhất - Tính tổng, trung bình, đếm - Xuất file 1 XÁC ĐỊNH BÀI TỐN

Hiện nay chương trình quản lý điểm khơng cịn xa lạ gì với mỗi

người chúng ta Các thơng cần quản lý như: Họ tên sinh viên, Điểm các mơn học, điểm trung bình các mơn học

2 XÁC ĐỊNH CTDL BIỂU DIỄN BÀI TỐN

- Quản lý thơng tin sinh viên, điểm mơn học của sinh viên

3 XÁC ĐỊNH CÁC THUẬT TỐN - CÁC CHỨC NĂNG

Trang 4

5 Tìm kiếm sinh viên cĩ điểm trung bình lớn nhất 6 Tìm kiếm sinh viên cĩ điểm trung bình nhỏ nhất 7 Tìm kiếm sinh viên theo tên

§ Xố một sinh viên theo mã

9 Đếm số lương sinh viên trong danh sách

10 Tổng điểm ba mơn của sinh viên

11 Tìm sinh viên cĩ điểm mơn tốn cao nhất

12 Tìm kiếm sinh viên cĩ điểm mơn tốn thấp nhất 13 Ghi thơng tin sinh viên ra file 14 Thốt chương trình 4 LẬP TRÌNH - CÀI ĐẶT Tiến hành cài đặt bài tập, Liệt kê cấu trúc chương trình tổng quát và đưa ra một số code xử lý chính -_ Tiến hành code #include <stdio.h> #include <string.h> struct SinhVien; void hienThiDSSV(struct SinhVien*, int); void hienThiTenCot(); struct HoTen { char ho[20]; char dem[21]; char ten[20];

};

struct DiemMH {

Trang 5

struct SinhVien { int ma; struct HoTen hoVaTen; int tuoi; char gioiTinh[10]; struct DiemMH diem; }; void nhapDiem(struct DiemMH* diem) { printf("Toan: "); scant("%f", &diem->toan); printf("Van: "); scant("%f", &diem->van); printf("Anh: "); scant("%f", &diem->anh);

diem->tbc = (diem->toan + diem->van + diem->anh) / 3;

void nhapHoTen(struct HoTen* ten) {

printf("Ho: "); scanf("%s", ten->ho); printf("Dem: "); getchar(); gets(ten->dem); printf("Ten: ");

Trang 6

struct SinhVien nhapSV() { struct SinhVien sv; printf("Nhap ma: "); scanf(“%d”", &sv.ma); nhapHo Ten(&sv.hoVaTen);

printf("Tuoi: ");

scanf(“%d”", &sv.tuoi); printf("Gioi tỉnh: "); scanf("%s", sv.gioiTinh); nhapDiem(&sv.diem);

return sv;

void hienThiTTSV(struct SinhVien sv) {

printf("%-10d %-10s %-20s %-10s %-10d %-10s %-10.2f %-10.2f %-10.2f %-10.2f\n",

Sv.ma, sv.hoVaTen.ho, sv.hoVaTen.dem, sv.hoVaTen.ten, sv.tuoi,

Sv.giọTinh,

sv.diem.toan, sv.diem.van, sv.diem.anh, sv.diem.tbc);

void sapXepTheoTen(struct SinhVien* ds, int slsv) { int i, j;

for(i = 0; i < slsv- 1; i++) {

for(j = slsv-1;j >i; j ) {

if(strcmp(gs[j].hoVaTen.ten, ds[j-1].hoVaTen.ten) < 0) { struct SinhVien sv = ds[j];

đs[j] = ds[j - 1];

Trang 7

void sapXepTheoDiem(struct SinhVien* ds, int slsv) {

int i, j;

for(i = 0; i < slsv - 1; i++) {

for( = slsV - 1;j > i;j ) {

Trang 8

} hienThiTTSV(sv[index]); void DiemtbMin( struct SinhVien* sv, int slsv) { int index=1; float max=100; int i; for(i=0;i<slsv;i+~+) { if(sv[i].diem.tbc<max) { max=sv[i].diem.tbc; index=i;

} }

hienThiTTSV(sv[index]);

void DiemToanMax( struct SinhVien* sv, int slsv)

{

int index=1; float max=0; int i;

for(i=0;i<slsv;i+~+)

{

Trang 9

{

max=sv[i].diem.toan; index=i;

} }

hienThiTTSV(sv[index]);

void DiemToanMin( struct SinhVien* sv, int slsv)

{

int index=1; float max=100; int i; for(i=0;i<slsv;i+~+) { if(sv[i].diem.toan<max) { max=sv[i].diem.toan; index=i; } }

hienThiTTSV(sv[index]);

void timTheoten(struct SinhVien* ds, int slsv) {

char ten[20]; printf("“Nhap ten: "); scanf("%s", ten);

Trang 10

int i, timSV = 0;

for(i = 0; i < sIsv; i++) {

if(strcmp(ten, ds[i].hoVaTen.ten) == 0) { hienThiTTSV(dsl[i]);

timSV = 1;

}

if(timSV == 0) {

printf("Khong co sinh vien %s trong danh sach!\n", ten);

void XoaSV(struct SinhVien* sv, int slsv) { int Masvcanxoa; printf("\nNhap ma sinh vien can xoa:\n"); scanf("%d", &Masvcanxoa); for(int i=0;i<slsv;i+ +) { if(Masvcanxoa= =sv[i].ma) { Sv[i] = sv[i+1]; slIsv ;

} }

Trang 11

void ghiFile(struct SinhVien* ds, int slsv) {

getchar(); char fName[26]; printf("Nhap ten file: "); gets(fName);

FILE* fOut = fopen(fName, "a"); int i;

for(i = 0; i < slsv; i++) { struct SinhVien sv = ds[i];

fprintf(fOut, "%-10d %-10s %-20s %-10s %-10d %-10s %- 10.2f %-10.2f %-10.2f %-10.2f\n",

Sv.ma, sv.hoVaTen.ho, sv.hoVaTen.dem, sv.hoVaTen.ten, sv.tuoi, sv.gioiTinh, sv.diem.toan, sv.diem.van, sv.diem.anh, sv.diem.tbc); } fclose(fOut); void docFile(struct SinhVien* ds, int* slsv) { FILE* fOut = fopen("SV.txt", "r"); int i = 0; if(fOut) {

for(;;) {

struct SinhVien sv;

fscanf(fOut, "%10d %10s %20[^\n] %10s %10d %10s %10f %10f %10f %100n",

&sv.ma, sv.hoVaTen.ho, sv.hoVaTen.dem, sv.hoVaTen.ten, &sv.tuoi, sv.gioiTinh,

Trang 12

ds[i++] = sv;

if(feof(fOut)) { // thoat chuong trinh

break;

fclose(fOut); *s|SV =i;

void hienThiTenCot() { printf("

" \n");

printf("%-10s %-10s %-20s %-10s %-10s %-10s %-10s %-10s %- 10s %-10s\n",

"Ma Sv", "Ho", "Dem", "Ten", "Tuoi", "Gioi Tinh",

"Diem Toan", "Diem Van", "Diem Anh", "Diem TBC");

Trang 13

int main() {

struct SinhVien dssv[100]; int slsv = 0O;

int luaChon; docFile(dssv, &slsv);

printf("DANH SACH SINH VIEN HIEN THOI:\n"); hienThiDSSV(dssv, slsv);

int i:

printf("\n1 Them Sinh vien vao danh sach."); printf("\n2 Hien thi danh sach sinh vien.");

printf("\n3 Sap xep theo ten.");

printf("\n4 Sap xep theo diem giam dan.");

printf("\n5 Tim sinh vien co diem trung binh lon nhat."); printf("\n6 Tim sinh vien co diem trung binh nho nhat."); printf("\n7 Tim sinh vien theo ten.");

printf("\n8 Xoa mot sinh vien theo ma.");

printf("\n9 Dem tong so luong sinh vien.");

printf("\n10 Tong diem 3 mon cua sinh vien.");

printf("\n11 Tim sinh vien co diem mon toan cao nhat.");

printf("\n12 Tim sinh vien co diem mon toan thap nhat."); printf("\n13 Ghi thong tin sinh vien ra file.");

printf("\nO Thoat chuong trinh.");

printf("\nBan chon ? ");

Trang 14

struct SinhVien sv; switch(luaChon) {

case 0: break;

case 1:

sv = nhapSV();

dssvi[slsv++] = sv; break;

case 2:

hienThiDSSV(dssv, slsv); break; case 3: sapXepTheoTen(dssv, slsV); printf("\nDanh sach sinh vien sau khi sap xep theo ten a-z:\n"); hienThiDSSV(dssv, slsv); break; case 4: sapxepTheoDiem(dssv, slsv); printf("\nDanh sach sinh vien sau khi sap xep theo diem giam dan:\n"); hienThiDSSV(dssv, slsv); break;

Trang 15

DiemtbMax(dssv, slsv); break;

case 6:

DiemtbMin(dssv, slsv); break;

case 7:

timTheoTen(dssv, slsv); break;

case 8:

XoaSVi(dssv, slsv); hienThiDSSV(dssv, slsv-1); break;

case 9: 10d:\n",sIsv);

printf("\nTong so luong sinh vien da nhap la %-

break; case 10:

printt(" "

10s \n", "Gioi Tinh",

dssv[i].diem.anh;

\n"); printf("%-10s %-10s %-20s %-10s %-10s %-10s %-

"Ma SV", "Ho", "Dem", "Ten", "Tuoi",

"Tong diem 3 mon");

for(i = 0; i < slsv; i++) { float tb=0;

Trang 16

printf(“%-10d %-10s %-20s %-10s %-10d %- 10s %-10.2f \n",

dssv[i].ma, dssv[i].hoVaTen.ho, dssv[i].hoVaTen.dem, dssv[i].hoVaTen.ten, dssv[i].tuoi, dssv[i].gioiTinh,tb); } break; case 11: DiemToanMax(dssv, slsv); break; case 12: DiemToanMin(dssv, slsv); break;

case 13:

ghiFile(dssv, slsv); break; default: printf("Sai chuc nang, vui long chon lai!\n"); break; } while(luaChon); return 0; }

5 KIEM THU - LAP BO TEST

Thực hiện chạy với bộ dữ liệu mẫu (Input-Output) đã xác định ở phần 2

Trang 17

Chụp hình ảnh kết quả chương trình tương ứng

5.1 Chọn yêu cầu

EN HIEN THOI:

Trang 18

s2 Nhập thơng tin sinh viên và điểm

laa Le Them Sinh vien

Hien thi danh

Sap xep theo ten

Sap xep theo d | li

Tim sinh vien co diem trung binh lon nhat Tim sinh vien co diem trung binh nho nhat Tim sinh vien theo ten

Xoa mot sinh vien theo ma Dem tong so luong sinh vien

19 Tong diem 3 mon cua sinh vien

11 Tim sinh vien diem mon toan cao nhat

12 Tim sinh vien em mon toan thap nhat

3 Ghi thong tin vie Ề

9 Thoat chuong tr

Ban chon ? 1 Nhap ma: 1

ho

tien

manh 23 tinh: nam

19

Them Sinh vien vao danh sach Hien thi danh h vien Sap xep theo ten Sap xep theo diem giam dan

Tim sinh vien co diem trung binh lon nhat Tim sinh vien co diem trung binh nho nhat Tim sinh vien theo ten

Xoa mot sinh vien th Dem tong so luong

Tong diem 3 Tim sỉ Tim Ghi thong tin si Thoat chuong trinh

on ? 2

em Toan bo CĨ ee

Xoa mot

Dem tong s

10 Tong diem 3 mon cu

nh vien co d 12 Tim si vien cod

13 Ghi thong tin sinh \

Thoat chuor

Trang 19

e 8)›, = 5.5 Sắp xếp danh sách sinh viên theo điểm giảm d J3) ch thi danh sach sinh vien xep theo ten

giam dan

i m trung binh lon nhat

en co diem trung binh nho nhat

sinh vien theo ten mot sinh vien theo ma tong so luong sinh vien, Tong diem 3 mon cua sinh vien Tim sinh vien co diem mon toan cao nhat Tim sinh vien co diem mon toan thap nhat 3 Ghi thong tin sinh vien ra file

@ Thoat chuong trinh

Ban chon ? 4

anh sach sinh vien khi sap xep theo diem giam dan:

ioi Tỉnh tien E BE) pens)

Them Sinh vien vao danh sach Hien thi danh sach sinh vien

Sap xep theo ten xep theo diem giam dan

sinh vien co diem trung binh lon nhat

sinh vien theo ten

mot sinh vien theo m

tong so luong sinh \ -

1@ Tong diem 3 mon cua sinh vien

I1 Tim sinh vien co diem mon toan cao nhat

Tim sinh vien co diem mon toan thap nhat 3 Ghi thong tin sinh vien ra file

Thoat chuong trinh

1 Them Sinh vien vao danh sach 2 Hien thi danh sach sinh vien 3 Sap xep theo ten 4 Sap xep theo diem giam dan

5, Tim sinh n co diem trung bỉnh lon nhat

6 Tim sinh vien co diem trung binh nho nhat

Tim sinh a en

Xoa mot sinh vien theo ma

Dem tong so luong sinh vien Tong diem 3 on cua sinh vien

Tim sinh vien co diem mon toan cao nhat Tim sinh vien co diem mon toan thap nhat Ghi thong tỉn

@ Thoat chuong trinh

Ban c LẠ

Trang 20

5.8 _ Tìm kiếm thơng tin sinh viên theo tên

ay

Them Sinh vien vao danh Hien thi danh sach sinh v

Sap xep theo ten

xep theo diem giam dan

nh vien co diem trung binh lon nhat

sinh vien co diem trung binh nho nhat

sinh vien theo ten mot sinh vien theo tong so luong sinh vien Tong diem 3 mon cua sinh vien Tim sinh vien co diem mon toan cao nhat 2 Tim sinh vien co diem mon toan thap nhat 13 Ghi thong tin sinh vien ra fila CPLA Leal a 1),

Ban chon ? 7

Gioi Tinh Diem Toan Diem Van Diem Anh Diem TBC

oF 19.98 8.009 6.98 8.009 13110

Them Sinh vien vao danh sach Hien thi danh sach sinh vien Sap xep theo ten

xep theo diem giam dan

sinh vien co diem trung bỉnh lon nhat Sis) Mee Caden

mot sinh vien theo ma tong so luo!

1ơ Tong diem 3 mon cua sỉ c sinh n co dien mon toan cao nhat sinh so Pe ey n thap nhat

n sinh vien ra file

9 Thoat chuong trin Ban chon ? 8 Nhap ma sinh vien can xoa VW

Diem Anh Dien TBC 6.98 8.00 18.08 8.00

danh sach

ten

nh vien co diem trung binh lon nhat Palm co diem trung binh nho nhat

Sinh theo ten

Xoa mot vien theo Dem tong so luong sinh Tong em 3 mon cua

Trang 21

Them Sinh

Hien thi danh

Sap xep theo ten

xep theo dien giam dan

sinh vien cơ diem trung binh lon nhat

DU No HN U la

en theo ten

n theo

an cao nhat n mon toan thap nhat pham a _ x aA 5.13 Tim sinh vie MENU Them Sinh vien vao danh IS hd chi

Sap xep theo te ep theo diem giam dan

ien co diem trung binh lon nhat Tim ien theo ten

Xoa mot sinh vien theo ma Dem tong luong sinh vie Tong diem 3 mon cua sinh

Tim sinh vien co diem mon toan cao nhat

Tim sinh vien co diem mon toan thap nhat

Ghi thong tin sinh vien ra file @ Thoat chuong trinh Ban chon ? 12 1 ho tien

ì sinh vi Tim sinh

Them Sinh vien vao dan

Hien thi danh sach 1

Sap xep theo ten

Sap xep theo diem giam dan Tim sinh vien co diem

vien

trung binh lon nhat

Tim sinh vien co diem trung binh nho nhat Tim sinh vien theo ten

Xoa mot sinh vien

Dem tong so luong

Tong diem mon c inh vien

Tim sinh vien co diem mon toan cao nhat Tim sinh vien co diem mon toan thap nhat

Ghi thong tin sinh vien ra fil

9 Thoat \uong trinh

Ban chon ? 13 Nhap ten file:

Ngày đăng: 18/07/2024, 16:27

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w