đồ án giải thuật và lập trình quản lý sinh viên

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 (420.34 KB, 34 trang )

Đang xem: đồ án giải thuật và lập trình quản lý sinh viên

TRƯỜNG ĐẠI HỌC DUY TÂN
KHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN CƠ SỞ
NGÀNH KHOA HỌC MÁY TÍNH

ĐỀ TÀI: QUẢN LÝ SINH VIÊN

Giảng viên hướng dẫn: PHẠM KHÁNH LINH
Sinh viên thực hiện:

Nguyễn Văn Th???

Lớp:

K19TPM3

Mã sinh viên:

1921123???

Đà Nẵng, tháng 04/2016

GVHD: Phạm Khánh Linh

QUẢN LÝ SINH VIÊN

MỤC LỤC

PHẦN MỞ ĐẦU:

1. LÝ DO CHỌN ĐỀ TÀI

Công nghệ thông tin là một trong những ngành phát triển vượt bậc trong những năm gần
đây. Ngày nay với sự phát triển nhanh chóng của xã hội thì công nghệ thông tin được ứng dụng
rộng rãi ở hầu hết tất cả các lĩnh vực và ngày càng đóng vai trò quan trọng, trở thành một phần
thiết yếu trong đời sống hằng ngày. Công nghệ thông tin là một ngành đòi hỏi ở người học một
nền tảng kiến thức vững chắc, sự tư duy logic cao, hiểu biết sâu rộng trên nhiều lĩnh vực. Với
em hiện đang là sinh viên công nghệ phần mềm cần có sự đầu tư, không ngừng học hỏi để
nâng cao kiến thức. Do đó để củng cố kiến thức đã học, đề tài mà em chọn là: Bài toán quản lý
sinh viên bằng ngôn ngữ C/C++.

2. MỤC TIÊU ĐỀ TÀI
Xây dựng một chương trình quản lý sinh viên bằng ngôn ngữ lập trình C/C++ đơn giản,
dễ sử dụng cho người quản lý.
Giải quyết các vấn đề: quản lý sinh viên trong một năm học, số tính chỉ đăng ký, số điểm
đạt được, môn học, nhập liệu, tìm kiếm và sửa thông tin…

3. PHẠM VI NGHIÊN CỨU
Nghiên cứu, phân tích và xây dựng hệ thống quản lý sinh viên.

4. PHƯƠNG PHÁP NGHIÊN CỨU
Thực hiện đề tài này, em đã ứng dụng các kiến thức đã học về lập trình, tham khảo một
số tài liệu về ngôn ngữ C/C++.
Tham khảo, nghiên cứu việc quản lý sinh trong cửa hàng để xây dựng phần mềm thích
hợp.
Nguyễn Văn Th? – K19TPM3
Page 2

GVHD: Phạm Khánh Linh

QUẢN LÝ SINH VIÊN

Nguyễn Văn Th? – K19TPM3
Page 3

GVHD: Phạm Khánh Linh

QUẢN LÝ SINH VIÊN

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1. GIỚI THIỆU NGÔN NGỮ LẬP TRÌNH C/C++
Ngôn ngữ lập trình C do Brain W.Kernighan và Dennis Ritchie phát minh vào năm
1972 tại phòng thí nghiệm Bell Telephone với mục đích tạo ngôn ngữ để viết hệ điều hành
UNIX, nhưng do tính ưu việt cũng như tính mềm dẻo của nó, cho nên giới tin học nhanh chóng
chấp nhận như một ngôn ngữ nhà nghề.
Năm 1978, bản in đầu tiên được in thành sách, đó là cuốn “The C Programming
Language” do chính hai tác giả của ngôn ngữ biên soạn. Viện chuẩn quốc gia Mỹ ANSI
(American National Standard Institute) công bố chuẩn ngôn ngữ C vào năm 1983 với tên
“ANSI C”.
Ngôn ngữ C rất tiện dụng trong việc viết các phần mềm hệ thống (hệ điều hành, chương
trình dịch, soạn thảo văn bản, cơ sở dữ liệu, bản tính…)
Là ngôn ngữ có ít từ khoá, có cấu trúc modun, dễ thích nghi cho các hệ thống máy tính
khác nhau.
Cuối năm 1980, cũng tại phòng thí nghiệm Bell Telephone, Bjrane Stroustrup phát triển
ngôn ngữ C để tạo thành một phiên bản mới, phiên bản mới này có tên là C++. C++ thực hiện
được hết các khả năng của C, bao trùm lên C, ngoài ra còn bổ sung thêm nhiều khái niệm và
khả năng mới và mạnh mẽ hơn. Những bổ sung của C++ so với C chia thành hai nhóm sau:
• Nhóm một là các kiểu dữ liệu mới, các dòng dữ liệu mới, các hàm mới.. làm cho

