学生信息管理系统.docx

上传人:b****3 文档编号:3677246 上传时间:2022-11-24 格式:DOCX 页数:14 大小:284.76KB
下载 相关 举报
学生信息管理系统.docx_第1页
第1页 / 共14页
学生信息管理系统.docx_第2页
第2页 / 共14页
学生信息管理系统.docx_第3页
第3页 / 共14页
学生信息管理系统.docx_第4页
第4页 / 共14页
学生信息管理系统.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

学生信息管理系统.docx

《学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统.docx(14页珍藏版)》请在冰豆网上搜索。

学生信息管理系统.docx

学生信息管理系统

江苏科技大学

计算机科学与工程学院

系统设计

设计题目:

学生信息管理系统

学生学号:

**********

专业班级:

计算机01

*******

 

摘要

学生信息管理系统是一个对学生随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。

管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。

这个学生信息管理系统用VisualC++来设计界面,采用面向对象的语言编程,实现对学生信息的基本管理,包括学生信息,班级信息,课程信息,成绩信息的添加,修改和查询以及密码等功能。

该系统充分考虑用户的操作简便性,实现快捷操作如何调程序也非常重要,通过这个程序可以学习到以前调试短程序没有的的经验。

它有以下几个功能:

(1):

系统设置,包括创建用户,学生或管理员登陆,修改密码,学生信息查询。

(2)信息设置,可以添加新学生信息,修改信息。

(3)学生信息的查看和管理。

可以查看学生的学号,姓名,性别,年龄,专业,班级,所选课程,成绩查看。

(4)学生信息查询。

可按学号,姓名,还有其他各种条件查询,方便实用。

(5)程序的输入。

键盘输入。

包括用户名,密码,各种学生信息。

(6)程序的输出。

输出到显示器上。

(7)数据的测试。

修改学生信息时,返回修改成功,数据运行无错误,程序没问题。

根据以上需要实现的功能我们可以用到指针,类的定义和运用,结构体等工具。

在做这次设计之前我们应该先要找到我们需要的各个函数以及它们的用法我们也应该做到心里有数,我们应该做好相关的准备工作。

这次设计以VisualC++6.0作为系统前台应用程序开发工具,编写好程序,尽可能做到以上的几种功能。

这次课程设计应该是一次学习的知识的一次好的检验情况。

同时这也让我们所学习的知识得到了加强和巩固。

一课题背景

这次学生信息管理系统可以说是一个综合性的学校学生管理系统,这它集成了学生信息管理系统的多种功能,具有较强的综合性。

1.1设计背景,目的和意义

这次试验是以VC++6.0的为工作环境,这是一个关于学生信息管理系统的试验,其中包括了密码的设定以及修改的问题,学生信息添加的功能,学生信息查找的功能。

这个管理系统是一次比较符合现代的一种管理系统,我们要从中得到我们所要建立的信息并成功获得我们存入的信息。

这要求我们既可以储存也可以读取,这很符合我们现代化的管理特点。

我们需要通过这个工作环境来完成这些功能。

因为一次实验的过程也是我们的一次学习的过程。

这次的学生信息管理系统的实验是一次比较综合的一次实验的过程。

尤其是在其中的设计过程中我们需要大量的函数和很多的关键字以及很多的头文件中的一些函数。

同时我们在设计的过程中有很多的功能需要去实现。

比如说学生信息添加的功能。

我们要用到指针等的一些工具。

我们应该在这次的实验过程中结合自己所学的知识以及我们在学习的过程中遇到的难题可以从老师那里得到更多的帮助。

我们同时也可以学习到新的知识。

我们需要从中学会利用我们所学习的知识来运用到实际中来解决现实中的问题,这是一次不断了解现实生活中的实例。

这样我们面对现实中的问题是我们并不会束手无策。

这是一次学习实践的好机会,我们应该借这个机会来学会如何处理现实中的各种问题,同时我们也可以了解到现实中的具体情况。

在实验的过程中,可能会遇到一些困难。

