作业Word下载.docx

上传人:b****6 文档编号:15924934 上传时间:2022-11-17 格式:DOCX 页数:25 大小:29.97KB
下载 相关 举报
作业Word下载.docx_第1页
第1页 / 共25页
作业Word下载.docx_第2页
第2页 / 共25页
作业Word下载.docx_第3页
第3页 / 共25页
作业Word下载.docx_第4页
第4页 / 共25页
作业Word下载.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

作业Word下载.docx

《作业Word下载.docx》由会员分享,可在线阅读,更多相关《作业Word下载.docx(25页珍藏版)》请在冰豆网上搜索。

作业Word下载.docx

(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计;

(2)要求在设计的过程中,建立清晰的类层次;

(3)在系统中至少要定义四个类,每个类中要有各自的属性和方法;

(4)在系统的设计中,至少要用到面向对象的一种机制。

3、创新要求:

在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。

4、写出设计说明书

(三)设计方法和基本原理

1.问题描述:

对一个有N个学生的班级,每个学生有M门课程。

该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。

.2.功能要求:

1、本系统采用一个结构体数组,每个数据的结构应当包括:

学号、姓名、M门课程名称。

2、本系统显示这样的菜单:

请选择系统功能项:

a、成绩录入

b、成绩显示

c、成绩保存

d、成绩排序

e、成绩修改(要求先输入密码)

f、成绩统计

(1)显示每门课程成绩最高的学生的基本信息

(2)显示每门课程的平均成绩

(3)显示超过某门课程平均成绩的学生人数

g、退出系统

3、执行一个具体的功能之后,程序将重新显示菜单。

4、将学生成绩保存到文件中。

(三)算法提示:

1、数据结构:

结构体类型数组。

2、数据库结构:

下表构成该系统的基本数据库。

姓名

学号

课程名称1

课程名称2

char

Char

float

(四)测试数据:

学生人数N=10

课程门数M=4

课程名:

数学、语文、英语、政治

语言课程设计报告—班级成绩管理系统

1.概要分析:

班级成绩管理系统有13种功能。

把这13个功能做成13个子函数。

在主函当数中设计一个菜单对这13个子数进行管理。

来实现对整个系统的操作。

根据课题的要求。

每一个学生的包括姓名(char)、学号(char)、M门课程的成绩(float).再加上系统功能上的要求每一学生的信息还要总分和名次等。

所以自然的想到要用结构体来定义每一个学生的信息结构。

然后用链表把它们组成一个有序的整体。

用对链表的操作来实现对所有学生信息的统一管理(成绩显示、成绩排序、成绩修改等)。

最后为了以后按照处理后的顺序保存到文件中。

.各函数的功能:

概要设计:

程序的模块组成:

主函数:

intmain()

新建函数:

STUDENT*init()

输入函数:

STUDENT*create()

显示函数:

voidprint(STUDENT*head)

删除函数:

STUDENT*delete(STUDENT*head)

按名字寻找函数:

voidlookup(STUDENT*head)

保存函数:

voidsave(STUDENT*head)

按总分排序函数:

STUDENT*sort(STUDENT*head)

计算总分和均分函数:

voidcomputer(STUDENT*h)

修改函数:

STUDENT*Modify(STUDENT*head,STUDENT*new)

按学号排序函数:

STUDENT*index(STUDENT*h)

菜单函数:

intmenu_select()

各个函数的主要功能:

输入函数:

随时输入数据。

显示系统主菜单。

显示所有学生的信息。

寻找函数:

方便学生查找自己的成绩。

删除某学生的信息。

排序函数:

按总成绩排序。

按学号排序。

插入函数:

可以插入新的信息。

保存好学生成绩,以免丢失。

统计函数:

l显示每门课程成绩最高的学生的基本信息。

l显示每门课程的平均成绩。

l显示超过某门课程平均成绩的学生人数。

课题的功能模块的划分:

开始

菜单界面

功能选择

初始化函数

输入学生信息

删除学生信息

显示学生信息

查找学生信息

按成绩排序

保存到文件

从文件读数据

插入学生成绩

分类合计

退出系统

结束.

2.详细设计

整个系统除了主函数外,另外还有14个函数,实现八大功能:

输入功能、显示功能、查找功能、排序功能、插入功能、保存功能、读取功能。

各个函数的详细设计说明分别如下:

主函数main()

利用无限次循环for(;

;

)和swithch()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。

菜单选择函数intmenu_select()

这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的九大功能,根据每个功能前面的序号进行选择。

等执行完每一个函数功能后,返回菜单。

代码设计:

初始化函数STUDENT*init()

这是一个无参函数,里面只有两个语句,它的作用是使链表初始化,使head的值为NULL和一个清屏语句。

比如:

没有这个函数的话,在你没有输入任何数据的情况下,去执行显示功能的时候会显示一些乱码!

输入记录函数STUDENT*create()这是一个无参函数,用来执行学生成绩记录的输入,当学生为@时停止输入,函数结束后,带回一个链表头的指针指向一下个学生的信息插在表头。

N-S流程图如下:

head=NULL无条件循环

指针p指向新开辟的单元

指针p是否为空

是否

输入学号p->

num

输出p->

num是否为@

内存是否

溢出输入姓名p->

name

停止for(i=0;

i<

3;

i++)

输入输入成绩

返回p->

sum=s;

菜单p->

average=(float)s/3;

显示记录函数voidprint(STUDENT*head)

这是一个不返回值的有参函数,形参为“链表头的指针”,负责对全部学生成绩记录的输出,不足之处就是不能对学生成绩进行分页显示。

算法:

先将p结点的指针指向第一个结点,将p结点(即第一个结点)的数据输出。

然后再将p结点的指针指向p指针的的指针(即下一结点),将p结点(即第一结点)的数据输出。

重复执行此步聚直到p指针指向NULL为止。

p=head,使指向第一个结点

输出p所指向的结点

p指向一下个结点

当p指的不是表尾

(六)程序

#include"

stdio.h"

stdlib.h"

string.h"

windows.h"

#defineN50

voidme();

voidopen();

voidmenu();

voidwelcome();

voidzfpx(structstu*ps,intn);

voidcz(structstu*ps,intn);

voidxg(structstu*ps,intn);

voiddel(structstu*ps,intn);

voidscan(structstu*ps,intn);

voidxhpx(structstu*ps,intn);

voidprint(structstu*ps,intn);

floatsum(structstu*ps,intn,inti);

intnumber(structstu*ps,intn,charnu[]);

staticintmount=0;

structstu

{

charname[20];

charnum[20];

charsex[5];

intage;

floatscore[7];

floataver;

floatsum;

}temp;

voidmain()

welcome();

menu();

}

