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

Đồ án cơ sở đề tài 704 xây dựng ứng dụng quản lý điểmcủa sinh viên theo từng môn học

29 2 0

Đ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

Thông tin cơ bản

Tiêu đề Đồ Án Cơ Sở Đề Tài 704 Xây Dựng Ứng Dụng Quản Lý Điểm Của Sinh Viên Theo Từng Môn Học
Tác giả Lê Hoàng Ngọc Hân, Trương Thị Mỹ Duyên
Người hướng dẫn Trần Hồ Thủy Tiên
Trường học Đại Học Đà Nẵng
Chuyên ngành Công Nghệ Thông Tin
Thể loại đồ án cơ sở
Năm xuất bản 2020
Thành phố Đà Nẵng
Định dạng
Số trang 29
Dung lượng 1,99 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

GVHD : Trần Hồ Thủy Tiên Quản lí điểm sinh viênLỜI MỞ ĐẦU Từ khi bắt đầu làm đề tài môn đồ án “Quản lí điểm sinh viên” đến nay, chúng em đãnhận được nhiều sự quan tâm giúp đỡ của cô Trần

Trang 1

ĐẠI HỌC ĐÀ NẴNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN CƠ SỞ

ĐỀ TÀI 704 XÂY DỰNG ỨNG DỤNG QUẢN LÝ ĐIỂM CỦA SINH VIÊN THEO TỪNG MÔN HỌC

SINH VIÊN THỰC HIỆN 1.LÊ HOÀNG NGỌC HÂN LỚP: 19TCLC_DT4 NHÓM: 19.10A 2.TRƯƠNG THỊ MỸ DUYÊN LỚP: 19TCLC_DT4 NHÓM: 19.10A

GIÁO VIÊN HƯỚNG DẪN TRẦN HỒ THỦY TIÊN

Đà Nẵng, 5-2020

Trang 3

GVHD : Trần Hồ Thủy Tiên Quản lí điểm sinh viên

LỜI MỞ ĐẦU

Từ khi bắt đầu làm đề tài môn đồ án “Quản lí điểm sinh viên” đến nay, chúng em đãnhận được nhiều sự quan tâm giúp đỡ của cô Trần Hồ Thủy Tiên Với lòng biết ơn sâu sắc nhất, chúng em xin gửi đến cô lời cảm ơn vì cô đã dành hết tâm huyết của mình để truyền đạt kiến thức cho em trong suốt thời gian làm đồ án Nhóm chúng em xin chân thành cảm ơn cô đã tận tình giảng dạy và hướng dẫn chúng em trong lúc làm đề tài Nếu không có những bài hướng dẫn chỉ dạy của cô thì bài báo cáo này của chúng em khó có thể hoàn thiện Dù đã kiểm tra nhiều lần nhưng trong báo cáo này khó tránh khỏi những sai sót, rất mong các thầy cô bỏ qua và nhóm chúng em hy vọng nhận được những đóng góp của thầy cô để giúp đồ án của chúng em được hoàn thiện hơn Chúng em xin chân thành cảm ơn

Sinh viên thực hiệnTRƯƠNG THỊ MỸ DUYÊN

LÊ HOÀNG NGỌC HÂN

Trang 4

GVHD : Trần Hồ Thủy Tiên Quản lí điểm sinh viên

MỤC LỤC

1

LỜI MỞ ĐẦU 2

MỤC LỤC 3

DANH MỤC HÌNH VẼ 4

1 GIỚI THIỆU ĐỀ TÀI 5

2 CƠ SỞ LÝ THUYẾT 5

2.1 Ý tưởng 5

2.2 Cơ sở lý thuyết 5

3 TỔ CHỨC CẤU TRÚC DỮ LIỆU VÀ THUẬT TOÁN 5

3.1 Phát biểu bài toán 5

3.2 Cấu trúc dữ liệu 5

3.3 Thuật toán 5

4 CHƯƠNG TRÌNH VÀ KẾT QUẢ 5

4.1 Tổ chức chương trình 5

