- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向过程程序设计实践报告模板.doc
面向过程程序设计实践
姓 名 学 号 班 级 软件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
27
28
29
30
0
1
文档评论(0)