ngôn ngữ mạnh mẽ hơn va dễ lập trình hơn.
Nhóm hai là các khái niệm lớp, đối tượng va những khái niệm liên quan tạo cơ
sở cho lập trình hướng đối tượng và làm cho C++ trở thành ngôn ngữ lập trình
hướng đối tượng.

1.2 MỘT SỐ KIẾN THỨC CƠ BẢN VỀ C++
1.2.1

CÁC KIỂU DỮ LIỆU CƠ SỞ

1.2.1.1 KIỂU KÝ TỰ
Ký tự là một chữ cái, chữ số hoặc ký tự đặc biệt và được định nghĩa bằng từ khoá char.
Một ký tự chiếm 1 byte, biểu diễn 1 ký tự trong bảng mã ASCII (American Standard
Code for Information Interchangre) và nằm cặp nháy đơn.
Bảng mã của một số ký tự biễu diễn được:
Nguyễn Văn Th? – K19TPM3
Page 4

GVHD: Phạm Khánh Linh

QUẢN LÝ SINH VIÊN

Ký tự

Mã ASCII

Các ký tự điều khiển(enter, esc,tab…)

0..31

Space bar(‘ ‘)

32

!”#$%&…

33..47

0..9

48..57

A..Z

65..90

a..z

97..122

1.2.1.2 KIỂU SỐ NGUYÊN

Một số dữ liệu kiểu số nguyên:
Từ khoá

Số byte

Miền giá trị

int

2

-215 → 215 – 1 (-32768..32767)

short

2

-215 → 215 – 1

long

4

-231 → 231 – 1 (-2.1 tỷ..2.1 tỷ)

unsigned int

2

0 →216 – 1 (0..65535)

unsigned short

2

0 →216 – 1

unsigned long

2

1

→232 – 1 (0..4.2 tỷ)

1.2.1.3 KIỂU SỐ THỰC
Từ khoá

Số byte

Miền giá trị

Độ chính xác

Float

4

±2*10-38 → ±3.4*1038

7 chữ số

Double

8

±2.2*10-308 → ±8*10308

15 chữ số

Long double

10

±3.4*10-4932 → ±3.4*104932

15 chữ số

Một số dữ liệu kiểu số thực:

Nguyễn Văn Th? – K19TPM3
Page 5

GVHD: Phạm Khánh Linh

QUẢN LÝ SINH VIÊN

1.2.2 CÁC CẤU TRÚC ĐIỀU KHIỂN
1.2.2.1 Cấu trúc rẽ nhánh
• Cấu trúc if

Cú pháp:
if(biểu thức)
;

else

Lệnh switch

Nguyễn Văn Th? – K19TPM3
Page 6

GVHD: Phạm Khánh Linh

QUẢN LÝ SINH VIÊN

Cú pháp:
switch(biểu thức nguyên)
while(biểu thức)

Nguyễn Văn Th? – K19TPM3
Page 10

GVHD: Phạm Khánh Linh

QUẢN LÝ SINH VIÊN

1.2.3 HÀM

Cú pháp:
< Tên hàm()>
< >
1.2.4 MẢNG
1.2.4.1 KHÁI NIỆM MẢNG

Mảng là một tập hợp hữu hạn các phần tử (biến) cùng kiểu dữu liệu liên tục trong bộ
nhớ và có chung một tên. Mỗi phần tử trong mảng được xác định qua chỉ số (vị trí trong mảng)
của nó.
Các phần tử của mảng nằm trong các ô nhớ liên tục nhau, địa chỉ thấp nhất của ô nhớ
tương ứng với phần tử thú nhất và địa chỉ cao nhất của ô nhớ tương ứng với phần tử cuối cùng.
Số phần tử của mảng được xác định ngay khi khai báo mảng. Mỗi phần tử của mảng được truy
cập trực tiếp thông qua tên mảng và chỉ số của nó.
Có nhiều loại mảng, mảng một chiều (vecto), mảng 2 chiều (ma trận), mảng nhiều
chiều.
1.2.4.2 MẢNG MỘT CHIỀU
• Khai báo:

Kiểu_dữ_liệu Tên _mảng;
• Truy cập:

Tên_mảng;
Trong đó:
0 ≤ Chỉ_số ≤ Số_phần_tử -1
Chỉ_số có thể là hằng số, biến kiểu nguyên, biểu thức nguyên.
Nguyễn Văn Th? – K19TPM3

Page 11

GVHD: Phạm Khánh Linh

QUẢN LÝ SINH VIÊN
1.2.5 KIỂU DỮ LIỆU TỰ ĐỊNH NGHĨA STRUCT

struct kiểu_struct;
1.2.6 KIỂU DỮ LIỆU TỆP (FILE)
• Khái niệm

