- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
学生成绩管理数据结构课程的设计的报告
学生成绩管理系统
数据结构课程设计
一、课程设计的内容与目的
利用所学数据结构理论知识完成“学生成绩管理系统”的设计。
通过课程设计提高学生的思维能力,促进学生的综合应用能力和专业素质的提高。具体包括:
了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;
初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;
提高综合运用所学的理论知识和方法独立分析和解决问题的能力;
训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
二、课程设计的要求与数据
系统功能需求分析:
输入功能:可以输入40位同学信息
增加功能,能增加学生的信息
浏览功能:完成对全部学生记录浏览
查询功能:采用散列查找完成按学号查找学生记录
排序功能:采用直接选择排序,将学生平均成绩从低到高排序输出
删除功能:可以删除学生信息
修改功能:可以对学生信息的各项信息进行修改
插入功能:完成数据的插入
统计功能:统计出各分数段学生人数(60分以下,60~70,71~80,...)
存储结构设计分析:
学生的信息:学生的信息采用结构体类型定义,每个元素表示一个学生的信息,包括学号,姓名及数据结构平均成绩4个数据项:
(1) struct student
{char num[11];
char name[20];
int score[8];
float ave;
}stu[N];
(2)散列表的结点类型定义:
typedef struct node {unsigned long int key;
struct node * link;}HNode;
3.源程序如下:
#includestring.h
#includestdio.h
#includemalloc.h
/*控制学生记录的容量*/
#define N 40
#define PR printf(\n\r%s %s %s %s %s %s %s %s %s %s %s ,stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].score[4],stu[i].score[5],stu[i].score[6],stu[i].score[7],stu[i].score[8],stu[i].ave)
struct student
{char num[11];
char name[20];
int score[8];
float ave;
}stu[N];
typedef struct node {unsigned long int key;
struct node * link;}HNode;
typedef struct{int key; /*排序码*/
float data;/*其他数据项*/}RecNode;
/*全新保存函数*/
save(int n) /*保存函数,保存n个记录*/
{FILE *fp;
int i;
if((fp=fopen(sc.txt,wb))==NULL) /*以输出打开方式,在此前的记录被覆盖*/
{printf(\n不能打开文件\n);
getch();return NULL;
}
for(i=0;in;i++)
if(stu[i].ave!=0) /*stu[i].ave=0表此记录已删除*/
if(fwrite(stu[i],sizeof(struct student),1,fp)!=1)
printf(文件输入错误\n);
fclose(fp);
}
/*加载记录或可以计算记录个数的函数*/
load() /*加载记录或可以计算记录个数的函数*/
{FILE *fp;
int i;
if((fp=fopen(sc.txt,rb))==NULL) /*以输出打开方式,在此前的记录被覆盖*/
{printf(\n不能打开文件\n);
getch();return NULL;
}
for(i=0;!feof(fp);i++)
fread(stu[i],sizeof(struct student),1,fp);
fclose(fp);
return(i-1); /*返
文档评论(0)