学生信息管理系统.doc

上传人:精*** 文档编号:1151232 上传时间:2024-11-16 格式:DOC 页数:31 大小:415.05KB
下载 相关 举报
学生信息管理系统.doc_第1页
第1页 / 共31页
学生信息管理系统.doc_第2页
第2页 / 共31页
学生信息管理系统.doc_第3页
第3页 / 共31页
学生信息管理系统.doc_第4页
第4页 / 共31页
学生信息管理系统.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、 河南城建学院面向对象语言程序设计课程设计任务书班 级 专 业 计算机科学与技术 姓 名 学 号 课程名称 面向对象语言程序设计 指导教师 计算机科学与工程系简 要学生信息管理系统,是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的管理信息系统。它是一个教育单位不可缺少的部分,它的内容对于学校管理来说是至关重要的,能有效的帮助学校和老师掌握学生的情况。在传统模式下利用人工进行学生信息管理,存在着较多的缺点,如:效率底,保密性差,时间一长将产生大量的文件和数据,更不便于查找,更新,维护等。诸如这些情况,令学校管理者对学生的信息管理带来了很大困难,严重影响了教育工作者的工作效率。随着科学

2、技术的不断提高,使用同趋成熟的计算机技术来代替传统的人工模式,来实现学生信息的现代化管理,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、保密性好、寿命长、成本低等。这些优点能够极大地提高学生信息管理的效率,也是学校实现科学化、正规化管理的重要条件。因此,开发这样一套管理软件成为很有必要的事情。关键词 学生信息,数据管理,方便管理,方便查找目录目录1第一章开发环境和开发工具11.1C/C+语言简介11.2 开

3、发背景11.3 开发环境1第二章 算法思想32.1 系统需求分析32.2 系统总体设计32.2.1 系统设计目标32.2.2 开发设计思想32.2.3 系统功能模块设计42.3 面向对象思想描述5第三章面向对象实现63.1 结构63.2 程序模块63.3 各类之间的关系63.4 源程序代码6第四章测试与分析84.1 测试数据选择84.2 测试结果分析8总 结9心得体会10参考文献11 第一章 开发环境和开发工具1.1 C/ C +语言简介也可以让各种组件方便的转变为基于Web的应用,并且能够通过Internet被各种系统或是其他开发语言所开发的应用调用。1.2 开发背景 随着科学技术的不断发展

4、,计算机科学日渐成熟,其强大的功能已为人们所深刻认识,它己进入人类社会的各个领域并发挥着越来越重要的作用。采用计算机进行信息化管理已成为衡量企业管理科学化和现代化的重要标志,而人事管理的全面自动化、信息化则是其中重要的组成部分。人事管理的好坏对于企业的决策者和管理者来说都至关重要,在很大程度上影响着企业的经济效益和社会效益。因此,本文所研究的人事管理信息系统具有一定的使用价值和现实意义。1.3 开发环境本文所采用的开发环境主要是基于服务器端运行环境为windows XP,客户端运行环境为Windows XP版, windows 98 以上的操作系统 Microsoft visual c+6.0

5、 Office 2003应用软件第二章 面向对象思想2.1 系统需求分析学生信息管理系统的主要功能包括:可以实现对学生信息的查询功能,包括按姓名查询功能和按学号查询功能;对学生信息的录入功能,修改功能和删除功能。通过系统上述功能实现管理部门对于学生信息的日常管理,即方便管理人员全面地掌握学生的基本信息;为用户(管理用户和一般用户,如学生)提供一些简单的数据查询并输出各种信息等;在实现检索迅速和查找方便同时,进行管理。该程序是由C+编写的一个学生信息管理软件,其主要功能是实现对学生信息的增加、删除、修改、查询、排序、存储、加载。其中查询可以分别以姓名、学号为关键字查询学生信息。排序可以分别以成绩

6、为关键字进行从小到大的排序。输入的形式:根据用户所选择的功能,然后再依据程序相应的提示进行输入: 选择功能1(添加学生信息):按照从先到后的顺序输入学生学号(15个字符以内),学生姓名(10个字符以内),年龄(6个字符以内), 性别(6个字符以内),出生年月(16个字符以内) ,地址(14个字符以内), 电话(14个字符以内),E-mail(20个字符以内),入学成绩(8个字符以内)。 选择功能2(浏览学生信息):按照从先到后的输入顺学顺序浏览学生的信息。 选择功能3(查询学生信息):输入要查询的学生姓名或学号(30个字符以内)。 选择功能4(删除学生信息):输入学生学号(15个字符以内)。输

