学生信息管理系统程序设计课程设计报告

上传人:lizhe****0001 文档编号:29753471 上传时间:2018-01-25 格式:DOCX 页数:55 大小:698.41KB
返回 下载 相关 举报
学生信息管理系统程序设计课程设计报告_第1页
第1页 / 共55页
学生信息管理系统程序设计课程设计报告_第2页
第2页 / 共55页
学生信息管理系统程序设计课程设计报告_第3页
第3页 / 共55页
学生信息管理系统程序设计课程设计报告_第4页
第4页 / 共55页
学生信息管理系统程序设计课程设计报告_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《学生信息管理系统程序设计课程设计报告》由会员分享,可在线阅读,更多相关《学生信息管理系统程序设计课程设计报告(55页珍藏版)》请在金锄头文库上搜索。

1、程序设计课程设计报告题 目_学生信息管理系统 _学 院_计算机学院_专 业_计算机科学与技术_年级班别_2014 级 A(4)_学 号_3114005953_学生姓名_林超_指导教师_曾安_成 绩 程序功能完成情况测试用例全面情况报告格式是否与要求相符报告内容是否准确全面2015 年 05 月 备注声明(此程序在 dosbox 上运行 TC 通过需要每个文件前面都需要声明结构体,我自己去机房 TC 则不需要,本程序在源代码上暂时把每个结构体注销掉,如果编译不通过可以取消每个文件前面的结构体声明)题目要求:C 课程设计题目第一套 难度:1题目1:学生成绩管理系统设计一个学生成绩管理系统,在动态链

2、表程序的基础上,设计要求如下:(必须使用结构体和动态链表等数据结构) 对在校学生几学期几门课程的考试成绩进行统一管理,具有查询和检索功能,并且能够对指定文件操作,也可将多个文件组成一个文件。一、 设计内容1、学生个人信息包括学号、姓名、性别、专业、年级、电话号码。示例如下:学生个人信息:学号 姓名 性别 专业 年级 电话号码2015001 张三 男 计算机科学与技术 一 189000000012、选课记录包括某个学生某学期所选的课程、课程编号、学分、平时成绩、实验成绩、卷面成绩、综合成绩。示例如下(综合成绩=平时成绩*20%+实验成绩*40%+卷面成绩*40%):学期 课程编号 课程名称 学分

3、 平时成绩 实验成绩 卷面成绩 综合成绩第一 1 高等数学 3 80 70第一 2 大学英语 3 77 70第一 3 大学物理 2 85 70 60第二 1 高等数学 3 70 80第二 4 程序设计 2 90 90 903、录入功能:可以一次完成若干条记录的输入。4、统计功能:统计所有学生各学期所有课程的平均分;5、查找功能:完成按学号查找该学生的基本个人信息;或按学号查找该学生某学期所选的所有课程的成绩;或按课程编号和学期查找所有学生该门课程该学期的成绩;并显示。6、删除功能:删除某个学生的所有信息;删除所有学生某门课程的成绩6、排序功能:按某学期所选某门课程对所有学生的成绩排序(升序或降

4、序);对某学期所有学生所有课程的平均分进行排序(升序或降序)。7、系统集成:编写程序主界面,调用各功能,调用界面和各个功能的操作界面应尽可能清晰美观 !二、 设计要求已知有多名学生(至少15 名)的成绩信息(学生个人信息和所有课程成绩等)的文件student.dat(该文件自行建立),要求编程序实现成绩录入、统计、查询、删除、排序和退出等功能。具体要求如下:A要求显示如下界面*1- 录入2- 统计3- 查询4- 删除5- 排序6- 退出*通过选择1-6 来确定要执行哪一步操作。B若选 1,则出现如下界面*输入学生个数:请输入第1 名学生的信息:学号:姓名:性别:专业:年级:电话号码:学期:课程

5、编号:课程名称:(此处省略,请自行补充)*并保存数据保存到文件student.dat 中。C 若选2,统计所有学生各学期所有课程的平均分;D 若选3,则出现如下界面*3.1-按学号查询学生个人信息3.2-按学号查找该学生某学期所选的所有课程的成绩3.3-按课程编号和学期查找所有学生该门课程该学期的成绩*通过选择 3.1-3.3 来确定要做哪一个操作,有符合的记录输出到屏幕,若无,则输出相关提示信息。E若选 4,则出现如下界面:*4.1- 删除某个学生的所有信息4.2- 删除所有学生某门课程的成绩*通过选择 4.1-4.2 来确定要执行哪一步操作,有符合的把删除后剩下的数据保存到文件studen

6、t1.dat,若无,则输出相关提示信息。F若选5,则出现如下界面:*5.1- 某学期某门课程对所有学生的成绩升序5.2- 某学期某门课程对所有学生的成绩降序5.3- 某学期所有学生所有课程的平均分进行升序5.4- 某学期所有学生所有课程的平均分进行降序*通过选择 5.1-5.4 来确定要执行哪一步操作,有符合的记录输出到屏幕,若无,则输出相关提示信息。G不同的模块都要有出错处理,并能给出出错提示。如输入数据错误,文件操作错误等等H以上各个功能均编写成子函数,由主函数调用实现。I利用结构体和动态链表实现消费记录的数据结构设计;三、测试数据要求1)不少于20 名学生,不少于3 个学期,不少于6 门