4.2 Kết quả 5

4.2.1 Giao diện chính của chương trình 5

4.2.2 Kết quả thực thi của chương trình 5

4.2.3 Nhận xét 5

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 5

a Kết luận 5

b Hướng phát triển 5

TÀI LIỆU THAM KHẢO 6

[1] Tên tác giả, Tên tài liệu, Tên nhà xuất bản, năm xuất bản 6

[2] Tên chủ sở hữu, Tên bài viết, url, ngày truy cập 6

Trang 5

GVHD : Trần Hồ Thủy Tiên Quản lí điểm sinh viên

DANH MỤC HÌNH VẼ

Hình ảnh mô tả chương trình

Hình vẽ thực hiện chức năng đăng nhập :

Trang 6

GVHD : Trần Hồ Thủy Tiên Quản lí điểm sinh viên

GIỚI THIỆU ĐỀ TÀI

Công nghệ đang ngày càng phát triển và lượng thông tin đang mỗi ngày một tăng lên với tốc độ cao Đồng thời, việc lưu giữ thông tin bằng giấy tờ là điều rất bất cập, tốn kém (về thời gian, vật chất) và hơn nữa, thông tin luôn luôn được sửa đổi, bổ sung và mở rộng theo thời gian Chính vì vậy, trong môi trường giáo dục, để tối ưu hóa việc ghi chép,tính toán và sửa đổi thông tin điểm, chúng ta sử dụng những phần mềm, chương trình quản lí điểm phù hợp với lượng dữ liệu và các chức năng cần thiết như Excel Báo cáo này sẽ trình bày chương trình quản lí điểm của sinh viên trong ngôn ngữ C

CƠ SỞ LÝ THUYẾT

Ý tưởng

Dùng ngôn ngữ C để thực hiện các chức năng quản lí sinh viên Quản lí tên , mã sinh viên , điểm , xếp loại , sắp xếp theo điểm trung bình , sửa điểm , … Quản lí nhiều môn học , mỗi môn học được lưu trữ trên một file, thực hiện các chức năng kể trên

+ Viết các hàm để xây dựng các chức năng

TỔ CHỨC CẤU TRÚC DỮ LIỆU VÀ THUẬT TOÁN

Phát biểu bài toán

3.1.1 Mô tả: Chương trình viết bằng ngôn ngữ C cho phép quản lí tài khoản của 40

sinh viên/ môn Gồm có Menu như sau:

- Mỗi môn học sẽ được lưu trên 1 file

- Chức năng nhập điểm: Nhập điểm cho toàn bộ sinh viên theo thứ tự các cột điểm sau: Laboratory (lab), Presentation (pres), Mid - Semester (mid), Final - Semester (final)

và chương trình sẽ tính toán thêm 1 cột điểm Average (avg) theo công thức sau:

Trang 7

GVHD : Trần Hồ Thủy Tiên Quản lí điểm sinh viên

avg = 0.1*lab + 0.2*pres + 0.2*mid + 0.5*final

- Chức năng xem điểm: Nhập vào mã sinh viên cần xem điểm Nếu tồn tại mã sinh viên thì hiển thị tất cả các cột điểm của sinh viên đó, ngược lại thì hiển thị thông báo mã sinh viên không tồn tại

- Chức năng sửa điểm: Nhập vào mã sinh viên cần sửa điểm Nếu tồn tại thì thực hiện:

+ Nhập cột điểm cần sửa theo menu sau:

+ Hiển thị ra điểm sau khi sửa

Ngược lại, hiển thị mã sinh viên không tồn tại

- Chức năng sắp xếp: Tính điểm trung bình, quy về điểm theo hệ A, B, C, D rồi sắp xếp theo thứ tự giảm dần In ra màn hình bảng xếp hạng gồm: Mã sinh viên, tên sinh viên, điểm cột avg và điểm hệ A, B, C, D được quy đổi từ avg

