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

下载本文档

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

文档简介

1、数 据 结 构 课 程 设 计设计题目:学生成绩管理系统 学生姓名: 专业班级: 1 0 计网( 2) 班 指导教师: 完成时间: 2011.12.18 信息工程 学院 计科 系目录引 言3第一章 总体概述41.1、课程设计应完成的工作41.2、学生成绩管理系统基本操作的步骤4第二章 需求分析52.1、系统需求52.1.1问题描述:52.1.2功能要求:52.1.3输入输出的形式52.2、开发环境6第三章 详细设计63.1、系统流程图63.2、界面设计73.2.1主界面:在此界面用户可以选择要操作的选项,回车之后即可进入相关的页面进行操作73.2.2 在本用户界面可以输入学生的基本信息73.2

2、.3在本用户界面里可以显示学生的基本信息83.2.4可以在本用户界面插入新的学生信息83.2.5可以在本用户界面显示插入过后的学生信息83.2.7 可以在删除信息过后再显示学生的基本信息9第四章 源代码10参考文献16引 言通过本课程设计,使自己更加系统地理解和掌握数据结构的基本概念;能自如地根据实际要求,设计相应的数据结构,并运用c或c+语言实现所设计的算法,编写较大型的程序,分析和解决实际应用问题,进一步加深、巩固所学专业课程的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。掌握c语言或c+语言独立的编写、调试应用程序和进行其它相关设计的技能。此项目主要是考察我们对

3、结构体、数组、文件等具体操作,以及对c语言语法的掌握,所以做成此项目要求比较高的设计要求,对整体有很熟悉的概括,同时调试过程也是很重要的,对程序界面的要求也比较高,要设计的合理同时也要美观一点,能够人性化的描述清楚你的各个功能,一目了然,对其他用户使用本程序简单易懂,这才能成本程序或本系统是成功的。对于学生成绩管理系统,此项目每年都有学生去做,但是能够在其他项目中脱颖而出,还要有自己的设计特色,用简单的语言详细描述系统的功能,这才是关键。这个设计能够练习我们的理解和运用结构化程序设计的思想和方法,掌握开发一个小型实用系统的基本方法,学会调试一个比较长的程序的基本方法,同时掌握书写程序设计开发文

4、档的能力。第一章 总体概述1.1、课程设计应完成的工作1.1.1编写算法1.1.2算法测试,并有具体的测试结果和结果分析1.1.3撰写课程报告,内容包括: (1)封面 (2)目录 (3)课程设计报告正文 (4)使用说明 (5)参考文献1.2、学生成绩管理系统基本操作的步骤 (1)输入学生信息并保存到文件 (2)读取文件并输出学生信息 (3)按姓名及学号查询 (4)插入信息 (5)按学号或姓名删除信息 (6)按数据结构降序(冒泡)排序 (7)退出第二章 需求分析2.1、系统需求2.1.1问题描述: 该系统实现对若干个大学生的学习成绩进行管理。至少包括以下信息:学号、姓名、成绩。2.1.2功能要求

5、:(1)使用中文菜单,界面设计和用户输入输出要人性化些;(2) 将学生信息保存在文本文档中,具体对学生信息进行插入删除查询操作时,将保存在文本文档中的学生信息提取出来,保存在自己定义的数据结构中,然后再对该数据结构进行操作,所有操作完成,或者在相应的命令后,再将学生信息保存到文本文档中。(3)具有数据输入功能,输入的数据能最终保存在文件中;(4)具有数据删除功能,能最终从文件中删除;(5)排序功能,根据自己设计的数据结构,设计排序算法(6)具有查询功能(姓名查询)2.1.3输入输出的形式本系统是一个学生成绩管理系统,采用vc+6.0 编译器作为开 发环境,这个环境是我们在学习c+的平台。输入数

6、据类型主要是char、int、float等数据类型,输入内容包括:成绩、学号、姓名。用户在输入学生数据时要保证输入数据格式的正确性,系统不会自动检测输入的数据是否正确,输出形式与输入形式类似,根据需要可以选择显示输入的各项内容,还可以选择显示计算好平均分后并排序后的记录,显示内容包括:学号、姓名、成绩。 2.2、开发环境visual c+不仅仅是是一个c+编译器,而是一个基于windows操作系统的可视化集成开发环境,这种环境开发出来的软件稳定性好、可移植性强,可以编制各种各样的windows应用程序。第三章 详细设计3.1、系统流程图 开始 主界面查询学生信息输出学生成绩输入学生成绩退出本系

7、统插入学生成绩删除学生信息 结束3.2、界面设计3.2.1主界面:在此界面用户可以选择要操作的选项,回车之后即可进入相关的页面进行操作3.2.2 在本用户界面可以输入学生的基本信息3.2.3在本用户界面里可以显示学生的基本信息3.2.4可以在本用户界面插入新的学生信息3.2.5可以在本用户界面显示插入过后的学生信息3.2.6 在本用户界面可以实现删除信息的操作3.2.7 可以在删除信息过后再显示学生的基本信息所有操作均有提示语,比较人性化的管理,易懂,简单。第四章 源代码#include /*引用库函数*/#include#include#includetypedef struct /*定义结