Tệp là một tập hợp dữ liệu có liên quan với nhau được nhóm lại lưu trữ trên bộ nhớ
ngoài hoặc các thiết bị và tồn tại ngay cả khi chương trình kết thúc hoặc mất điện.
Có hai loại tệp: tệp văn bản và tệp nhị phân. Trong chương trình này sử dụng tệp nhị
phân.
Sử dụng thư viện fstream.

Tệp nhị phân

Tệp nhị phân là tệp mà các phần tử của nó chỉ biểu diễn một kiểu dữ liệu. Một tệp tin
dù được xây dựng bằng cách nào thì bản chất của nó cũng chỉ là dãy các byte (0..255) ghi tren
đĩa, với cách quan niệm này người ta gọi là tệp nhị phân.
Một số thao tác trên tệp:
+ Khai báo con trỏ file: fstream f;

+ Mở file để ghi: f.open(tên_tệp, ios::out | ios::binary);

Ghi file: f.write((char*) & x, sizeof(x));
+ Mở file để đọc: f.open(ten_tệp, ios::in | ios::binary);
+ Đóng file: f.close();

1.2.7 CÁC PHÉP TOÁN TRÊN DANH SÁCH ĐẶC
1.2.7.1 Duyệt danh sách
Giải thuật duyệt mảng và in ra màn hình tất cả các giá trị của mảng chứa n số nguyên
như sau:
void duyet(int a<>,int n )

1.2.7.2 Chèn một phần tử vào danh sách
Muốn chèn một phần tử X vào mảng A tại vị trí k trong mảng có n phẩn tử (0k;i–) a = a;
Nguyễn Văn Th? – K19TPM3
Page 12

GVHD: Phạm Khánh Linh

QUẢN LÝ SINH VIÊN

Bước 2: Đưa giá trị X vào vị trí số k

a = X;
Bước 3: Tăng kích thước mảng lên 1 đơn vị
n++;
Bước 4: Duyệt mảng từ đầu đến cuối và in ra giá trị của mỗi phần tử của mảng ra màn hình
for (i=1; i;
getch();
Bước 5: Kết thúc thuật toán
Mô tả giải thuật bằng ngôn ngữ C:
void in(int a<>, int n)

void chen(int a<>, int x, int k, int n)

1.2.7.3 Xóa 1 phần tử ra khỏi danh sách (mô tả bằng giải thuật C)
void in(int a<>, int n)

void xoa(int a<>, int k, int n)

1.3

MÔ TẢ BÀI TOÁN QUẢN LÍ SINH VIÊN:
Trong quá trình quản lý sinh viên sẽ có nhiều sinh viên với tên, tuổi, quên quán
giống nhau, để tránh nhầm lẫn chúng ta gán mã sinh viên cho từng sinh viên (mã sinh
viên không trùng nhau). Chương trình sẽ quản lý hồ sơ, điểm học tập của sinh viên
trong quá trình theo học tại trưởng. Chương trình có thể thực hiện các công việc thêm
mới sinh viên, tìm sinh viên theo điều kiện nào đó, xóa sinh viên…

Nguyễn Văn Th? – K19TPM3
Page 13

GVHD: Phạm Khánh Linh

QUẢN LÝ SINH VIÊN

CHƯƠNG 2: PHÂN TÍCH XÂY DỰNG CHƯƠNG TRÌNH
2.1GIỚI THIỆU THUẬT TOÁN
Chương trình quản lý sinh viên quản lý các vấn đề:
• Masv (mã sinh viên) có kiểu dữ liệu char, độ dài 20 ký tự, mỗi sinh viên có một mã số
riêng, không trùng lặp.
• Hoten (họ tên) kiểu dữ liệu char, độ dài 20 ký tự, họ tên sinh viên có thể trùng nhau.
• Lop (lớp) có kiểu dữ liệu char, độ dài 15 ký tự, một sinh viên chỉ được xếp vào một

lớp với một mã lớp tương ứng.
• Gt (giới tính), quequan (quê quán), diachi (địa chỉ) có kiểu dữ liệu char, độ dài 20 ký
tự.

2.2CÁC MODUL CHÍNH TRONG CHƯƠNG TRÌNH
2.2.1 SƠ ĐỒ TỔNG QUÁT

2.2.2 CÁC THUẬT TOÁN
2.2.2.1 Hàm nhập sinh viên

B1: Khởi tạo gán cho i=0,n
B2: Kiểm tra iB3: Nhập thông tin sinh viên
B4: Kết thúc
2.2.2.2 Hàm in thông tin sinh viên
B1: Khởi tạo gán cho i=0,n
B2: Kiểm tra iB3: In thông tin sinh viên
B4: Kết thúc
2.2.2.3 Hàm tìm kiếm sinh viên( theo mã sinh viên)
B1: Nhập mã sinh viên
B2: Khởi tạo gán cho i=0,n
B3: Kiểm tra iB4: In thông tin khách hàng
Nguyễn Văn Th? – K19TPM3
Page 14

GVHD: Phạm Khánh Linh

QUẢN LÝ SINH VIÊN
B5: Kết thúc
2.2.2.4 Hàm xóa sinh viên (theo mã sinh viên)

B1: Nhập mã sinh viên
B2: Khởi tạo i=0,j=0;
B3: Kiểm tra iB4: Xóa sinh viên
B5: Kết thúc

Nguyễn Văn Th? – K19TPM3
Page 15

GVHD: Phạm Khánh Linh

QUẢN LÝ SINH VIÊN

2.2.3

MỘT SỐ MODUL CHÍNH CỦA CHƯƠNG TRÌNH
2.2.3.1 Hàm nhập sinh viên:

Nguyễn Văn Th? – K19TPM3
Page 16

GVHD: Phạm Khánh Linh

QUẢN LÝ SINH VIÊN

2.2.3.2 Hàm in thông tin sinh viên

Nguyễn Văn Th? – K19TPM3
Page 17

GVHD: Phạm Khánh Linh

QUẢN LÝ SINH VIÊN

2.2.3.3 Hàm tìm kiếm sinh viên (theo mã sinh viên)

Nguyễn Văn Th? – K19TPM3
Page 18

GVHD: Phạm Khánh Linh

QUẢN LÝ SINH VIÊN
2.2.3.4 Hàm xóa sinh viên

Nguyễn Văn Th? – K19TPM3
Page 19

GVHD: Phạm Khánh Linh

QUẢN LÝ SINH VIÊN

CHƯƠNG 3: CÀI ĐẶT CHƯƠNG TRÌNH

Xem thêm: khái niệm và mục đích của hàm trong excel

2.1 TỔNG THỂ CHƯƠNG TRÌNH
2.1.1

CÁC HÀM KHAI BÁO

Code

#include
#include
#include
#include
#include “windows.h”
using namespace std;
struct sinhvien
;

Nguyễn Văn Th? – K19TPM3
Page 20

GVHD: Phạm Khánh Linh

QUẢN LÝ SINH VIÊN

2.1.2

HÀM MAIN

Code

sinhvien a<100>;
int n,ch; char tt;
do

case 4 :

default: cout<<"Khong co chuc nang nay "; } cout<<" Ban co muon tiep tuc chuong trinh khong (Y/N)?"; Nguyễn Văn Th? – K19TPM3 Page 21 GVHD: Phạm Khánh Linh QUẢN LÝ SINH VIÊN cin>>tt;
}while(tt==”y” || tt == “Y”);
return 0;