3.1.2 Đầu vào (Input): mã sinh viên, họ tên sinh viên, điểm các cột lab, pres, mid, final 3.1.3 Đầu ra (Output): điểm trung bình (avg), điểm theo thang A, B, C, D, danh sách

điểm của 1 hoặc nhiều sinh viên đã hoặc chưa được sắp xếp, điểm sinh viên được sửa

Cấu trúc dữ liệu:

Kiểu dữ liệu cơ bản:

char key[20], key1[20]; // Ki u kí tể ự

char (msv[100])[100]; // M ng ki u kí tả ể ự

char (ten[100])[100]; // M ng ki u kí tả ể ự

float diem[40][5], dtb[40]; // M ng ki u s th c (1-2 chi u)ả ể ố ự ề

Kiểu dữ liệu kết hợp: Sử dụng các mảng song song

Trang 8

GVHD : Trần Hồ Thủy Tiên Quản lí điểm sinh viên};

typedef struct sinhvien diem;

void mangmsv(int n, char msv[][100],FILE *fmsv) {

fmsv=fopen("C:\\Users\\PC\\Desktop\\project\\msv.txt","r");for(int i=0;i<n;i++) fscanf(fmsv,"%s",&msv[i]);

fclose(fmsv);

}

void mangten(int n, char ten[][100],FILE *ften) {

ften=fopen("C:\\Users\\PC\\Desktop\\project\\ten.txt","r");for(int i=0;i<n;i++) {

Lưu trữ dữ liệu trong các file:

C:\\Users\\PC\\Desktop\\project\\msv.txt (File lưu mã sinh viên)

C:\\Users\\PC\\Desktop\\project\\ten.txt (File lưu tên)

C:\\Users\\PC\\Desktop\\project\\diem13.txt (File lưu điểm)

Thuật toán

Trình bày các thuật toán (sử dụng giả lệnh hoặc sơ đồ khối) và phân tích độ phức tạp của các thuật toán

Trang 9

GVHD : Trần Hồ Thủy Tiên Quản lí điểm sinh viên

 Mảng sinh viên : Nhập mã sinh viên vào mảng msv[]

- Chức năng : Lưu trữ mã sinh viên từ file vào mảng một chiều.Dùng để hiển thị mã sinh viên khi nhập điểm, xuất điểm, sắp xếp điểm, in file

- Thuật toán:

for(int i=0;i<n;i++){

fscanf(fmsv,"%s",&msv[i]);

}

 Hàm xem điểm : Xem điểm của một sinh viên

- Chức năng: Dùng để hiển thị các cột điểm của một sinh viên sau khi nhập

void mangmsv(int n, char msv[]

[100],FILE *fmsv)

O(n)

void nhap(diem &sv,FILE *fd) O(n)

void nhapN(diem sv[],int n,char

char (ten[100])[100], int n,

float diem[][5],char key[])

Trang 10

GVHD : Trần Hồ Thủy Tiên Quản lí điểm sinh viênvoid traodoi(char a[],char b[]) O(1)

Tên Hàm Chức năng (Ghi chú)

1 void Title() // Hàm in thông tin đ ánồ

2 void Login() // Hàm đăng nh pậ

4 void mangmsv(int n, char msv[]

6 void mangdiem(int n, float

diem[][5],FILE *fd, float

dtb[])

// Hàm đ c đi m SV t file vào ọ ể ừ

m ng 2 chi uả ề

7 void DTB(diem &sv) // Hàm tính đi m trung bìnhể

8 void nhap(diem &sv,FILE *fd) // Hàm nh p đi m 1 SV vào fileậ ểể

9 void nhapN(diem sv[],int n,char

(msv[100])[100] ,char

(ten[100])[100],FILE *fd)

// Hàm nh p đi m n SV vào fileậ ểể

10 char xeploai(float x) // Hàm quy đ i đi m h 10 sang ổ ể ệ

A,B,C,D

11 void xem(char (msv[100])[100],

char (ten[100])[100], int n,

float diem[][5],char key[])

Trang 11

GVHD : Trần Hồ Thủy Tiên Quản lí điểm sinh viên[100],int n, float diem[]

[5],char key1[])

13.void swap(float &a,float &b) // Hàm tráo đ i 2 s th cổ ố ự

14 void traodoi(char a[],char b[]) // Hàm tráo đ i 2 xâu kí tổ ự

15 void sapxep(char (msv[100])

[100],int n,char (ten[100])

[100],float dtb[])

// Hàm s p x p đi m trung bình ắ ế ểtheo th t gi m d nứ ự ả ầ

16.void xuat(int n, char(ten[100])

[100], char(msv[100])[100],

float diem[][5])

// Hàm in danh sách sinh viên

17 int main() // Hàm chương trình chính g i các ọ

Trang 12

GVHD : Trần Hồ Thủy Tiên Quản lí điểm sinh viênvoid Title() {

printf(" + -+\n");printf(" | CHUONG TRINH QUAN LI DIEM SINH VIEN |\n");printf(" | Supervisor: Tran Ho Thuy Tien |\n");

printf(" | Students: Le Hoang Ngoc Han |\n");printf(" | Truong Thi My Duyen |\n");printf(" | Class: 19TCLC - DT4 |\n");printf(" + -+\n");}

 Void Login : Đăng nh p vào chậ ương trình

Trang 13

GVHD : Trần Hồ Thủy Tiên Quản lí điểm sinh viên

printf("\n\t\tNhap mat khau thanh cong!");

printf("\n

-+");

+ -printf("\n | CHUONG TRINH BAT DAU THUC HIEN! |");

printf("\n

-+");

+ -printf("\n | MENU CHUC NANG

|");

printf("\n +");

+ -printf("\n | 1 - NHAP DIEM

+ -}

Trang 14

GVHD : Trần Hồ Thủy Tiên Quản lí điểm sinh viên

 void mangmsv : Chèn thông tin dãy mã sinh viên vào m t m ng ộ ả

Code :

void mangten(int n, char ten[][100],FILE *ften){

ften=fopen("C:\\Users\\PC\\Desktop\\project\\ten.txt","r"); for(int i=0;i<n;i++){

Trang 15

GVHD : Trần Hồ Thủy Tiên Quản lí điểm sinh viên

 Void nhap : Dùng đ nh p đi m c a m i sinh viên t bàn phím sau đó ể ậ ể ủ ỗ ừghi vào file đi m FILE *fd;ể

Code :

void nhap(diem &sv,FILE *fd) {

printf("\n Nhap diem cot Lab: ");

 Void nhapN : Cho vòng l p for (i-> n) tặ ương ng n sinh viên , đ ứ ể

th c hi n l nh nh p đi m “void nhap”ự ệ ệ ậ ể

Code :

void nhapN(diem sv[],int n,char (msv[100])[100] ,char (ten[100])[100],FILE *fd){

fd=fopen("C:\\Users\\PC\\Desktop\\project\\diem13.txt","w");for(int i=0;i<n;i++){

printf("\n\tNhap diem cho msv %s : ",msv[i]);

nhap(sv[i],fd);

}

fclose(fd);

}

Trang 16

GVHD : Trần Hồ Thủy Tiên Quản lí điểm sinh viên

 Void xeploai : D a vào đi m trung bình đ x p lo i sinh viên đó ự ể ể ế ạ

+ -printf("\n Ket qua cua SV: %s ",ten[count]);

printf("\n

-+");

+ -printf("\n | Lab | Pres | Mid | Final

| Avg | Grade |");

printf("\n

-+");

+ -printf("\n | %.2f | %.2f | %.2f | %.2f

| %.2f | %c |",diem[count][0],diem[count]

Trang 17

GVHD : Trần Hồ Thủy Tiên Quản lí điểm sinh viên

[1],diem[count][2],diem[count][3],diem[count][4],xeploai(diem[count][4]));

printf("\n

-+");

+ -}

}

 Void sua : Nh p mã sinh viên , sau đó màn hình hi n th đi m c a ậ ểể ị ểể ủểsinh viên , nh p c t đi m c n s a , nh p đi m s a đ thay đ i đi mậ ộ ểể ầầ ưể ậ ểể ưể ểể ổể ểểcho sinh viên

printf("\n\tDiem truoc khi sua:\n ");

printf("\tLab: %.2f\tPres: %.2f\tMid: %.2f\tFinal:

%.2f\tAvg: %.2f\tGrade: %c",diem[count][0], diem[count][1], diem[count][2], diem[count][3], diem[count][4], xeploai(diem[count][4]));

printf("\n\tNhap cot diem ban muon sua : ");

scanf("%d",&cot);

fd=fopen("C:\\Users\\PC\\Desktop\\project\\diem13.txt","w+");switch(cot){

case 0 :

printf("\n\tNhap diem ban muon sua : ");

scanf("%f",&diem[count][0]);

Trang 18

GVHD : Trần Hồ Thủy Tiên Quản lí điểm sinh viên

diem[count][4]=0.1*diem[count][0]+0.1*diem[count][1]+0.3*diem[count][2]+0.5*diem[count][3];

printf("\tLab: %.2f\tPres: %.2f\tMid:

%.2f\tFinal: %.2f\tAvg: %.2f\tGrade: %c",diem[count][0], diem[count][1], diem[count][2], diem[count][3], diem[count][4],

xeploai(diem[count][4]));

for(int i=0;i<n;i++) {for(int j=0;j<5;j++) {fprintf(fd,"%.2f\t",diem[i][j]);}

fprintf(fd,"\n");

}break;

case 1 :

printf("Nhap diem ban muon sua : ");

scanf("%f",&diem[count][1]);

diem[count][4]=0.1*diem[count][0]+0.1*diem[count][1]+0.3*diem[count][2]+0.5*diem[count][3];

printf("\tLab: %.2f\tPres: %.2f\tMid:

%.2f\tFinal: %.2f\tAvg: %.2f\tGrade: %c",diem[count][0], diem[count][1], diem[count][2], diem[count][3], diem[count][4],

xeploai(diem[count][4]));

for(int i=0;i<n;i++) {for(int j=0;j<5;j++) {fprintf(fd,"%.2f\t",diem[i][j]);}

fprintf(fd,"\n");

}break;

case 2 :

printf("Nhap diem ban muon sua : ");

scanf("%f",&diem[count][2]);

diem[count][4]=0.1*diem[count][0]+0.1*diem[count][1]+0.3*diem[count][2]+0.5*diem[count][3];

printf("\tLab: %.2f\tPres: %.2f\tMid:

%.2f\tFinal: %.2f\tAvg: %.2f\tGrade: %c",diem[count][0], diem[count]

Trang 19

GVHD : Trần Hồ Thủy Tiên Quản lí điểm sinh viên

[1], diem[count][2], diem[count][3], diem[count][4],

xeploai(diem[count][4]));

for(int i=0;i<n;i++) {for(int j=0;j<5;j++) {fprintf(fd,"%.2f\t",diem[i][j]);}

fprintf(fd,"\n");

}break;

case 3 :

printf("Nhap diem ban muon sua : ");

scanf("%f",&diem[count][3]);

diem[count][4]=0.1*diem[count][0]+0.1*diem[count][1]+0.3*diem[count][2]+0.5*diem[count][3];

printf("\tLab: %.2f\tPres: %.2f\tMid:

%.2f\tFinal: %.2f\tAvg: %.2f\tGrade: %c",diem[count][0], diem[count][1], diem[count][2], diem[count][3], diem[count][4],

xeploai(diem[count][4]));

for(int i=0;i<n;i++) {for(int j=0;j<5;j++) {fprintf(fd,"%.2f\t",diem[i][j]);}

fprintf(fd,"\n");

}break;

Trang 20

GVHD : Trần Hồ Thủy Tiên Quản lí điểm sinh viên

 Void traodoi : Dùng đ tráo đ i thành ph n c a sinh viên nh tên , ể ổ ầ ủ ư

mã sinh viên ( dùng cho hàm s p x p ) ắ ế

+ -printf("\n | Ma Sinh Vien | Diem trung binh

| Xep loai |\n");

Trang 21

GVHD : Trần Hồ Thủy Tiên Quản lí điểm sinh viên

printf("

-+");

printf("\n Ho va ten : %s",ten[i+1]);

printf(" Ma Sinh Vien : %s\n",msv[i]);

printf("Diem cot lab : %.2f\n ",diem[i][0]);

printf("Diem cot pres : %.2f\n ",diem[i][1]);

printf("Diem cot mid : %.2f \n",diem[i][2]);

printf("Diem cot final : %.2f\n ",diem[i][3]);

printf("Diem cot Avg : %.2f \n",diem[i][4]);

printf("Xep loai : %c\n",xeploai(diem[i][4]));

}

}

Trang 22

GVHD : Trần Hồ Thủy Tiên Quản lí điểm sinh viên

Trang 23

GVHD : Trần Hồ Thủy Tiên Quản lí điểm sinh viên

 Khi đăng nhập thành công

Hình 3 Khi đăng nhập đúng tên và mật khẩu, thì màn hình hiển thị thông báo đăng nhập thành công Chương trình bắt đầu thực hiện Người dùng cần nhấn Enter để tiếp tục chạy chương trình

Hình 4 Sau khi nhấn Enter, màn hình sẽ hiển thị Menu như hình trên Người dùng nhập lựa chọn từ bàn phím

Trang 24

GVHD : Trần Hồ Thủy Tiên Quản lí điểm sinh viên1.1.2 Kết quả thực thi chương trình

 Nhập điểm

Hình 5 Giao diện chức năng nhập điểm

 Xem điểm

Trang 25

GVHD : Trần Hồ Thủy Tiên Quản lí điểm sinh viên

Hình 6 Giao diện chức năng xem điểm

 Sửa điểm

Hình 7 Giao diện chức năng sửa điểm

 Sắp xếp

Trang 26

GVHD : Trần Hồ Thủy Tiên Quản lí điểm sinh viên

Hình 8 Giao diện chức năng sắp xếp

 In danh sách

Trang 27

GVHD : Trần Hồ Thủy Tiên Quản lí điểm sinh viên

Hình 9 Giao diện chức năng in danh sách

+ Yêu cầu người dùng phải nhập thông tin cẩn thận

+ Giao diện, màu sắc chưa bắt mắt

+ Một số thuật toán (sắp xếp,…) chưa được tối ưu hóa

Trang 28

GVHD : Trần Hồ Thủy Tiên Quản lí điểm sinh viên

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

1 Kết luận

1.1 Đối với mục tiêu đặt ra của đề án:

- Hiểu và áp dụng được mảng song song , cách lưu trữ dữ liệu trong file và đọc thông tin từ file

- Áp dụng được các thuật toán thao tác trên các mảng song song

- Hiểu và sử dụng các hàm xử lý chuỗi

- Chia nhỏ chương trình thành các hàm con để dễ dàng cho việc quan sát và chỉnh sửa

- Viết hàm menu và sửa điểm bằng cách sử dụng switch - case để nhập lựa chọn

- Biết cách căn chỉnh màn hình giao diện

1.2 Đối với chương trình quản lí điểm:

- Đáp ứng đầy đủ các chức năng của một chương trình quản lí điểm: Nhập điểm, xem điểm, sửa điểm, sắp xếp điểm, in danh sách

- Có khả năng bảo mật nhờ có hàm Login Tuy nhiên, hàm vẫn còn hạn chế về số lượng account và độ bảo mật thấp

- Áp dụng được nhiều thao tác trên mảng, file,… Tuy nhiên, một số thuật toán chưa được tối ưu hóa tối đa

- Tối ưu hóa thuật toán sắp xếp, sửa điểm và nâng cao bảo mật

- Thiết kế giao diện cho chương trình bằng các phần mềm đồ họa chuyên dụng khác

Ngày đăng: 03/07/2023, 15:27

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w