华东交大
C++语言课程设计
报告
题目:学生成绩管理系统
姓名:张可鑫
学院:华东交大
专业:电气化铁道技术
学号:    20142421230159
指导教师:苏云凤
2015年4月12日星期日六详细设计(各功能模块的具体实现算法——流程图) (2)
一设计目的
进一步加深、巩固所学专业课程(《C语言程序设计》)的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。掌握运用C语言独立地编写、调试应用程序和进行其它相关设计的技能。
二课程设计的内容
对学生信息(包括学号、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出.将学生的成绩信息进行记录,信息内容包含:(1)学生的学号(2)学生的姓名(3)学生的成绩。假设,现收集到了一个班学生的所有成绩信息,要求用C语言编写一个简单的成绩管理系统,可进行录入、查询、修改和浏览等功能。学习相关开发工具和应用软件,熟悉系统建设过程。
三课程设计的要求与数据
1、用C语言实现系统;
2、对学生信息(包括学号、姓名、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出.
3、学生信息包括:其内容较多,为了简化讨论,要求设计的管理系统能够完成以下功能:
(1)  每一条记录包括一个学生的学号、姓名、3门课成绩
(2)、成绩信息录入功能:(成绩信息用文件保存,可以一次完成若干条记录
的输入。)
(3)、成绩信息显示浏览功能:完成全部学生记录的显示。
(4)、查询功能:完成按姓名查学生记录,并显示。
(5)成绩信息的删除:按学号进行删除某学生的成绩.
(6)、排序功能:按学生平均成绩进行排序。
(7)、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!
四课程设计应完成的工作
(1)编写算法;
(2)算法测试,并有具体的测试结果和结果分析;
(3)撰写课程设计报告。内容包括:
1)封面扉页
2)设计任务书
3)目录
4)总体设计方案(包括流程图)
5)使用说明及运行实例(包括界面)
6)成员设计内容简介
7)项目源程序代码(注意注释的使用)
8)指导教师评语
五总体设计(包含几大功能模块)
1、成绩录入功能
2、成绩输出功能
3、成绩查询功能
4、删除模块
5、排序功能
6、统计功能
7、退出系统
六详细设计(各功能模块的具体实现算法——流程图)
6.1各函数的功能和实现
1、输入初始的学生信息:输入信息包括学生的姓名、学号以及学生的成绩等相关信息;可用函数void input(STUDENT *data, int *len)来实现此操作。
2、成绩输出模块:输出学生的信息以及成绩void output(STUDENT *data, int len):通过学生的姓名来查看学生的相关成绩,同时也可以分别通过
caverage() 、maverage() 、eaverage() 和comaverage() 来输出成绩的平均分数、最高和最低分数。
3、成绩查询模块:可用void find(STUDENT *data, int len) 来实现。到就输出此学生全部信息。
c++课程设计报告4、删除模块:用函数void delete_item(STUDENT *data, int *len)来实现
5、排序模块:用函数void sort(STUDENT *data, int len)来实现
6、统计功能能:用函数void stat(STUDENT *data, int len) 来实现
7、退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。
如图6.1
图  6.1
七调试分析(包含各模块的测试用例,及测试结果)
7.1源程序
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define MAXN 35
#define MAX_NAME 256
typedef struct student  //学生信息
{
int  no;
char name[MAX_NAME];
double  Chinese;
double  math;
double  English;
double  mark_ave;
double  mark_tot;
} STUDENT;
/*-----------输入信息子程序---------*/
void input(STUDENT *data, int *len)
{
int no;
putchar('\n');
printf("%s\n", "请输入新的记录,如果需要退出当前菜单请输入-1.");
printf("%s\n", "格式:\n学号\n");
printf("%s\n", "姓名语文数学英语");
putchar('\n');
printf("如:\n");
printf("1\n");
printf("杨江彬 93 95 89\n");
scanf("%d", &no);
while(no != -1) {
data[*len].no = no;
scanf("%s %lf %lf %lf", data[*len].name, &data[*len].Chinese, &data[*len].math,&data[*len].English);
data[*len].mark_ave=(data[*len].Chinese+data[*len].math+data[*len ].English)/3.0;
data[*len].mark_tot=data[*len].Chinese+data[*len].math+data[*len] .English;
(*len)++;
scanf("%d", &no);
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。