沈阳航空工业学院。
课程设计任务书。
系专业班学生___
一、课程设计课题:计算机综合训练。
二、课程设计工作自2006年3月13日起至2006年3月17日止。
三、课程设计的内容及要求:
1.强化计算机的基础知识,熟练掌握dos和windows两套操作系统的基本操作。
2. 运用所学的c语言知识,编制和调试程序:
班级学生成绩管理,具体要求如下:
1) 添加学生数据。
2) 删除学生数据。
3) 按总成绩排序,并显示名次(成绩相同,名次相同)
4) 成绩查询。
5) 自己再加一项功能。
注:每个学生数据至少应该包括学号、姓名、三门成绩,学生数据要保存在文件中。
3. 要求:
1)采用模块化程序设计方法,主函数用菜单形式调用各功能函数,程序可读性强,界面设计友好,输出形式美观。
2)课程结束后,上交程序盘和一份课程设计说明书。课程设计说明书的内容要求如下:
课程设计任务书。
程序设计题目。
题目分析(分析题目的要求)
程序框图(总体框图和各功能模块框图)
核心技术的实现方法及程序段。
总结 指导教师负责教师学生签名。
一、 程序设计题目。
班级学生成绩管理,具体要求如下:
1、添加学生数据。
2、删除学生数据。
3、按总成绩排序,并显示名次(成绩相同,名次相同)
4、成绩查询。
5、显示学生数据。
6、更改学生数据。
7、退出。注:每个学生数据至少应该包括学号、姓名、三门成绩,学生数据要保存在文件中。
二、 题目分析。
经过对程序设计题目的分析可知,整个程序的设计实现大致分为六个模块,其中每一个模块对应一个函数,他们的功能分别是:添加学生数据函数(add),删除数据函数(del),排序函数(sort),成绩查询函数(query),更改学生数据函数(change)以及显示学生信息函数(show)。在这些函数当中,前四个函数的实现严格按照题目的要求,而后面的两个函数属于附加功能。
1、添加学生数据函数主要实现程序最初运行时学生数据的录入以及其后的运行中学生数据的追加功能;
2、删除学生数据函数实现的功能是按照学号对学生的数据记录进行删除;
3、排序函数按照题目的具体要求实现的是总成绩的递减排序以及名次显示,其中总成绩相同者名次相同;
4、成绩查询函数允许按照学号对学生的各科成绩进行查询;
5、更改数据函数可以实现对学生记录中除学号以外的信息进行修改;
6、显示函数实现的是显示目前所有的有效学生记录信息。
除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。
每一个学生记录都包含学号、姓名,以及英语、计算机和数学三门成绩,在程序当中,将学生记录类型定义为结构体类型,添加以及追加的学生信息直接写入e盘的文件中,其他函数每次对学生记录的访问,其数据**都是文件,这样做不但可以保证学生数据的一致性,而且可以对学生数据进行永久保存,保证每次运行程序都可以采用原来的数据。
三、 程序流程图。
1、程序总体结构图。
2、添加学生数据函数。
2、具体功能函数。
1)添加学生数据函数add
2)读取学生数据reads
3)删除学生记录函数del
4)按总分排序函数sort
4)排序函数del
四、 核心技术的实现方法及程序段。
本程序主要由六个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。在这些函数当中,添加数据函数、删除数据函数和排序函数是程序中较为核心的部分,下面分别进行说明。
1、添加数据函数
添加数据分为两种情况,其一是在学生文件(不存在的情况下,首先由程序创建一个新文件,并将录入的学生信息写入该文件当中;其二是在学生文件(已经存在的情况下,此时文件要以读写方式或追加的方式打开,这样才可以保证以前已经存在的数据不丢失。具体的程序段如下:
if((fp=fopen("e:\b+")null)
else
fclose(fp);
2、删除数据函数。
该函数的核心内容是删除算法以及最终对源文件的更新。该函数执行时,首先调用reads函数将文件中的学生信息读入数组当中,并由用户输入待删除学生的学号,而后按照该学号进行查找,如果文件中存在该学生的数据,则采用删除算法删除,否则输出学生信息不存在的提示信息。对学生信息的具体删除算法是在结构体数组中实现的,当学生的信息被找到后,位于数组中该学生后面的学生记录依次向前移动一个元素的位置,这些操作完成后,要删除的学生信息就被后面的数组元素覆盖掉了,也就实现了删除。
在数组中删除学生信息后,还要将更改后的信息重新写回文件当中,以保证数据的一致性。具体程序段如下:
void del() 信息删除函数*/
struct student stu[n];
char number[20];
file *fp;
int n,i,j;
reads(stu,&n);
printf("请输入要删除信息的学生学号,按回车键确认:")
scanf("%s",number);
for(i=0;i if(strcmp(number,stu[i].num)==0) break;
if(i>=n)
elseif((fp=fopen("e:\\wb"))null)
elsefclose(fp);
printf("删除成功!");
3、总分排序函数。
对于总分的排序采用的排序算法是冒泡法排序,其中总分的求得是在排序的过程中实现的,这部分程序仍然调用了reads函数,整个排序过程在结构体数组stu中实现,由于排序算法涉及到两个数组元素的信息交换,因此还需要定义一个中间变量来协助。排序函数使学生数据的排列顺序发生了变化,因此也需要队员文件进行更新,此外,对于学生排序后名次的确定,仅在结果输出时予以显示,并未将名次信息写入源文件。具体的程序段如下:
void sort()/排序函数*/
file *fp;
struct student stu[n],temp;
int i,j,n;
reads(stu,&n);
for(i=0;i for(j=0;j {if(stu[j].english+stu[j].computer+stu[j].
math math) 洛阳理工学院。课程设计说明书。课程名称。设计课题。专业。班级。学号。姓名。完成日期2014年12月26日。问题描述 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的内容要求。基本要求 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的基本要求。测试数据 小四宋体,行间距单倍行距,每... 课程设计总结,课程设计报告。3.尝试应用项目管理软件进行项目进程的规划管理 绘制甘特图,不作硬性要求 二 选题说明。人事管理是企业信息管理的重要部分,面对大量的人事工资信息,财务部门采用人力处理将浪费大量的时间 人力和物力,且数据的准确性低。因此,开发一个界面友好,易于操作的人事工资管理软件进行自动... 学校名。课程设计报告。课程名称 c语言程序设计 系别 专业班级 学号。姓名。课程题目 企业人事管理系统 完成日期 指导老师 年月日。附件。课程设计的内容。企业人事管理系统 本项目的目标是开发一个功能实用,操作简便,简单明了的人事管理系统。能够录入人事的基本资料,在操作上能够完成诸如添加 修改 删除 ...课程设计报告格式 课程设计
课程设计总结,课程设计报告
课程设计 课程设计报告格式