数据结构课程设计-基于C语言的学生成绩管理系统设计.doc

上传人:小小飞 文档编号:3277346 上传时间:2019-08-07 格式:DOC 页数:13 大小:486.51KB
返回 下载 相关 举报
数据结构课程设计-基于C语言的学生成绩管理系统设计.doc_第1页
第1页 / 共13页
数据结构课程设计-基于C语言的学生成绩管理系统设计.doc_第2页
第2页 / 共13页
数据结构课程设计-基于C语言的学生成绩管理系统设计.doc_第3页
第3页 / 共13页
数据结构课程设计-基于C语言的学生成绩管理系统设计.doc_第4页
第4页 / 共13页
数据结构课程设计-基于C语言的学生成绩管理系统设计.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《数据结构课程设计-基于C语言的学生成绩管理系统设计.doc》由会员分享,可在线阅读,更多相关《数据结构课程设计-基于C语言的学生成绩管理系统设计.doc(13页珍藏版)》请在三一文库上搜索。

1、课程设计说明书(论文)用纸摘 要数据结构是计算机程序设计的重要理论技术基础, 要求学生编写的程序结构清楚和正确易读,符合软件工程的规范,培养我们的数据抽象能力。本系统全称为实验课成绩管理系统,主要包括插入,删除,排序,更新,查找等六个模块,整个程序是采用c语言进行编写的,在这次程序设计中,本人所负责的主要时排序模块。不仅可以完成对学生学号的排序,还可以根据总分对学生信息进行排序。 本文主要介绍了该系统的需求分析,概要设计,详细设计,以及测试分析等部分,重点介绍了本人所设计模块的详细设计以及测试分析。关键词:成绩管理系统,C语言,数据结构目 录1 需求分析11.1 数据需求分析11.2 功能需求

2、分析12 概要设计22.1 系统模块划分22.2 系统模块结构图23 详细设计33.1 创建学生信息表33.2 结构类型定义33.3 函数调用43.4 排序53.5 输出学生信息表64 测试分析7总 结9参考文献10II1 需求分析当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境.计算机的最大好处在于利用它能够进行信息管理.使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性.尤其对于复杂的信息管理,计算机能够充分发挥它的优越性. 学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所

3、以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段,对学生来说可以轻松的查阅自己在校的成绩。 1.1 数据需求分析本系统的主要数据信息有学生实验课成绩信息表。学生信息表包括:学号,姓名,实验成绩,平时成绩,总成绩等。1.2 功能需求分析本系统主要实现对学生实验课成绩信息进行管理,需要实现以下几个方面的管理功能:(1)学生管理:学生信息的添加、删除、修改、查询、排序。(2)打印输出:学生实验课成绩信息。第 2 页 共 20 页2 概要设计 2.1 系统模块划分数据结构的研究内容:数据的逻辑结构,数据的存储结构,数据的操作。线性表是一种典型的线性数据结构,它可以采用链式结构与顺序存储结

4、构来存储。本课程设计采用的是顺序存储结构,并上施加了一些操作:插入,删除,查找,排序,修改等。(1)主界面模块提供实验课成绩管理系统的主菜单界面,供用户选择与执行各项管理工作。(2)查询模块用于用户根据学号进行成绩的查询。(3)录入模块用于将用户的基本信息存储到数据库。(4)删除模块用于根据学号删除用户的基本信息。(5) 插入模块用于将用户的基本信息插入到记录中。(6)排序模块用于根据用户的要求进行排序。 本学生所负责的模块是完成记录的排序与输出,不仅可以自动对学号进行排序还可以对总成绩进行排序。2.2 系统模块结构图实验课成绩管理系统工程插入查找更新录入实验成绩单平时成绩单按学号查找排序删除

5、按总分查找根据系统功能设计,对应的系统模块结构图如图1所示。图1 系统模块结构图第 9 页 共10页3 详细设计 3.1 创建学生信息表创建顺序表,也就是如何对一个顺序存储的线性表进行数据的录入。即,对已经定义好的线性表进行数据的附值。思想:本课程能够提示用户输入相应的信息,并能够自动进行运算,将数据保存到文件中,并进行输出。相关代码:/* 构建学生信息库 */student createdatabase() int n,i; printf(nnPlease Input Students Sum:n); scanf(%d,&n); for(i=1;i=n;i+) printf(Di %d Ge

6、 Xue Sheng De Ji Ben Xin Xi:n,i); printf(Please Input No:n); scanf(%d,&List.datai-1.xuehao); printf(Please Input Name:n); scanf(%s,List.datai-1.name); printf(Please Input ping shi cheng ji:n); scanf(%d,&List.datai-1.pingshi); printf(Please Input shi yan cheng ji:n); scanf(%d,&List.datai-1.shiyan); L

7、ist.len=n; 3.2 结构类型定义要想让计算机对数据进行处理,首先要将数据存储到计算机。为此,必须先定义数据的存储类型。由于本课题采用的顺序存储结构,结构类型定义如下:typedef struct /*结构类型的定义*/ int xuehao; char nameN; int shiyan,pingshi,zhong;stu;typedef struct Lnode /顺序表类型的定义 stu dataM; int len;student;static student List; /定义顺序表static FILE *fp; /定义文件型指针变量3.3 函数调用 main() clrs

