数据结构成绩管理系统.docx

上传人:b****5 文档编号:30050498 上传时间:2023-08-04 格式:DOCX 页数:13 大小:106.10KB
下载 相关 举报
数据结构成绩管理系统.docx_第1页
第1页 / 共13页
数据结构成绩管理系统.docx_第2页
第2页 / 共13页
数据结构成绩管理系统.docx_第3页
第3页 / 共13页
数据结构成绩管理系统.docx_第4页
第4页 / 共13页
数据结构成绩管理系统.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

数据结构成绩管理系统.docx

《数据结构成绩管理系统.docx》由会员分享,可在线阅读,更多相关《数据结构成绩管理系统.docx(13页珍藏版)》请在冰豆网上搜索。

数据结构成绩管理系统.docx

数据结构成绩管理系统

成绩:

三峡大学

 

*************

 

数据结构课程设计报告书

 

学号:

姓名:

 

信息管理与信息系统教研室

 

课程设计报告目录

1.任务书…………………………………………………(?

2.课题说明与分析…………………………………………(?

3.程序流程图……………………………………………(?

4.数据结构与程序模块说明……………………………(?

结束语……………………………………………………(?

致谢……………………………………………………(?

参考文献………………………………………………(?

 

数据结构课程设计:

成绩管理系统

学生姓名:

***

指导老师:

***

三峡大学************

 

三峡大学

课 程 设 计 任 务 书

2009学年秋季学期

课题名称

成绩管理系统

指导教师

XX

学生姓名

***

性别

*

专业

*********

学号

*********

课题概述:

任何一个学校或者公司都离不开一个高效的管理系统。

对于学校而言,学生的成绩管理系统是最经常使用的一个系统,因而,开发一个高效,方便的成绩管理系统是我们要研究的课题。

设计要求:

1、进行认真、系统的信息采编,取得系统设计与开发的相关资料。

2、要求开发的同一个课题最多不超过20人。

3、制作过程中要求设计成果不得抄袭他人。

4、设计报告书要求详细具体,并按照要求的格式打印。

5、将设计成果中主要页面拷贝到报告书中,报告书中最后应该附程序清单。

6、设计工具语言可以选择C、C++。

7、问题描述:

假设斯瑞公司对学员的成绩进行管理,有关的数据存储在srkcj.dat文件中。

数据结构如下:

字段名

类型

长度

描述

xingming

字符型

10

姓名

chengji

整型

成绩

用C语言完成如下功能:

输入学生的姓名和成绩,保存到srkcj.dat文件中,然后按要求显示出来。

 

主界面:

学员成绩管理:

(请选择数字)

1、重新输入

2、增加输入

3、按姓名顺序查询

4、按成绩顺序查询

5、退出

请输入:

主要参考资料:

1、《信息系统分析与设计》清华大学出版社。

2、《数据结构》清华大学出版社严蔚敏等编著。

3、《C程序设计》清华大学出版社。

4、《C++程序设计》清华大学出版社。

5、《VB程序设计》清华大学出版社。

设计成果要求:

1、课程设计报告书。

2、设计开发的程序清单或者软件。

进度计划安排

起止日期

要求完成的内容

18周星期一

选定开发对象,收集资料。

18周星期二

整理资料,并进行系统的分析与研究。

18周星期三

系统初步设计,并将设计流程整理存档。

18周星期四

编写程序、调试、运行。

设计成果初步形成。

18周星期五

修改设计成果、修改源程序。

编写设计报告书并上交。

审核(教研室主任)

课题说明与分析

课题概述:

任何一个学校或者公司都离不开一个高效的管理系统。

对于学校而言,学生的成绩管理系统是最经常使用的一个系统,因而,开发一个高效,方便的成绩管理系统是我们要研究的课题。

问题描述:

假设斯瑞公司对学员的成绩进行管理,有关的数据存储在srkcj.dat文件中。

数据结构如下:

字段名

类型

长度

描述

xingming

字符型

10

姓名

chengji

整型

成绩

用C语言完成如下功能:

输入学生的姓名和成绩,保存到srkcj.dat文件中,然后按要求显示出来。

主界面:

学员成绩管理:

(请选择数字)

6、重新输入

7、增加输入

8、按姓名顺序查询

9、按成绩顺序查询

10、退出

请输入:

 

程序流程图

 

数据结构与程序模块说明

#include"stdio.h"

#include"string.h"

#defineMAXSIZE100

#defineINCREAMENT10

typedefstruct{

charxingming[10];/*姓名*/

intchengji;/*成绩*/

}Node;

typedefstruct{

Node*elem;

intlast;

intsize;

}xueyuan;/*采用线性表存储结构*/

 

voidinitlist_xueyuan(xueyuan*XY)/*构造线性表*/

{

XY->elem=(Node*)malloc(MAXSIZE*sizeof(Node));

if(!

XY->elem)printf("initlistfailed");

XY->last=0;

XY->size=MAXSIZE;

}

 

voidlistinsert_xueyuan(xueyuan*XY,char*xm,intcj){/*向线性表中插入元素*/

Node*newbase;

if(XY->last>=XY->size){

newbase=(Node*)realloc(XY->elem,(MAXSIZE+INCREAMENT)*sizeof(Node));

if(!

newbase)printf("reallocfailed");

XY->elem=newbase;

XY->size+=INCREAMENT;

}

strcpy(XY->elem[XY->last].xingming,xm);/*字符数组赋值*/

XY->elem[XY->last].chengji=cj;

XY->last++;

}

voidmain_screen()/*主界面*/

{

printf("studentachievementmanagement:

(pleasechosethenumber)\n1.re-input\n2.inputnew\n3.selectbynameorder\n4.selectbyachievementorder\n5.back\n\npleaseinput:

");

}

 

voidsave(xueyuan*XY)/*将输入的数据保存到文件*/

{FILE*fp;

if((fp=fopen("E:

\srkcj.dat","r+"))==NULL)/*fopen("文件名","r+"),读写,打开且该文件已经存在*/

{printf("cannotopenfile\n");

return;}

if(fwrite(XY->elem,sizeof(Node),1,fp)!

=1)/**/

printf("filewriteerror\n");

fclose(fp);

}

 

voidre_input(xueyuan*XY)/*重新输入*/

{

voidadd_input();/*函数声明*/

FILE*fp;

char*xm;

intcj;

chara;

if(fp=fopen("E:

\srkcj.dat","w")==NULL)/*fopen("文件名","w"),只写,若原文件不存在则新建并打开,若原文件存在则删除原文件再新建并打开*/

{printf("cannotopenfile\n");

return;

}

printf("name:

achievement:

\n");

scanf("%s%d",xm,&cj);

listinsert_xueyuan(XY,xm,cj);

save(XY);

printf("continueinput?

y/n\n");

a=getch();

if(a=='y')add_input(XY);

elseif(a=='n'){printf("\n\n\n");main_screen();}

elseprintf("ERROR\n");

}

voidadd_input(xueyuan*XY)/*增加输入*/

{

FILE*fp;

char*xm;

intcj;

chara;

if(fp=fopen("E:

\srkcj.dat","a")==NULL)/*fopen("文件名","a"),追加,该文件必须已存在,打开文件并向文件尾添加数据*/

{printf("cannotopenfile\n");

return;

}

printf("name:

achievement:

\n");

scanf("%s%d",xm,&cj);

listinsert_xueyuan(XY,xm,cj);

save(XY);

printf("continueinput?

y/n\n");

a=getch();

if(a=='y')add_input(XY);

elseif(a=='n'){printf("\n\n\n");main_screen();}

elseprintf("ERROR\n");

}

 

voidselect_by_name_order(xueyuan*XY)/*按姓名顺序查询,即按输入的实际存储顺序依次打印在屏幕上*/

{

FILE*fp;

inti;

printf("nameachievement\n");

if(fp=fopen("E:

\srkcj.dat","r")==NULL)/*fopen("文件名","r"),只读,该文件必须已存在才能打开*/

{printf("cannotopenfile\n");

return;

}

for(i=0;i<=XY->last;i++)

printf("%s%d\n",XY->elem[i].xingming,XY->elem[i].chengji);

fclose(fp);}

 

voidselect_by_achievement_order(xueyuan*XY)/*按成绩顺序查询,即先按成绩顺序排序再依次打印在屏幕上*/

{

FILE*fp;

inti,j,k;

char*b;

Node*a;

printf("nameachievement\n");

if(fp=fopen("E:

\srkcj.dat","r")==NULL)

{printf("cannotopenfile\n");

return;

}

for(i=0;i<=XY->last;i++)

{a[i].chengji=XY->elem[i].chengji;

strcpy(a[i].xingming,XY->elem[i].xingming);/*按成绩查询时不应该改变数据在文件中的存放位置,否则按姓名查询无效,故把文件中的数据赋给结构体数组a再对a进行操作*/

}

for(i=0;i<=XY->last;i++)

for(j=i;j<=XY->last;j++)

if(a[i].chengji<=a[j].chengji)

{k=a[j].chengji;a[j].chengji=a[i].chengji;a[i].chengji=k;

strcpy(*b,a[j].xingming);strcpy(a[j].xingming,a[i].xingming);strcpy(a[i].xingming,*b);

}

for(i=0;i<=XY->last;i++)

printf("%s%d\n",a[i].xingming,a[i].chengji);

fclose(fp);

}

 

voidmain()/*主函数*/

{

intN;

xueyuan*XY;

main_screen();

scanf("%d",&N);

while(N!

=NULL){

if(N==1)re_input(XY);

elseif(N==2)add_input(XY);

elseif(N==3){select_by_name_order(XY);printf("\n\n\n");}

elseif(N==4){select_by_achievement_order(XY);printf("\n\n\n");}

elseif(N==5)exit(0);

elseprintf("ERROR");

scanf("%d",&N);

}

getch();

}

 

结束语

通过这次《数据结构课程设计》,我锻炼了动手能力,能把学到的知识加以运用,而不是仅仅像考试那样纸上谈兵,收获很大。

同时也认识到自己所学的知识还很少,今后更应该好好学习。

致谢:

感谢xx老师在课程设计期间对我的指导和帮助,也感谢同学对我的帮助。

 

参考文献

[1]书籍——严蔚敏吴伟明编著,《数据结构》C语言版,北京清华大学学研大厦,清华大学出版社,1997年4月。

[2]书籍——唐浩强著,《C程序设计》第三版,北京清华大学学研大厦,清华大学出版社,2008年7月,p330。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1