例如我们程序的正常连接情况和语法上的错误或逻辑上的错误。

这些都是我们在实验过程中经常遇到的问题。

我们需要自己独立的去思考这些问题或请教指导老师来解决。

我相信经过这次的课程设计我们会对相关的知识有了进一步的加强。

我们既可以对于上学期的C语言的知识重新温习,还可以对C++作更多的了解。

 

1.2基本理论依据和主要工作内容

实验的基本要求以及学生信息管理系统的工作内容如下:

1、学生信息的构成:

学号,姓名,性别,年龄,班级,专业,所修课程,所修课程的成绩。

2、系统管理功能:

(三大块)

第一块:

登录模块及权限设置模块

(1)管理员/学生登录模块:

设置/修改密码;不同类型人员的权限设置(管理员可以修改信息,学生只能查询信息)

第二块:

管理员模块

(2)面向管理员的学生信息管理模块:

加入学生信息;根据各种特征方便的查找学生信息;学生信息的管理;

(3)面向管理员的课程及成绩管理模块:

各学年所修课程及其成绩管理。

第三块:

学生模块

(4)面向学生的学生信息查询模块:

根据各种特征方便的查找学生信息;

(5)面向学生的课程及成绩查询模块:

根据各种特征方便的查找所修课程及成绩;

我们可以看到在登陆模块中建立一个选择的函数,为不同的登陆身份提供不同的服务界面,在这个模块中我们需要建立一个数组并且通过输入的字符与程序中设定的进行比较从而进入不同的界面,在这里我们需要用到Strcmp函数的相关功能。

同时在对待学生信息的构成的时候我们需要定义一个Students类来学号,姓名,性别,年龄,班级,专业,所修课程,所修课程的成绩等成员。

加入学生信息的时候提供一个Add函数来处理。

同时在查找的过程中提供一个Find函数来处理而且在这个函数中我们需要调用循环语句和判断语句。

在这个程序的设计过程中如何使自己的密码在屏幕上显示的是“*”这个问题是比较难的。

我们要用到_getch()这样的一个函数,我们需要了解这个函数的正确用法。

同时贯穿整个程序的就是我们需要很好的运用文件流的操作。

我们应该建立一个文件来存放我们写进去的内容。

我们需要不断的进行文件的存入和读取操作。

 

二设计简介及设计方案论述

2.1设计简介

在设计学生管理系统的时候,首先我们可以看到这次的课程设计的基本功能有:

登录时的设置和密码的相关问题;同时还有学生信息的添加查找和信息的保存,同时在学生信息过程中我们也要对查找过程中用不同方式来进行查找功能。

这样我们在设计过程可以用类的相关作用定义一个类来存放这些数据成员同时可以运用_getch()这个函数来进行密码的不回显的功能。

同时还有选择语句的相关使用问题。

而纵观整个程序我们需要运用文件流的操作来控制整个程序,我们需要运用文件流来进行数据的保存的问题。

在整个设计的过程中我们可以一部分一部分的对相关功能进行处理,我们可以建立不同的头文件和源文件来实现它们,将所需实现的功能来进行很好的分类,这样我们就可以很方便的对具体的功能部分有很好的了解。

这样更便于我们去编写程序。

2.2设计方案

整个学生管理系统需要实现很多的功能,其中有类的相关使用情况也有特殊函数的具体用法,同时我们必须知道我们所需要的函数中它们的具体功能和我们需要提供的系统自带的头文件。

例如#include这个头文件就是对于_getch()这个函数的一个很好的说明,因为这些函数是不需要我们定义的同时却又能够为我们直接使用的函数。

对于类似这样的函数我们需要提供这些函数的头文件。

因此经过一些相关的思考后我认为我们可以建立两个头文件和四个源文件来存放整个程序。

而在整个程序开始的时候我们可以先来对整个程序构造一个简单的程序执行时的框架。

我们不妨利用下面这个图来看一下程序的相关执行情况。

程序流程图如下:

