程序设计实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《程序设计》课程设计报告

专业:

团队成员:

指导老师:

二O一一年 12 月 7 日

一、课程设计问题描述

学生成绩管理是高等学校的教务管理的重要组成部分,其内容较多,为了简单计讨,要求的管理系统能够完成以下六种功能:

1) 学生注册登记;

2) 删除学生成绩;

3) 插入学生成绩;

4) 求出每个学生一学期中各科的平均成绩;

2、课程设计目的和要求:

经过一个学期的《C语言程序设计》课程的学习,已经有一定地程序设计基础,但是要C语言程序设计这门课程,不仅要认真阅读课本知识和从事课堂学习,更重的是进行上机实践,通过上机实践才能增强和巩固知识。

3、系统设计(算法分析)

1、学生成绩管理系统的数据结构

(1)学号(系统随机生成)

(2)姓名

(3)性别

(4)计算机成绩

(5)数学成绩

(6)英语成绩

(7)平均值

系统功能描述及分析

程序运行以后就会显示菜单界面: 1、输入学生信息, 2、浏览学生信息, 3、按姓名查找学生信息,4、按指定学科统计学生成绩,5、按成绩排序,6、删除学生信息,7、插入学生信息,8、修改学生信息,0、退出。

(1)输入学生信息:进入主菜单,选择输入功能所对应的数字,顺次依照提示录入一个学生姓名、年龄、性别、数学成绩、英语成绩、计算机成绩。该学生的信息输入完毕后,会提示是否继续输入下一个学生的信息,同时提示返回主菜单。

(2)浏览学生信息:进入主菜单,选择浏览功能所对应的数字,则整体学生信息输出,浏览完毕后,按照提示,按任意键返回主菜单。

(3)按姓名查找学生信息:进入主菜单,选择查找功能所对应的数字,按照提示输入需要查询的学生姓名,采用for语句将改姓名与系统中已存储的姓名进行循环比较,若相同则输出该学生的位置与其个人信息,回车以后显示相应的学生信息,完毕后,按照提示,按任意键返回主菜单。

(4)按指定学科统计学生成绩:进入主菜单,选择统计功能所对应的数字,在子菜单中选择需要统计的科目,再在子菜单选择统计的项目,(1)平均值,采用for语句将所有学生的这门课的分数相加,再除以人数num,得到结果,(2)最大最小值,先将第一个学生的成绩赋给min或是max,再采用for语句和if语句将以后的学生成绩进行比较,(3)及格率和各分数段人数比率,采用for语句num进行计数。回车后显示相应信息,结束后,按照提示,按任意键返回。

(5)按成绩排序:进入主菜单,选择排序功能所对应的数字,跳出子菜单,再根据需要输入数字选择按平均值或是哪门学科成绩进行排序,排序时采用冒泡法,定义一个中间变量进行交换,回车后输出排序后的结果,完毕后根据提示,按任意键结束后选择0返回主菜单。

(6)删除学生信息:进入主菜单,选择排序功能所对应的数字,根据学生姓名进行删除删除需要删除的学生姓名,删除时,采用for语句,将改姓名与存储的姓名进行比较,定义一个变量保存其下标的值,将后一个的值赋给它,以此类推,回车后输出删除后的整体学生信息,按照提示按任意键结束返回主菜单,如果所输入的学生姓名不存在系统提示输入错误。

(7)插入学生信息:进入主菜单,选择插入功能所对应的数字,按照提示依次输入需要插入的学生信息,以及插入的位置,回车后输出插入后的整体学生信息,按照提示按任意键结束返回主菜单。

(8)修改学生信息:进入主菜单,选择修改功能所对应的数字,根据学生姓名进行修改,选择需要修改的学生姓名,回车后,跳出子菜单,根据需要选择需要修改的项目所对应的数字,回车后根据提示输入修改后的相应信息,返回子菜单如不需要修改选择0推出,退出后输出修改后的学生整体信息,按任意键结束,返回主菜单。

(9)退出:根据菜单界面的提示,输入对应的数字“0”,则结束整个程序。

main( )函数的流程图

进入学生管理系统主菜单,按照提示进行选择,采用do-while语句若输入为字母或小于0的数字,主菜单中采用do-while语句将菜单进行循环,菜单采用switch-case语句进行选择。

2、流程图

(1)主菜单功能模块图

(2)统计功能模块图

(3)排序功能模块图

(4)修改功能模块图

3、各函数的功能和实现

学生成绩管理的相关功能由对应的函数来实现。

1) 学生注册登记

FILE *fp;

char filename[20]="stu";

if((fp=fopen(filename,"ab+"))==NULL)

{

printf("\t无法打开文件!\n");

system("pause");

return;

}

for(i=0;i

{

if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1);

}

fclose(fp);

进入主

菜单,选择输入功能所对应的数字,就可以进入输入函数、删除函数和修改函数,执行相应的程序与功能,完毕后,系统会执行成save函数,当文件存在时,就会逐条信息的写入文件,当文件不存在时,就会提示文件不存在,同时会退出程序。

2) 插入学生成绩

charu( )函数

重要代码:

for(j=n+1;j>i-1;j--)

stu[j]=stu[j-1];

strcpy(stu[i-1].name,na);

strcpy(stu[i-1].number,xuehao);

stu[i-1].xingbie=sex;

stu[i-1].computer=computer1;

stu[i-1].math=math1;

stu[i-1].english=english1;

stu[i-1].p=(computer1+math1+english1)/3;

相关文档
最新文档