C++课程设计报告 学籍管理系统.docx

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

C++课程设计报告 学籍管理系统.docx

《C++课程设计报告 学籍管理系统.docx》由会员分享,可在线阅读,更多相关《C++课程设计报告 学籍管理系统.docx(42页珍藏版)》请在冰点文库上搜索。

C++课程设计报告 学籍管理系统.docx

C++课程设计报告学籍管理系统

 

南京航空航天大学

 

《面向对象程序设计语言》课程设计报告

 

学籍管理系统

 

学号:

姓名:

日期:

 

十二、数据测试7

 

一、需求分析

Ø学籍管理现状

1、目前国内大中专院校众多,在校的学生人数占据了社会人口很大一部分,是社会群体中的新生力量;

2、对学生学籍的管理是各大院校日常管理中不可忽视的一个重要环节;

3、随着计算机等高新科技的发展,对学籍的管理早已不能仅仅满足于纸质文件。

因此,开发出一套计算机学生学籍管理系统显得很有必要。

Ø本系统存在的价值

1、满足了各大院校对学籍管理的强烈要求;

2、力图用最少的代码完成最多的功能,代码简洁没有冗余;

3、系统操作简便明了,根据提示即可进行简便常用的日常学籍管理;

4、占用资源少、需求大、简便易操作,多彩的可视化界面。

综合以上众多优势,证明了本系统存在的价值。

Ø选择C++的理由

C++为了解决程序设计的复杂性,美国贝尔实验室于1980年开始研制一种“带类”的C,到1983年才正式命名为C++。

C++语言吸收了C和Simula67的精髓,具有C无可比拟的优越性。

C++结构清晰、易于维护、已于拓展,同时又不失效率。

(节选自《C++简明教程》(皮德常),电子工业出版社)

综合以上优点,我们选定C++为本次系统的程序设计语言

二、程序的主要功能

1、添加功能:

添加学生的基本信息,包括姓名,学号,性别,年龄,身份证号码,籍贯,班级,学分,绩点

2、删除功能:

按学号对学生的信息进行删除

3、显示功能:

显示所有学生的详细信息

4、查找功能:

选择按照姓名或学号查找学生并显示其详细信息

三、程序运行平台

VS2012

四、系统总框架图

***************************学籍管理系统包含两个子系统*****************

五、程序类的说明

(1).ClassInfo//学生信息Info类的声明

{

public:

Info();//构造函数

Info(Info&obj);//拷贝构造函数

voidsetP1(double);

voidsetP2(double);

voidsetCla(int);

voidsetNumber(int);

voidsetAge(int);

voidsetName(string);

voidsetSex(string);

voidsetId(string);

voidsetPlace(string);//类中各数据的设置函数

doublegetP1();//获取学分

doublegetP2();//获取绩点

intgetCla();//获取班级

intgetNumber();//获取学号

intgetAge();//获取年龄

stringgetName();//获取姓名

stringgetSex();//获取性别

stringgetId();//获取身份证号码

stringgetPlace();//获取籍贯

friendofstream&operator<<(ofstream&output,Info&ToT);//重载输出文件流操作符

friendifstream&operator>>(ifstream&input,Info&ToT);//重载输入文件流操作符

};

(2).ClassStu//stu类的声明

{

public:

Stu();//构造函数

voidadd();//添加记录的函数

voiddel();//删除记录的函数

voidsearch();//查找记录的函数

voidshow();//显示记录的函数

};

(3).ClassCla//班级管理子系统类的声明

{

public:

voidshowCla();//显示全部班级的函数

voidshowStu();//显示某班学生的函数

voidshowStuInfo();//显示某班学生的详细信息的函数

voidshowGra();//显示某班成绩的函数

voidshowSort();//显示某班成绩排序的函数

};

(4).ClassGra//成绩管理子系统类的声明

{

public:

voidGhigh();//查询学分高于某值的学生的函数

voidGlow();//查询学分低于某值的学生的函数

voidPhigh();//查询绩点高于某值的学生的函数

voidPlow();//查询绩点低于某值的学生的函数

voidsort();

};

(5).ClassMenu//主菜单类的声明

{

public:

voidmainmenu();//学籍管理系统主菜单函数

voidexitmenu();//退出学籍管理系统的函数

voidclassmenu();//班级管理子系统菜单函数

voidgrademenu();//成绩管理子系统菜单函数

};

 

**************************共五个类************************

 

六、模块分析

1.添加模块

系统将提示用户输入新添加的学生的信息,储存在文件中

2.查找模块

首先由用户输入要查找的学生姓名或学号,然后系统用查找函数查找,然后系统就调用输出函数,输出所查找的学生资料。

3.显示模块

显示模块将输出所有学生的详细信息。

4.删除模块

根据用户输入的学号删除相应学生信息。

5.班级管理子系统

1.显示全部班级

2.查询某班学生

