学生成绩统计c语言
模式4:按照弹窗提示操作。
模式5:直接弹出所有学生的成绩,按排名高低输出。
输出文件名:“stu.dat”
1.总体流程图
程序清单:
/*****************************************************************************
程序清单
ห้องสมุดไป่ตู้****************************************************************************/
C语言课程设计报告
一、C语言课程设计的目的:
进一步消化和巩固已学过的C语言程序设计基础理论,学习和实践程序设计的各种技能,利用C语言来设计各种应用程序和管理系统,为社会提供各种现代化的管理工具。根据课堂讲授内容,做相应的自主练习,消化课堂所讲解的内容;通过调试典型例题或习题积累调试C程序的经验;通过完成辅导教材中的编程题,逐渐培养学生的编程能力、用计算机解决实际问题的能力。在许多常规学科的日常教学中,我们不难发现这样一个现象,不少学生的思维常常处于混乱的状态。写起作文来前言不搭后语,解起数学题来步骤混乱,这些都是缺乏思维训练的结果。程序设计是公认的、最能直接有效地训练学生的创新思维,培养分析问题、解决问题能力的学科之一。即使一个简单的程序,从任务分析、确定算法、界面布局、编写代码到调试运行,整个过程学生都需要有条理地构思,这中间有猜测设想、判断推理的抽象思维训练,也有分析问题、解决问题、预测目标等能力的培养。
stu[i-1].avr=(float)(sum/5.0);
if((fp=fopen("stud.dat","rb+"))==NULL)//写入数据
{
printf("cannot open file\n");
return 0;
}
fseek(fp,(i-1)*sizeof(struct student),0);
Stu.clanguage:学生C语言成绩;
Stu.moral:学生德育成绩;
Stu.ave:学生平均成绩;
模式1:将会弹出对话“Stu.num:”,输入学号,回车,以此类推。
模式2:将会询问你需要修改哪一位的数据,按照弹窗提示操作。
模式3:将会询问你需要删除哪一位的数据,按照弹窗提示操作。
模式4:按照弹窗提示操作。
printf("\n");
printf("\n");
failstuprintf();//不及格学生输出
save();
}
else if(mode==2)//修改模式
{
FILE *fp;//文件声明
static int m,sum;//声明定义变量
extern i;//调取外部变量
if((fp=fopen("stud.dat","rb"))==NULL)//读出数据
{
printf("cannot open file\n");
return 0;
}
for(m=0;m<N-1;m++)
{
fread(&stu[m],sizeof(struct student),1,fp);
【提示】
模式(mode)1:新建一个工程;
模式(mode)2:修改;
模式(mode)3:删除;
模式(mode)4:插入;
模式(mode)5:查看。
Stu.num :学生学号;
:学生名字(注:拼音);
Stu.math:学生数学成绩;
Stu.physics:学生物理成绩;
Stu.english:学生英语成绩;
{ char num[6];
char name[8];
int math;
int english;
int physical;
int clanguage;
int moral;
float avr;
}exchange;
int i,n=0;
int main(void)
{
void save(void);//保存文件函数声明
fwrite(&stu[i-1],sizeof(struct student),1,fp);
fclose(fp);
}
else if(mode==3)//删除模式
{
FILE *fp;
static int m,sum;
extern i;
if((fp=fopen("stud.dat","rb"))==NULL)//读出数据
}
printf("whose record do you want to modify?\nPlease press 1~30!");
scanf("%d",&i);
press();
sum=stu[i-1].math+stu[i-1].english+stu[i-1].physical+stu[i-1].clanguage+stu[i-1].moral;
Stu.ave:学生平均成绩;
************************************************************/
模式1:将会弹出对话“Stu.num:”,输入学号,回车,以此类推。
模式2:将会询问你需要修改哪一位的数据,按照弹窗提示操作。
模式3:将会询问你需要删除哪一位的数据,按照弹窗提示操作。
scanf("%d",&mode);
if(mode==1)//新建程序模式
{
int sum=0;
for(i=1;i<N;i++)
{
press();//输入
failstudent();//不及格学生筛选
sum=stu[i-1].math+stu[i-1].english+stu[i-1].physical+stu[i-1].clanguage+stu[i-1].moral; //总分
这是一个学生成绩统计程序。该程序仅以10人为例,可通过修改宏定义N来指定人数新建程序。在VC++6.0运行。
/************************************************************
模式(mode)1:新建一个工程;
模式(mode)2:修改;
模式(mode)3:删除;
通过该课程设计的锻炼,加深学生对这些知识的掌握以及理解。
在该程序中,我将会运用结构体来分别创建学生成绩表,不及格学生成绩表以及中间值成绩表,通过结构体的运用,我能更加快速以及有规律地调用,分配各个变量,达到简洁的目的。
在循环语句中,我将利用指针来达到好的定位效果,定位准确才能够有的放矢地进行各个环节,而不用通过繁杂的排序以及重复语句。
该程序我还运用了文件修改,程序运行过后将会保存于stu.dat中,同时也能读取该文件。该程序有5个模式,所以必须运用文件管理。当然,当你并没有创建文件时,你却读取文件,系统找不到自然就报错。
通过本次课程设计,我更加理解C语言的灵活多变,结构体的便捷,指针的灵活,文件应用的严谨。使我对C语言有更全面的理解,进一步提高运用C语言编程解决实际问题的能力,同时,为后续课程的学习夯实基础。
课程设计
课程名称____C语言课程设计___
题目名称____学生成绩统计_____
学生学院______物理学院_______
专业班级____电子科学与技术___
学 号_____3110008570______
学生姓名______胡健___________
指导教师_______刘力斌________
2012 年10月17日
/***************************************************************************
技术文档/帮助清单
***************************************************************************/
将所有同学的成绩保留在文件中,对文件中的数据处理,输出所要求的内容,程序的功能主要包括3方面:
1输入成绩到文件中
2输出成绩
3输出不及格学生名单
4成绩排序
5修改记录
6删除记录
7插入记录等
主函数中对3个功能选择(菜单),调用对应的函数完成。
【测试数据】
自定模拟数据
题目的分析(需求分析):
该题目主要是锻炼学生对于运用C语言结构体,指针以及文件修改的能力,C语言最难的部分就在于指针,所以,能用最简洁的语句写出一个合理的程序,老师的目的就达到了。
#include "stdio.h"
#include "string.h"
#define N 11
struct student //学生结构体
{
char num[6];
char name[8];
int math;
int english;
int physical;
int clanguage;
int moral;
{
printf("cannot open file\n");
return 0;
}
for(m=0;m<N-1;m++)//读出文件
{
fread(&stu[m],sizeof(struct student),1,fp);