江西理工大学通信113基于C++的学生籍贯信息记录簿设计Word文档格式.docx
《江西理工大学通信113基于C++的学生籍贯信息记录簿设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《江西理工大学通信113基于C++的学生籍贯信息记录簿设计Word文档格式.docx(26页珍藏版)》请在冰点文库上搜索。
3.3算法的实现与运行------------------------------------------------------------------------3
3.3.0建立信息链表------------------------------------------------------------------------4
3.3.1添加一个学生到数组---------------------------------------------------------------4
3.3.2输出所有学生的籍贯信息---------------------------------------------------------4
3.3.3加数组学生到文件------------------------------------------------------------------5
3.3.4显示文件中所有学生---------------------------------------------------------------5
3.3.5按学号查询---------------------------------------------------------------------------6
3.3.6按籍贯查询---------------------------------------------------------------------------6
3.3.7删除人员---------------------------------------------------------------------------------------------7
四数据结构的设计----------------------------------------------------------------8
五软件的测试与调----------------------------------------------------------------9
六课程设计心得-------------------------------------------------------------------14
七参考文献-------------------------------------------------------------------------14
八附录源程序----------------------------------------------------------------------15
1引言
学生档案管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生管理系统应该能够为用户提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:
效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
计算机已经成为我们学习和工作的得力助手:
今天,计算机的价格已经十分低廉,性能却有了长足的进步。
它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面:
首先,计算机可以代替人工进行许多繁杂的劳动;
其次,计算机可以节省许多资源;
第三,计算机可以大大的提高人们的工作效率等等。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对学生档案信息进行管理,具有手工管理所无法比拟的优点。
例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学生档案管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。
学生档案管理系统是典型的信息管理系统(MIS),其开发主要包括保密和前台应用程序的开发两个方面。
本次课程设计目的:
通过一个企业人事管理系统,使学校档案管理工作系统化、规范化、自动化,从而达到提高学校管理效率。
使学生掌握一门高级程序设计语言,了解面向对象程序设计的基本概念与方法,进而学会利用C++语言学会解决一般应用问题,并为后续的专业课程奠定程序设计基础。
系统的基本模块:
根据系统功能的要求,学生档案系统可以分为新学生档案的输入,学生档案的显示、查询和删除等模块。
2系统需求分析
2.1问题定义
项目:
学生管理应用软件。
目的:
让院校有效的管理体制学生信息,帮助学校老师掌握学生的情况。
背景:
根据当前某高校的学生管理出现的异常问题:
它浪费人力和其它资源。
因此,基于这种缺陷而制定开发这个学生管理系统软件。
2.2可行性研究
从技术方面,是通过C++来做系统的前台,来实现整系统的功能;
从操作方面,基本的录入、查询、修改等都能满足用户的需求;
此次设计没有考虑经济可行性。
经过这一阶段确定了该系统的粗略系统流程图。
可行研究阶段的目标是:
使工作人员从繁琐的填表,查表工作中解放出来;
提高工作质量,使供需双方都获得满意的结果;
促进报表,提高工作效率。
2.3需求分析
应该确定系统必须在MicrosoftVisualC++6.0的环境下实现具有添加新学生、显示全部、查询、删除、等功能的学生档案管理系统子模块(学生籍贯信息记录簿)。
其中本次课程设计实现的档案模块又分为如下子模块:
1.登陆界面:
主要是对用户权限的判断,判断是否为合法用户,是合法用户的就可以对数据进行操作。
2.新生录入:
主要是将新生信息录入到数据库中;
3.管理项目:
对学生信息进行添加、删除、查询等。
3设计流程及算法
3.1总体设计:
1.设置输入输出流及将程序由磁盘文件保存,构件类stu,其主要包括:
学号,籍贯.
2.构建无返回值main函数,输出由与程序相关操作构成的信息链表
3.根据链表设置利用if函数和循环函数将链表中的内容一一实现.
3.2详细设计:
设计流程图:
目前程序已达到的功能:
一.信息链表内容如下:
1添加一个学生到数组
2显示数组中所有学生
3加数组学生到文件
4显示文件所有学生
5按学号查询学生
6按籍贯查询学生
7/删除一个学生
8文件输入数组
0完成
二.选择相关操作请输入相对应的阿拉伯数字。
三.设置if函数使输入序号与符号所需要求相对应。
四.在if函数中,实现多分支选择结构,并实现序号与相应内容的对应关系.
3.3算法的实现与运行:
3.3.0在程序开始运行时既会出现一信息链表,按链表要求输入序号,若输入的数字不是在0-8这个范围之内则要求重新输入。
而实现该过程需要利用到if循环。
voidmain()
{
intk=-1;
while(k!
=0)
cout<
<
endl;
"
1添加一个学生到数组"
<
2显示数组中所有学生"
3加数组学生到文件"
4显示文件中所有学生"
5按学号查询学生"
6按籍贯查询学生"
7删除一个学生"
8文件输入数组"
0完成"
选择上面一个数字:
;
cin>
>
k;
if(k==1)AddStudent();
elseif(k==2)Loop();
elseif(k==3)AddToFile();
elseif(k==4)ShowFile();
elseif(k==5)FindID();
elseif(k==6)FindProvince();
elseif(k==7)Remove();
elseif(k==8)ReadFile();
elseif(k==0)printf("
完成!
\n"
);
elseprintf("
你输入了个错误的数字!
}
return;
3.3.1添加一个学生到数组:
定义字符型变量籍贯,学号。
输入相关内容,利用指针使输入的数据直接存入到内存中。
intAddStudent()
intid;
stringprovince;
学号,籍贯:
"
id>
province;
student[n].setID(id);
student[n].setProvince(province);
n++;
return0;
3.3.2输出所有学生的籍贯信息:
利用指针将数据库中与要查询的学生相对应的信息内容从数据库中调出。
其输出的方式为循环方式,设置循环条件,利用for语句,设置变量I,n,使i从0进行自加,直到i的值为n,并依次将studengt[i]的值输出,从而达到输出所有学生的学籍信息的目的。
intLoop()
inti;
显示所有学生:
for(i=0;
i<
n;
i++)
学号="
student[i].getID()<
籍贯="
student[i].getProvince()<
3.3.3加数组学生到文件,利用指针将数据库中学生的信息加入到文件中。
其输入方式为循环方式设置循环条件,利用for语句,设置变量i,n,使i从0进行自加,直到i的值为n,并依次将studengt(i)的值输入到文件中,从而达到输入所有学生的学籍信息的目的。
intAddToFile()
ofstreamoFile(fileName.c_str(),ios:
:
app);
oFile<
oFile.close();
3.3.4显示文件中所有学生,用while函数和指针将数据库中与要查询的学生相对应的信息内容从数据库中调出。
其输出的方式为循环方式,设置循环条件,利用for语句,设置变量I,n,使i从0进行自加,直到i的值为n,并依次将studengt[i]的值输出,从而达到输出所有学生的学籍信息的目的
intReadFile()
ifstreamiFile(fileName.c_str());
n=0;
while(iFile>
province)
{
}
iFile.close();
intShowFile()
id<
province<
3.3.5按学号查询:
其主要操作与按籍贯查询相似。
intFindID()
intid1,id2;
学号:
id1;
id2>
if(id1==id2)
id2<
break;
iFile.close();
3.3.6按籍贯查询:
定义一字符型数组,输入要查询学生的籍贯,利用指针和strcmp函数及for循环在数据库中寻找相应的数据,在找到后输出。
。
intFindProvince()
stringprovince1,province2;
籍贯:
province1;
province2)
if(province1==province2)
province2<
3.3.7删除人员:
定义字符型变量姓名并分配20个字节的内存空间,定义布尔型变量控制函数。
利用if函数在数据库中寻找相对应姓名的数据,找到后将其删除。
intRemove()
intid,i,j;
id;
ReadFile();
if(student[i].getID()==id)
n--;
for(j=i;
j<
j++)
student[j]=student[j+1];
SaveFile();
4数据结构的设计
数据字典:
数据字典包括以下几种类型的条目:
数据流条目--数据流条目给出某个数据流和定义,它通常是列出该数据流的各组成数据元素。
该系统中的数据流条目有:
学生基本信息=学生学号+学生籍贯
班级信息=班号+年级
逻辑结构的设计如表5.1所示:
表4.1学生基本信息结构设计
列名
数据类型
可否为空
说明
name
char[20]
NOTNULL
学生姓名
number
int
学号
bornplace
char[50]
籍贯
5软件的测试与调试
登陆界面:
1)输入1后并输入相关数据呈现的界面:
2)在第一步和第二步的基础上使用操作2后上呈现的界面:
3)在第一步,第二步的基础上使用操作3后上呈现的界面:
4)在第一步,第二步和第四步的基础上使用操作4后上呈现的界面:
5)在前几步的基础上使用操作5后上呈现的界面:
6)在前几步的基础上使用操作6后上呈现的界面:
7)在前几步的基础上使用操作7后上呈现的界面:
8)在前几步的基础上使用操作8后上呈现的界面:
9)在前几步的基础上使用操作9后上呈现的界面:
6课程设计心得
在本次课程设计中,我利用到了本学期学到的大部分知识,而在次程序中,最主要运用是在数组和类及在指针的运用方面。
同时明白只有充分的融会贯通在课堂上学会的东西并在课后积极的进行程序设计的训练,增加自己对C++程序语言的了解,并应该尽早的熟练的使用这一门语言。
通过此学期的学习我了解到了C++作为一种面向对象的程序设计语言,它支持对类的抽象。
而在此程序中,主要运用的知识为函数的循环系统,类的组成,对象成员的应用等,而访问对象中的成员可以有三种方法,通过对象名和成员运算符访问对象中的成员,通过指向对象的指针访问对象中的成员,通过对象的引用变量访问对象中的成员。
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。
因此作为二十一世纪的大学生来说掌握计算机开发技术是十分重要的。
回顾起此次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整一个星期的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,这毕竟独立做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识重新温故。
七参考文献
[1]谭浩强.《C++程序设计》.第一版.出版地:
清华大学出版社,出版年:
2004年6月。
[2]薛松、杨彬、赵栋伟等.《VisualC++编程实例》.第一版.出版地:
人民邮电出版社,出版年:
1999年8月。
[3]郑阿奇、梁敬东等.《C#程序设计教程》.第一版.出版地:
机械工业出版社,出版年:
2009年1月。
[4]丁勇,彭积云,查金旺.《学生管理系统的设计与实现》.
八附录:
源程序清单:
#include<
iostream>
string>
fstream>
usingnamespacestd;
classCStudent
private:
intID;
//学号
stringProvince;
//籍贯
public:
voidsetID(intid){ID=id;
voidsetProvince(stringprovince){Province=province;
intgetID(){returnID;
stringgetProvince(){returnProvince;
};
CStudentstudent[1000];
intn=0;
//数组学生总数
stringfileName="
students.txt"
intAddStudent();
//添加一个学生到数组
intLoop();
//显示数组中所有学生
intAddToFile();
//加数组学生到文件
intSaveFile();
//数组到文件
intShowFile();
//显示文件所有学生
intFindID();
//按学号查询学生
intFindProvince();
//按籍贯查询学生
intRemove();
//删除一个学生
intReadFile();
//文件输入数组
id2