学生成绩管理系统36195.docVIP

  • 7
  • 0
  • 约1.47万字
  • 约 21页
  • 2019-01-27 发布于广东
  • 举报
学生成绩管理系统36195.doc

学生管理系统 学生成绩管理系统 学 院 计算机科学与技术 专 业 计算机科学与技术 学 号 110341202 学 生姓名 陈格 指导教师姓名 沈中林 提目难度 综合题 2013年6月1日 一、题目 实现对学生信息的查找、添加、删除、修改、浏览、保存、从文件读取功能。 使用结构体对学生信息的存储。 使用哈希表实现对学生信息的杏找、添加、删除、修改、浏览等操作。 熟悉使用哈希法,建立哈希表,实现对姓名进行散列法查找。 使用文件完成数据的存储与读取,要求每次运行某个模块时将数据读入结构体中,并提供保存 选项,将结构体中的数据保存在文件中。 二、问题分析及求解思路 (1)数据结构 学生成绩信息: typedef struct studentscore { char name[10]; //定义姓名的字符数组 char num[20]; 〃定义学号的字符数组 struct subject {char subname[20];//定义学科名的字符数组 float score; 〃保存学生各科成绩 }sub[5]; 〃共五门课 double sum; 〃总分 struct studentscore *next; JSTUCORE; 本系统涉及的知识点 结构体、数组、循环、函数、指针、链表、文件操作。 原理 除留余数法: 关键字被某个不大于哈希表长m的数P除后所得余数为哈希地址。 Il(kcy)=key MOD P (P=m) 随机探测再散列法: 选择一个随机函数,取关键字的随机函数值为它的哈希地址,即 Hi=random(kcy) MOD P (P=m) 其中random为随机函数。通常用于关键字长度不等时采用此法。 功能要求功能模块 1、 建立学生信息,每个学牛的信息包括:学号、姓名、性别、班级、学院 2、 用链表的形式对学生信息分别进行杳找、添加、删除、修改 3、结果保存在磁盘上 (5)功能模块 厂学生管理系统 、 [立件惨作 2〕学生基本信息管理 学牛成绩信息管理 退出 V 丿 备找成绩信息按学号查找按姓名查找返回 备找成绩信息 按学号查找 按姓名查找 返回 添加成绩信息 删除成绩信息 修改成绩信息 学生信息存入文件1 学生信息存入文件 1 .保存学生基本信息 2.保存学生成绩信息 V ) 从文件中读取信息 1 ?读取学生基本信息 2.读取学生成绩信息 \ ) 学生成绩信息管理、 文件操作 1.杳找成绩信息 1.从文件中读収信息 2.添加成绩信息 2.学牛?信息存入文件 3.删除成绩信息 3 ?返回 4.修改成绩信息 5.返冋 J 丿 (4)算法功能描述 ①总体功能说明: 本系统可以做到对1?学生信息:学号、姓名、性别、学院、班级。2.学生成绩信 息:学号、姓名、一名学生五门不同学科的学科名及该科成绩。分别进行添加、修改、 查找、删除、保存、载入功能。 ②学生成绩信息管理功能说明: 可以添加学生学号、姓名、及对一名学生五门不同学科的学科名及该科成绩。并可 以通过对输入的学生成绩信息进行修改、删除、保存、载入功能并通过学号和姓名两种 方式杳找,并且对同名的学生也可以进行区分。并且会保持学好的一致性,保证任意两 名学生不会出现学号相重复的情况。 三、主要功能模块流程图(按姓名查找信息的流程图) 按姓名查找流程图 主要算法 学生成绩信息管理中各模块的功能说明程序代码设计 一:结构体: typedef struct studentscore { char namc[10]; char num[20]; struct subject {char subname[20]; float score; }sub[5]; 〃保存学生各科成绩 double sum; 〃总分 struct studentscore *next; )STUCORE; 二:添加学生成绩信息函数:(void add_score()) 函数原形:void add_score() 功 能:采用动态内存分配malloc函数和链表结构。利用do while、while循环结构strcpy 函数依次输入学生学号、姓名、及对一名学生五门不同学科的学科名及该科成绩。将信息保存在内 存中建立的链表里。 变量及类型: STUCORE *stu,*p;定义结构体指针 char k; 川來接收输入的(y/n)以便通过do while判断是否继续添加信息 int flag;定义一个整型变最来判断所添加的学生学号是否已经存在文件中,保证学号唯一 性 p=head_2;将结构体卜?定义的头指针head_2赋给p 说明:执行完输入函数后,会在键盘缓冲区中保存回车键,后面再对字符型变量赋值时,会 将缓冲区屮的回车键当成数据存入变最屮,所以要在某些输入语句麻面加getchar()函数。并在函数 调

文档评论(0)

1亿VIP精品文档

相关文档