Ứng dụng những phần mềm của công nghệ thông tin đã giúp công việc quản lý học sinh, sinh viên trở nên đơn giản, dễ dàng hơn bao giờ hết, giúp tiết kiệm rất nhiều chi phí, sức lực cũng nh
Trang 1HỌC VIỆN NGÂN HÀNG
KHOA HỆ THỐNG THÔNG TIN QUẢN LÝ
-Phân tích và thiết kế hệ thống thông tin
quản lý điểm sinh viên
Sinh viên : NHÓM 8 GVHD: LÊ QUÝ TÀI
Trang 2HÀNỘI 2012
Trang 3Nhóm 8
Danh sách nhóm và phân chia công việc:
1) Nguyễn Thị Quỳnh :Nhóm trưởng _làm chương trình con phần sắp xếp,xây dựng ý tưởng
2) Nguyễn Thị Huyền_làm chương trình con phần tìm kiếm,xây dựng ý tưởng
3) Nguyễn Quốc Đạt_làm chương trình con phần nhập, làm slide
4) Lê Văn Nuôi_ làm chương trình con phần nhập, làm slide
5) Trần Thị Hải Yến_làm chương trình con phần in, làm bản word
6) Đào Thu Hương_làm chương trình con phần sắp xếp, tìm ý tưởng 7) Nguyễn Thị Dung_làm chương trình con phần tìm kiếm Tổng kết lại
ý tưởng
Trang 4MỤC LỤC
Nhóm 8 3
Trang 5Phân tích và thiết kế hệ thống thông tin
quản lý điểm sinh viên
I.Lời nói đầu
1Tổng quan:
Công nghệ thông tin ra đời được coi là bước nhảy vọt của thời đại Tính đến nay khi công nghệ thông tin ra đời nó đã đơn giản hoá mọi việc Trong đó ta không thể không thể không thể kể đến vai trò quan trọng của
nó trong ngành giáo dục, đặc biệt là ngành quản lý điểm của học sinh, sinh viên Ứng dụng những phần mềm của công nghệ thông tin đã giúp công việc quản lý học sinh, sinh viên trở nên đơn giản, dễ dàng hơn bao giờ hết, giúp tiết kiệm rất nhiều chi phí, sức lực cũng như thời gian cho ngành giáo dục
Như chúng ta đã biết một trường đại học trung bình phải quản lý trên dưới 10.000 sinh viên Nếu tất cả các thao tác về quản lý điểm học sinh như tìm hồ sơ nhập, xuất rồi sửa điểm trên giấy tờ là một việc vô cùng mất thời gian và tốn rất nhiều công sức Còn chưa nói đến việc quản lý điểm như vậy sẽ rất dễ mất dữ liệu và mất rồi thì khó mà khôi phục lại được Nhưng nhờ công nghệ thông tin phát triển và tạo ra các phần mềm
về quản lý điểm của sinh viên thì việc này lại trở nên vô cùng đơn giản, chỉ bằng thao tác nhấp chuột, chúng ta có thể dễ dàng tìm kiếm cũng như nhập hay sửa lỗi một cách dễ dàng đến bất ngờ Nó đã tạo nên hiệu quả một cách bất ngờ và đòng góp một phẩn rất quan trọng trong việc phát triển nền giáp dục hiện nay Hiện nay tất cả các trường ở Việt Nam cũng như trên thế giới đang úp dụng phẩn mềm này cho việc quản lý điểm cho sinh viên như một điều không thể thiếu trong ngành giáo dục
Chính vì vậy mà hôm nay chúng tôi sẽ giúp các bạn hiểu hơn về phẩn quản lý điểm sinh viên
2 Quy trình thực hiện quản lý điểm sinh viên cụ thể từ thực tế.
2.1 Sơ đồ quản lý điểm
Trang 62.2 Mô tả sơ đồ quản lý
việc
Thời gian thực hiện
Chu trình Lưu ý
thi và các bảng điểm thi với Giảng viên phụ trách môn học
Sau thời điểm thi hết môn tối
đa 1 tháng
với GV trong thời gian quy định
2 Dữ liệu hoá điểm
thi vào chương trình quản lý đào tạo.
Sau khi nhận điểm thi từ GV
thông số đầu vào như giữa
kỳ, quá trình cuối cùng, môn học, Tỷ lệ, số lượng sinh viên
có điểm
3 Chuyển dữ liệu
điểm và ảnh bảng điểm quét lên Website của trường để sinh
Sau khi nhận điểm thi vào chương trình
học vụ của Phòng Đào Tạo tại Website
Gia nhận bài thi với GV
Dữ liệu hoá điểm thi vào quan
hệ quản lý đào tạo
Chuyển ánh bằng điểm gốc và dữ liệu
trong chương trình và lên Webiste Nhận các điều chỉnh điểm từ GVPT
đối với điểm thi giữa kỳ, quá trình
Nhận phản hồi của sinh viên về dữ liệu
điểm Tổ chức phúc khảo điểm thi Cuối kỳ
Cấp bảng điểm cá nhân Tổ chức họp xét và
các quyết định học vụ
Gửi dữ liệu cho các P.Công tác Chính trị học xét học bổng
1
2
3
Trang 7viên theo dõi câp
4 Nhận phản hồi
của sinh viên về các chỉnh sửa điểm
Sau khi công bố điểm thi
điều chỉnh điểm
và thực hiện điều chỉnh trên chương trình
5 Tổ chức xét họp
và quyết định học vụ
Sau khi hoàn thiện dữ liệu điểm
3
6 Gửi dữ liệu
P.Công tác chính trị xét học bổng
Sau khi hoàn thiện dữ liệu điểm
Ban chủ nhiệm Khoa, P Đào tạo, các trưởng hoặc phó bộ môn liên quan
7 Cấp bảng điểm
cá nhân Sau khi hoàn
thiện dữ liệu điểm
3
3 Ý tưởng làm phần quản lý sinh viên:
Trong thực tế việc quản lý điểm sinh viên là việc không đơn giản Ngoài việc cung cấp điểm sinh viên,ta phải cung cấp các thông tin về sinh viên đó.Tức là,cung cấp họ tên sv,ngày sinh,mã sv,quê quán,và đặc biệt là diểm thi Ngoài ra
ta thực hiện một việc tiếp theo là tìm kiếm,tức là thực hiện việc cho mssv ta tìm được địa chỉ của sinh viên đó để vào xem điểm hay làm bất cứ việc gì như sửa thông tin sinh viên hay điểm thi.Công việc tiếp theo không kém phần quan trọng, sắp xếp.Sắp xếp sẽ giúp ta quản lý tốt hơn về điểm sinh viên,khi giúp ta sắp xếp điểm thi từ cao đến thấp, hay sắp xếp danh sách sinh viên theo bảng abc Cuối cùng là in danh sách sinh viên điểm thi ra màn hình
1 Ch ương trình con nhập điểm sinh viên,các thông tin của sinh viên.
Để quản lý điểm sinh viên ta sử dụng kiểu dữ liệu cấu trúc với các trường là
mã sinh viên, tên sinh viên,điểm trung bình
typedef struct SinhVien
long masv;
char tensv[30];
float diemtb;
với N là số sinh viên cũ ban đầu khi đã nhập vào, muốn nhập thêm M sinh viên ,i<M+N thì ta tiếp tục nhập số sinh viên từ N đến N+M Với mỗi số lượng ta tăng biến đếm lên 1 đơn vị (i=i+1) Nếu i>M+N thì đưa ra
//chuong trinh chinh
Trang 8void nhap1sv(SinhVien &sv)
{ float tam;
printf("\nnhap ma sinh vien ");
scanf("%ld",&sv.masv);
fflush(stdin);
printf("\nnhap ten sinh vien");
gets(sv.tensv);
printf("\nnhap diem trung binh");
scanf("%f",&tam);
sv.diemtb=tam;
}
//ham nhap 1 sinh vien
void xuat1sv(SinhVien sv)
{
printf("\nma sinh vien:%ld",sv.masv);
printf("\nten sinh vien:%s",sv.tensv);
printf("\ndiem trung binh:%0.2f",sv.diemtb);
}
//nhap them 1 sinh vien
void nhapThemmsv(SinhVien sv[],int &n,int m)
{ printf("nhap so luong sinh vien them");
scanf("%d",&m);
for(int i=n;i<n+m;i++)
{printf("nhap vao thong tin thu :%d",i+1);
nhap1sv(sv[i]);
} n=n+m;
}
//ham in mot sinh vien ra man hinh
void in1sv(SinhVien sv)
{
printf("ma sinh vien :%ld\n",sv.masv);
printf("ten sinh vien :%s\n",sv.tensv);
printf("diem trung binh :%f\n",sv.diemtb);
printf(" -\n");
}
Nhập
Trang 9Đún g
SV,N, M
I<M+N
Nhap1SV(sv[i]])
N=N+M;
I=i+1;
end Begin
Trang 102
Chương trình con p hần tìm kiếm
Muốn tìm kiếm điểm của một sinh viên ta nhập mã sinh viên cần tìm Ta sử dụng câu lệnh For vơi biến chạy I từ 0 tới n nếu mã sinh viên thứ I =vơi mã sinh viên vừa nhập thì in ra màn hình tên sinh viên và điểm trung bình của sinh viên thứ I lấy dữ liệu từ trường sv.tensv, sv.diemtb.Nếu không tìm thấy mã sinh viên thứ I trùng vơi mã sinh viên cần tìm thì đưa ra màn hinh không thấy sinh viên muốn
Tìm kiếm
IN1SV()
Sai
Đún g
Sai
Đún g I=i+1;
Xuat thong tin
sv len man hinh
End
I<n
Thông báo không tìm thấy sv
Sv[i].masv=
MA SV,N,MA Begin
Trang 11//hamtim kiem sinh vien trong danh sach khi danh vao mssn
void Timsv(SinhVien sv[],int n,int ma)
{ for(int i=0;i<n;i++)
{ if(sv[i].masv==ma) {
printf("\n SINHVIEN CAN TIM:\n");
in1sv(sv[i]);
getch();
return ;
}
} printf("khong tim thay sinh vien muon tim!!!");
}
3Chương trình con phần sắp xếp
Trong một danh sách có N sinh viên, muốn sắp xếp danh sách sinh viên có điểm thi giảm dần Ta sử dụng con trỏ i và j Với mỗi phần tử sv.diemtb[i], (i=0… n-1),tìm xem có phần tử sv.diemtb[j], ( j=i+1… n) nào đó mà sv.diemtb[i]< sv,diemtb[j] hay không? Nếu
có thì đổi chỗ sv.diemtb[i] và sv,diemtb[j].
Sắp xếp
Trang 12//ham sap xep void sapxeptheodiem(SinhVien sv[],int n)
{
for(int i=0;i<n-1;i++) for(int j=i+1;j<n;j++)
if(sv[i].diemtb<sv[j].diemtb) Daost(sv[i],sv[j]);
}
4.Chương trình con in danh sách sinh vi ê n
Sử dụng hàm void in Danh sách (SinhVien sv[],int n),với số lượng sinh viên
là N,sử dụng vòng lặp for,với mỗi giá trị I<N ta in một sv đến khi I>N thì kết thúc đưa ra danh sách sv,lúc này danh danh sách sv,lúc này danh sách sinh viên
Begi n SV[],N
i<N-1
J<N
sv[i].diemtb<sv[j].die mtb
Daost(sv[i],sv[
j]);
J=J+1
end
i=i+1
Sai
Đún g
Đún g
Đún g Sai
Sai
Trang 13bao gồm, mã sinh viên,tên sinh viên, điểm trung bình
//ham in danh sach cac sinh vien
void inDanhSach(SinhVien sv[],int n)
{
for(int i=0;i<n;i++)
{
printf("THONG TIN SV %d\n",i+1);
in1sv(sv[i]);
}
}
5 Chương trình con g hi thông tin vào file
Hàm này giúp ghi các thông tin về mã sinh viên, tên sinh viên, điểm trung bình của sinh viên ở các trường sv.masv, trường sv.tensv,trường sv.diemtb vào một file văn bản
//ham ghi du lieu vao file
void ghiFile(SinhVien sv[],int n,char *y)
{
FILE *f=fopen(y,"wt");
fprintf(f,"%d\n",n);
for(int i=0;i<n;i++) {
fprintf(f," %ld",sv[i].masv);
fprintf(f," %s",sv[i].tensv);
fprintf(f," %0.2f\n",sv[i].diemtb);
} }
6,chương trình con đọc dữ liệu file vào mảng
Hàm này giúp đọc một file văn bản đã lưu trước đó (file này có thể được tạo
ra bằng một trình soạn thảo văn bản bất kì hoặc bằng chính chương trình này) Lưu ý, nếu file không có thì chương trình sẽ báo lỗi và yêu cầu nhập lại Hàm sẽ lần lượt đọc các giá trị và lưu vào các biến để xử lý tiếp
//ham doc du lieu tu file vao mang
void docFile(SinhVien sv[],int n,char *y)
Trang 14FILE *f=fopen(y,"rt");
fscanf(f,"%d",&n);
for(int i=0;i<n;i++)
{fscanf(f,"%ld",&sv[i].masv);
fscanf(f,"%s",&sv[i].tensv);
fscanf(f,"%f",&sv[i].diemtb);
}
inDanhSach(sv,n);
}
II.Mã nguồn chương trình
#include <stdio.h>
#include <conio.h>
//dinh nghia ham
#define MAX 100
typedef struct SinhVien
{ long masv;
char tensv[30];
float diemtb;
}SinhVien;
//chuong trinh chinh
void nhap1sv(SinhVien &sv)
{ float tam;
printf("\nnhap ma sinh vien ");
scanf("%ld",&sv.masv);
fflush(stdin);
printf("\nnhap ten sinh vien");
gets(sv.tensv);
printf("\nnhap diem trung binh");
scanf("%f",&tam);
sv.diemtb=tam;
}
//ham nhap 1 sinh vien
void xuat1sv(SinhVien sv)
{
printf("\nma sinh vien:%ld",sv.masv);
Trang 15printf("\nten sinh vien:%s",sv.tensv);
printf("\ndiem trung binh:%0.2f",sv.diemtb);
}
//nhap them 1 sinh vien
void nhapThemmsv(SinhVien sv[],int &n,int m)
{ printf("nhap so luong sinh vien them");
scanf("%d",&m);
for(int i=n;i<n+m;i++)
{printf("nhap vao thong tin thu :%d",i+1);
nhap1sv(sv[i]);
} n=n+m;
}
//ham in mot sinh vien ra man hinh
void in1sv(SinhVien sv)
{
printf("ma sinh vien :%ld\n",sv.masv);
printf("ten sinh vien :%s\n",sv.tensv);
printf("diem trung binh :%f\n",sv.diemtb);
printf(" -\n");
}
//hamtim kiem sinh vien trong danh sach khi danh vao mssn
void Timsv(SinhVien sv[],int n,int ma)
{ for(int i=0;i<n;i++)
{ if(sv[i].masv==ma) {
printf("\n SINHVIEN CAN TIM:\n");
in1sv(sv[i]);
getch();
return ;
}
} printf("khong tim thay sinh vien muon tim!!!");
}
//ham in danh sach cac sinh vien
void inDanhSach(SinhVien sv[],int n)
{ for(int i=0;i<n;i++)
{
printf("THONG TIN SV %d\n",i+1);
Trang 16in1sv(sv[i]);
}
}
//ham ghi du lieu vao file
void ghiFile(SinhVien sv[],int n,char *y)
{
FILE *f=fopen(y,"wt");
fprintf(f,"%d\n",n);
for(int i=0;i<n;i++)
{
fprintf(f," %ld",sv[i].masv);
fprintf(f," %s",sv[i].tensv);
fprintf(f," %0.2f\n",sv[i].diemtb);
}
}
//ham doc du lieu tu file vao mang
void docFile(SinhVien sv[],int n,char *y)
{
FILE *f=fopen(y,"rt");
fscanf(f,"%d",&n);
for(int i=0;i<n;i++)
{fscanf(f,"%ld",&sv[i].masv);
fscanf(f,"%s",&sv[i].tensv);
fscanf(f,"%f",&sv[i].diemtb);
}
inDanhSach(sv,n);
}
//ham hoan vi su dung cho sap xep
void Daost(SinhVien &a,SinhVien &b)
{ SinhVien t;
t=a;
a=b;
b=t;
}
//ham sap xep
void sapxeptheodiem(SinhVien sv[],int n)
{
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
Trang 17if(sv[i].diemtb<sv[j].diemtb) Daost(sv[i],sv[j]);
}
int main()
{
int n=0,m,ma;
SinhVien sv[30];
char *y;
do
{ printf("\nchuong trinh co cac chuc nang\n");
printf("chon 0 : thoat\n");
printf("chon 1 : nhap thong tin sinh vien\n");
printf("chon 2 : nhap them nhieu sinh vien\n");
printf("chon 3 : tim kiem sinh vien dua vao massv\n");
printf("chon 4 : in danh sach\n");
printf("chon 5 : sap xep\n");
printf("chon 6 : ghi thong tin vao file\n");
printf("chon 7 : doc thong tin tu file vao mang sv\n");
printf("ban chon di");
int ev;
scanf("%d",&ev);
switch(ev)
{ case 0:return 1;
case 1:nhap1sv(sv[n]);
n++;
break;
case 2:nhapThemmsv(sv,n,m);
break;
case 3:
printf("nhap masv can tim?=");
scanf("%d",&ma);
Timsv(sv,n,ma);
break;
case 4:inDanhSach(sv,n);
getch();
Trang 18break;
case 5: sapxeptheodiem(sv,n);
inDanhSach(sv,n);
getch();
break;
case 6:printf("nhap ten File muon luu =");
fflush(stdin);
gets(y);
ghiFile(sv,n,y);
break;
case 7:printf("nhap ten File muon mo =");
fflush(stdin);
gets(y);
docFile(sv,n,y);
break;
};
}while(1);
return 0;
}
IIITổng kết
Ngôn ngữ lập trình C là một ngôn ngữ mạnh,được sử dụng để lập trình hệ thống, lâp
trình ứng dụng Với ưu điểm mạnh có thể ứng dụng nhiều trong các lĩnh vực thì C đã giúp cho việc quản lý được trở nên dễ dàng hơn.Vì thế việc sử dụng
C trong quản lý
điểm sinh viên là một viêc làm thông minh và cần thiết
Nghiên cứu về ngôn ngữ lập trình C nói chung và đề tài “ Quản lý điểm sinh viên” nói riêng đã giúp nhóm tác giả hiểu rõ hơn về tầm qua trọng
và những ứng dụng của ngôn
ngữ C
Chắc chắn chương trình còn có sai sót, rất mong sự đóng góp ý kiến của thầy cô và các bạn để giúp chương trình hoàn thiện hơn
Trang 19IV.Tài liệu tham khảo
1.Quách Tuấn Ngọc (1998), Ngôn ngữ lập trình C, Nhà xuất bản Giáo
dục, Hà Nội
2.Ngôn ngữ lập trình C,Phạn Văn Ất (6-2008),Nhà xuất bản Bách khoa – Hà Nội
3,Tài liệu.vn