版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
江苏科技大学计算机科学与工程学院系统设计设计题目: 学生信息管理系统学生学号: 1341901129专业班级: 计算机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函数来处理而且在这个函数中我们需要调用循环语句和判断语句。在这个程序的设计过程中如何使自己的密码在屏幕上显示的是“*”这个问题是比较难的。我们要用至Lgetch()这样的一个函数,我们需要了解这个函数的正确用法。同时贯穿整个程序的就是我们需要很好的运用文件流的操作。我们应该建立一个文件来存放我们写进去的内容。我们需要不断的进行文件的存入和读取操作。二设计简介及设计方案论述2.1设计简介在设计学生管理系统的时候,首先我们可以看到这次的课程设计的基本功能有:登录时的设置和密码的相关问题;同时还有学生信息的添加查找和信息的保存,同时在学生信息过程中我们也要对查找过程中用不同方式来进行查找功能。这样我们在设计过程可以用类的相关作用定义一个类来存放这些数据成员同时可以运用_getch(这个函数来进行密码的不回显的功能。时还有选择语句的相关使用问题而纵观整个程序我们需要运用文件流的操作来控制整个程序,我们需要运用文件流来进行数据的保存的问题。在整个设计的过程中我们可以一部分一部分的对相关功能进行处理,我们可以建立不同的头文件和源文件来实现它们,将所需实现的功能来进行很好的分类,这样我们就可以很方便的对具体的功能部分有很好的了解。这样更便于我们去编写程序。2.2设计方案整个学生管理系统需要实现很多的功能,其中有类的相关使用情况也有特殊函数的具体用法,同时我们必须知道我们所需要的函数中它们的具体功能和我们需要提供的系统自带的头文件。例如#include<conio.h>这个头文件就是对于_getch()这个函数的一个很好的说明,因为这些函数是不需要我们定义的同时却又能够为我们直接使用的函数。对于类似这样的函数我们需要提供这些函数的头文件。因此经过一些相关的思考后我认为我们可以建立两个头文件和四个源文件来存放整个程序。而在整个程序开始的时候我们可以先来对整个程序构造一个简单的程序执行时的框架。我们不妨利用下面这个图来看一下程序的相关执行情况。程序流程图如下:
程序流程图从上面的视图中我们可以看到在整个程序设计的过程中,我们可以按照上面的图来进行程序相关功能的实现。首先是进行学生信息的下载过程。这就要求我们在程序的运用文件流的知识来建立一个文件。用它来存放相关的学生信息,便于我们可以获得。然后我们打印出我们刚开始的时候需要进行身份的验证信息。登陆身份包括学生和管理员身份。在这里可以运用strcmp函数来把我们从键盘上输入的信息来进行比较以方便确认登陆者的身份。对于学生身份来说我们不允许他们来对学生的信息进行修改而只能对学生的信息进行查找的功能。进入学生信息的功能表时我们可以利用选择语句来控制学生所想要的查找服务,例如,按姓名查找以及按学号查找的功能。而当进入管理员的窗口时需要管理员输入密码,首先我们必须设定好自己的密码。在设定好密码后,当输入密码后需要将这两个密码进行比较,只有当密码输入正确的时候,才能进行管理员的功能列表。而在密码的问题上我们需要用户在输入密码的时候我们需要在屏幕上显示的不是现实中的密码而是“****”之类的符号。这样可以使密码不会被泄露出去。在这里我们可以运用_getch()这个函数来实现所输入的以不回显的方式显示在屏幕上。然后当管理员进入之后会出现管理员所需要处理的相关功能。例如,查找学生信息并且修改学生信息。而接下来的功能实现过程应该与学生身份进入后的相关操作是类似的。上述过程是对整个设计过程的一些简介和论述。三详细设计3.1详细设计过程中头文件的情况首先在第一个头文件中定义一个类来存放相关的数据如:unsignedintid;char name[80];char gender;unsignedintage;char Class[80];char profession[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<<"**************简易学生信息管理系统**************"<<endl;cout<<setfill('');cout<<setw(14)<<""<<"a、管理员"<<endl;cout<<setw(14)<<""<<"b、学生"<<endl;cout<<"************************************************"<<endl;cout<<"请输入功能序号选择登录身份:"<<endl;出现这个界面后需要登陆者选择适合自己的身份去登陆。如果是学生身份的话,那么对于学生来说他只能进行查找的功能,我们需要反馈一个信息来显示他所拥有的权限。程序如下所示:cout<<"**************简易学生信息管理系统**************"<<endl;cout<<setfill('');cout<〈"请选择您需要的操作:"<<endl;cout<< setw(14) << "" << "、0 退出整个系统"<<endl;cout<< setw(14) << "" << "、1 查找学生信息:已知学号"<< endl;cout<< setw(14) << "" << "、2 查找学生信息:已知姓名"<< endl;cout<< setw(14) << "" << "、3 对学生成绩排序"<<endl;cout<< setw(14) << "" << "、4 从文件中读入学生信息"<<endl;cout<<"************************************************"<<endl;出现这个界面后登陆者需要对其所想要的功能进行选择。登陆者选择的功能不同屏幕上所出现的信息也将会是不同的。而当登陆者选择的身份是管理员时,那么我们需要登陆者输入管理员密码,只有密码正确时管理员才能进入界面进行相关的操作。当管理员输入密码时而不显示真正的数字而是以不回显的方式来显示却只是输出“*”的功能需要用_getch()这个函数来实现。该程序如下所示:staticcharc[50];inti=0;charch;while(1){ch=_getch();if(ch=='\r')break;c[i++]=ch;_putch('*');}而在定义这个函数时需要说明#include<conio.h>头文件。当管理员密码输入正确后需要显示管理员的功能列表如下:cout<<"|**************简易学生信息管理系统**************|"<<endl;cout<<setfill('');cout<<setw(14)<<""<<"0、添加学生的信息"<<endl;cout<<setw(14)<<""<<"1、查找学生信息:已知学号"<<endl;cout<<setw(14)<<""<<"2、查找学生信息:已知姓名"<<endl;cout<<setw(14)<<""<<"3、修改学生信息:已知学号"<<endl;cout<<setw(14)<<""<<"4、修改学生信息:已知姓名"<<endl;cout<<setw(14)<<""<<"5、删除学生信息:已知姓名"<<endl;cout<<setw(14)<<""<<"6、删除学生信息:已知学号"<<endl;cout<<setw(14)<<""<<"7、对学生成绩排序"<<endl;cout<<setw(14)<<""<<"8、保存学生信息到文件中"<<endl;cout<<setw(14)<<""<<"9、从文件中读入学生信息"<<endl;cout<<setw(14)<<""<<"x、修改密码!"<<endl;cout<<setw(14)<<""<<"t、退出整个系统"<<endl;cout<<"|************************************************|"<<endl;这个界面出现后管理员会根据自己的需要来进行选择,不同的选择确定后系统会根据不同的选择来执行不同的程序。例如说:管理员如果选择的是“查找学生信息”中的“根据学生姓名查找”,则会执行如下的一段程序:intApplication::Find(char*name){for(inti=0;i<stuNO;++i){if(stricmp(name,student[i].name)==0){cout<<student[i]<<endl;returni;}}return-1;}执行完这段程序后,程序会进行查找的功能。从而根据姓名查找来获得学生的各种信息。这样才满足了用户的要求。同时当管理员需要修改密码时我们需要提供一个修改密码的函数如“这段程序就是将新的密码输入code文本文档,从而实现设置新密码的功能。同时这样也便于操作人员从程序所建立的code文本文档中找到密码,这样很有效的防止了管理员一时忘记密码的话可以从文档中找到自己所存放的密码。四设计结果及分析4.1设计结果简介设计结果包括程序进入时的屏幕输出的功能表,如果登陆者选择的是以学生身份登陆的话,则需要屏幕输出学生身份的输出功能表。或者登陆者是以管理员身份登陆的话,我们会要求他输入管理员密码,如果密码正确则需要屏幕输出对应于管理员身份的功能列表。同时在屏幕输出的众多功能列表中我们需要提供各种供登陆者选择的服务。4.2设计结果及分析首先:上面这个功能列表是登陆者的身份选择的。为了达到这个目的我们只需要提供几个输出语句就应该可以实现这个功能此时如果登陆者选择的是学生身份的话我们要求直接打印出学生的功能列表入下:从上面的功能列表中我们可以看到对于学生来说他们只有查询的功能。我们可以利用strcmp函数和几个输出语句来实现上面打印出来的输出功能列表。而此时如果登陆者选择的是2“已知学生姓名来查找学生信息”的话,我们可以用这个语句:case'2':cout<<"你选择的是根据姓名查找!"<<endl;cout<<"Pleaseentername:";cin>>name;if(Find(name)==-1)cout<<"没有找到!"<<endl;break;同时我们需要定义一个查找学生信息的函数find函数来实现查找功能。这段程序可以是intApplication::Find(char*name){for(inti=0;i<stuNO;++i){if(stricmp(name,student[i].name)==0){return1;}}return-1;通过这个函数我们就可以实现学生查找信息的功能。另外当登陆者选择的是管理员身份登陆的话我们就输出:这就要求管理员输入管理员密码来确认登陆者是管理员的身份。如果不是则出现密确后需要打印出管理员的功能列表如下:*C:\DocuAentsandSetti
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 乡镇基层公务员考试试题及答案
- 浮法玻璃行业市场分析
- 多花黑麦草乙酰乳酸合酶多克隆抗体制备及在检测其他杂草上的应用
- 对发展新型煤化工产业关键技术的建议
- 房屋土地买卖简单版合同范本(18篇)
- 房地产项目投资开发协议
- 2025北京建工集团校园招聘1000人笔试历年典型考点题库附带答案详解
- 2025内蒙古华润万家额尔敦路店招聘100人笔试参考题库附带答案详解
- 房地产企业破产重整案件审理实务初探
- 法律责任保证书
- 化工企业安全生产管理人员配备标准
- 钢筋笼制作协议书
- DB21∕T 3165-2025 钢纤维混凝土预制管片技术规程
- 人工智能辅助耳鼻咽喉虚拟内镜训练系统构建
- 2025年及未来5年中国高功率连续光纤激光器行业发展监测及发展趋势预测报告
- 2025年常见非标机械设计师面试题及答案
- 员工冬季出行安全
- 单侧双通道脊柱内镜技术
- GB/T 14748-2025儿童呵护用品安全儿童推车
- 《粤港澳大湾区城际铁路建设工程资料管理规范》
- 期末复习知识清单 2024-2025学年统编版语文六年级上册
评论
0/150
提交评论