Nguyễn Văn Th? – K19TPM3
Page 22

GVHD: Phạm Khánh Linh

QUẢN LÝ SINH VIÊN

2.1.3

MỘT SỐ HÀM CHÍNH

+ Nhập danh sách sinh viên:
Code

void Nhap(sinhvien a<>,int &n)

cout<getch();
}

Nguyễn Văn Th? – K19TPM3
Page 23

GVHD: Phạm Khánh Linh

QUẢN LÝ SINH VIÊN

+Nhập in danh sách sinh viên:
Code

void Xuat(sinhvien a<>,int &n)

cout<,int &n)

i–;
n–;
}
else d++;
}
if(d==k)

getch();
}

+Hàm tìm kiếm sinh viên:
Code

Nguyễn Văn Th? – K19TPM3
Page 25

Tài liệu liên quan

*

Đồ án quản lý học viên trung tâm ngoại ngữ 18 2 7

*

Quản lý thu mua chè bằng ngôn ngữ lập trình Visual Basic 86 909 4

*

Đồ án quản lý thư viện 23 2 7

*

Tài liệu ĐỀ TÀI: XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝ SINH VIÊN BẰNG NGÔN NGỮ LẬP TRÌNH C++ pdf 33 3 14

*

Tài liệu Đồ án quản lý thư viện doc 26 1 2

*

Xây dựng Phần mềm Quản lý bán hàng tại Công ty CP Thương Mại Phú Xuyên bằng ngôn ngữ lập trình Visual Basic 67 959 4

*

Tài liệu Đề tài: Xây dựng chương trình quản lý thư viện trường Tiểu Học La Bằng bằng ngôn ngữ lập trình Access doc 55 1 3

*

Đồ án ” Bài toán Quản lý sinh viên bằng danh sách liên kết đơn ” pdf 45 6 45

*

Đồ án quản lý thư viện sách pdf 24 1 1

Xem thêm: Thuyết Minh Đồ Án Kết Cấu Thép 2, Thuyết Minh Đồ Án Thép 2

*

Đồ án cơ sở chuyên ngành phần mềm: Quản lý sinh viên bằng cây nhị phân 51 1 0

Xem thêm bài viết thuộc chuyên mục: Đồ án