《学生信息管理系统说明书.doc》由会员分享,可在线阅读,更多相关《学生信息管理系统说明书.doc(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、*实践教学* 兰州理工大学计算机与通信学院2012年秋季学期 面向对象 课程设计题 目: 学生信息管理系统 专业班级: 计算机科学与技术3班 姓 名: 王欢欢 学 号: 指导教师: 王燕 成 绩: 前 言学生信息管理系统,是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的管理信息系统。它是一个教育单位不可缺少的部分,它的内容对于学校管理者来说是至关重要的,能有效的帮助学校和老师掌握学生的情况。在传统模式下利用人工进行学生信息管理,存在着较多的缺点,如:效率底,保密性差,时间一长将产生大量的文件和数据,更不便于查找,更新,维护等。诸如这些情况,令学校管理者对学生的信息管理带来了很大困难
2、,严重影响了教育工作者的工作效率。随着科学技术的不断提高,使用日趋成熟的计算机技术来代替传统的人工模式,来实现学生信息的现代化管理,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、保密性好、寿命长、成本低等。这些优点能够极大地提高学生信息管理的效率,也是学校实现科学化、正规化管理的重要条件。因此,开发这样一套管理软件成为很有必要的事情。目 录摘 要4第一章 系统总体设计51.系统功能模块图62.类与函数之间的
3、关系7第二章 详细设计8第三章 系统测试111.测试方法112.测试结果11第四章 软件使用说明书14总 结16参考文献17致谢18摘 要学生档案管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。本系统主要完成对信息的管理,其中包括:添加,删除,修改,查询等主要功能。本系统的开发采用面向对象的设计思想。系统的介绍了学生档案系统的开发过程及面向对象思想的具体实现。关键词: 学号;姓名;信息管理;家庭住址; 第一章 系统总体设计网络考试
4、系统是一套功能强大、操作简便而又实用的模拟考试管理软件,它可以被广泛的应用于各种类型的考试中。开发此网络考试系统的目的为了克服传统考试模式中遇到的诸如考试效率低,难以突破时空限制,教师阅卷工作量大以及考务管理繁杂等问题,根据对现有考试模式的分析,确定了该系统需实现以下功能:(1)实现对考试有关的信息的添加、删除、查询、修改等操作;(2)实现考生在规定时间里的在线考试;(3)实现考生可在考试完成后及时查询到自己的成绩;(4)实现系统自动阅卷功能;1.系统功能模块图 根据用户需求,本系统将主要实现以下功能:信息录入显示信息学生信息管理系统信息添加信息删除信息修改信息查询 图1-1 系统功能模块图
5、图1-1 系统功能模块图其中:信息录入:包括对学生基本信息的录入,课程成绩录入等。信息添加:指对新的学生基本信息的录入,课程成绩录入等。信息查询:对所需学生信息的查找。2.类与函数之间的关系本系统使用了一个student类在student类下有set,add,del,change,search,display这些函数作用。 它们之间的关系如图1-2所示:类student 函数set函数add函数del函数change函数search函数display图1-2 系统类与函数间关系图 第二章 详细设计本系统主要功能包括:信息录入;信息添加;信息删除;信息修改;信息查询;显示信息,等 其中功能 “信
6、息添加” 使用函数add来实现,功能 “信息查询” 使用函数 search来实现,功能 “信息修改” 使用函数change来实现。 类student具体实现流程如图2-1所示。类student 函数set函数add函数del函数change函数search函数display图2-1类student定义为:将学生信息定义为一个student类,在类中包含私有数据成员int num、string name、string sex、string politic、string address,分别表示学号、姓名、性别、政治面貌、家庭住址。 各个功能函数的设计思路和实现方法。2.1 初始录入功能此函数实现
7、的功能主要是,对学生信息的初始化录入功能,在初始时,文件中没有任何数据,可以通过次函数输入任意个学生的信息,在输入时通过一个if条件语句来实现控制循环,当输入的姓名是“0”时,使用break语句就跳出循环,即停止输入学生信息。在此函数中使用文件处理的方式,先建立一个文件输出流对象,以写的方式打开f1.txt文件,使输入的学生信息都写入文件。2.2 添加函数 此函数实现的功能主要是,添加一个学生的信息,也就是说调用一次这个函数只能添加一个学生的信息。在此函数中也使用文件处理的方式,但使用的是以追加的方式打开文件,使输入的学生信息写在文件里原有信息的后面。2.3 删除函数 此函数实现的功能主要是,
8、删除一个学生的信息。在此函数中,先以读的方式打开文件,读出文件里的信息在显示在屏幕上,用户再根据提示信息输入想要删除第几个人的信息,关闭文件。再以写的方式打开文件,以一个if条件语句控制,再重新将学生信息写入文件(除了打算删除的那个学生的信息),由于是以写的方式打开的文件,所以文件里原有的输入就都没有了,存入的新的数据。2.4 修改函数 此函数实现的功能主要是,修改一个学生的信息。此函数的设计方法和删除函数的设计思想相类似,应用的思想都是将学生信息重新写入文件的方法,将原有数据覆盖。2.5 查询函数 在查询功能中,可以按多条件查询,本系统分为两个查询条件,即按学号查询和按姓名查询。使用if语句
9、来选择查询条件。2.5.1 按学号查询 根据提示信息输入学号后,然后使用一个for循环语句,从第一个学生开始检索,如果该学生的学号和输入的学号相等,则输出该学生的信息,由于学生的学号是唯一固定的,所以并使用break语句跳出循环。 当无查询结果时,会输出一条提示信息“无此人信息!” 。2.5.2 按姓名查询 根据提示信息输入姓名后,然后使用一个for循环语句,从第一个学生开始检索,如果该学生的姓名和输入的姓名一样,则输出该学生的信息,由于学生的姓名有可能重复出现,所以不能使用break语句跳出循环,应该从第一个学生开始检索直到最后一名学生。 当无查询结果时,会输出一条提示信息“无此人信息!”
10、。2.6 显示函数 此函数实现的功能主要是,显示所有学生的信息。先是从文件中读取学生信息,然后在输出到显示窗口中。用一个for循环语句,来把所有学生的信息都输出。2.7 退出系统 当输入“0”时,就能退出系统,这是通过while语句来控制实现的。第三章 系统测试1.测试方法1、已知系统的功能设计规格,进行测试证明每个实现了的功能是否符合要求。2、 已知系统的内部工作过程,通过测试证明每种内部是否符合设计规格要求,所有内部成分是否通过检验。 2测试结果本系统主要完成基本信息的添加,删除,修改和查询功能。添加功能主要实现对学生基本信息和课程成绩的增加,图3-3为学生基本信息添加功能测试界面。2.1
11、 主菜单主菜单显示如下:图3-1 主菜单2.2 显示功能按6则显示全部信息,如图3-2:图3-2 显示功能2.3 增加功能进入主菜单后选择2,进入增加功能,按要求输入学生信息,增加数据前显示如图3-2:增加后显示如图3-3:图3-3 增加后2.4 删除功能进入主菜单后选择3,进入删除功能,按要求输入要删除的学生信息,删除数据前显示如图3-3:删除数据后显示如图3-4:图3-4 删除后2.5 修改功能进入主菜单后选择4,进入修改功能,按要求输入要修改的学生信息,修改数据前显示如图3-4:修改后如图3-5:图3-5 修改后2.6 查询功能进入主菜单后选择5,进入查询功能,如图3-6:图3-6选择查
12、询条件按学号查询如图3-7:按姓名查询如图3-8: 图3-7 按学好查询:图3-8按姓名查询第四章 软件使用说明书1、系统运行环境Microsoft Visual C+ 6.02、系统操作提示本系统主要实现的是学校学生的信息化管理。通过学生信息管理系统,教学管理人员可以实现对学生信息的增加、删除、修改和查询等操作。首先用户进入主界面,如图1所示:图1然后用户根据自己的需要选择对信息的录入,信息添加,信息删除,信息修改,信息查询,显示信息。分别输入1,2,3,4,5,6。输入1时,文件中没有任何数据,可以通过次函数输入任意个学生的信息,当输入的姓名是“0”时,则停止输入学生信息。输入2时,只能添
13、加一个学生的信息。在此函数中也使用文件处理的方式,但使用的是以追加的方式打开文件,使输入的学生信息写在文件里原有信息的后面。输入3时,删除一个学生的信息。先将所有信息显示在屏幕上,用户再根据提示信息输入想要删除第几个人的信息。输入4时,修改一个学生的信息。输入5时,屏幕显示出两个查询条件,即按学号查询和按姓名查询。如图2所示:图2选择查询条件按学号查询如图3:按姓名查询如图4: 图3按学好查询:图4按姓名查询 由屏幕提示输入a为按学号查询,然后根据提示信息输入学号后,该学生的信息则输出。当无查询结果时,会输出一条提示信息“无此人信息!” 。 由屏幕提示输入b为按姓名查询,则根据提示信息输入姓名
14、后,如果该学生的姓名和输入的姓名一样,则输出该学生的信息。当无查询结果时,会输出一条提示信息“无此人信息!” 。 输入6时,显示所有学生的信息。 最后当用户使用完这个系统后,就可以根据提示输入“0”,然后就能退出系统。总 结此次c+面向对象课程设计,在指导教师的精心教导下,我们学会了如何用C+编写一个简单的应用程序。首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试。程序实现上,设计了简单的菜单界面,将各个功能集中出现在主菜单中,便于调用。根据C+课程所学的概念、理论和方法,按照C+程序设计的基本步骤,设计出一个适当规模的程序;进一步加深对C+语言的理解和
15、掌握。理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在编程,就必须不断改进,才能更好提高编程能力。参考文献1 郑莉.C+语言程序设计(第三版),清华大学出版社,2004 2 郑莉.C+语言程序设计案例教程,清华大学出版社,20053 钱能.C+程序设计教程,清华大学出版社,1999.4 4 谭浩强.C+程序设计,清华大学出版社,20045 谭浩强.C+程序设计实践指导,清华大学出版社,20056 刘振安.C+程序设计课程设计,机械工业出版社,2004.致谢附录:程序代码#include#include
16、#include#includeusing namespace std;#define M 200 /可以存信息总量int N=0; /学生总量class studentpublic:student();void set(); /初始化信息,第一次对信息的录入void add(); /添加学生信息void del(); /删除某学生信息void change(); /修改某学生信息 void search(); /查询某学生信息void display(); /显示全部学生信息private:static int num;string name,sex,politic,address;int
17、student:num=110;student:student() void student:set()int i;string setname,setsex,setpolitic,setaddress;ofstream outfile;outfile.open(f1.txt,ios:out); /-打开文件-if(!outfile)cerr open errorendl; exit(1);/-依次录入相应个数的学生信息-for(i=0;iM;i+)cout当姓名输入为0时,停止输入!endl;cout请输入姓名:setname; name=setname;if(setname=0) brea
18、k;if(setname!=0)N+;num+; outfilenum ; outfilesetname ; cout请输入性别:setsex; sex=setsex; outfilesetsex ; cout请输入政治面貌:setpolitic; politic=setpolitic; outfilesetpolitic ; cout请输入家庭住址:setaddress; address=setaddress; outfilesetaddressendl;outfile.close(); /-关闭文件-void student:add()string addname,addsex,addpo
19、litic,addaddress;/-以追加的方式录入信息,直接将信息追加到以前文件的末尾-ofstream outfile(f1.txt,ios:app);if(!outfile) cerr open errorendl; exit(1); N=N+1;/-依次输入相应的数据,并且追加到之前的文件中去-cout请输入您要添加的数据endl; num+; outfilenum ;cout请输入姓名:addname;outfileaddname ;cout请输入性别:addsex;outfileaddsex ;cout请输入政治面貌:addpolitic;outfileaddpolitic ;c
20、out请输入家庭住址:addaddress;outfileaddaddressendl;outfile.close();cout已添加成功!endl;void student:del()int k,i;int numM;string nameM,sexM,politicM,addressM;ifstream infile(f1.txt,ios:in);if(!infile)cerr open errorendl;exit(1);for(i=0;iN;i+)coutnumi;coutsetw(9)namei;coutsetw(9)sexi;coutsetw(9)politici;coutsetw
21、(9)addressi;coutsetw(9)addressiendl;cout你想删除第几个?k;k=k-1;infile.close();ofstream outfile(f1.txt,ios:out);if(!outfile)cerr open errorendl; exit(1); /退出程序/-将数组存取的信息输出到文件中去-for(i=0;iN;i+)if(i!=k)outfilenumi ;outfilenamei ;outfilesexi ;outfilepolitici ;outfileaddressi endl;outfile.close();N=N-1;cout已删除成功
22、!endl;void student:change()int i,k;int numM;string nameM,sexM,politicM,addressM;ifstream infile(f1.txt,ios:in); if(!infile)cerr open errorendl;exit(1);for(i=0;iN;i+)coutnumi;coutsetw(9)namei;coutsetw(9)sexi;coutsetw(9)politici;coutsetw(9)addressi;coutsetw(9)addressiendl;infile.close();ofstream outfi
23、le(f1.txt,ios:out);if(!outfile) cerr open errorendl; exit(1); cout你想修改第几个数据?k;k=k-1;cout请输入新的数据:endl;cout请输入姓名:namek;cout请输入性别:sexk;cout请输入政治面貌:politick;cout请输入家庭住址:addressk;for(i=0;iN;i+) outfilenumi ;outfilenamei ;outfilesexi ;outfilepolitici ;outfileaddressi endl;outfile.close();cout已修改成功!endl;vo
24、id student:search()int i,n,w=0,numM,aM;char ch;string searchname,nameM,sexM,politicM,addressM,bM4; couta.按学号查找 b.按姓名查找endl;ifstream infile(f1.txt,ios:in); if(!infile)cerr open errorendl;exit(1);for(i=0;inumi;ai=numi;infilenamei;bi0=namei;infilesexi;bi1=sexi;infilepolitici;bi2=politici;infileaddressi
25、;bi3=addressi;cout请输入a或者b!ch; if(ch=a)cout请输入学号!n;for(i=0;iN;i+)if(ai=n)w=1;cout 学号 姓名 性别 政治面貌 家庭住址endl;cout ;coutsetw(9)ai; coutsetw(9)bi0; coutsetw(9)bi1; coutsetw(9)bi2; coutsetw(9)bi3endl;if(w=0) cout无此人信息!endl;else if(ch=b)cout请输入姓名!searchname;for(i=0;iN;i+)if(namei=searchname)w=1;cout 学号 姓名 性别
26、 政治面貌 家庭住址endl;cout ;coutsetw(9)ai; coutsetw(9)bi0; coutsetw(9)bi1; coutsetw(9)bi2; coutsetw(9)bi3endl; if(w=0) cout无此人信息!endl;else cout没有此选项!endl;void student:display()int k,num;string name,sex,politic,address;ifstream infile(f1.txt,ios:in); if(!infile)cerr open errorendl;exit(1);cout 学号 姓名 性别 政治面貌
27、 家庭住址endl;for(k=0;kN;k+)coutnum;coutsetw(9)name;coutsetw(9)sex;coutsetw(9)politic;coutsetw(9)address;coutsetw(9)addressch;while(ch!=0)system(cls);switch(ch)case 1:stu.set();break;case 2:stu.add();break;case 3:stu.del();break;case 4:stu.change();break;case 5:stu.search();break;case 6:stu.display();break;case 0:cout退出系统!;break;default:cout没有此选项!ch;void menu()cout*endl;cout* 1.输入 *endl;cout* 2.添加 *endl;cout* 3.删除 *endl;cout* 4.修改 *endl;cout* 5.查询 *endl;cout* 6.显示全部 *endl;cout* 0.退出 *endl;cout*endl;