7、出的形式:根据用户所选择的功能不同,会有不同的输出: 选择功能1(添加学生信息):根据程序的判断会输出添加成功或者添加失败。 选择功能2(浏览学生信息):根据程序的判断会输出修改成功或者修改失败。 选择功能3(查询学生信息):根据程序的相应的学生信息输出成功或失败。 选择功能4(删除学生信息):根据程序的判断会输出删除成功或者失败。 选择功能5(修改学生信息):根据程序的判断输出修改学生的那些信息。 选择功能6(退出系统)。2.2 系统总体设计2.2.1 系统设计目标学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:1系统

8、以菜单方式工作2功能学生信息录入功能(学生信息用文件保存)输入学生信息浏览功能输出查询、排序功能算法n按学号查询n按姓名查询 学生信息的删除与修改(可选项) 2.2.2 开发设计思想 基于以上系统设计目标,本文在开发人事管理信息系统时遵循了以下开发设计思想: 采用现有的软硬件环境及先进的管理系统开发方案,从而达到充分利用现有资源,提高系统开发水平和应用效果的目的。尽量达到操作过程中的直观、方便、实用、安全等要求。系统采用C/S体系结构,Clinet(客户端)负责提供表达逻辑、显示用户界面信息、访问数据库服务器;Server(服务器端)则用于提供数据服务。(写出三层设计思想)系统采用模块化程序设

9、计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作。2.2.3 系统功能模块设计(1) 查询功能模块:查询功能属于一般权限,对于管理中心的工作人员和一般用户都具备使用权限;查询功能具体划分为按姓名查询功能和按学号查询功能;l (2) 录入功能模块:录入功能属于管理权限,只有管理中心的工作人员具备使用权限;录入功能具体划分为学生信息录入功能;l 学生信息录入功能:学生信息是指学生的个人信息,包括学号,姓名,年龄,性别,出生年月,地址,电话,E-mail(3) 修改功能模块:修改功能属于

10、管理权限,只有管理中心的工作人员具备使用权限。(4) 删除功能模块:删除功能属于管理权限,只有管理中心的工作人员具备使用权限;删除功能具体划分为个别信息删除功能和批量信息删除功能。(5) 排序功能模块:排序功能属于管理权限,只有管理中心的工作人员具备使用权限; 2.3 面向对象思想描述面向过程的程序设计将精力集中在了函数设计上,面向对象的程序设计将精力集中在对象上。对象封装了数据和操作数据的若干个函数。 我们知道变量代表计算机内存中的一块存储区,程序需要使用变量存储原子数据类型的数据,如int、float和double等。程序员通过定义结构体创建自己的抽象数据类型。结构体像一个复合变量,它代表

11、内存中的一块存储区,由若干个元素组成。类和结构体相似。通常,类不仅有数据成员,而且还有函数成员。数据成员和函数成员封装在一起构成一个独立的单元,我们将由数据和函数构成的实体称为对象。 对象创建于由程序员定义的抽象数据类型。第三章 面向对象实现3.1 结构功能结构图如图3.1 菜单添加显示查询删除修改退出按学号按姓名 图3.13.2程序模块(1) 查询功能模块:void Student:chaxun()if(tnum=0)cout无学生信息!endl;return ;int choice,i,tamp=0;char num120;char name120;coutn;cout+-+n; cout

12、| 按学号查询 请按 1 |n; cout| 按姓名查询 请按 2 |n; cout| 取消 请按 0 |n;cout+-+n;coutchoice; switch(choice) case 0:break; case 1:coutnum1;for(i=0;itnum;i+)if(strcmp(studenti.num,num1)=0&studenti.luru=1)tamp=1;studenti.output(i);if(tamp=0)cout暂无学生信息!endl;break;case 2:coutname1;for(i=0;itnum;i+)if(strcmp(studenti.name

13、,name1)=0&studenti.luru=1)tamp=1;studenti.output(i);if(tamp=0)cout暂无学生信息!endl;break; default: coutn无效选项!; break; (2) 录入功能模块:void Student:record()ifstream cin1(学生信息.txt);cout正在从文件中录入学生信息.studenttnum.num) cin1studenttnum.name;cin1studenttnum.age;cin1studenttnum.sex;cin1studenttnum.birthday;cin1student

