C语言课程设计报告-学籍信息管理系统.doc

上传人:ni****g 文档编号:543578075 上传时间:2024-04-05 格式:DOC 页数:33 大小:695.87KB
返回 下载 相关 举报
C语言课程设计报告-学籍信息管理系统.doc_第1页
第1页 / 共33页
C语言课程设计报告-学籍信息管理系统.doc_第2页
第2页 / 共33页
C语言课程设计报告-学籍信息管理系统.doc_第3页
第3页 / 共33页
C语言课程设计报告-学籍信息管理系统.doc_第4页
第4页 / 共33页
C语言课程设计报告-学籍信息管理系统.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

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

1、中 国 地 质 大 学本科生课程论文封面课程设计评语对课程论文的评语:平时成绩:课程论文成绩:总 成 绩:评阅人签名:注:1、无评阅人签名成绩无效;2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。目 录课程设计评语2目 录31课程论文题目42程序设计思路53. 功能模块图54数据结构设计75算法设计86.程序代码187程序运行结果268编程中遇到的困难及解决方法309总结心得及良好建议3110、致谢.311 课程论文题目【要求】:使用下面的数据,设计一个简单的学籍信息管理系统。学生基本信息文件(A.TXT)及其内容:(A.TXT文件不需要编

2、程录入数据,可用文本文档编辑工具直接生成)学号 姓 名 性别 宿舍号码 电话号码01 张成成 男 501 8773211102 李成华 女 101 8772311203 王成凤 女 101 8772311204 张明明 男 502 8773433305 陈 东 男 501 8773211106 李 果 男 502 8773433307 张园园 女 102 87756122学生成绩基本信息文件(B.TXT)及其内容:学号 课程编号 课程名称 学分 平时成绩 实验成绩 卷面成绩 综合成绩 学分01 A01 大学物理 3 66 78 8202 B03 高等数学 4 78 -1 9001 B03 高等

3、数学 4 45 -1 8802 C01 VF 3 65 76 66功能要求及说明:(1)数据录入功能: 对B.TXT进行数据录入,只录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据。综合成绩、学分由程序根据条件自动运算。综合成绩的计算如下所述。 如果本课程的实验成绩为-1,则表示无实验,综合成绩=平时成绩*30%+卷面成绩*70%; 如果实验成绩不为-1,表示本课程有实验,综合成绩=平时成绩*15%+实验成绩*.15%+卷面成绩*70%。实得学分的计算: 采用等级学分制。综合成绩在90-100之间 ,应得学分=学分*100%。综合成绩在80- 90之间 ,应

4、得学分=学分*80%。综合成绩在70- 80之间 ,应得学分=学分*75%。综合成绩在60- 70之间 ,应得学分=学分*60%。综合成绩在60以下 ,应得学分=学分*0%。(2)查询功能:分为学生基本情况查询和成绩查询两种。 学生基本情况查询:输入一个学号或姓名(可实现选择),查出此生的基本信息并显示输出。输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。成绩查询:输入一个学号时,查询出此学生的所有课程情况,格式如下:学 号:x x 姓 名:x x x课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx课程编号:xxx 课程名称:xxxxx 综合成绩:xx

5、xx 实得学分: xx课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx共修:xx科,实得总学分为: xxx (3)删除功能:当在A.TXT中删除一个学生时,自动地在B.TXT中删除此人所有信息。 (4)排序功能:能实现选择按综合成绩或实得学分升序或降序排序并显示数据。2程序设计思路这个C语言课程设计题目是关于学生学籍信息管理系统的设计。根据设计题目的要求,数据结构采用结构体数组,是用来提供学生基本信息和学生成绩基本信息结构体数组。题目要求能够完成录入数据,查询,删除和排序的功能,所以程序依次以主函数板块、数据录入功能板块、查询功能板块、删除功能板块、排序功能板块的顺

6、序进行,另外,程序中还用到输入和输出等基本函数。运用函数实现要求的各项功能,将各个分函数依照一定的次序列出,这样一方面可以使程序易于编写和阅读,另一方面还可以很方便地在编程过程中,另行调试各个分函数,便于检查在程序设计过程中出现的错误,并可以及时修改。3. 功能模块图根据以上的需求分析,可以将这个系统分为以下主要功能板块:主函数板块、数据录入功能板块、查询功能板块、删除功能板块、排序功能板块。需要特别说明的两部分有:系统中的结构体定义和函数声明部分再次没有得到明显的体现,但是在整个程序中所起的基础性作用是不可替代的,所有的分程序都是在此基础上进行的。读取数据和输出数据函数在各个分程序中都起着重

