学生管理系统报告C++文档格式.docx

上传人:b****6 文档编号:21152226 上传时间:2023-01-28 格式:DOCX 页数:45 大小:330.88KB
下载 相关 举报
学生管理系统报告C++文档格式.docx_第1页
第1页 / 共45页
学生管理系统报告C++文档格式.docx_第2页
第2页 / 共45页
学生管理系统报告C++文档格式.docx_第3页
第3页 / 共45页
学生管理系统报告C++文档格式.docx_第4页
第4页 / 共45页
学生管理系统报告C++文档格式.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

学生管理系统报告C++文档格式.docx

《学生管理系统报告C++文档格式.docx》由会员分享,可在线阅读,更多相关《学生管理系统报告C++文档格式.docx(45页珍藏版)》请在冰豆网上搜索。

学生管理系统报告C++文档格式.docx

三、课程设计工作量

四、课程设计工作计划

2011年6月13日,指导教师讲课,学生根据题目准备资料;

2011年6月14日、15日、16日,总体方案设计;

完成程序模块并通过独立编译;

2011年6月17日~2011年6月24日,将各模块集成为一个完整的系统,并录入足够的数据进行调试运行;

同时撰写报告。

2011年6月24日,验收;

提交课程设计报告。

指导教师签章:

教研室主任签章

面向对象程学设计课程设计指导教师评语与成绩

指导教师评语:

课程设计表现成绩:

课程设计验收成绩:

课程设计报告成绩:

课程设计总成绩:

指导教师签章

2011年6月27日

第1章需求分析

1.1性能需求

程序开发环境:

MicrosoftVisualC++6.0

1.2功能需求

我们组研究的是适用于高校的学生成绩管理系统。

该系统实现的功能:

1.录入信息

2.删除信息

3.修改信息

4.插入信息

5.信息显示

6.清空信息

7.信息查询

8.退出系统

创建结构体:

Stu

结构体成员:

Num学号

Name名字

Sex性别

Class班级

English英语

Math数学

CC++

创建类:

Student学生类

Teacher教师类

成员函数:

Save存储信息

Add录入信息

Display显示信息

Mana管理类

Mima密码

外加其他界面函数;

程序涉及到的知道点:

①类②构造函数③指针④switch语句⑤while语句⑦动态内存分配⑥if语句·

·

第2章概要设计

2.1功能模块设计

学生管理系统

图1模块设计图

一个方便学校使用的学生管理系统,这个系统的功能比较完善。

使用类内函数和主函数中的switch语句实现多分支选择结构,进而实现该系统的各项功能。

该系统能实现8项功能。

设计本次实验所用到的知识点有:

类、指针、数组,构造函数,for语句,switch语句、if语句、while()语句等。

2.2类的分析与设计

1.结构体Stu创建一个学生信息结构;

2.类Student:

主要功能是给每一个学生添加信息,用于结构体的数据项赋值;

3.类Teacher:

通过继承Student类类实现,外加用于各个动作功能的具体实现

1)添加信息Add()函数

2)修改信息Modi()函数

3)删除信息Delete()函数

3)清空信息Clear()函数

4)输入信息In()函数

5)储存信息Save()函数

6)显示信息Display()函数

4.类Mana:

内有Mima数据成员,用于教师的登录验证。

*注意:

学生只有信息查询和查看功能

第3章详细设计

3.1信息录入功能模块设计

3.1.1详细功能描述

该部分用来添加学生相关信息

3.1.2设计思想:

在主菜单中选定该项,然后系统会要求用户录入信息。

在所有信息录入完毕之后,系统自动将信息保存至文件,以便以后调用。

3.1.3程序流程图:

图2信息录入流程

3.1.4主要代码:

voidTeach:

:

Add()