voidmenu()

system("

cls"

);

open();

me();

voidme()

staticstructstust[N];

FILE*fp;

intselect,n;

printf("

\n\t\t┏━━━━━━━━━━┓\n"

\t\t┣━━学生管理系统━━┫"

\n\t\t┗━━━━━━━━━━┛\n"

\n\t\t┏━━━━━━━━━━━━━━━━━━━━━━━━┓"

\n\t\t┃¤

¤

¤

┃"

\n\t\t┃¤

┏━━━━━━━━━━┓¤

┃"

┃┏━━━━━━━━┓┃¤

┃┃⒈成绩初始化┃┃¤

┃┃⒉学生成绩排序┃┃¤

┃┃⒊查找学生成绩┃┃¤

┃┃⒋显示学生数据┃┃¤

┃┃⒌修改成绩┃┃¤

┃┃⒍删除学生信息┃┃¤

┃┃⒎保存数据┃┃¤

┃┃⒏清屏┃┃¤

┃┗━━━━━━━━┛┃¤

┗━━━━━━━━━━┛¤

\n\t\t┗━━━━━━━━━━━━━━━━━━━━━━━━┛\n"

\n\t\t请选择1~8(按其他键退出):

"

scanf("

%d"

&

select);

if(select>

=1&

&

select<

=8)

{

switch(select)

case1:

scan(st,N);

break;

case2:

loop:

排序:

\n⑴.总分\n⑵.学号排序\n⑶.返回\n选择(0~3):

n);

switch(n)

zfpx(st,mount);

\n*⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙按总分排序如下⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙*\n"

print(st,

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

当前位置:首页 > 人文社科 > 军事政治

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

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