欢迎来到天天文库
浏览记录
ID:55704372
大小:142.00 KB
页数:28页
时间:2020-05-25
《学生成绩管理系统的设计与实现.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、一.概述1.1设计目的及要求实验目的:通过该系统的设计,加深对数据结构链表的建立、添加、查询等的掌握,加深对排序算法的掌握等。实验要求:在顺序存储结构基础上进行的插入、删除、查找等算法的思想和实现。掌握线性表的链式存储结构的建立。在链表中插入、删除和查找算法的思想和算法实现。1.2实验环境Windowsxp系统VC++6.0二.设计思路及内容2.1设计思路程序设计由两部分组成:算法和数据结构,合理地选择和实现一个数据结构与处理这些数据结构具有同样的重要性。2.2设计内容1、记录包括一个学生的学号、姓名、性别、
2、各门课成绩、综合成绩。2、输入功能:可以一次完成若干条记录的输入。3、显示功能:完成全部学生记录的显示。4、查找功能:完成按姓名或学号查找学生记录,并显示。5、排序功能:按学生成绩或学号进行排序。6、插入功能:插入一条新的学生记录。7、将学生记录存在文件学生中。8、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!三.程序设计3.1程序模块可以将这个系统分为以下模块:查询模块、排序模块、添加模块、删除模块。Main函数Menu函数查询模块删除模块添加模块排序模块3.2程序流图图3-1
3、主函数流程图图3-2查询模块流程图排序选择排序方式按学号排序按成绩排序输出图3-3排序模块流程图添加输入学生信息保存图3-4添加模块流程图删除删除成功输入删除学生名字图3-5删除模块流程图3.3结构体typedefstructstudent//定义学生{charname[10];intnumber;charsex[2];intmath;integlish;intclanguge;intaverage;}student;typedefstructunit//定义接点{studentdate;structunit
4、*next;}unit;3.4主函数功能介绍主函数一般设计得比较简单,只提供输入,处理和输出部分的函数调用,其中各功能模块用菜单方式菜单选用switch-case来选择。3.5源代码#include#include#includetypedefstructstudent//定义学生{charname[10];intnumber;charsex[2];intmath;integlish;intclanguge;intaverage;}student;ty
5、pedefstructunit//定义接点{studentdate;structunit*next;}unit;unit*build()//建立链表并返回指针{unit*p;if((p=(unit*)malloc(sizeof(unit)))==NULL){printf("=>初始化失败!");return0;}else{p->next=NULL;p->date.number=0;//头结点存放学生人数printf("初始化成功!");returnp;}}voidadd(unit*head)//增加学生{
6、unit*p,*q;intm,n=0;q=head->next;p=(unit*)malloc(sizeof(unit));printf("=>请输入新生姓名!");gets(p->date.name);fflush(stdin);printf("=>请输入学号!");while(n==0){scanf("%d",&m);fflush(stdin);if(q==NULL)n=1;while(q){if(q->date.number==m){printf("=>你输入的学号与已有同学的学号相同,请重新输
7、入!");q=head->next;break;}else{q=q->next;if(q==NULL)n=1;}}}p->date.number=m;printf("=>请输入性别!");gets(p->date.sex);fflush(stdin);printf("=>请输入数学成绩");scanf("%d",&m);fflush(stdin);p->date.math=m;printf("=>请输入英语成绩");scanf("%d",&m);fflush(stdin);p->date.eg
8、lish=m;printf("=>请输入c语言成绩");scanf("%d",&m);fflush(stdin);p->date.clanguge=m;p->date.average=(p->date.math+p->date.eglish+p->date.clanguge);q=head->next;head->next=p;p->next=q;head->date.number++;}voi
此文档下载收益归作者所有