基于单链表的学生信息管理系统源代码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件学院

项目报告书

课程:专业实训

项目名称: 学生信息管理系统

专业年级: 软件工程Java2级

姓名: ××

学号: ×××××

指导教师: ××

2011年06月14日

目录

第1章问题描述 (2)

1.1 课题背景 (2)

1.2需求分析 (3)

1.2.1 功能需求 (3)

1.2.2 性能需求 (4)

1.3本章小结 (4)

第2章总体设计 (5)

2.1系统介绍 (5)

2.2主程序执行流程图 (6)

第3章代码设计 (7)

3.1程序运行结果截图 (7)

3.2程序源代码 (11)

3.3本章小结 (17)

第4章总结 (18)

参考文献 (19)

第1章问题描述

1.1 课题背景

管理系统是使用电子计算机执行管理和决策功能的服务系统,是六十年代以后,随着系统科学,信息技术以及计算机科学的进展,适应现代化管理的需要而形成的一门边缘学科。它是将计算机硬件,软件,人工规程,管理制度,决策模拟以及管理人员等组合在一起的一个人--机系统。

学生信息管理系统,是针对目前学生信息处理工作的实际情况,结合数据技术,设计开发的学生信息管理系统;能够实现创建、添加、插入、排序、查找、修改学生信息等。

学生信息管理系统是典型的信息管理系统,其开发主要包括前端应用程序的开发和后台数据库的建立和维护两个方面。对前者要求应用功能完备,容易使用,界面友好等;而对后者则要求建立起数据库一致性和完整性强,数据安全性好的数据库。

学生信息管理系统是教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说至关重要,能够为学校的管理者提供充足的学生信息和快捷的查询手段。

1.2 需求分析

1.2.1 功能需求

(1)本系统具有很强的可靠行,可以对录入的学生信息进行效验,对数据进行修改、删除,可以方便管理员的修改与维护。

(2)本系统操作方便、灵活、简单。操作人员只需录入学生的基本信息和考试成绩的数据。

(3)本系统可高效、快速的查询到学生的基本信息和考试成绩,便于管理员管理工作的开展。

(4)本系统主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改、添加,另外还考虑到学生考试成绩,针对这些要求设计了学生信息管理系统。本系统主要包括信息录入、信息维护、信息查询、报表打印、关闭系统这

几部分。其功能主要有:

⒈有关学生信息的录入,包括录入学生基本信息、学生考试成绩等。

⒉学生信息的维护,包括添加修改学生基本信息、考试成绩信息。

⒊学生信息的查询,包括查询学生的个人基本信息、科目考试成绩。

⒋信息的报表打印,包括学生的基本信息的报表打印、考试成绩的报表打印。

1.2.2 性能需求

本项目是一个学生信息管理系统,运行环境VC++6.0,项目运行速率正常,可以满足用户需求。

1、时间特性要求:响应时间要低于5秒

2、便捷性:在程序运行过程中,系统自动提示用户进行每一步操作,程序功

能明了简洁!

1.3 本章小结

本章介绍了学生信息管理系统的背景意义,并对本系统功能需求和性能需求进行了分析,可以清晰看到学生信息管理系统在进行信息管理时的优越性。

第2章总体设计

2.1 系统介绍

1.学生信息管理系统主要涉及到查询等各的功能,需要通过磁盘读写数据,虽然本系统仅实现了简单的功能,但也需要按照系统整体性来设计。程序可以查询、修改、增添、删除学生信息,并将之保存在磁盘文件中,信息数据不易丢失;

2.为了提高系统的稳定性和可重用性,程序采用子函数调用的形式完成各项功能,并用单向动态链表存储从磁盘文件读取到的信息;

3.屏幕设计:屏幕作为信息的显示,通过输出格式的控制,界面更简洁、合理!

第3章代码设计

3.1 程序运行结果截图

主界面:

创建学生链表:

按学号查询:

按姓名查询:

删除学生(删后自动排序):

添加学生(添后自动排序):

计算总人数及男女生人数:

程序的退出:

3.2 程序源代码

//学生信息管理系统

#include

#include

#include

#define NULL 0

#define LEN sizeof(struct student)

//建立动态链表.cpp

using namespace std;

struct student

{

int num;

char name[20];

char sex[5];

float math;

float english;

int order;

struct student *next;

};

int n;

int male=0;

int famale=0;

struct student *creat(void)

{

struct student *head,*p1,*p2;

n=0;

p1=p2=(struct student *)malloc(LEN);

cout<<"下面开始创建链表:"<

cout<<"学号 "<<"姓名 "<<"性别 "<<"数学 "<<"英语 "<

cin>>p1->num>>p1->name>>p1->sex>>p1->math>>p1->english;

head=NULL;

while(p1->num!=0)

{

if(strcmp(p1->sex,"男")==0) male++;

else famale++;

n++;

if(n==1)head=p1;

else p2->next=p1;

p2=p1;

p1=(struct student*)malloc(LEN);

相关文档
最新文档