从上面的视图中我们可以看到在整个程序设计的过程中,我们可以按照上面的图来进行程序相关功能的实现。

首先是进行学生信息的下载过程。

这就要求我们在程序的运用文件流的知识来建立一个文件。

用它来存放相关的学生信息,便于我们可以获得。

然后我们打印出我们刚开始的时候需要进行身份的验证信息。

登陆身份包括学生和管理员身份。

在这里可以运用strcmp函数来把我们从键盘上输入的信息来进行比较以方便确认登陆者的身份。

对于学生身份来说我们不允许他们来对学生的信息进行修改而只能对学生的信息进行查找的功能。

进入学生信息的功能表时我们可以利用选择语句来控制学生所想要的查找服务,例如,按姓名查找以及按学号查找的功能。

而当进入管理员的窗口时需要管理员输入密码,首先我们必须设定好自己的密码。

在设定好密码后,当输入密码后需要将这两个密码进行比较,只有当密码输入正确的时候,才能进行管理员的功能列表。

而在密码的问题上我们需要用户在输入密码的时候我们需要在屏幕上显示的不是现实中的密码而是“****”之类的符号。

这样可以使密码不会被泄露出去。

在这里我们可以运用_getch()这个函数来实现所输入的以不回显的方式显示在屏幕上。

然后当管理员进入之后会出现管理员所需要处理的相关功能。

例如,查找学生信息并且修改学生信息。

而接下来的功能实现过程应该与学生身份进入后的相关操作是类似的。

上述过程是对整个设计过程的一些简介和论述。

 

三详细设计

3.1详细设计过程中头文件的情况

首先在第一个头文件中定义一个类来存放相关的数据如:

unsignedintid;

charname[80];

chargender;

unsignedintage;

charClass[80];

charprofession[100];

上面的数据成员是用来声明学生的学号,姓名,性别,年龄和班级等相关信息。

其次,在另外一个头文件中可以存放程序中实现各种功能的函数。

例如这些函数可以是:

private:

intFind(unsignedintid);

intFind(char*name);

voidUpdate(unsignedintid);

voidUpdate(char*name);

voidAdd();

voidSort();

voidSave();

voidLoad();

voiddel(unsignedintid);

voiddel(char*name);

上述这些不同的函数是用来实现不同的功能。

例如Add()函数是用来实现添加学生信息的功能的函数。

 

3.2源文件的相关情况

源文件是用来存放实现函数的各种功能的程序。

首先在刚开始进入界面的时候需要显示不同的身份去登陆:

cout<<"**************简易学生信息管理系统**************"<

cout<

cout<

cout<

cout<<"************************************************"<

cout<<"请输入功能序号选择登录身份:

"<

出现这个界面后需要登陆者选择适合自己的身份去登陆。

如果是学生身份的话,那么对于学生来说他只能进行查找的功能,我们需要反馈一个信息来显示他所拥有的权限。

程序如下所示:

cout<<"**************简易学生信息管理系统**************"<

cout<

cout<<"请选择您需要的操作:

"<

cout<

cout<

已知学号"<

cout<

已知姓名"<

cout<

cout<

cout<<"************************************************"<

出现这个界面后登陆者需要对其所想要的功能进行选择。

登陆者选择的功能不同,屏幕上所出现的信息也将会是不同的。

而当登陆者选择的身份是管理员时,那么我们需要登陆者输入管理员密码,只有密码正确时管理员才能进入界面进行相关的操作。

当管理员输入密码时而不显示真正的数字而是以不回显的方式来显示却只是输出“*”的功能需要用_getch()这个函数来实现。

该程序如下所示:

staticcharc[50];

inti=0;

charch;

while

(1){

ch=_getch();

if(ch=='\r')

break;

c[i++]=ch;

_putch('*');}

而在定义这个函数时需要说明#include头文件。

当管理员密码输入正确后需要显示管理员的功能列表如下:

cout<<"|**************简易学生信息管理系统**************|"<

cout<

cout<

cout<

已知学号"<

cout<

已知姓名"<

cout<

