1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo Đồ Án Đề 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++

19 16 0
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

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 325,41 KB

Nội dung

vì vậy tôi chọn đề tài “xây dựng chương trình quản lý điểm của sinh viên bằng ngôn ngữ lập trình C++” làm đề tài nghiên cứu của tôi.. Mục tiêu của đề tài Xây dựng chương trình quản lí si

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC KINH DOANH VÀ CÔNG NGHỆ HÀ NỘI

BÁO CÁO ĐỒ ÁN

ĐỀ 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++

Họ và tên: Vũ Duy Hải

Mã sinh viên: 2722215714 Lớp: TH27.01

Trang 2

MỤC LỤC

CHƯƠNG I PHẦN MỞ ĐẦU 2

1 Lí do chọn đề tài 2

2 Mục tiêu của đề tài 2

3 Phạm vi nghiên cứu 2

4 Phương pháp nghiên cứu 2

CHƯƠNG II GIỚI THIỆU VỀ NGÔN NGỮ LẬP TRÌNH C++………… …… 3

CHƯƠNG III XÂY DỰNG ỨNG DỤNG QUẢN LÝ SINH VIÊN……… 5

CHUONG IV CÀI ĐẶT CHƯƠNG TRÌNH 9

CHƯƠNG V KẾT LUẬN 17

Trang 3

CHƯƠNG I PHẦN MỞ ĐẦU

1 Lí do chọn đề tài

Trong sự phát triển của khoa học cuối thế kỷ 20 đầu thế kỷ 21, công nghệ thông tin hiện nay là ngành có tốc độ phát triển nhanh nhất Công nghệ thông tin

ở nước ta còn mới, song tốc độ phát triển của nó rất nhanh và mạnh, chiếm một

vị trí quan trọng trong các ngành khoa học công nghệ. Một trong những lĩnh vực đang được ứng dụng tin học hóa rất phổ biến ở nước ta là lĩnh vực quản lý Tin học hóa trong quản lý đã giúp cho các nhà quản lý điều hành công việc một cách khoa học, chính xác và hiệu quả Việc ứng dụng công nghệ thông tin vào công

tác quản lý sinh viên là cần thiết vì vậy tôi chọn đề tài “xây dựng chương trình quản lý điểm của sinh viên bằng ngôn ngữ lập trình C++” làm đề tài nghiên

cứu của tôi

2 Mục tiêu của đề 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++.

3 Phạm vi nghiên cứu

Phân tích thiết kế hệ thống quản lí sinh viên bằng ngôn ngữ lập trình C++.

4 Phương pháp nghiên cứu

- Đọc tham khảo một số tài liệu về phương pháp lập trình C++, trên cơ sở

đó tiến hành phân tích thiết kế hệ thống quản lí sinh viên.

- Tham khảo, quan sát các phần mềm quản lí sinh viên trong thực tế.

Trang 4

CHƯƠNG II GIỚI THIỆU VỀ NGÔN NGỮ LẬP TRÌNH C++

-Ngôn ngữ lập trình C++ là một ngôn ngữ lập trình hướng đối tượng được phát triển bởi Bjarne Stroustrup.

-C++ là ngôn ngữ lập trình được phát triển trên nên tảng của ngôn ngữ lập trình C Do đó, C++ có song song cả 2 phong cách lập trình hướng cấu trúc giống C và có thêm phong cách hướng đối tượng Trong nhiều trường hợp, C++ sử dụng kết hợp cả 2 style trên Do đó, nó được xem là một ngôn ngữ

“lai tạo”.

-Ngôn ngữ C++ là một ngôn ngữ lập trình cấp trung Bởi vì nó có các tính chất của cả ngôn ngữ lập trình bậc thấp(Pascal, C…) và ngôn ngữ lập trình bậc cao(C#, Java, Python…).

-Ngôn ngữ lập trình C++ có đuôi mở rộng là cpp

-C++ chạy trên nhiều nền tảng khác nhau, chẳng hạn như Windows, Mac OS

và các phiên bản khác nhau của UNIX.

-Ngôn ngữ lập trình C++ có nhiều tính năng như:

+) Lập trình tổng quát

+) Lập trình hướng đối tượng

+) Lập trình thủ tục

+) Ngôn ngữ đa mẫu hình tự do có kiểu tĩnh

+) Dữ liệu trừu tượng

+) Lập trình đa hình

-Mã nguồn của lập trình C++ được phát triển từ ngôn ngữ lập trình C

Trang 5

-C++ hỗ trợ kiểu dữ liệu String và Boolean

-C++ cho phép sử dụng tính năng nạp chồng hàm

-C++ cho phép bạn khai báo các biến ở bất kỳ đâu trong hàm

