logo资料库

数据结构学籍管理系统.doc

第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
资料共17页,剩余部分请下载后查看
目 录
长 春 大 学 课程设计纸 目 录 一、设计目的 ...................................................... 2 二、设计内容 ...................................................... 3 三、设计要求 ...................................................... 4 四、设计过程 ...................................................... 4 1.算法思想分析 ................................................ 4 2.算法描述与实现 .............................................. 5 3.系统测试 .................................................... 7 五、设计总结 ..................................................... 11 参考文献 ......................................................... 12 附录 ............................................................. 13 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 共 17 页 第 1 页
长 春 大 学 一.设计目的 课程设计纸 1.了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能 力; 2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方 法和技能; 3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力; 4.训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所 应具备的科学的工作方法和作风。 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 共 17 页 第 2 页
课程设计纸 长 春 大 学 二.设计内容 2.1 开发环境 操作系统: Windows 7 开发工具:Microsoft Visual C++ 6.0 开发语言:C++ 2.2 功能简介: 本程序采用 C++编写,用于管理学生信息,基本功能有 批 量添加学生信息,单个添加学生信息,按学号查找学生,按姓 名查找学生,按学号删除学生信息,排序输出全部学生信息以 及退出功能。 程序流程: 开始 选择功能 批 量 添 加 按 学 号 查 找 按 姓 名 查 找 添 加 信 息 按 学 号 删 除 排 序 输 出 结束 共 17 页 第 3 页 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊
长 春 大 学 三.设计要求 课程设计纸 1) 程序设计要求: ①采用交互工作方式,设计功能菜单; ②建立数据文件,数据包含学生的自然信息和成绩信息(设计几门课以及 总成绩); ③对如下关键字:姓名、学号、各科成绩进行排序(冒泡、选择、插入排序 等任选一种)。 2) 用二分查找实现如下查询: ①按姓名查询 ②按学号查询 3) 用堆排序找出总成绩排名的前 5 名学生 4) 输出任一查询结果(可以连续操作) 四.设计过程 1.算法思想分析 根据设计要求,首先定义三个数组,分别存放学号、 姓名、成绩. typedef struct stud //学生信息结构 { long num; char name[20]; float score; }Stud; 然后编写函数,实现添加、查找、删除、排序、退出 共 17 页 第 4 页 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊
长 春 大 学 课程设计纸 功能,对数组元素进行操作。 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->student.name,s)==0) { printf("%ld %s %f\n",p->student.num,p->student.name,p->student.sc ore); flag=1; p=p->next; continue; } else p=p->next; } if(!flag) printf("没有找到相关信息"); } 共 17 页 第 5 页 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊
长 春 大 学 课程设计纸 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->student.name,p->student.sc ore); } } 输出信息: void print() { Node *p=head; printf("\n 学号 while(p!=NULL){ printf("%ld %s %f\n",p->student.num,p->student.name,p->stude 成绩:\n"); 姓名 nt.score); p=p->next; } printf("\n"); } ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 共 17 页 第 6 页
长 春 大 学 3.系统测试 1.菜单 课程设计纸 用户运行程序后,显示如下所示菜单,用户根据菜单提示进行 操作(如图 2.1)。 2.批量添加 图 2.1 用户选择批量添加学生信息功能进行批量添加,可连续添加, 按 0 结束添加操作(如图 2.2)。 图 2.2 共 17 页 第 7 页 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊
长 春 大 学 3.按学号查找学生 课程设计纸 将学生信息录入之后,若想查找某个学生,用户可选择按学 号查找学生信息(图 2.3)。 图 2.3 4.按姓名查找学生 将学生信息录入之后,若想查找某个学生,用户可选择按姓 名查找学生信息(图 2.4)。 图 2.4 共 17 页 第 8 页 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊
分享到:
收藏