7、课程2)应保证测试用例测试到程序的各种边缘情况题目:学生信息管理系统系统简介本人设计的学生信息管理系统包括6个功能1. 录入学生信息,可以实现对学生学号,姓名,性别,专业,年级,电话号码,的录入,对每个学期录入某一门课程的分数。2. 统计学生和课程信息,可以根据某一学期,某一门课程统计出这一门课程所有学生的平均分。3. 查询学生信息,查询信息分为3个子功能,3.1可以根据学生的学号查询学生的个人信息;3.2可以根据学号和某一学期查询某一位学生的所有课程的成绩。;3.3可以按照课程编号和学期查找所有学生某门课程的成绩4. 删除学生信息,删除功能分为2个子功能,4.1可以删除某个学生的所有信息,4

8、.2可以删除所有学生某门课程的成绩5. 对学生的课程分数进行排序,排序功能分为4个子功能,5.1可以根据某门课程对所有学生的成绩升序;5.2可以根据某门课程对所有学生的成绩降序;5.3可以根据某学期所有学生的平均分进行升序;5.4可以根据某学期所有学生的平均分进行降序。6. 查找出某个学期某门课程不及格的学生。结构图:开 始1录 入 2统 计 3查 询学 生 个 人信 息某 学 期 课程 成 绩所 有 学 生某 门 课 程成 绩4删 除删 除 学 生删 除 课 程5排 序课 程 分 数升 序课 程 分 数降 序课 程 平 均分 升 序课 程 平 均分 降 序6查 找 不 及格 学 生 退 出详

9、细设计:主函数模块:一个main函数,用于调用各种功能函数。创建链表模块:void filewritecourse(struct course *chead) /*用于把课程链表存入到course.dat 文件中。参数就是传入课程链表的头节点*/void filewritestudent(struct student *head)/*用于把学生链表存入到student.dat文件中参数是传入学生链表的头结点*/将链表写入的是时候是采取文本文件方式写,用fprintf进行写操作,原因是方便查看,虽然速度远不如二进制文件写,但是在后来测试数据时比较方便,容易看到文件里面的内容,这样就能知道程序对数

10、据的处理有没有错误。开始结点是否为空 ?将结点保存至文件夹否是结束指针指向下一个结点struct course *creatcourse(int studentnumber1,char studentname1)/*用于创建一个课程链表,参数用于把某一门课程对应某一个学生*/struct student *creatstudent()/*用于创建一个学生链表*/选 择 录 入 功 能录 入输 入 录 入 学 生 个 数录 入 学 生 信 息录 入 课 程 信 息从文件读取链表模块:struct course* readcourse()/*从文件读取课程链表*/struct student* r

11、eadstudent()/*从文件中读取学生链表*/因为采用了文本文件进行写操作,所以读出来也要用文本文件来读这里采用fscanf函数来读,在打程序是必须注意要“&”,当时因为忘记打了这个,程序运行到这里一直崩,也是让我找了好久才发现开始能否成功读出一个结点从文件中读出一个结点是否表尾指向空开辟一个新结点开辟一个新结点结束统计模块:void account(struct course*chead1,int cournumber1,int term1)/*统计学生平均分*/void searchfail(int term1,int coursenumber1,struct course *hea

12、d1)/*统计不及格学生*/选 择 统 计 功 能判 断 有 无 数 据输 入 数 据从 文 件 中 读 取输 出查找模块:void searchstudent(int studentnumber1,struct student *head)/*用于查找一个学生的信息,参数是学生链表的头结点,和学生编号*/void searchcourse(int studentnumber1,int term1,struct course *chead)/*用于查找某一门课程,参数是课程链表和要查找的学生号和学期*/void searchallstudentscore(int coursenumber1,i

13、nt term1,struct student *head,struct course *chead)/*用于查找所有学生某门课程的分数,参数是课程链表的头结点,学生链表的头节点和要查找的课程号和学期*/选 择 查 找功 能查 找 学 生输 入 数 据读 取 文 件输 出 查 询结 果返 回 开 头查 找 某 学期 的 课 程查 找 所 有学 生输 入 数 据读 取 文 件输 出 查 询结 果返 回 开 头输 入 数 据读 取 文 件输 出 查 询结 果返 回 开 头删除模块:struct student *delestudent(int studentnumber1,struct stude

14、nt *head)/*用于删除某个学生的信息,参数是传入学生的头结点,和被删除学生的学号*/无数据YN无数据YNY Ystruct course *delethecourse(int studentnumber1,struct course*chead1)/*用于删除学生课程成绩*/struct course*delecourse(int coursenumber1,int term1,struct course *chead1)/*用于删除某一门课程,参数是传入课程链表的头结点,和被删除课程的课程编号*/删除功能就是释放一个节点,当输入一个数据,遍历整个链表,查找到与这个数据相同的链表,通过free()函数释放掉这个节点选 择 删 除功 能删 除 学 生信 息输 入 数 据读 取 文 件删 除返 回删 除 某 一门 课 程输 入 数 据读 取 文 件删 除返 回排序

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 研究报告 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号