. .
word完美格式
《C语言程序设计实训1》报告
设 计 题 目: 基于数组的学生信息管理系统
学 院 名 称: 科学技术学院
专 业: 软件工程
班 级: 108班
姓 名: 大神 学 号 594188
提 交 日 期: 2014年6月
一、实验内容
编写并调试程序,实现学校各专业班级学生信息的管理。定义学生信息的结构体类型,包括:学号、姓名、专业、班级、3门成绩。N定义为符号常量(学生数)。全局类型的定义如下:
#define N
#define N 10
struct Student{
int num[15];//学号
char name[15];//姓名
char major[10];//专业(computer,software,network)
int classNo;//班级(1-2)
int score[3];//3门课的成绩(0-2)
};
typedef struct Student STU;
二、实验要求
main函数:以菜单形式将各项功能提供给用户,根据用户的选择,调用相应的函数。
STU student[N]; //保存输入的N名学生信息
定义函数Input:从键盘输入N个学生的信息。
定义函数Save:将学生信息存入文件。
定义函数Output:将某个学生信息表格化屏幕输出。
定义函数Fetch:从文件中随机读取第n个(0<=n<=N-1)学生的信息。
定义函数Max:求所有学生某门课程的最高分和分数最高的学生的姓名。
定义函数Sort_select:对所有学生,按平均成绩由低到高进行简单选择排序。
定义函数Sort_buble:对某个班级的学生,按平均成绩由高到低进行起泡排序。并调用Output输出。
定义局部变量:
STU stu_class_ave[N]; //按平均成绩排序后的某个班级的学生信息;
int count; //实际元素个数
定义函数Sort_insert:对某个专业的学生,按某门课程成绩由低到高进行直接插入排序。并调用Output输出。
定义局部变量:
STU stu_class_ subject [N]; //按某门课程成绩排序后的某个专业的学生信息;
int count; //实际元素个数
定义函数Search:实现班级和成绩的综合查找(如1班,总分240分以上同学)。
三、算法流程图
函数Sort_select的算法流程图
四、程序清单(关键语句和变量加注释)
#include
#include
#include
#define N 10//学生的总人数
#define pri(p)
printf("\n%d\t%s\t%8s\t%d\t%d\t%d\t%d\n",p->num,p->name,p->major,p->classNo,
p->score[0],p->score[1],p->score[2])
struct Student{
int num;//学号
char name[15];//姓名
char major[10];//专业(computer,software,network)
int classNo;//班级(1-2)
int score[3];//3门课的成绩(0-2)
};
typedef struct Student STU;
//函数声明部分
void Input(STU *p);
void Output(STU *p);
void Save(STU *p);
int Fetch(STU *st,int n,char *filename);
void Max(STU stu[],int m);
double average_person(STU *p);
void sort_select(STU *p);
void Sort_Buble(STU *p);
void Sort_insert(STU *p);
void Ask();
void Search(STU *p);
vo