课程设计题目: 成绩录入与查询
小组负责人。
小组成员。所在班级。
2010 年 6 月 6日。
1.课程设计概述:
本次数据结构课程设计主要是为了实现学生成绩的录入与查找,方便学生成绩的管理,能在很大程度上提高查找的速度,方便有效;而且它的可读性强,可移植性好,执行效率高。
使用语言:c语言。
编译环境:visual c++6.0
2.课程设计的主要内容:
1)课程题目:成绩的录入与查询。
2)问题描述:
已知广东药学院的学号长度为10,前8位与班级有关,后2位表示该学生在班内的序号,现需要设计一个成绩输入与查询系统,具有以下功能:
1)提供以下3种可供选择的输入方式。
(a)按照(学号,成绩)对输入该课程所有学生的成绩,并保存到数据文件中;
(b) 输入学号前8位,然后按照(班内序号,成绩)对输入所有学生成绩并保存;
(c) 输入学号前8位,再输入其中无成绩的同学或空学号的班内序号,然后按照学号的升序输入(成绩),计算机自动完成学号与成绩的组合,并保存学生成绩;
2)提供成绩排序功能(成绩的从高到低)
3)提出成绩的3种查询方式。
(a)按照学号查询,输入待查学生的学号,查询输出结果;
(b)按学号段查询,输入(段首学号,段尾学号),查询输出结果;
(c)按照名次查询,输入名次值,查询输出结果;
4)使用c语言完成。
3.主要研究内容。
1.选择的具体方案及原因:
此课程设计题中分别在输入和查询时提供了3种不同的方式,我们分别选择的是输入方式的(a)和查询方式的(a),至于排序方式,题中要求按成从高到低排序,我们采取的是计算出每个学生的平均分然后按照平均分由高到低排序。之所以选择这种方案,是因为我们认为它比较简洁易行,方便程序的编译与运行,同时也实现了成绩的输入,排序,查询功能。
2.成员分工情况:
(1)程序员:1 负责算法设计并完成**的编写。
(2)测试员:2 负责设计测试用程序,并对程序结果进行整理分析,最终写出测试结果以及分析**。
(3)文档员:3 负责课程设计报告文字部分的撰写,同时完成对整篇文档的整合,使整篇报告排版、文字风格统一。
3..需求分析:
1)基本要求:
1)通过键盘输入各学生的多门课程的成绩,建立相应的文件。
2)计算每人的平均成绩,按平均成绩由高到低排序,并生成文件。
3)根据学号查询某人的各门课成绩。
4)界面美观。
2)测试数据:
学号姓名 c语言大学物理大学语文高等数学英语。
2008235801 王放 65 68 8985 78
2008235802 张强 70 75 8087 80
2008235803 李浩 69 65 8074 79
2008235804 黄丽冰 89 80 9693 85
2008235805 陈志伟 75 60 8976 80
2008235806 尚晓晓 80 85 8689 83
4.概要设计、总体设计:
1)根据题目要求,定义结构体类型如下:
struct student学生结构体定义*/
char no[12学号,长度为10*/
char name[20姓名*/
float score[5存储5门课成绩*/
float **e平均分*/
2)总体设计模块(综合实验图1.1)
综合实验图1.1
5.详细设计:
1)存储结构的选择。
在这个程序中,我们选择用结构体数组来存储学生成绩,即顺序存储结构。
struct student stu[n];
2)系统初始化。
这个模块的主要功能是得到初始的学生成绩信息。
为了实现“一次输入,多次使用”,我们用文件来保存学生成绩。第一次运行本程序需从键盘输入所有学生成绩并保存到文件中,以后运行就可以从文件中读取数据,直接使用了。这样既可以减少输入的麻烦,更重要的是使本程序可以连续运行,每次运行都可以使用上一次保存的结果。
其程序流程图如综合实验1.2所示。
系统初始化流程图1.2
3)计算每个学生的平均分。
外层循环次数为学生人数,内层循环次数为5(课程门数)。
内层循环先计算每个学生5门成绩的累加和,再除以5计算平均分。
4)排序。按成绩:使用改进的起泡法排序,在排序之前需要首先计算每个学生的平均分。
5)查找。由于查找结果需要输出学生在班级的名次,而之前学生成绩有可能被修改过,所以,为稳妥起见,在查找之前先按学生的平均成绩从高到低排序,这样每个学生在班级的名次为这名学生在数组中的位置(下标+1)。查找用顺序查找法。
按学号查找。
6)保存数据。
在推出本程序之前,需要先把这次运行程序中对学生成绩所做的修改结果重新写回到数据文件中。
4.具体研究方法:
算法实现:*头文件包含、全局变量定义和结构体定义*/
#include <>常用的标准输入输出函数*/
#include <>access函数原型包含*/
#include <>exit函数原型包含*/
#include <>strcmp函数原型包含*/
#define n 100最多的学生人数*/
struct student学生结构体定义*/
char no[12学号,长度为10*/
char name[20姓名*/
float score[5存储5门课成绩*/
float **e平均分*/
stu[n];
int num;
void init系统初始化***/
void newfile建立新的数据文件*/
void output输出学生成绩*/
void read1从文件中读取*/
void sortno计算学生平均分*/
void sortscore按平均分排序*/
void find1查找*/
void s**e保存文件*/
*系统初始化***/
void init()
if (access ("0判断文件是否存在*/
newfile不存在创建新的数据文件*/
else read1若存在从文件中读取数据*/
/*建立新的数据文件*/
void newfile从键盘输入学生成绩并保存到文件中*/
int i;
file * fp;
if ((fp=fopen(""wb"))null) /创建二进制文件*/
printf("请输入学生人数:")
scanf("%d",&num);
for(i=0;i {
printf("请输入第%d学生的学号:",i++)
getchar吃掉回车符*/
gets(stu[i].no);
printf("姓名:")
gets(stu[i].name);
printf ("c语言成绩:")
scanf("%f",&stu[i].score[0]);
printf ("大学物理成绩:")
scanf("%f",&stu[i].score[1]);
printf ("大学语文成绩:")
scanf("%f",&stu[i].score[2]);
printf ("高等数学成绩:")
scanf("%f",&stu[i].score[3]);
printf ("英语成绩:")
scanf("%f",&stu[i].score[4]);
fwrite(&stu[i],1,sizeof(struct student),fp); 把第i+1名学生成绩写入文件*/
fclose(fp);
printf("你刚才输入的数据共有&d个学生成绩。详细数据为:",num);
数据结构课程设计
课程设计说明书 题目哈夫曼编码问题的设计和实现。课程名称数据结构课程设计。院 系 部 中心。专业。班级。学生姓名。学号。设计地点。指导教师。设计起止时间 2008 年6月 2日至 2008 年 6月 6 日。目录。1 问题描述 2 1.1 题目内容 2 1.2 基本要求 2 1.3 测试数据 2 2...
数据结构课程设计
数据结构 课程设计。实验报告。学院 信息工程学院。班级 姓名 学号 指导老师 题目2 一元多项式的计算。1 实验目的。1 掌握链表的灵活运用 2 学习链表初始化和建立一个新的链表 3 知道怎样去实现链表删除结点操作与插入结点 4 理解链表的基本操作 包括数据域数据的相加 并能灵活运用。2 实验内容。...
数据结构课程设计
班级 信计 1102 姓名 李娜娜。学号 1108060209 设计日期 2013.07.15 西安科技大学计算机学院 1.实验题目 编制一个演绎扫雷游戏的程序。2.问题描述。做一个n x m的扫雷游戏,每个方格包含两种状态 关闭 closed 和打开 opened 初始化时每个方格都是关闭的,一个...