7、要作用,属于公共函数的范畴。除以上两部分中所述的定义声明和部分函数外,本设计题目所要求的其他所有功能均能在以下系统功能板块中得以体现,具体如下所示:学籍信息管理系统显示主菜单【DisplayMainMenu()】数据录入【DataInput()】排序功能DataSort()查询功能DataQuery()删除功能DataDelete()退出功能 exit()按 学 号 QueryMark(int )按实得学分排序 sort2()按综合成绩排序 sort1()按 学 号 QueryById(int )按宿舍号码QueryByRoom(int )成绩查询学生基本情况查询4数据结构设计本程序中主要运用

8、了两大结构体数组,一个是学生基本信息的结构体数组(StudentInfo si30),另一个是学生成绩基本基本信息的结构体数组(MarkInfo mi150)。在程序运行过程中,很多子函数都调用了这两个结构体数组中的信息,或是对其进行阅读输出,或是对其进行其他简单操作。整个程序自始自终始终紧紧围绕这两大结构体数组进行。具体定义如下:利用了组合体的方式定义结构体数组,提供学生基本信息,定义如下:typedef struct int Id; /学号char name10;/姓名char sex6; /性别 int room; /宿舍号int tel; /电话号码 StudentInfo; /定义学

9、生信息的结构体类型同时定义了另一结构体数组,提供学生成绩基本信息,定义如下:typedef struct int Id;char courseNo10; /课程编号char courseName20;/课程名float a; / 课程学分float b; / 平时成绩float c; / 实验成绩float d; / 卷面成绩float e; / 综合成绩float f; / 实际学分 MarkInfo; /定义课程信息的结构体类型使用以上结构体数组,使程序变得思路清晰,设计过程也变得相对简单。同时,定义并使用了如下函数,声明和定义void ReadFile();void DisplayMai

10、nMenu();void DataInput();void DataQuery();void DataDelete();void DataSort();void QueryById(int );void QueryByRoom(int );void QueryMark(int );void sort1();void sort2();void markput();StudentInfo si30; / 学生信息结构数组MarkInfo mi150; / 学生成绩结构数组int sp=0; / 学生信息结构数组中学生数int mp=0; / 学生成绩结构数组中成绩数5算法设计1.、定义结构体,并且

11、进行函数声明在这一部分,定义了关于学生基本信息和学生成绩信息的两个结构体数组,用于存储数据,另外对本程序中所用到的函数进行了详细地声明,通过定义数组和对函数的声明为本程序奠定了重要的基础。#include typedef struct int Id; /学号char name10;/姓名char sex6; /性别 int room; /宿舍号int tel; /电话号码 StudentInfo; /定义学生信息的结构体类型typedef struct int Id;char courseNo10; /课程编号char courseName20;/课程名float a; / 课程学分float

12、 b; / 平时成绩float c; / 实验成绩float d; / 卷面成绩float e; / 综合成绩float f; / 实际学分 MarkInfo; /定义课程信息的结构体类型 / 定义结构数组为全局变量StudentInfo si30; / 学生信息结构数组MarkInfo mi150; / 学生成绩结构数组int sp=0; / 学生信息结构数组中学生数int mp=0; / 学生成绩结构数组中成绩数void ReadFile();void DisplayMainMenu();void DataInput();void DataQuery();void DataDelete()

13、;void DataSort();void QueryById(int );void QueryByRoom(int );void QueryMark(int );void sort1();void sort2();void markput();2.主函数:主函数设计的很简洁,只提供输入,功能处理和输出部分的函数的调用,其中各功能模块用菜单方式选择,为我们提供了五个功能选项,让我们可以很方便地通过这五个功能选项来调用各个功能模块函数。显示一系列功能选项(即主菜单)输入n,判断是否1-5根据n的值调用各功能模块函数定义整型变量X作为功能菜单选项的选择方式。Void main()int x;ReadFile(); while (1)DisplayM

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

最新文档


当前位置:首页 > 行业资料 > 能源与动力工程

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