招生管理系统文档格式.docx

上传人:b****2 文档编号:5815612 上传时间:2023-05-05 格式:DOCX 页数:74 大小:365.98KB
下载 相关 举报
招生管理系统文档格式.docx_第1页
第1页 / 共74页
招生管理系统文档格式.docx_第2页
第2页 / 共74页
招生管理系统文档格式.docx_第3页
第3页 / 共74页
招生管理系统文档格式.docx_第4页
第4页 / 共74页
招生管理系统文档格式.docx_第5页
第5页 / 共74页
招生管理系统文档格式.docx_第6页
第6页 / 共74页
招生管理系统文档格式.docx_第7页
第7页 / 共74页
招生管理系统文档格式.docx_第8页
第8页 / 共74页
招生管理系统文档格式.docx_第9页
第9页 / 共74页
招生管理系统文档格式.docx_第10页
第10页 / 共74页
招生管理系统文档格式.docx_第11页
第11页 / 共74页
招生管理系统文档格式.docx_第12页
第12页 / 共74页
招生管理系统文档格式.docx_第13页
第13页 / 共74页
招生管理系统文档格式.docx_第14页
第14页 / 共74页
招生管理系统文档格式.docx_第15页
第15页 / 共74页
招生管理系统文档格式.docx_第16页
第16页 / 共74页
招生管理系统文档格式.docx_第17页
第17页 / 共74页
招生管理系统文档格式.docx_第18页
第18页 / 共74页
招生管理系统文档格式.docx_第19页
第19页 / 共74页
招生管理系统文档格式.docx_第20页
第20页 / 共74页
亲,该文档总共74页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

招生管理系统文档格式.docx

《招生管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《招生管理系统文档格式.docx(74页珍藏版)》请在冰点文库上搜索。

招生管理系统文档格式.docx

硬件:

具有网络连接设备的PC机或笔记本电脑;

最低配置:

要求内存大于128M,硬盘大于1G。

招生管理系统:

任务提出者:

付鹏、孙超、李文聪、黎凯

开发者:

用户:

学校招生负责人、老师、学生

二、程序分析

2.1程序流程图

流程图一:

主函数:

main()-----主函数调用

图2.11程序起始时的界面

*******************功能:

通过用户判断是否是第一次使用该系统来选择是否初始化;

而后进入系统。

(调用函数welcome)***********************

1.通过设定switch()函数,实现选择功能运用。

2.通过return退出程序

返回

图2.12身份选择界面

图2.13学生通道主菜单

图2.14教职工通道主界面

图2.15管理员通道主界面

2.2任务分工

本次大作业我组成员分工明细,具体安排如下:

付鹏负责编写排序和录入函数,孙超负责编写界面及文件,李文聪负责处理数据,黎凯负责编写文档和ppt。

三、技术路线

3.1总体方案

3.1.1采用的软件及开发平台

在WindowsXP的环境下,采用的是Microsoft公司的VisualC++作为开发平台。

利用面向对象的思想实现一个招生的管理系统,具体使用了:

体现OOP的抽象、封装、继承、多态4种关键技术构造了基于人们生活状况的习惯建立的个人信息联系网,使一个人的联系网更加方便,快捷,清晰。

3.1.2总体方案

1、通过设置3个基类(人类、分数类、志愿类)构造出学生类。

2、编写初始化函数用于构建起始时的数据,并将其存入students.txt中。

3、根据不同的需求设置了3种进入系统的身份(学生、教职工、管理员),3种身份的用户拥有不同的权限。

4、对于学生通道,可以通过准考证号在初始化构建的数据文件中查找相应的位置,如果不存在,输出没有该学生信息。

如果存在,将其记录在一个学生类构造的对象中,通过用户的选择查找相应的信息。

5、对于教职工通道,可以通过教职工密码进入,初始密码为88888888,。

进入后,教师可以查看相应专业的全部学生信息,且学生信息按降序输出。

同时,教师也能通过准考证号查询某个学生的详细信息,包括姓名、年龄、性别、籍贯、语文成绩、数学成绩、综合成绩、英语成绩、总分以及其录取情况。

6、对于管理员通道,用于管理教师通道和管理员本身的权限。

通过设置选择设置不同人物角色的密码。

以上基类和两个派生类之间的关系如下图所示:

基类和派生类之间的关系:

类说明:

/********************************基类****************************/

/----------------------------------------------定义人类-------------------------------------/-

类名:

person

成员变量:

charName[10];

//姓名

intAge;

//年龄

charSex;

//性别

charProvince[15];

//省份

成员函数:

person(charname[],intage,charsex,charprovince[]);

//构造函数用于初始化

char*Getname(){returnName;

}//返回姓名

intGetage(){returnAge;

}//返回年龄

charGetsex(){returnSex;

}//返回性别

char*Getpro(){returnProvince;

}//返回籍贯

/---------------------------------------------定义分数类------------------------------------/

score

intEnglish;

//英语成绩

intMath;

//数学成绩

intZonghe;

//综合科成绩

intChinese;

//语文成绩

intTotal;

//总和

score(int,int,int,int);

//构造函数用于初始化

intGeteng(){returnEnglish;

}//返回英语成绩

intGetmath(){returnMath;

}//返回数学成绩

intGetzh(){returnZonghe;

}//返回综合成绩

intGetchi(){returnChinese;

}//返回语文成绩

intGettotal(){returnTotal;

}//返回总成绩

/-----------------------------------------定义志愿类-----------------------------------------/

类名application

charFirst[10];

//第一志愿

charSecond[10];

//第二志愿

charThird[10];

//第三志愿

application(charfirsh[10],charsecond[10],charthird[10])//构造函数用于初始化

/*******************************派生类***************************/

student

charNumber[20];

//定义准考证号

student(char,char,int,char,char,int,int,int,int,char,char,char)//构造函数

char*Getnum(){returnNumber;

}//返回准考证号

voidprint()//输出学生类中所有数据成员

主要函数说明

/****************************排序*****************************/

函数名:

sort

函数返回类型:

void

函数所含参数:

函数功能:

对学生信息按成绩从高到底排序

函数实现步骤:

一、从文件中读出一个学生记录,存放在s中

二、从顺序表的最后开始查找,如果比s小,则将其向后移一个单元

三、如果总成绩与s相同,则按英语、数学、综合、语文成绩排名

四、重复1~3的步骤,直到读到文件的末尾

/*******************************录取*****************************/

admit1admit2admit3

void

函数功能:

以排好序得到的文件为基础,按照某种顺序将其分类放入4个文件中。

一、建立7个文件,分别对应于计算机专业、管科专业、信管专业、信计专业、未被第一志愿录取、未被第二志愿录取以及未被录取的学生信息。

二、设置每个专业最多录取人数。

三、由于文件已经是降序排列,查找比对每个学生中的Gerfirst(),如果其专业未录满,则继续录取,直到录完为止。

当文件从头扫描到尾后,结束第一志愿的录取工作。

四、从第一志愿未录取的学生中,查找比对每个学生的中Getsecond(),如果其专业未录满,则继续录取,直到录完为止。

当文件从头扫描到尾后,结束第二志愿的录取。

五、从第一志愿未录取的学生中,查找比对每个学生的中Getsecond(),如果其专业未录满,则继续录取,直到录完为止。

六、得到的tec_student.txtinfmana_student.txtinfcom_student.txtmanatec_student.txt分别对应于已经排好序了的且被相应专业录取了的计算机专业学生、信管专业学生、信计专业学生、管科专业学生。

/****************************按准考证查找****************************/

函数名称:

search_lq(charnum[])

void

charnum[20]学生准考证号

实现从tec_student.txtinfmana_student.txtinfcom_student.txtmanatec_student.txt四个文本文件中找到文件中的学生记录与所查询记录信息相符的学生信息,显示录取与否的结果。

实现步骤:

分别循环从tec_student.txt、xg_student.txt、gk_student.txt、xj_student.txt文件中寻找符合信息的学生记录,找到后输出该学生被哪个专业录取,如果没有找到则输出没有被录取的语句

四、测试报告

4.1阶段测试

在程序基本设计好的时候,我们对整个程序进行了一次比较系统的测试,对各个系统的主要功能也都用数据进行了检测,以确保程序的正确性。

主要测试内容如下:

1、运行程序,将得到如下界面,根据需求决定是否进行初始化。

2、如果是第一次运行则需要键入“1”,对程序进行初始化