已知学号"<

cout<

已知姓名"<

cout<

已知姓名"<

cout<

已知学号"<

cout<

cout<

cout<

cout<

"<

cout<

cout<<"|************************************************|"<

这个界面出现后管理员会根据自己的需要来进行选择,不同的选择确定后系统会根据不同的选择来执行不同的程序。

例如说:

管理员如果选择的是“查找学生信息”中的“根据学生姓名查找”,则会执行如下的一段程序:

intApplication:

:

Find(char*name)

{

for(inti=0;i

if(stricmp(name,student[i].name)==0){

cout<

returni;

}

}

return-1;

}

执行完这段程序后,程序会进行查找的功能。

从而根据姓名查找来获得学生的各

种信息。

这样才满足了用户的要求。

同时当管理员需要修改密码时我们需要提供一个修改密码的函数如“

这段程序就是将新的密码输入code文本文档,从而实现设置新密码的功能。

同时这样也便于操作人员从程序所建立的code文本文档中找到密码,这样很有效的防止了管理员一时忘记密码的话可以从文档中找到自己所存放的密码。

四设计结果及分析

4.1设计结果简介

设计结果包括程序进入时的屏幕输出的功能表,如果登陆者选择的是以学生身份登陆的话,则需要屏幕输出学生身份的输出功能表。

或者登陆者是以管理员身份登陆的话,我们会要求他输入管理员密码,如果密码正确则需要屏幕输出对应于管理员身份的功能列表。

同时在屏幕输出的众多功能列表中我们需要提供各种供登陆者选择的服务。

4.2设计结果及分析

首先:

上面这个功能列表是登陆者的身份选择的。

为了达到这个目的我们只需要提供几个输出语句就应该可以实现这个功能。

此时如果登陆者选择的是学生身份的话我们要求直接打印出学生的功能列表入下:

从上面的功能列表中我们可以看到对于学生来说他们只有查询的功能。

我们可以利用strcmp函数和几个输出语句来实现上面打印出来的输出功能列表。

而此时如果登陆者选择的是2“已知学生姓名来查找学生信息”的话,我们可以用这个语句:

case'2':

cout<<"你选择的是根据姓名查找!

"<

cout<<"Pleaseentername:

";

cin>>name;

if(Find(name)==-1)cout<<"没有找到!

"<

break;

同时我们需要定义一个查找学生信息的函数find函数来实现查找功能。

这段程序可以是intApplication:

:

Find(char*name)

{

for(inti=0;i

if(stricmp(name,student[i].name)==0){

cout<

returni;

}

}

return-1;

}

通过这个函数我们就可以实现学生查找信息的功能。

另外当登陆者选择的是管理员身份登陆的话我们就输出:

这就要求管理员输入管理员密码来确认登陆者是管理员的身份。

如果不是则出现密码错误的提示字样。

同时在这里我们需要使在屏幕上的密码以不回显的方式出现。

如图

为了实现这个密码的问题我们可以提供一个_getch()函数来实现功能。

当输入密码正确后需要打印出管理员的功能列表如下:

这样管理员就可以通过这个列表来获得他所拥有的功能。

这个语句我们也可以运用输出语句做到。

当管理员选择查找信息时当输入的姓名正确时就会输出相应的结果:

存储的学生信息就会被找到,从而实现了查找的功能。

而当管理员需要修改学生信息时,假设选择4“根据姓名修改学生信息”时我们需要打印出供管理员修改的屏幕输出:

这样就达到了管理员修改学生信息的目的。

而实现这个功能的函数可以是:

voidApplication:

:

Update(char*name)

{

inti;

i=Application:

:

Find(name);

if(i!

=-1){

cin>>student[i];

cout<<"////////////修改成功¦//////////.\n"<

}

然而对于管理员密码的修改问题我们可以定义voidsetcode()

{

cout<<"**********请输入新密码******"<

charch[80];

cin>>ch;

ofstreamof("code.txt");

of<

of.close();

cout<<"************设置成功*********"<

}

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1