[学生信息管理系统实验报告.doc
文本预览下载声明
面向对象程序设计大作业
------学生信息管理系统
学 院 名 称 信息科学与工程学院
专业班级 数学大类2011级2班
学生姓名 魏仿
学 号 201101051324
指 导 教 师 孙红梅
完成时间: 2013 年 5 月 29 日
学生信息管理系统
1、编程目的
为方便学生信息的管理,特编写这个程序方便操作学生信息管理系统。实现对学生姓名、学号、性别、成绩等信息的管理,可以实现学生的增加、删、查等多种功能的操作。
2、系统简介
本系统实现学生信息的管理,以动态链表、结构体数据类型来实现数据的存储与加工,利用链表来实现学生信息的插入、删除、查找功能。
主要分7个模块:
模块一:
结构体的定义,定义struct student{};struct date{};结构体struct student{};数据成员包括:int studentId; char name[20]; char sex[5]; struct date birthday; int score; struct student *next; 其中 struct date birthday;又借用int year; int month;int day;以此来实现学生学号、姓名、性别、出生日期、成绩等信息的存储于处理。
ListCreate函数,函数类型为:struct studentstruct student *head struct student *p 返回值:head指针。实现链表的建立功能。
模块三:
ListInsert函数, 函数类型为:struct studentstruct student *head struct student *p 返回值:head指针。实现链表节点的插入功能。
模块四:
ListDelete函数, 函数类型为:struct studentstruct student *head struct student *p 返回值:head指针。实现链表节点的删除功能。
模块五:
ListPrint函数, 函数类型为:voidstruct student *head 返回值:无
实现链表各节点信息的输出功能。
模块六:
ListFind函数, 函数类型为:voidstruct student *head int id 返回值:无 。遍历链表,查找出符合条件的链表节点,并打印输出。
模块七:void main();主函数,测试数据,测试链表各节点(学生基本信息)的输出、插入、删除、查找功能。
一:数据类型:
1.考虑到学生个人信息包含学号、姓名、性别、出生日期、成绩等信息。因此采用结构体类型,定义学生个人信息结构体,并定义学生学号、姓名、性别、出生日期、成绩等数据成员。
二:存储结构:
选用链表之后,考虑其存储结构,由于要实现信息的插入、删除、查找等功能,显然动态链表更适合。相应的以链式存储结构来存储数据。
三:功能的实现
学生信息的插入功能的实现:在动态链表中要实现节点数据的插入,只要灵活的改变头一个节点的next指针使它指向要插入节点的当前指针,并使要插入接点的next指针指向要插入位置的下一个节点的当前指针即可,当然要对插入的位置进行分情况讨论,如是插在表头,表中还是表未。另外还应当注意的是在插入前,要考虑下呆插入链表是否为空。
学生信息的删除功能的实现:动态链表中节点数据的删除操作与插入操作思路大体相同,
主要思路还是改变指针的指向来实现这一功能。删除位置同样要分情况讨论,当然也要提前考虑链表是否为空,若为空应当给出“当前链表为空”的相应应答。另外还要考虑要删除的节点不在链表中的情况,这种情况下,要报错。
学生信息的查找功能的实现:要查找某个符合一定要求的学生信息,如学号为:1001。
只要遍历链表,打印输出符合条件的学生信息即可。当然也要考虑要查找的信息不在链表中的情况,这是系统要报错。
4、总体设计(附类图)
系统的总体设计要考虑到界面友好性,程序的时间复杂度、空间复杂度,以及程序的健壮性等性能指标。本系统在设计过程中,充分分析考虑了多种可能发生的情况。并对一些可能会导致系统崩溃的细节问题做了进一步处理。如在删除学生信息时考虑了表为空的情况等。
总体设计步骤:
数据结构与存储结构的选择。
数据的输入处理。
程序功能的实现,功能函数的声明与定义。
主函数的定义
显示全部