{

intn;

inti,j;

charN;

StuA_Xinxi[100];

while(N!

='

n'

&

&

N!

N'

{

N='

t'

;

ifstreamf1("

f:

//Xinxi.txt"

);

cout<

<

"

请输入添加信息:

endl;

for(n=0;

!

f1.eof();

n++)

f1.read((char*)&

A_Xinxi[n],sizeof(Stu));

请输入学号:

"

cin>

>

A_Xinxi[n-1].Num;

请输入姓名:

A_Xinxi[n-1].Name;

请输入性别:

cin>

A_Xinxi[n-1].Sex;

请输入成绩:

A_Xinxi[n-1].Class;

请输入年龄:

A_Xinxi[n-1].English;

请输入民族:

A_Xinxi[n-1].Math;

请输入家庭地址:

A_Xinxi[n-1].C;

for(i=0;

i<

n-1;

i++)

for(j=0;

j<

n-1-i;

j++)

if(A_Xinxi[j].Num>

A_Xinxi[j+1].Num)

{

A_Xinxi[99]=A_Xinxi[j];

A_Xinxi[j]=A_Xinxi[j+1];

A_Xinxi[j+1]=A_Xinxi[99];

}

ofstreamf2("

ios:

trunc);

=n-1;

f2.write((char*)&

A_Xinxi[i],sizeof(Stu));

f2.close();

是否继续添加?

y\\n"

cin>

N;

}

}

3.2信息查询功能模块设计

3.2.1详细功能描述

该部分是用来查找已经输入过的学生信息。

3.2.2设计思想:

查找的方法分为两种:

①通过学号查找②通过姓名查找。

如果输入的不是以上的关键字的话,屏幕上就会出现“无此信息”这几个字,提醒用户输入出现了错误,可重新输入。

该部分通过if语句和switch语句实现其功能。

3.2.3程序流程图:

图3信息查询流程

3.2.4主要代码:

Sear()

ints_Num;

intselect;

charName[10];

intx;

search_Menu();

while(select!

=3)

{

请输入选择:

select;

if(select==1)

{

cout<

cin>

s_Num;

ifstreamf1("

for(x=0;

s_Num!

=Xinxi.Num&

x++)

{

f1.seekg(x*sizeof(Stu),ios:

beg);

f1.read((char*)&

Xinxi,sizeof(Xinxi));

if(f1.eof())

cout<

无此信息"

}

if(s_Num==Xinxi.Num)

Save();

f1.close();

}

elseif(select==2)

cin>

Name;

*Name!

=*Xinxi.Name&

x<

50&

if(*Name==*Xinxi.Name)

elseif(select==3)

break;

elsecout<

错误!

请正确输入(1~3)"

3.3信息修改功能模块设计

3.3.1详细功能描述:

该部分是用来修改已录入的学生的数据信息。

3.3.2设计思想:

修改的方法分为两种:

①通过学号修改②通过姓名修改。

如果输入的不是以上的关键字的话,屏幕上就会出现“无此信息”这几个字

该部分通过if语句、switch语句和while语句实现其功能。

3.3.3程序流程图:

图4信息修改流程图

3.3.4主要代码:

Modi()

intr_select=0;

charName[10]={7,8,9};

intL=0;

Replace_Menu();

while(r_select!

=3)

r_select;

N=0;

while(N!

r_select!

ifstreamf1("

if(r_select==1)

{

cout<

cin>

for(x=0;

{

f1.seekg(x*sizeof(Stu),ios:

f1.read((char*)&

if(f1.eof())

{

cout<

L=1;

}

}

if(s_Num==Xinxi.Num)

Save();

}

if(r_select==2)

cin>

if(*Name==*Xinxi.Name)

if(r_select>

3)cout<

请正确输入"

f1.close();

if(!

L&

(r_select==1||r_select==2))

set_Xinxi();

ofstreamf1("

out|ios:

in);

f1.seekp((x-1)*sizeof(Stu),ios:

f1.write((char*)&

get_Xinxi(),sizeof(get_Xinxi()));

f1.close();

L=0;

cout<

是否继续修改信息?

(Y\\N)"

cin>

if(r_select==3)break;

3.4信息清空功能模块设计

3.4.1详细功能描述:

该模块主要功能为清空所有输入信息。

3.4.2设计思想:

用TRUCK方式打开文件,自动将其中文件字节数归零,达到内容清空的目的。

3.4.3程序流程图:

图5清空流程

3.4.4主要代码:

Clear()

ofstreamf1("

f1.close();

cout<

清除完毕!

3.5信息删除功能模块设计

3.5.1详细功能描述:

该模块主要用来删除不用的学生相关信息。

3.5.2设计思想:

读文件,找到相关信息所在的文件指针,并记录所有信息。

然后写入将文件清空,并写入除了要删除信息外的所有信息。

3.5.3程序流程图:

图6删除信息流程

3.5.4主要代码:

Dele()

StuD_Xinxi[100];

intD_n;

intD_max;

Dele_Menu();

ifstreamf1("

读取信息中"

for(D_n=0;

D_n++)

f1.read((char*)&

D_Xinxi[D_n],sizeof(Stu));

D_max=D_n-2;

ofstreamf2("

ios:

trunc);

删除信息中"

D_n<

=D_max;

{

if(D_n==(x-1))

continue;

f2.write((char*)&

f2.close();

删除成功"

是否继续删除信息?

3.6信息插入功能模块设计

3.6.1详细功能描述:

该模块主要功能是按照学号的大小对信息进行插入。

3.6.2设计思想:

读出所有信息,然后接受要存入的信息,用冒泡法对学号进行排序,然后按顺序存入信息。

3.6.3程序流程图:

图7信息插入流程

3.6.4主要代码:

3.7信息显示功能模块设计

3.7.1详细功能描述:

该模块的主要功能是按学号显示所有录入了的学生的信息。

3.7.2设计思想:

打开文件,读出所有信息,将信息按学号排序,然后显示信息。

3.7.3程序流程图:

图8显示信息流程

3.7.4主要代码:

Display()

ifstreamf1("

for(n=0;

f1.read((char*)&

for(i=0;

for(j=0;

n-1-i

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

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

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1