Trang 6

CHƯƠNG III XÂY DỰNG ỨNG DỤNG QUẢN LÝ SINH VIÊN

1 Giới thiệu bài toán

a) Mô tả các bước thực hiện để xây dựng chương trình quản lý sinh viên

- Để quản lý sinh viên trước hết ta phải có một danh dách sinh viên và có thể thao tác với danh sách sinh viên đó Cụ thể yêu cầu của quản lý sinh viên như sau:

- Trước tiên phải tạo 1 mảng sinh viên chứa 100 người (SV[100]), số người cần nhập “n” Sau đó thực hiện :

+ Nhập (thêm) một sinh viên vào danh sách (mảng).

+ Tìm một sinh viên.

+ Xóa 1 sinh viên khỏi danh sách(mảng).

+ Sửa sinh viên trong danh sách (mảng)

b) Sơ đồ các chức năng chính

c) Các modul chính của chương trình

1 Hàm nhập danh sách sinh viên

Hàm này được sử dụng để thêm mới sinh viên vào danh sách sinh viên Với hàm này chúng ta sẽ tách ra thành 2 hàm sau:

Trang 7

 void nhapThongTinSV(SV &sv, int id).

 void nhapSV(SV a[], int id, int n).

Tham số:

 &sv: nhập thông tin sinh viên sv Sử dụng tham chiếu &, tức là thông tin sẽ được thay đổi cả bên trong và bên ngoài hàm.

 a[]: là danh sách sinh viên.

 id: là id (tự động tăng) của sinh viên.

 n: là số lượng sinh viên có trong danh sách

Hàm nhập thông tin sinh viên

Hàm nhập sinh viên

Trang 8

2 Hàm cập nhật sinh viên

Hàm này được sử dụng để cập nhật thông tin sinh viên theo ID Với hàm này chúng ta sẽ tách ra thành 2 hàm sau:

 void capNhatThongTinSV(SV &sv).

 void capNhatSV(SV a[], int id, int n).

Tham số:

 &sv: nhập thông tin sinh viên sv Sử dụng tham chiếu &, tức là thông tin sẽ được thay đổi cả bên trong và bên ngoài hàm.

 a[]: là danh sách sinh viên.

 id: là id (tự động tăng) của sinh viên.

 n: là số lượng sinh viên có trong danh sách.

Thân hàm capNhatThongTinSV():

Trang 9

Thân hàm capNhatSV():

3.Hàm xóa sinh viên theo ID

Hàm này được sử dụng để xóa sinh viên khỏi danh sách theo ID Tình sinh viên

có ID đã cho trong danh sách, nếu tồn tại thì thực hiện xóa sinh viên.

Tham số:

 a[]: là danh sách sinh viên.

 id: là id của sinh viên sẽ bị xóa.

 n: là số lượng sinh viên có trong danh sách.

Thân hàm xoaTheoID():

Trang 10

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

#include<conio.h>

#include<stdio.h>

#include <iostream>

#include <string.h>

#define MAX 100

using namespace std;

struct SinhVien {

int id;

char ten[30];

char gioiTinh[5];

int tuoi;

float diemToan;

float diemLy;

float diemHoa;

float diemTB = 0;

char hocluc[10] = "-";

};

typedef SinhVien SV;

void printLine(int n);

void nhapThongTinSV(SV &sv, int id);

void nhapSV(SV a[], int id, int n);

void capNhatThongTinSV(SV &sv);

void capNhatSV(SV a[], int id, int n);

int xoaTheoID(SV a[], int id, int n);

void timKiemTheoTen(SV a[], char ten[], int n);

void tinhDTB(SV &sv);

void xeploai(SV &sv);

int idLonNhat(SV a[], int n);

void sapxepTheoDTB(SV a[], int n);

void sapXepTheoTen(SV a[], int n);

void showStudent(SV a[], int n);

int docFile(SV a[], char fileName[]);

void ghiFile(SV a[], int n, char fileName[]);

void pressAnyKey();

