简易学生成绩管理系统课程设计实习报告

简易学生成绩管理系统课程设计实习报告本文简介:长江大学工程技术学院C语言课程设计实习报告简易学生成绩管理系统学生姓名:尹航学号:201161469序号:37专业班级:勘工61102班指导老师:汪利琴报告日期:2013/1/620目录1.第一部分课程设计的题目与要求.32.第二部分课程设计题目功能.3(1).系统功能模块框图设计.3-4(2).数
简易学生成绩管理系统课程设计实习报告本文内容:
长江大学工程技术学院C语言课程设计实习报告
简易学生成绩管理系统
学生姓名:尹航
学号:201161469
序号:37
专业班级:勘工61102班
指导老师:汪利琴
报告日期:
2013/1/6
20
目
录
1.第一部分
课程设计的题目与要求.3
2.第二部分
课程设计题目功能.3
(1).系统功能模块框图设计.3-4
(2).数据结构说明.4-5
(3).详细设计.5-8
(4).调试与测试8-12
3.第三部分
课程设计总结12
4.附录
程序清单.12-18
简易学生成绩管理系统
第一部分
课程设计的题目与要求
1.问题的提出
(1)
用记事本新建一个文本文件2011.txt来用于存放学生的成绩信息。
(2)
再创建一个文本文件来用于存放每门课程的学分信息,文本文件名为KG201160057.txt。
(3)
用主函数列一个主菜单并利用主菜单调用各个子菜单,通过各个函数来
实现以下功能:①计算平加权均分并排序;②排序;③统计;④显示学生成绩条。
2.功能要求
(1)
计算加权平均分并排序:①计算加权平均分;②按平均分排序;③将名次表显示
(2)
对学生信息实现排序功能:①按姓名排序;②按平均成绩排序。将排序后的结果显示在屏幕上。
(3)
统计:①统计每门课的平均分;②各分数段(60分以下;60~69;70~79;80~89;90分以上)的学生人数。用C语言创建一个数据文件,用该文件来存放统计后的结果,并将结果显示在屏幕上。
(4)
显示学生成绩条的功能:①显示指定学号的学生成绩条;②显示指定姓名的学生成绩条。将结果显示在屏幕上。
第二部分
课程设计题目功能
1.系统功能模块框图设计
读入数据
进入程序
主界面
查询成绩
读取学生信息
按平均成绩排序
按学生姓名排序
按加权平均分排序
统计每门课的平均分
退出
指定学号的学生成绩条
指定学号的学生成绩条
2.数据结构说明
#define
M
10
//定义常量
M为学生人数
#define
N
4
//定义常量
N为课程数
struct
data
//定义一个结构体。保存学生成绩信息
{
int
num;
char
name[10];
int
yy;
int
math;
int
jsj;
int
sx;
int
rank;
double
jqave;
}
stu[M];
//定义一个结构体数组。保存多条成绩信息
struct
kecheng
//定义结构体,保存课程信息
{int
num;
char
kcname[20];
double
xuefen;
}
course[N];
//定义结构体数组,保存多门课程信息
本程序主要采用结构体数组进行临时的数据储存,主要应用数组、文件作为数据存贮的方式。
3.详细设计
主要函数:
void
start()
//在main函数中被调用,读取成绩信息至结构体数组。便于
其他功能模块调用
Void
menu()
//在main函数中被调用,显示菜单。
void
xuanzhe()
//在main函数中被调用,接受菜单选择命令。
void
eadfile()
//在xuanzhe函数中被调用,在屏幕上显示成绩信息
void
anjiaquanpx()
//在xuanzhe函数中被调用,计算加权平均分并按加权平均
分排名
void
numshow()
//在xuanzhe函数中被调用,按学号查看学生成绩条
Viod
main()
//主函数,读入成绩文档和课程学分文档,计算加权平均分
模块功能说明:
读取文件信息的函数:
void
start()
{
char
title[100];
int
num=10;
int
j;
FILEfpfile;
int
i=0;
FILEfpkc;
int
k;
char
str2[100];
if
((fpfile
=
fopen(“yinhang.txt“,“r“))==NULL)
{
printf(“open
file
error!\n“);
}
fgets(title,300,fpfile);
for(i=0;istu[i].jqave)stu[i].rank+=1;
}
if((fp=fopen(“加权平均分.txt“,“w“))==NULL)
{
exit(0);
}
printf(“名次
学号
姓名
大学英语
C语言
高等数学
思想道德修养
平均成绩\n“);
fprintf(fp,“名次
学号
姓名
大学英语
C语言
高等数学
思想道德修养
平均成绩\n“);
if(a==1)
scoresort();
else
namesort();
for(i=0;i
#include
#include
#include
#define
M
10
#define
N
4
void
readfile();
void
menu();
void
readkc();
void
anjiaquanpx();
void
chushihua();
struct
xsinfo
{
int
num;
char
name[10];
int
yy;
int
math;
int
jsj;
int
sx;
int
rank;
double
jqave;
}
stu[M];
struct
kecheng
{int
num;char
kcname[20];double
xuefen;}course[N];
void
menu()
{
printf(“=======================================\n“);
printf(“=
=\n“);
printf(“=
欢迎使用
=\n“);
printf(“=
=\n“);
printf(“=======================================\n“);
printf(“---------------------------------------\n“);
printf(“|
简易学生成绩管理系统
|\n“);
printf(“---------------------------------------\n“);
printf(“|
1.读取学生信息
|\n“);
printf(“|
2.按加权平均分排序
|\n“);
printf(“|
3.按学生姓名排序
|\n“);
printf(“|
4.按平均成绩排序
|\n“);
printf(“|
5.统计每门课的平均分
|\n“);
printf(“|
6.显示指定学号的学生成绩条
|\n“);
printf(“|
7.显示指定姓名的学生成绩条
|\n“);
printf(“|
8.退出
|\n“);
printf(“---------------------------------------\n“);
}
void
start()
{
char
title[800];
int
num=10;
int
j;
FILEfpfile;
int
i=0;
FILEfpkc;
int
k;
char
str2[100];
if
((fpfile
=
fopen(“2011.txt“,“r“))==NULL)
{
printf(“学生成绩信息文件打开错误!\n“);
}
fgets(title,300,fpfile);
for(i=0;istu[j+1].name[0]){
t
=stu[j];
stu[j]=stu[j+1];
stu[j+1]=t;
}
}
}
}
void
anjiaquanpx(int
a)
//求加权平均分,名次
{
int
i,j;
double
s=0,sum;
FILEfp;
for(i=0;istu[i].jqave)stu[i].rank+=1;
}
if((fp=fopen(“jj1002平均分.txt“,“w“))==NULL)
{
printf(“Faile
to
build
a
new
file!\n“);
exit(0);
}
printf(“创建MC1090221.txt数据文件\n“);
printf(“名次
学号
姓名
大学英语
C语言
高等数学
思想道德修养
平均成绩\n“);
fprintf(fp,“名次
学号
姓名
大学英语
C语言
高等数学
思想道德修养
平均成绩\n“);
if(a==1)
scoresort();
else
namesort();
for(i=0;i { fprintf(fp,“%3d%4d%7s“,stu[i].rank,stu[i].num,stu[i].name); fprintf(fp,“%7d%7d%7d%7d“,stu[i].yy,stu[i].jsj,stu[i].math,stu[i].sx); fprintf(fp,“%8.2lf\n“,stu[i].jqave); printf(“%d%10d%7s“,stu[i].rank,stu[i].num,stu[i].name); printf(“%7d%7d%7d%7d“,stu[i].yy,stu[i].jsj,stu[i].math,stu[i].sx); printf(“%8.2lf\n“,stu[i].jqave); } printf(“\n“); fclose(fp); } void tjpjf() { int i,sumyy=0,sumjsj=0,summath=0,sumsx=0; for(i=0;i { sumyy+=stu[i].yy; } printf(“英语平均分:%d\n“,sumyy/10); for(i=0;i { sumjsj+=stu[i].jsj; } printf(“计算机平均分:%d\n“,sumjsj/10); for(i=0;i { summath+=stu[i].math; } printf(“数学平均分:%d\n“,summath/10); for(i=0;i { sumsx+=stu[i].sx; } printf(“思修平均分:%d\n“,sumsx/10); } void numshow() { int xh,i,mark=0; printf(“学号“); scanf(“%d“,for(i=0;i { if(stu[i].num==xh) { printf(“学号 姓名 大学英语 C语言 高等数学 思想道德修养 平均成绩\n“); printf(“%8d%7s%8d%10d%8d%9d%8.2lf\n“,stu[i].num,stu[i].name,stu[i].yy,stu[i].jsj,stu[i].math,stu[i].sx,stu[i].jqave); mark=1; } } if(mark==0) printf(“not found“); } void xsxmcj() { char name[10],i,mark=0; printf(“请输入姓名“); scanf(“%s“,for(i=0;i { if(strcmp(stu[i].name,name)==0) {printf(“学号 姓名 大学英语 C语言 高等数学 思想道德修养 平均成绩\n“); printf(“%8d%7s%8d%10d%8d%9d%8.2lf\n“,stu[i].num,stu[i].name,stu[i].yy,stu[i].jsj,stu[i].math,stu[i].sx,stu[i].jqave); mark=1; } } if(mark==0) printf(“not found“); } void xuanzhe() { int ind; printf(“请输入操作编号:(9返回菜单)“); scanf(“%d“,switch(ind) { case 1:readfile(); break; case 2:anjiaquanpx(1); break; case 3:anjiaquanpx(2); break; case 4:anjiaquanpx(1); break; case 5:tjpjf(); break; case 6:numshow(); break; case 7:xsxmcj(); break; case 8:exit(0); break; case 9:menu(); break; } xuanzhe(); } //num表示记录条数 void main() { start(); menu(); xuanzhe(); } 指导教师评语: 报告成绩: 指导教师签名:*年*月*日