8、构体数组*/ char num10; /*学号*/ char name20; /*姓名*/ int score; /*成绩*/student;student stu80; /*结构体数组变量*/int menu_select() /*菜单函数*/ char c; do system(cls); /*运行前清屏*/ printf(tt*学生成绩管理系统*n); /*菜单选择*/ printf(tt | 1. 输入成绩 |n); printf(tt | 2. 显示记录 |n);printf(tt | 3. 排序记录 |n); printf(tt | 4. 插入数据 |n); printf(tt |

9、 5. 删除数据 |n); printf(tt | 6. 查找显示 |n); printf(tt | 0. 退 出 |n); printf(tt*n); printf(ttt请选择操作(0-9):); c=getchar(); /*读入选择*/ while(c6); return(c-0); /*返回选择*/int input(student stud,int n) /*输入若干条记录*/int i=0;char sign,x10; /*x10为清除多余的数据所用*/while(sign!=n&sign!=n) /*判断*/ printf(ttt学生学号:); /*交互输入*/ scanf(t

10、tt%s,studn+i.num); printf(ttt学生姓名:); scanf(ttt%s,studn+); printf(ttt学生成绩:); scanf(ttt%d,&studn+i.score); gets(x); /*清除多余的输入*/ printf(ttt继续吗?(y/n); scanf(ttt%c,&sign); /*输入判断*/ i+;return(n+i);void display(student stud,int n) /*显示所有记录*/int i;printf(ttt-n); /*格式头*/printf(ttt学号 姓名 成绩n);printf(ttt-

11、n);for(i=1;i1&i%10=0) /*每十个暂停*/ printf(ttt-n); /*格式*/ printf(ttt); system(pause); printf(ttt-n); printf(ttt);system(pause);void sort_by_num(student stud,int n) /*按学号排序*/ int i,j,*p,*q,s; char t10; for(i=0;in-1;i+) /*冒泡法排序*/ for(j=0;j0) strcpy(t,studj+1.num); strcpy(studj+1.num,studj.num); strcpy(stu

12、dj.num,t); strcpy(t,studj+1.name); strcpy(studj+1.name,); strcpy(,t); p=&studj+1.score; q=&studj.score; s=*p; *p=*q; *q=s; int insert_a_record(student stud,int n) /*插入一条记录*/char x10; /*清除多余输入所用*/ printf(ttt学生学号:); /*交互式输入*/ scanf(ttt%s,studn.num); printf(ttt学生姓名:); scanf(ttt%s,st

13、); printf(ttt学生成绩:); scanf(ttt%d,&studn.score); gets(x); n+; sort_by_num(stud,n); /*调用排序函数*/ printf(ttt插入成功!n); /*返回成功信息*/ return(n);int delete_a_record(student stud,int n) /*按姓名查找,删除一条记录*/ char s20; int i=0,j; printf(ttt姓名?:); /*交互式问寻*/ scanf(%s,s); while(strcmp(,s)!=0&in) i+; /*查

14、找判断*/ if(i=n) printf(ttt记录不存在!n); /*返回失败信息*/ return(n); for(j=i;jn-1;j+) /*删除操作*/ strcpy(studj.num,studj+1.num); strcpy(,studj+1.name); studj.score=studj+1.score; printf(ttt删除成功!n); /*返回成功信息*/ return(n-1);void query_a_record(student stud,int n) /*查找并显示一个记录*/ char s20; int i=0; printf(ttt姓名

15、?:); /*交互式输入*/ scanf(ttt%s,s); while(strcmp(,s)!=0&in) i+; /*查找判断*/ if(i=n) printf(ttt记录不存在!n); /*输入失败信息*/ return; printf(ttthis(her) number:%sn,studi.num); /*输出该学生信息*/ printf(ttthis(her) score:%dn,studi.score);void main() /*主函数*/int n=0; for(;) switch(menu_select() /*选择判断*/ case 1: printf

16、(ttt输入信息n); /*输入若干条记录*/ n=input(stu,n); break; case 2: printf(ttt显示记录n); /*显示所有记录*/ display(stu,n); break; case 3: printf(ttt排序记录n); sort_by_num(stu,n); /*按学号排序*/ printf(ttt排序成功!n); printf(ttt); system(pause); break; case 4: printf(ttt插入数据n); n=insert_a_record(stu,n); /*插入一条记录*/ printf(ttt); system(

17、pause); break; case 5: printf(ttt删除数据n); n=delete_a_record(stu,n); /*按姓名查找,删除一条记录*/ printf(ttt); system(pause); break; case 6: printf(ttt查找显示n); query_a_record(stu,n); /*查找并显示一个记录*/ printf(ttt); system(pause); break; case 0: printf(tt);ttt退出!n); /*结束程序*/ printf(t system(pause); exit(0); 参考文献【1】严蔚敏,吴

18、伟民.数据结构(c语言版).北京:清华大学出版社,2009.【2】耿国华.数据结构c语言描述.西安:西安电子科技大学出版社,2002.【3】田鲁怀.数据结构.北京:电子工业出版社,2006.【4】彭波.数据结构及算法.北京:机械工业出版社,2008.【5】宗大华,宗杰,黄芳.数据结构.北京:人民邮电出版社,2010.【6】王红梅,胡明,王涛.数据结构(c+版).北京:清华大学出版社,2005.【7】范策,周世平,胡潇昆.算法与数据结构(c语言版).北京:机械工业出版社,2004.【8】陈慧南.算法设计与分析)(c+语言描述).北京:电子工业出版社,2006.【9】秦锋.数据机构(c+版).北京:北京大学出版社,2006.【10】李春葆,尹为民,李蓉蓉.数据结构教程.北京:清华大学出版社,2009.【11】顾为兵.数据结构及应用算法.合肥:中国科学技术大学出版社,2008.【12】吉根林.数据结构教程(c+版).北京:电子工业出版社,2

温馨提示

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

评论

0/150

提交评论