14、tnum.address;cin1studenttnum.tele_num;cin1studenttnum.E_mail;cin1studenttnum.mark;studenttnum.luru=1;tnum+;cin1.close();coutn学生信息录入完毕!endl;(3) 修改功能模块:void Student:change()if(tnum=0)cout无学生信息!endl;return ;int temp=0,choice;char num120;char sex1,sexB5=男,sexG5=女;coutnum1;for(int i=0;itnum;i+)if(strcmp(

15、studenti.num,num1)=0&studenti.luru=1)temp=1;cout请选择您要修改的学生的信息内容:n;cout+-+n;cout| 姓名 请按 1 |n; cout| 年龄 请按 2 |n; cout| 性别 请按 3 |n;cout| 出生年月 请按 4 |n;cout| 地址 请按 5 |n;cout| 电话 请按 6 |n;cout| E-mail 请按 7 |n;cout| 入学成绩 请按 8 |n;cout| 取消 请按 0 |n;cout+-+n; coutchoice;switch(choice) case 0:return; case 1: cou

16、tstudenti.name;cout该学生修改后的姓名为:studenti.nameendl;break; case 2: coutstudenti.age;cout该学生修改后的姓名为:studenti.ageendl;break; case 3: coutsex1; if(sex1=B) strcpy(studenti.sex,sexB); if(sex1=G) strcpy(studenti.sex,sexG); cout该学生修改后的姓名为:studenti.sexendl; break; case 4: coutstudenti.birthday; cout该学生修改后的姓名为:s

17、tudenti.birthdayendl; break; case 5: coutstudenti.address; cout该学生修改后的姓名为:studenti.addressendl; break; case 6: coutstudenti.tele_num; cout该学生修改后的姓名为:studenti.tele_numendl; break; case 7: coutstudenti.E_mail; cout该学生修改后的姓名为:studenti.E_mailendl; break; case 8: coutstudenti.mark; cout该学生修改后的入学成绩为:stude

18、nti.markendl; break; default: coutn无效选项!; break; studenti.output(i);if(temp=0) cout没有该学生记录,请核对!n; (4) 删除功能模块:void Student:del()if(tnum=0)cout无学生信息!endl;return ;int temp=0;char num120;coutnum1;for(int i=0;itnum;i+)if(strcmp(studenti.num,num1)=0&studenti.luru=1)temp=1; studenti.luru=0; tnum-;cout学生信息删

19、除成功endl;if(temp=0) cout无学生记录!n;(5) 排序功能模块:void Student:paixu()int i,j,max;for(i=0;itnum-1;i+)max=i;for(j=i+1;jtnum;j+)if(studentmax.markstudentj.mark)max=j;if(i!=max)Student t;t=studenti;studenti=studentmax;studentmax=t;cout排序完成!endl;3.3 各类之间的关系welcomliulanchaxundelfacechange mainrecordpaixuaddsaveo

20、utput 3.4 源程序代码#include #include #include #include #include using namespace std;#define Max 100 /最大学生数static int tnum=0;/学生总数class Studentprivate:char num20;char name20;int age;char sex4;char birthday20;char address30;char tele_num20;char E_mail20;int mark;int luru; /标记学生信息已录入ofstream out;public:voi

21、d welcome();int face();void record();void add();void output(int x);void liulan();void chaxun();void del();void change();void paixu();void save();studentMax;/显示欢迎信息void Student:welcome()coutttt+-+n;coutttt| |n;coutttt| 欢迎使用学生信息管理系统 |n;coutttt| |n; coutttt+-+n;coutn温馨提示:为保证您的操作得到保存,请按正常顺序退出系统n;coutn;i

22、nt Student:face()coutttt-n;coutttt+ 学生信息管理系统 +n; coutttt-n; coutttt+ 1-添加学生信息 +n;coutttt+ 2-浏览学生信息 +n; coutttt+ 3-查询学生信息 +n;coutttt+ 4-删除学生信息 +n;coutttt+ 5-修改学生信息 +n;coutttt+ 6-按入学成绩排序 +n;coutttt+ 0-退出系统 +n;coutttt+*+n;coutttt-n;coutchoice;return (choice);/录入原始学生信息(从文件读入)void Student:record()ifstrea

23、m cin1(学生信息.txt);cout正在从文件中录入学生信息.studenttnum.num) cin1studenttnum.name;cin1studenttnum.age;cin1studenttnum.sex;cin1studenttnum.birthday;cin1studenttnum.address;cin1studenttnum.tele_num;cin1studenttnum.E_mail;cin1studenttnum.mark;studenttnum.luru=1;tnum+;cin1.close();coutn学生信息录入完毕!=Max)cout学生人数已满!en

24、dl;return ;coutstudenttnum.num;coutstudenttnum.name;coutstudenttnum.age;coutstudenttnum.sex;coutstudenttnum.birthday;coutstudenttnum.address;coutstudenttnum.tele_num;coutstudenttnum.E_mail;coutstudenttnum.mark;studenttnum.luru=1;tnum+;/显示一个学生信息void Student:output(int x)coutn学号t 姓名 年龄 性别t 出生年月t 地址tt

