面向過程程序设计实践报告模板.docVIP

  • 5
  • 0
  • 约2.03千字
  • 约 11页
  • 2016-12-03 发布于重庆
  • 举报
面向過程程序设计实践报告模板

面向过程程序设计实践 姓 名 学 号 班 级 软件1304 指 导 教 师 石凯 程序实践名称 面向过程程序设计实践 开 设 学 期 2013-2014第二学期 开 设 时 间 第3周——第5周 报告日期 2014/3/29 评 定 成 绩 评定人签字 评 定 日 期 东北大学软件学院 一、程序实践概述 题目名称:学生信息管理系统 时间进度: 第1-2学时的构思lodeBlocks为主,dev-c++、vc++6.0为辅 二、问题分析 1、功能说明: 随机函数产生信息至文件,通过文件导入信息,stdio导入信息 姓名检索,学号检索,修改学生信息,删除学生信息,删除后恢复,删除后重建 原班级添加学生 班级信息文件显示 2、解决方案:相关函数对应相关功能 三、方案设计 1、模块结构:面向过程的思想,从上到下模块化编程 2、数据结构:trie树(姓名检索),二叉树(学号检索),表头为空的单链表(班级),表头表尾均为空的双向链表(学生) typedef struct //语文数学英语总分 { float chinese,math,english; float sum_gra; //总成绩 }GRA; typedef struct //生日 { int year,month,day; }BIR; typedef struct ccc //每个学生的信息 { char name_stu[10]; (姓名) int num_stu; (学号) I num_id; (身份证号码) GRA grade; (成绩) char sex; (性别) int clas; (班级) BIR bir; (生日) int old; (年龄) int is; (是否被删除) struct ccc *linshi; (建立二叉树时的优先队列使用) struct ccc* next_l; (前节点) struct ccc*next_r; (后节点) struct ccc*next_lchild; (左孩子) struct ccc*next_rchild; (右孩子) struct ccc*again; (字典中重复姓名) }STU; 学号的二叉搜索树: 以19为例 其二进制表示为 1 0 0 1 1 在二叉树中从头0结点到19搜索方向 右 左 左 右 右 以27为例 其二进制表示为 1 1 0 1 1 在二叉树中从头0结点到27搜索方向 右 右 左 右 右 规律为二进制表示从最高位开始若为1向右搜,若为0向左搜 班级学生链表: typedef struct lll { int sum; (班级总人数) int no; (几班) struct lll* next; (下一个班级) STU *stu1,*stu2; (指向第一个、最后一个学生) }CLA; CLA *first_class; 班级链表为表头为空的单向链表,其中一个指针指向 学生链表为头尾皆为空的双向链表。 字典树: typedef struct abc { int c; struct abc *a[26]; STU *b; }ABC; ABC *f; 3、总体流程: 关键算法:trie树搜索,二叉树搜索,bfs(宽度优先)建立二叉树 5、界面设计: 采用命令提示符界面,交互式操作 导入班级: 随机函数: 随机函数生成的文件文件 @#$.txt 查看班级名单: 文件中表示的名单: 学号检索: 姓名检索: 四、调试记录 自己通过printf显示语句跟踪程序进程,老师帮助debug调试 创新说明 使用高效算法,随机函数的使用 体会与建议 这种程序不适合采用面向过程的思想编程; 通过牺牲空间来换取时间,高效率的算法有利于检索。 蚅肂 2 3 2 7 6 5 4 8 9 10 11 12 13 14 15 31 16 17 18 19 20 21 22 23 24 25 26

文档评论(0)

1亿VIP精品文档

相关文档