3、直接进入系统,将得到身份选择界面

4、选择进入学生通道

如果不存在该学生信息,将得到

如果存在该学生信息,将得到

键入“1”,查询总排名

键入“2”,查询录取情况

5、教师通道

输入默认密码“88888888”

键入“1”,选择专业

选择计算机专业,其他专业同理

老师查询某个学生信息

6、返回主菜单,进入管理员通道

成功键入密码,默认值为“66666666”

键入“1”,修改教师登陆密码

前后输入密码不一致时

原始密码输入错误时

成功修改密码

测试密码,原始密码88888888对教师通道无效,新修改的密码1212成功进入教师通道

对于修改管理员密码,同理。

五、个人小结

5.1黎凯个人小结:

通过这次大作业,我有了一个很大的收获,从简单的C++编程到系统的功能实现。

在这个学期的C++学习和做练习都显得很简单,但是对这系统功能实现则需要考虑类的各种功能结合,就需要对类功能非常熟悉才能编程顺利。

在做大作业过程中我又重新对C语言结构体和C++类有了进一步认识。

我认识到了认真细致的重要性。

一个程序,特别是一个大的、复杂的程序,尤其要求程序编写人员认真细致。

一个小小的失误,一个小小的符号都可以使我们所编写的程序出现错误,不管是编译错误还是运行结果错误,而由于程序代码数量的庞大,往往会使我们如大海捞针般无法正确的找到错误所在。

本次我进行招生管理系统的程序编写时,有好几次就是一些小小的符号错误而使整个程序运行得不到正确的结果,例如,进行编写对学生由总分、英语、数学、综合和语文进行从高到低进行排序的sort函数时,由于忽略了if判断条件的短路,而导致程序一度无法继续运行。

最终不等不花大量的时间对程序进行一步一步的演算,考虑各种因素才找到程序的错误所在。

一个小小的错误就会使我们浪费大量的时间去寻找错误,很大的影响了编写程序的效率,可见认真细致的重要性。

通过这次大作业,我也感受到合作力量的伟大,大家相互交流确实能减少很多弯路,做大作业的兴趣也提升了很大。

同学之间的感情也更加浓厚,小组每个成员对分析问题能力加强,编程也得到了很大的锻炼。

这是我第一次做大作业感觉很好,也很顺利,良好的开始是成功的一半,相信以后会更加一帆风顺!

5.2李文聪个人小结

这次大作业对于我来说是最好的礼物,他让我对C++有了更近一步的了解,而不是像以前一样局限在表面的认识。

其实我学的专业课可以用垃圾来形容,只会一点简单的程序,对于C++平时的练习都会存在不理解,不知怎么动手,所以对于专业也没有同学们那么感兴趣,有的时候甚至感到彷徨!

我真的非常感谢老师布置了这次大作业,让我对计算机,对程序开发不在反感而是有兴趣去学习去动手。

通过这次大作业我也认识到,大型程序的开发与设计,是在统一的标准下,先确定程序的目标,分模块,分步骤一步步的实现。

每个函数都有它独特的作用,即使每个子涵数都正确无误,但放在一起时还是会出错,一个很小的错误很有可能引出几个甚至十几个错误,变量的类型都要严格的统一,输入原始数据时一个分神就有可能出错,就要在别人的帮助下去改正,耐心细心一个都不能少,一口吃不了一个胖子,一顿也饿不死一个瘦子。

有耐心又细心不一定成事,但没有耐心细心一定失败。

对于C++的强大与方便是不用争辩的从类的继承、组合,到函数的调用、组合,他为用户提供了简单而实际的操作平台。

当然,在这过程中我是错误百出。

头文件的调用,文件的读、写等等,都是我不懂的地方,感觉自己真的很欠缺,对于以前的专业课程真的知之甚少,基本少没有记住多少,更别说是理解与掌握,课件学习是一个积累与不断融合的过程,基础要是必不可少的。

幸好有同学的帮忙,给我最多帮助,还是我没组的付鹏、孙超,真的应该好好感谢他们。

真的让我认识到,大型程序不仅仅是几个函数的组合,团结不是几个人聚在一起各行其是,团队的精神是团结,团结的精髓在交流。

作业完成时的喜悦有同班的分享才是最好的快乐。