8、cr(); Welcome(); clrscr(); ZhuJieMian(); getch();其实在主函数中并没有使用太多的调用,而是使用了一个函数专门实现其它函数的调用,这样可以使程序更加清晰,可移植性强。该函数如下:ZhuJieMian() int t,i,no,ldata,lname; printf(nnn); printf( *nn); printf( Please Choose The Number You Like!nn); printf(n); printf( Switch()n); printf(n); printf( 1 Inputn); printf(n); print

9、f( 2 Shanchun); printf(n); printf( 3 Charun); printf(n); printf( 4 Updaten); printf(n); printf( 5 Searchn); printf(n); printf( 6 Sortn); printf(n); printf( 7 Endn); scanf(%d,&t); if(t=6) clrscr(); printf(n); printf( *Shu Ju Pai xu*nn);Sort();getch(); clrscr(); ZhuJieMian(); if(t=7) clrscr(); printf(

10、nnn); printf( *See You !*nn); getch(); exit(0);3.4 排序思想:本程序主用运用冒泡法对记录进行排序,其中用两种排序方法,一种是根据学号进行排序,另一种是根据总分成绩进行排序。Sort( ) /*排序*/ int i,j,flag,No; stu x;printf( 1 an xue hao pai xu 2 an zhong fen pai xun); printf(Input The Number Which Be Sorted:n); scanf(%d,&No); if(No=1) /根据学号进行排序 for(i=1;i=List.len-1

11、;i+) flag=0; for(j=0;jList.len-1;j+) if(List.dataj+1.xuehaoList.dataj.xuehao) flag=1; x=List.dataj+1; List.dataj+1=List.dataj; List.dataj=x; if(flag=0) break; if(No=2) /根据总分成绩进行排序 for(i=1;i=List.len-1;i+) flag=0; for(j=0;jList.len-1;j+) if(List.dataj+1.zhongList.dataj.zhong) flag=1; x=List.dataj+1;

12、List.dataj+1=List.dataj; List.dataj=x; if(flag=0) break; 3.5 输出学生信息表思想:该程序能够将保存到相应文件中的记录输出,该文件有指针fp指向。Save( ) int i; if(fp=fopen(shu ju.txt,a)!=NULL) printf(Nott); printf(Namett);printf(pingshichengjit);printf(shiyanchengjit);printf(zhongchengjin); for(i=1;i=List.len;i+) printf(%dtt,List.datai-1.xue

13、hao); printf(%stt,List.datai-1.name); printf(%dtt,List.datai-1.pingshi); printf(%dtt,List.datai-1.shiyan); List.datai-1.zhong= (List.datai-1.pingshi+List.datai-1.shiyan)/2; printf(%dtt,List.datai-1.zhong);fprintf(fp,%dtt%stt%dtt%dtt%dn,List.datai-1.xuehao,List.datai-1.name,List.datai-1.pingshi,List.

14、datai-1.shiyan,List.datai-1.zhong); printf(n); fclose(fp);4 测试分析 运行程序成功,出现欢迎界面,按任意键,将会出现主菜单的界面,界面如图2所示:图2 主界面选择1,对数据进行录入,此时输入三个记录,并由系统自动进行输出,界面如2图所示。图3 录入信息界面按任意键返回到主界面,选择5,实现对录入的数据进行排序的功能,所出现的界面图4所示:图4 数据排序界面此时有两种排序方法,选择1,将对学号进行排序,选择2,就可以将记录按照总分从小到大进行排序了,所得到的界面分别如下:图5 按学号排序模块图6 按总分排序模块 总 结在这次课程设计中,

15、本人做的主要是排序功能,包括对学生按照学号进行排序,同时还可以根据总分进行排序。学生信息主要包括:学号、姓名、平时成绩、实验成绩等。运用了冒泡法来编写算法,加深了我对该算法的理解。同时,我还了解了编写算法的基本流程。通过本次课程设计,我第一次体会到了编写程序的艰辛,但是,当我费了好大劲将程序运行出来的时候,我才真正体会到了快乐的滋味。在编写过程中我对数据结构的基本编程方法也有了更加深层的理解,虽然只是短短的一个星期,但这已经足够了。这一个星期过得真的很充实。但看到自己所编写的程序能够运行的时候,感到很有成就感。我现在对于我所学习的课程有了更加深刻的认识,对数据结构也更加感兴趣了。感谢学校给我们提供了这个平台,让我们能够把理论运用到实践中去。同时,我还要感谢老师,在这次课程设计中老师也对我们提供了很大的帮助。参考文献1 曹衍龙等.C语言实例解析精粹(第二版).北京:人民邮电出版社,2007.8. 2 谭浩强.C程序设计(第三版).北京:清华大学出版社,2005.7. 3 张磊等.C语言程序设计教程.北京:中国铁道出版社,2007.8. 4 严蔚敏,吴伟民等.数据结构(C语言版).北京:清华大学出版社,1997.4. 5 余苏宁等.C+课程设计.北京:高等教育出版社,2004.1. 6 黄梯云.管理信息系统(修订版)M.北京:高等教育出版社,2000年.

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

当前位置:首页 > 研究报告 > 信息产业


经营许可证编号:宁ICP备18001539号-1