int main() {

int key;

char fileName[] = "QLSINHVIEN";

SV arraySV[MAX];

int soluongSV = 0;

int idCount = 0;

// nhap danh sach sinh vien tu file

soluongSV = docFile(arraySV, fileName);

idCount = idLonNhat (arraySV, soluongSV);

Trang 11

while(true) {

cout << "CHUONG TRINH QUAN LY SINH VIEN C/C++\n";

cout << " 1 Them sinh vien \ n";

cout << " 2 Cap nhat thong tin sinh vien boi

ID \n";

cout << " 3 Xoa sinh vien boi ID \ n";

cout << " 4 Tim kiem sinh vien theo ten \ n";

cout << " 5 Sap xep sinh vien theo diem trung binh (GPA)

\n";

cout << " 6 Sap xep sinh vien theo ten \ n";

cout << " 7 Hien thi danh sach sinh vien \ n";

cout << " 8 Ghi danh sach sinh vien vao

file \n";

cout << "Nhap tuy chon: ";

cin >> key;

switch(key){

case 1:

cout << "\n1 Them sinh vien.";

idCount++;

nhapSV(arraySV, idCount, soluongSV);

printf("\nThem sinh vien thanh cong!");

soluongSV++;

pressAnyKey();

break;

case 2:

if(soluongSV > 0) {

int id;

cout << "\n2 Cap nhat thong tin sinh vien "; cout << "\n Nhap ID: "; cin >> id;

capNhatSV(arraySV, id, soluongSV);

}else{

cout << "\nSanh sach sinh vien trong!";

}

pressAnyKey();

break;

case 3:

if(soluongSV > 0) {

int id;

cout << "\n3 Xoa sinh vien.";

cout << "\n Nhap ID: "; cin >> id;

if (xoaTheoID(arraySV, id, soluongSV) == 1) { printf("\nSinh vien co id = %d da bi xoa.",

&id);

soluongSV ;

}

}else{

cout << "\nSanh sach sinh vien trong!";

Trang 12

}

pressAnyKey();

break;

case 4:

if(soluongSV > 0) {

cout << "\n4 Tim kiem sinh vien theo ten.";

char strTen[30];

cout << "\nNhap ten de tim kiem: "; fflush(stdin); gets(strTen);

timKiemTheoTen(arraySV, strTen, soluongSV);

}else{

cout << "\nSanh sach sinh vien trong!";

}

pressAnyKey();

break;

case 5:

if(soluongSV > 0) {

cout << "\n5 Sap xep sinh vien theo diem trung binh (GPA).";

sapxepTheoDTB(arraySV, soluongSV);

showStudent(arraySV, soluongSV);

}else{

cout << "\nSanh sach sinh vien trong!";

}

pressAnyKey();

break;

case 6:

if(soluongSV > 0) {

cout << "\n6 Sap xep sinh vien theo ten.";

sapXepTheoTen(arraySV, soluongSV);

showStudent(arraySV, soluongSV);

} else {

cout << "\nSanh sach sinh vien trong!";

}

pressAnyKey();

break;

case 7:

if(soluongSV > 0){

cout << "\n7 Hien thi danh sach sinh vien."; showStudent(arraySV, soluongSV);

}else{

cout << "\nSanh sach sinh vien trong!";

}

pressAnyKey();

break;

case 8:

if(soluongSV > 0){

cout << "\n8 Ghi danh sach sinh vien vao file."; ghiFile(arraySV, soluongSV, fileName);

}else{

cout << "\nSanh sach sinh vien trong!";

}

Trang 13

printf("\nGhi danh sach sinh vien vao file %s thanh cong!", fileName);

pressAnyKey();

break;

case 0:

cout << "\nBan da chon thoat chuong trinh!";

getch();

return 0;

default:

cout << "\nKhong co chuc nang nay!";

cout << "\nHay chon chuc nang trong hop menu."; pressAnyKey();

break;

}

}

}

void tinhDTB(SV &sv) {

sv.diemTB = (sv.diemToan + sv.diemLy + sv.diemHoa) / 3; }

void xeploai(SV &sv) {

if(sv.diemTB >= 8) strcpy(sv.hocluc, "Gioi");

else if(sv.diemTB >= 6.5) strcpy(sv.hocluc, "Kha");

else if(sv.diemTB >= 5) strcpy(sv.hocluc, "Trung binh");

else strcpy(sv.hocluc, "Yeu");

}

void nhapThongTinSV(SV &sv, int id) {

cout << "\n Nhap ten: "; fflush(stdin); gets(sv.ten);

cout << " Nhap gioi tinh: "; gets(sv.gioiTinh);

cout << " Nhap tuoi: "; cin >> sv.tuoi;

cout << " Nhap diem Toan: "; cin >> sv.diemToan;

cout << " Nhap diem Ly: "; cin >> sv.diemLy;

cout << " Nhap diem Hoa: "; cin >> sv.diemHoa;

sv.id = id;

tinhDTB(sv);

xeploai(sv);

}

void nhapSV(SV a[], int id, int n) {

printLine(40);

printf("\n Nhap sinh vien thu %d:", n + 1);

nhapThongTinSV(a[n], id);

printLine(40);

}

