数据结构课程设计基于C语言的学生成绩管理系统设计_第1页
数据结构课程设计基于C语言的学生成绩管理系统设计_第2页
数据结构课程设计基于C语言的学生成绩管理系统设计_第3页
数据结构课程设计基于C语言的学生成绩管理系统设计_第4页
数据结构课程设计基于C语言的学生成绩管理系统设计_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

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

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

5、所示。图1 系统模块结构图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

6、 %d ge 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",l); printf("please input ping shi cheng ji:n"); scanf("%d",&list.

7、datai-1.pingshi); printf("please input shi yan cheng ji:n"); scanf("%d",&list.datai-1.shiyan); list.len=n; 3.2 结构类型定义要想让计算机对数据进行处理,首先要将数据存储到计算机。为此,必须先定义数据的存储类型。由于本课题采用的顺序存储结构,结构类型定义如下:typedef struct /*结构类型的定义*/ int xuehao; char namen; int shiyan,pingshi,zhong;stu;typedef stru

8、ct lnode /顺序表类型的定义 stu datam; int len;student;static student list; /定义顺序表static file *fp; /定义文件型指针变量3.3 函数调用 main() clrscr(); welcome(); clrscr(); zhujiemian(); getch();其实在主函数中并没有使用太多的调用,而是使用了一个函数专门实现其它函数的调用,这样可以使程序更加清晰,可移植性强。该函数如下:zhujiemian() int t,i,no,ldata,lname; printf("nnn"); printf

9、(" *nn"); printf(" please choose the number you like!nn"); printf("n"); printf(" switch()n"); printf("n"); printf(" 1 inputn"); printf("n"); printf(" 2 shanchun"); printf("n"); printf(" 3 charun"); pr

10、intf("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(" *s

11、hu ju pai xu*nn");sort();getch(); clrscr(); zhujiemian(); if(t=7) clrscr(); printf("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

12、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;i+) flag=0; for(j=0;j<list.len-1;j+) if(list.dataj+1.xuehao<list.dataj.xuehao) flag=1; x=list.dataj+1; list.dataj+1=list.dataj; list.data

13、j=x; if(flag=0) break; if(no=2) /根据总分成绩进行排序 for(i=1;i<=list.len-1;i+) flag=0; for(j=0;j<list.len-1;j+) if(list.dataj+1.zhong<list.dataj.zhong) flag=1; x=list.dataj+1; list.dataj+1=list.dataj; list.dataj=x; if(flag=0) break; 3.5 输出学生信息表思想:该程序能够将保存到相应文件中的记录输出,该文件有指针fp指向。save( ) int i; if(fp=f

14、open("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.xuehao); printf("%stt&

15、quot;,l); 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.dat

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

17、排序了,所得到的界面分别如下:图5 按学号排序模块图6 按总分排序模块 总 结在这次课程设计中,本人做的主要是排序功能,包括对学生按照学号进行排序,同时还可以根据总分进行排序。学生信息主要包括:学号、姓名、平时成绩、实验成绩等。运用了冒泡法来编写算法,加深了我对该算法的理解。同时,我还了解了编写算法的基本流程。通过本次课程设计,我第一次体会到了编写程序的艰辛,但是,当我费了好大劲将程序运行出来的时候,我才真正体会到了快乐的滋味。在编写过程中我对数据结构的基本编程方法也有了更加深层的理解,虽然只是短短的一个星期,但这已经足够了。这一个星期过得真的很充实。但看到自己所编写的程序能够运行的时候,感到很有成就感。我现在对于我所学习的课程有了更加深刻的认识,对数据结构也更加感兴趣了。感谢学校给我们提供了这个平台,让我们能够

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论