每个人对于这次的招生管理大作业都有不同理解与认识,不同的理解与认识碰撞出的火花才会美丽。

5.3付鹏个人小结:

大作业的过程中,一开始拿到题目的时候问题在考虑一些细节的问题,越想越觉的太复杂了。

因为有太多细节要考虑进去了。

后来我们组讨论,我就觉的我们要将这个大作业先分几个模块,比如首先要抽象出所有数据类型,我们定义了人类、成绩类、志愿类、学生类,并将其之间的联系及其关系列好,学生类继承了人类、成绩类、志愿类。

再者最基本的数据类型我们已经解决了,现在我们又将其分为:

实现将学生信息按成绩排序,实现录取功能,界面的设计。

之后我们就开始分工,我是做学生信息排序与其录取功能。

在这个过程中体会太多了。

首先是可以将自己在课堂上学的c++的知识再这里真正用上派场,而且可以重新复习下那些比较重要的知识点。

这样我们各自的任务都相当明确。

在团队的合作下,大作业顺利完成了。

在这个大作业中我真正感受了c++模块化的编程,将其分为几个小模块之后,任务就更简单了。

但是在合起来的时候,又要考虑其之间的联系。

在这个方面锻炼我抽象的思维。

5.4孙超个人小结

之前已经对C++有了一次全面的复习,再通过这次的大作业,让我们对于C++面向对象的思想有了进一步的了解,特别是有关他的特性,以及封装、继承、多态和抽象的特点。

这次大作业做的比较匆忙,因为正好赶上考试周,所以挪出了部分时间前去复习,但总体还算比较满意。

在接到这次大作业的任务之后,我们小组成员就一起讨论了有关这个任务如何着手的方案,最后将该问题抽象出了几个重要的函数。

但是过程中发现这个任务可以细化到很多很多类,但是函数都大同小异,难度也不大。

所以我们组就将关键的几个写了出来,虽说看似简单,但这次的作业也使我们第一次的有了一份自己的破千行的程序,大家虽然累,但都很兴奋。

在完成任务的过程中,我们也发现了自己的不足,对于较大的程序容易混了各个函数的功能,所以对于函数,需要取一个比较好的名称方便我们理解。

在读文件时,通过一个file.eof()来判断循环会使最后一个数据多读一次,通过查找资料,最终找到了相应的解决方案!

大作业虽然已经完成了,但是我们仍觉得意犹未尽,希望以后能继续保持这份热情,再接下来的生活中能够克服更多的挑战!

附录一

参考文献

BjarnStroustrupC++程序设计语言,高等教育出版社

万常选舒蔚等C语言与程序设计方法,科学出版社

杜四春C++程序设计方法,中国水利水电出版社

附录二

源程序代码

放于ppoint.h头文件,进行封装处理

#ifndefHEADER_PPOINT

#defineHEADER_PPOINT

//定义人类

classperson{

private:

//年龄

public:

}

virtualvoidprint()=0;

//构建虚基类,方便多态函数的构造

};

//定义分数类

classscore

{

//英语成绩

//语文成绩

//构造函数用于初始化

//定义志愿类

classapplication

application(charfirsh[10],charsecond[10],charthird[10]);

//构造函数用于初始化

char*Getfirst(){returnFirst;

char*Getsecond(){returnSecond;

char*Getthird(){returnThird;

//以人类、分数类、志愿类为基类构造学生类

classstudent:

publicperson,publicscore,publicapplication

student(charnumber[20]="

***"

charname[10]="

intage=0,charsex='

*'

charprovince[15]="

intenglish=0,intmath=0,intzonghe=0,intchinese=0,charfirst[10]="

charsecond[10]="

charthird[10]="

);

voidprint();

//输出学生类中所有数据成员

#endif//HEADER_PPOINT

将全局变量放入data.h中,用于数据封装

#defineMAXSIZE130

//定义全局变量(关于各专业所招人数)

inttechnology=30;

intxinguan=30;

//计算机专业和信管专业规定所招名额

intguanke=20;

intxinji=20;

//管科专业和信计专业规定所招名额

//定义全局变量,用于记录密码

chartea_password[10]="

88888888"

;

//设置教职工初始密码

charsup_password[10]="

66666666"

//设置管理员初始密码

typedefstruct{

studentdata[MAXSIZE];

int

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2