3.查询某班学生详细信息

4.查询某班成绩信息

5.查询某班成绩排序

6.退出子系统

6.成绩管理子系统

1.查询学分高于某值的学生

2.查询学分低于某值的学生

3.查询绩点高于某值的学生

4.查询绩点低于某值的学生

5.所有学生成绩排序

6.退出子系统

七、比较有特色的函数

1.排序

voidqsort(Infob[],intl,intr)

{

inti,j;

doublemid1,mid2;

Infox;

i=l;j=r;

mid1=(b[(l+r)>>1].getP1());

mid2=(b[(l+r)>>1].getP2());

do{

while(b[i].getP1()

while(b[j].getP1()>mid1||b[j].getP2()==mid2&&b[j].getP2()>mid2)j--;

if(i<=j)

{

x=b[i];b[i]=b[j];b[j]=x;

i++;j--;

}

}while(i<=j);

if(i

if(j>l)qsort(b,l,j);

}

2.按照姓名or学号查找的函数

voidStu:

:

search()

{

strings;/*记录输入的姓名*/

inti,num;/*记录输入的学号*/

ifstreamin("code.dat");

cout<<"\t\t\t记录查询可以按照以下两种方式进行\n\n"<

cout<<"\t\t\t按照姓名查询请按1,按照学号查询请按2:

"<

cin>>i;

if(i==1)

{

cout<<"\t\t\t请输入学生姓名:

"<

cin>>s;

处理姓名--学号两种方式

}

if(i==2)

{

cout<<"\t\t\t请输入学生学号:

"<

cin>>num;

}

while(!

in.eof())

{

in>>one;

if(i==1)

{

if(one.getName()==s)

按照姓名查找并输出

{

cout<<"\t学号:

"<

"<

"<

<<"\t年龄:

"<

"<

"<

<<"\t班级:

"<

"<

"<

cout<<"\t-------------------------------------------------------------------------"<

}

continue;

}

if(i==2)

{

if(one.getNumber()==num)

{

cout<<"\t学号:

"<

"<

"<

<<"\t年龄:

"<

"<

"<

<<"\t班级:

"<

"<

"<

cout<<"\t---------------------------------------------------------------------------"<

}/*按照学号查找并输出*/

continue;

}

}

in.close();

cout<<"\t\t\t按任意键继续......"<

cin.ignore();

getchar();

}

八、存在的不足与对策

欠缺对输入异常的处理,当所输入数据不符合要求时系统出现错误。

运行程序时严格按照提示输入信息。

九、程序源代码

#include"Stu.h"

#include"Menu.h"

#include"Cla.h"

#include"Gra.h"

#include

usingnamespacestd;

intmain()

{

Menua;

Stub;

Claz;

Grazz;

intx,y;

charc;

ofstreamout("code.dat");

out.close();

while

(1)

{

a.mainmenu();

cin>>x;

switch(x)

{

case1:

b.add();

while

(1)

{

cout<<"是否继续添加记录(y/n)?

";

cin>>c;

if(c=='y')b.add();

elsebreak;

}//添加记录

break;

case2:

b.search();break;//查找记录

case3:

b.del();break;//删除记录

case4:

b.show();break;//显示记录

case5:

{

while

(1)

{

a.classmenu();

cin>>y;

switch(y)

{

case1:

z.showCla();break;

case2:

z.showStu();break;

case3:

z.showStuInfo();break;

case4:

z.showGra();break;

case5:

z.showSort();break;

case6:

break;

}

if(y==6)break;

}

break;

}//进入班级管理子系统

case6:

{

while

(1)

{

a.grademenu();

cin>>y;

switch(y)

{

case1:

zz.Ghigh();break;

case2:

zz.Glow();break;

case3:

zz.Phigh();break;

case4:

zz.Plow();break;

case5:

zz.sort();break;

case6:

break;

}

if(y==6)break;

}

break;

}//进入成绩管理子系统

case7:

a.exitmenu();break;//退出主程序

}

}

}***************************以上为主程序**************************

*****************************以下为界面的实现程序************************

voidMenu:

:

mainmenu()

{

cout<<"\n\n\n\t\t\t★★★★★学籍管理系统★★★★★\n\n\n";

cout<<"\t\t※※※※※※※※※※※※※※※※※※※※※※※\n";

cout<<"\t\t※1.添加记录※\n";

cout<<"\t\t※2.查询记录※\n";

cout<<"\t\t※3.删除记录※\n";

cout<<"\t\t※4.显示记录※\n";

cout<<"\t\t※5.☆班级管理※\n";

cout<<"\t\t※6.☆成绩管理※\n";

cout<<"\t\t※7.退出系统※\n";

cout<<"\t\t※※\n";

cout<<"\t\t※※※※※※※※※※※※※※※※※※※※※※※\n";

cout<<"\t\t\t请选择(1,2,3,4,5,6,7);";//主界面

}

voidMenu:

:

classmenu()

{

cout<<"\n\n\n\t\t\t★★★★★班级管理子系统★★★★★\n\n\n";

cout<<"\t\t※※※※※※※※※※※※※※※※※※※※※※※\n";

cout<<"\t\t※1.显示全部班级※\n";

cout<<"\t\t※2.查询某班学生※\n";

cout<<"\t\t※3.查询某班学生详细信息※\n";

cout<<"\t\t※4.查询某班成绩信息※\n";

cout<<"\t\t※5.查询某班成绩排序※\n";

cout<<"\t\t※6.退出子系统※\n";

cout<<"\t\t※※\n";

cout<<"\t\t※※※※※※※※※※※※※※※※※※※※※※※\n";

cout<<"\t\t\t请选择(1,2,3,4,5,6);";//子系统界面

}

voidMenu:

:

grademenu()

{

cout<<"\n\n\n\t\t\t★★★★★成绩管理子系统★★★★★\n\n\n";

cout<<"\t\t※※※※※※※※※※※※※※※※※※※※※※※\n";

cout<<"\t\t※1.查询学分高于某值的学生※\n";

cout<<"\t\t※2.查询学分低于某值的学生※\n";

cout<<"\t\t※3.查询绩点高于某值的学生※\n";

cout<<"\t\t※4.查询绩点低于某值的学生※\n";

cout<<"\t\t※5.所有学生成绩排序※\n";

cout<<"\t\t※6.退出子系统※\n";

cout<<"\t\t※※\n";

cout<<"\t\t※※※※※※※※※※※※※※※※※※※※※※※\n";

cout<<"\t\t\t请选择(1,2,3,4,5,6);";//子系统界面

}

*******************以下为对数据添加、查询、删除、显示的实现程序******************

Case1(添加记录),Case2(查询记录),Cas3(删除记录),Case4(显示记录)

#include"Info.h"

Info:

:

Info()//构造函数

Info:

:

Info(Info&obj)//拷贝构造函数

voidInfo:

:

setP1(doublea)

voidInfo:

:

setP2(doublea)

voidInfo:

:

setCla(inta)

voidInfo:

:

setNumber(inta)

设置数据

voidInfo:

:

setName(stringa)

voidInfo:

:

setAge(inta)

voidInfo:

:

setSex(stringa)

voidInfo:

:

setPlace(stringa)

voidInfo:

:

setId(stringa)

intInfo:

:

getNumber()

intInfo:

:

getAge()

stringInfo:

:

getName()

获取数据

stringInfo:

:

getSex()

stringInfo:

:

getId()

intInfo:

:

getCla()

doubleInfo:

:

getP1()

doubleInfo:

:

getP2()

stringInfo:

:

getPlace()ofstream&operator<<(ofstream&output,Info&ToT)

{

output<

<

<

<<"\n"<

returnoutput;

}//重载<<操作符

ifstream&operator>>(ifstream&input,Info&ToT)

{

intnumber;

intage;

doublepoint1;

doublepoint2;

intcla;

stringname;

stringsex;

stringid;

stringplace;

input>>number>>name>>sex>>age>>id>>place>>point1>>point2>>cla;

ToT.setNumber(number);

ToT.setName(name);

ToT.setSex(sex);

ToT.setAge(age);

ToT.setId(id);

ToT.setPlace(place);

ToT.setCla(cla);

ToT.setP1(point1);

ToT.setP2(point2);

returninput;

}//重载>>操作符

 

***************以下为班级管理子系统的实现程序***********

voidCla:

:

showCla()

{

intf[1000];

inti,flag;

f[0]=0;

ifstreaminput("code.dat");

while(!

input.eof())

{

flag=0;

input>>a;

if(input.fail())break;

for(i=1;i<=f[0];i++)

if(f[i]==a.getCla())

{

flag=1;

break;

}

if(!

flag)

{

f[0]++;

f[f[0]]=a.getCla();

}

}

input.close();

cout<

cout<<"所录入的班级共:

"<

cout<

for(i=1;i<=f[0];i++)

cout<

cout<

cout<<"按任意键继续......"<

cin.ignore();

getchar();

***************************以上为显示班级的程序***************************

voidCla:

:

showStu()

{

inti,num,all=0;;

ifstreaminput("code.dat");

cout<<"--------------------------------------------------------------"<

cout<

cout<<"请输入您想查询的班级号:

"<

cin>>num;

cout<

cout<

cout<<"该班级所包含的学生有:

"<

cout<

cout<

while(!

input.eof())

{

input>>a;

if(a.getCla()==num)

{

all++;

cout<<"学号:

"<

"<

}

}

input.close();

cout<

cout<

cout<<"该班级共有学生数为:

"<

cout<

cout<

cout<<"--------------------------

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

当前位置:首页 > 医药卫生 > 基础医学

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

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