25、电话ttE-mailtt入学成绩n;coutstudentx.num;coutsetw(10)studentx.name;coutsetw(6)studentx.age;coutsetw(6)studentx.sex;coutsetw(16)studentx.birthday;coutsetw(14)studentx.address;coutsetw(14)studentx.tele_num;coutsetw(20)studentx.E_mail;coutsetw(8)studentx.mark;coutendl;/浏览学生信息void Student:liulan()if(tnum=0)co

26、ut无学生信息!endl;return ; cout学生总数: tnumendl;cout以下是所有学生的信息:endl;coutn学号t 姓名 年龄 性别t 出生年月t 地址tt 电话ttE-mailtt入学成绩n;for(int i=0;itnum;i+)if(studenti.luru=1)coutstudenti.num;coutsetw(10)studenti.name;coutsetw(6)studenti.age;coutsetw(6)studenti.sex;coutsetw(16)studenti.birthday;coutsetw(14)studenti.address;c

27、outsetw(14)studenti.tele_num;coutsetw(20)studenti.E_mail;coutsetw(8)studenti.mark;coutendl;/查询学生信息void Student:chaxun()if(tnum=0)cout无学生信息!endl;return ;int choice,i,tamp=0;char num120;char name120;coutn;cout+-+n; cout| 按学号查询 请按 1 |n; cout| 按姓名查询 请按 2 |n; cout| 取消 请按 0 |n;cout+-+n;coutchoice; switch(

28、choice) case 0:break; case 1:coutnum1;for(i=0;itnum;i+)if(strcmp(studenti.num,num1)=0&studenti.luru=1)tamp=1;studenti.output(i);if(tamp=0)cout暂无学生信息!endl;break;case 2:coutname1;for(i=0;itnum;i+)if(strcmp(studenti.name,name1)=0&studenti.luru=1)tamp=1;studenti.output(i);if(tamp=0)cout暂无学生信息!endl;break

29、; default: coutn无效选项!; break; /删除学生信息void Student:del()if(tnum=0)cout无学生信息!endl;return ;int temp=0;char num120;coutnum1;for(int i=0;itnum;i+)if(strcmp(studenti.num,num1)=0&studenti.luru=1)temp=1; studenti.luru=0; tnum-;cout学生信息删除成功endl;if(temp=0) cout无学生记录!n;/修改学生信息void Student:change()if(tnum=0)cou

30、t无学生信息!endl;return ;int temp=0,choice;char num120;char sex1,sexB5=男,sexG5=女;coutnum1;for(int i=0;itnum;i+)if(strcmp(studenti.num,num1)=0&studenti.luru=1)temp=1;cout请选择您要修改的学生的信息内容:n;cout+-+n;cout| 姓名 请按 1 |n; cout| 年龄 请按 2 |n; cout| 性别 请按 3 |n;cout| 出生年月 请按 4 |n;cout| 地址 请按 5 |n;cout| 电话 请按 6 |n;cou

31、t| E-mail 请按 7 |n;cout| 入学成绩 请按 8 |n;cout| 取消 请按 0 |n;cout+-+n; coutchoice;switch(choice) case 0:return; case 1: coutstudenti.name;cout该学生修改后的姓名为:studenti.nameendl;break; case 2: coutstudenti.age;cout该学生修改后的姓名为:studenti.ageendl;break; case 3: coutsex1; if(sex1=B) strcpy(studenti.sex,sexB); if(sex1=G

32、) strcpy(studenti.sex,sexG); cout该学生修改后的姓名为:studenti.sexendl; break; case 4: coutstudenti.birthday; cout该学生修改后的姓名为:studenti.birthdayendl; break; case 5: coutstudenti.address; cout该学生修改后的姓名为:studenti.addressendl; break; case 6: coutstudenti.tele_num; cout该学生修改后的姓名为:studenti.tele_numendl; break; case

33、7: coutstudenti.E_mail; cout该学生修改后的姓名为:studenti.E_mailendl; break; case 8: coutstudenti.mark; cout该学生修改后的入学成绩为:studenti.markendl; break; default: coutn无效选项!; break; studenti.output(i);if(temp=0) cout没有该学生记录,请核对!n; void Student:paixu()int i,j,max;for(i=0;itnum-1;i+)max=i;for(j=i+1;jtnum;j+)if(studentmax.markstudentj.mark)max=j;if(i!=max)Student

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 学术论文 > 毕业设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922