void capNhatThongTinSV(SV &sv) {

cout << "\n Nhap ten: "; fflush(stdin); gets(sv.ten);

cout << " Nhap gioi tinh: "; gets(sv.gioiTinh);

cout << " Nhap tuoi: "; cin >> sv.tuoi;

cout << " Nhap diem Toan: "; cin >> sv.diemToan;

Trang 14

cout << " Nhap diem Ly: "; cin >> sv.diemLy;

cout << " Nhap diem Hoa: "; cin >> sv.diemHoa;

tinhDTB(sv);

xeploai(sv);

}

void capNhatSV(SV a[], int id, int n) {

int found = 0;

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

if (a[i].id == id) {

found = 1;

printLine(40);

cout << "\n Cap nhat thong tin sinh vien co ID = " << id; capNhatThongTinSV(a[i]);

printLine(40);

break;

}

}

if (found == 0) {

printf("\n Sinh vien co ID = %d khong ton tai.", id);

}

}

int xoaTheoID(SV a[], int id, int n) {

int found = 0;

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

if (a[i].id == id) {

found = 1;

printLine(40);

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

a[j] = a[j+1];

}

cout << "\n Da xoa SV co ID = " << id;

printLine(40);

break;

}

}

if (found == 0) {

printf("\n Sinh vien co ID = %d khong ton tai.", id);

return 0;

} else {

return 1;

}

}

void timKiemTheoTen(SV a[], char ten[], int n) {

SV arrayFound[MAX];

char tenSV[30];

int found = 0;

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

strcpy(tenSV, a[i].ten);

if(strstr(strupr(tenSV), strupr(ten))) {

Trang 15

arrayFound[found] = a[i];

found++;

}

}

showStudent(arrayFound, found);

}

void showStudent(SV a[], int n) {

printLine(100);

cout <<"\n\STT\tID\tHo va ten\tGioi tinh\tTuoi\tToan\tLy\tHoa\ tDiem TB\tHoc luc";

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

// in sinh vien thu i ra man hinh

printf("\n %d", i + 1);

printf("\t%d", a[i].id);

printf("\t%s", a[i].ten);

printf("\t\t%s", a[i].gioiTinh);

printf("\t\t%d", a[i].tuoi);

printf("\t%.2f\t%.2f\t%.2f", a[i].diemToan, a[i].diemLy, a[i].diemHoa);

printf("\t%.2f", a[i].diemTB);

printf("\t%s", a[i].hocluc);

}

printLine(100);

}

void sapxepTheoDTB(SV a[], int n) {

//Sap xep theo DTB tang dan

SV tmp;

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

for(int j = i+1; j < n;j++) {

if(a[i].diemTB > a[j].diemTB) {

tmp = a[i];

a[i] = a[j];

a[j] = tmp;

}

}

}

}

void sapXepTheoTen(SV a[], int n) {

//Sap xep sinh vien theo ten theo thu tu tang dan

SV tmp;

char tenSV1[30];

char tenSV2[30];

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

strcpy(tenSV1, a[i].ten);

for(int j = i+1; j < n; j++) {

strcpy(tenSV2, a[j].ten);

if(strcmp(strupr(tenSV1), strupr(tenSV2)) > 0) {

tmp = a[i];

a[i] = a[j];

Trang 16

a[j] = tmp;

}

}

}

}

int idLonNhat (SV a[], int n) {

int idMax = 0;

if (n > 0) {

idMax = a[0].id;

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

if (a[i].id > idMax) {

idMax = a[i].id;

}

}

}

return idMax;

}

int docFile(SV a[], char fileName[]) {

FILE * fp;

int i = 0;

fp = fopen (fileName, "r");

cout << "Chuan bi doc file: "; puts(fileName);

// doc thong tin sinh vien

while (fscanf(fp, "%5d%30s%5s%5d%10f%10f%10f%10f%10s\n", &a[i].id,

&a[i].ten,

&a[i].gioiTinh, &a[i].tuoi, &a[i].diemToan, &a[i].diemLy,

&a[i].diemHoa,

&a[i].diemTB, &a[i].hocluc) != EOF) {

i++;

cout << " Doc ban ghi thu: " << i << endl;

}

cout << " So luong sinh vien co san trong file la: " << i << endl; cout << endl;

fclose (fp);

// tra ve so luong sinh vien duoc doc tu file

return i;

}

void ghiFile(SV a[], int n, char fileName[]) {

FILE * fp;

fp = fopen (fileName,"w");

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

fprintf(fp, "%5d%30s%5s%5d%10f%10f%10f%10f%10s\n", a[i].id, a[i].ten,a[i].gioiTinh,

a[i].tuoi, a[i].diemToan, a[i].diemLy, a[i].diemHoa, a[i].diemTB, a[i].hocluc);

}

fclose (fp);

}

Ngày đăng: 12/12/2024, 19:29

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w