数据结构学籍管理系统

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

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

目录

一、设计目的 (2)

二、设计内容 (3)

三、设计要求 (4)

四、设计过程 (4)

1.算法思想分析 (4)

2.算法描述与实现 (5)

3.系统测试 (7)

五、设计总结 (11)

参考文献 (12)

附录 (13)

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊一.设计目的

1.了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;

2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;

3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;

4.训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊二.设计内容

2.1开发环境

操作系统:Windows 7

开发工具:Microsoft Visual C++ 6.0

开发语言:C++

2.2功能简介:

本程序采用C++编写,用于管理学生信息,基本功能有批量添加学生信息,单个添加学生信息,按学号查找学生,按姓名查找学生,按学号删除学生信息,排序输出全部学生信息以及退出功能。

程序流程:

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊三.设计要求

1) 程序设计要求:

①采用交互工作方式,设计功能菜单;

②建立数据文件,数据包含学生的自然信息和成绩信息(设计几门课以及

总成绩);

③对如下关键字:姓名、学号、各科成绩进行排序(冒泡、选择、插入排序

等任选一种)。

2) 用二分查找实现如下查询:

①按姓名查询

②按学号查询

3) 用堆排序找出总成绩排名的前5名学生

4) 输出任一查询结果(可以连续操作)

四.设计过程

1.算法思想分析

根据设计要求,首先定义三个数组,分别存放学号、姓名、成绩.

typedef struct stud //学生信息结构

{

long num;

char name[20];

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

float score;

}Stud;

然后编写函数,实现添加、查找、删除、排序、退出功能,对数组元素进行操作。

2.算法描述与实现

添加信息:

定义添加信息函数,将输入的信息添加到数组中:

void inser(long b)

{

Node *last,*current,*p;

current=head;

while(current!=NULL&&b>current->student.num){

last=current;

current=current->next;

}

查找学生:

void searchname(char *s) //按姓名查找

{

Node *p=head;

int flag=0;

printf("\n学号姓名成绩:\n");

while(p!=NULL)

{

if(strcmp(p->,s)==0)

{

printf("%ld %s %f\n",p->student.num,p->,p->student.sc

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊ore);

flag=1;

p=p->next;

continue;

}

else p=p->next;

}

if(!flag) printf("没有找到相关信息");

}

void find(long b) //按姓名查找

{

Node *p=head;

while(p!=NULL&&b!=p->student.num)

p=p->next;

if(!p) printf("No found\n");

else {

printf("\n学号姓名成绩\n");

printf("%ld %s %f\n",p->student.num,p->,p->student.sc ore);

}

}

输出信息:

void print()

{

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

Node *p=head;

printf("\n学号姓名成绩:\n");

while(p!=NULL){

printf("%ld %s %f\n",p->student.num,p->,p->stude nt.score);

p=p->next;

}

printf("\n");

}

3.系统测试

1.菜单

用户运行程序后,显示如下所示菜单,用户根据菜单提示进行操作(如图2.1)。

图2.1

2.批量添加

相关文档
最新文档