《《C语言程序设计》课程设计报告-招生查询系统 .doc》由会员分享,可在线阅读,更多相关《《C语言程序设计》课程设计报告-招生查询系统 .doc(97页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、华中科技大学?C 语言程序设计?实验报告课程设计报告题目:招生查询系统课程名称:专业班级:C 语言程序设计信息平安 202102 班学姓号:名: 指导教师:报告日期: 2021 年 10 月 10 日计算机科学与技术学院华中科技大学?C 语言程序设计?实验报告任 务 书招生查询系统 主要内容建立招生信息系统,提供创立、编辑和综合查询等根本业务管理和效劳。 任务要求收集与阅读相关文献资料,确定系统目标与范围,分析系统需求,确定系统功能;设计系统方案,完成系统实现;提交?课程设计报告?。 参考文献1曹计昌,卢萍,李开. C 语言程序设计,北京:科学出版社,20212李开,卢萍,曹计昌. C 语言实
2、验与课程设计,北京:科学出版社,20213张引. C 程序设计根底课程设计, 杭州: 浙江大学出版社,20074黄明,梁旭,万洪莉. C 语言课程设计,北京: 电子工业出版社,2006题目和难度选择的规定:1、题目选择的规定学号尾数最后一位为:1、4、7、0 者自动选择题目楼盘查询系统。学号尾数最后一位为:2、5、8 者自动选择题目招生查询系统。学号尾数最后一位为:3、6、9 者自动选择题目景点查询系统。2、难度选择的规定1选三个方向的十字交叉链表数据结构的难度系数为 1;选二个方向十字交叉链表数据结构的难度系数为。2采用文本菜单界面的难度系数为 1;采用教材 p215-p216 类似的简易菜
3、单的难度系数为。请每个同学根据实际掌握程度和能力选择相应难度系数的题,要求能够独立完成。根本要求:1、只能使用 C 语言,源程序要有适当的注释,使程序容易阅读。2、要有用户界面。要求至少采用教材 p215-p216 类似的简易菜单;鼓励采用文本菜单界面甚至采用图形菜单界面。3、必须使用结构和十字交叉链表等数据结构。4、使用文件保存数据。5、至少输出一份报表屏幕输出即可,鼓励自行增加新功能。6、设计测试的模拟数据,完成系统测试。7、写实验报告要求正规打印,A4 幅面,内容包括:题目系统功能模块结构图数据结构设计及用法说明程序结构画流程图各模块的功能试验结果包括输入数据和输出结果体会华中科技大学?
4、C 语言程序设计?实验报告参考文献附录:程序清单及源程序软盘7、凡发现抄袭,抄袭者与被抄袭者皆以零分计入本课程设计成绩并向学院报告。凡发现实验报告或源程序雷同,涉及的全部人员皆以零分计入本课程设计成绩并向学院报告。8、课程设计报告封面统一格式,标准格式见附件。指导建议:系统功能系统主要是提供招生信息的快速查询、检索和统计。应该具有按高校、按专业等查询招生信息;组合条件检索招生信息;统计招生情况等。系统数据系统主要涉及“高校、“专业和“招生3 类信息。“高校信息由高校编号、高校名称、高校地址和联系 等数据工程组成,“专业信息由专业编号、专业名称等数据工程组成,“招生信息由招生年份、招生方案、实际
5、招生、最高分数和最低分数等数据工程组成。在磁盘上,建议采用 3 个文件分别存储“高校、 专业和“招生的数据。在“专业信息中增加高校编号,在“招生信息中增加高校编号和专业编号。在内存中,建议采用如以下图 2 所示的链式数据结构。head高校 1高校 2高校 n专业 11招生 111招生 11p 专业 12专业 1m图 2 招生查询系统的链表结构示意图教学网站创立文本菜单与打印输出的提示1、与创立文本菜单的相关函数如下,请自行查阅相关资料,了解这些函数的用法。window、textbackground、clrscr、textcolor、cprintf、bioskey、gotoxy、gettext、
6、puttext、putch2、打印输出使用以下语句。FILE*fp;fp=fopen(“PRN,w);华中科技大学?C 语言程序设计?实验报告目录1绪言.- 11.1 课程背景和意义 .- 11.2 国内外研究现状.- 11.3 课程设计的主要研究工作 .- 11.3.1 课程设计题目 .- 11.3.2 编译环境.- 11.3.3 系统功能 .- 11.3.4 系统数据.- 22.系统需求分析与总体设计.- 32.1 系统需求分析 .- 3-系统总体设计 .- 3-3.系统详细设计.- 43.1 有关数据结构的定义 .- 43.2 算法设计.- 74.系统实现与测试.- 104.1 系统实现
7、 .- 104.1.1 人机交互界面模块 .- 104.1.2 功能函数模块 .- 104.1.3 函数模块.- 114.2 系统测试 .- 114.2.1 载入功能模块.- 114.2.2 文件模块.- 124.2.3 数据维护模块.- 134.2.4 数据查询模块.- 154.2.5 数据统计模块.- 174.2.6 帮助模块.- 185.总结与体会.- 20参考文献.- 21附录.- 22-华中科技大学?C 语言程序设计?实验报告1绪言1.1 课程背景和意义在数字化的社会中,由于信息量巨大,人们仅仅从书本中查询资料已不太方便,所以我们更急迫的需要一些用于查询资料的系统。并且在完成了一学期
8、的 C语言课程之后,为了对 C 有更进一步的了解,我们以招生查询系统为主题,以双向十字链表为根底,完成了这次的课程设计。1.2 国内外研究现状现如今,高考过后,择校仍牵动着每一位考生与家长的心弦,此时,往年的分数参考对于他们来说尤其重要。国内大学数量繁多,专业更是五花八门,难以找到一个整合信息的平台供考生与家长查询。因此,招生查询系统应运而生。通过该系统,考生们可以方便的查询到自己心仪的学校与适合自己的专业。1.3 课程设计的主要研究工作1.3.1 课程设计题目招生查询系统1.3.2 编译环境Windows 7 64 位环境下,使用 CodeBlocks 编译器编写。1.3.3 系统功能提供招
9、生信息的统计,查询和检索。具有 按高校、专业等查询招生信息 组合条件查询 统计每年招生情况等等功能。-1-|华中科技大学?C 语言程序设计?实验报告1.3.4 系统数据系统主要涉及“高校、“专业和“招生3 类信息。“高校信息由高校编号、高校名称、高校简介,高校地址和高校联系 等数据工程组成;“专业信息由专业所属高校编号、专业编号和专业名称等数据工程组成;“招生信息由招生所属高校编号、招生所属高校编号、招生年份、招生计划、实际招生、最高分数和最低分数等数据工程组成。在磁盘上,采用 3 个文本文件分别存储“高校、 专业和“招生的数据。在“专业信息中增加专业所属高校编号,在“招生信息中增加招生所属高
10、校编号和招生所属专业编号。-2-|华中科技大学?C 语言程序设计?实验报告2.系统需求分析与总体设计2.1 系统需求分析随着全国高校的增多,以及相应专业的增多,对应的资料也越来越多。用户需要一个能简便的查询出所需资料的软件。而我正是面向这些对象,为满足他们的需求所做的系统。它具有以下功能:1 保存,备份,复原文件信息。2 数据维护添加,修改,删除高校、专业、招生信息。3 查询高校、专业、招生信息。并可以根据分数组合查询当年能读的专业。4 统计所有信息,统计招生总人数。系统总体设计招生查询系统由五大功能模块组成:【文件】, 【数据维护】,【数据查询】,【数据统计】,【帮助】:如图 2.2.1 所
11、示1、【文件】包括:【数据保存】,【数据备份】,【数据恢复】,【退出 Alt+X】;2、 【数据维护】包括: 【维护高校信息】、【维护专业信息】、【维护招生信息】;3、 【数据查询】包括: 【查询高校信息】、【查询专业信息】、【查询招生信息】、【组合查询】;4、【数据统计】包括:【整体统计】、【招生总人数】;5、【帮助】包括:【帮助主题】、【关于】;-3-|华中科技大学?C 语言程序设计?实验报告3.系统详细设计3.1 有关数据结构的定义一高校信息链结点结构:typedef struct sch_nodechar sch_id10;char sch_name50;char sch_intro1
12、00;char sch_add50;char sch_tel20;struct major_node *mnext;struct sch_node *next;SCH_NODE;二专业信息链结点结构:typedef struct major_nodechar major_sch10;char major_id10;char major_name30;/*高校编号*/*高校名称*/* 高校简介*/* 高校地址*/* 联系 */*指向专业信息结点的指针*/* 指向下一结点的指针*/*所属高校编号*/*专业编号*/*专业名称*/struct enrol_node *enext; /*指向招生信息支链
13、的指针*/struct major_node *next;MAJOR_NODE;三招生信息链结点结构:typedef struct enrol_nodechar enrol_sch10;char enrol_major10;char enrol_id10;int enrol_year;int enrol_num;int enrol_realnum;int enrol_highest;int enrol_lowest;/*指向下一结点的指针*/*招生所属高校编号*/*招生所属专业编号*/*招生信息编号*/*招生年份*/*招生方案*/*实际招生*/*最高分*/*最低分*/-4-|华中科技大学?C
14、语言程序设计?实验报告struct enrol_node *next;/*指向下一结点的指针*/ENROL_NODE;四屏幕窗口信息链结点结点结构:typedef struct layer_node */char LayerNo;SMALL_RECT rcArea;CHAR_INFO *pContent;char *pScrAtt;/* 弹出窗口层数*/* 弹出窗口区域坐标*/* 弹出窗口区域字符单元原信息存储缓冲区/* 弹出窗口区域字符单元原属性值存储缓冲区*/struct layer_node *next; /* 指向下一结点的指针*/ LAYER_NODE;五标签束结构:typedef
15、struct labe1_bundle char *ppLabel;COORD *pLoc;int num; LABEL_BUNDLE;六热区结构:typedef struct hot_area SMALL_RECT *pArea;char *pSort;*/char *pTag;int num;/*标签字符串数组首地址*/* 标签定位数组首地址*/* 标签个数*/*热区定位数组首地址*/* 热区类别(按键、文本框、选项框)数组首地址/* 热区序号数组首地址*/*热区个数*/ HOT_AREA;表 高校信息统计表-5-|数据结构名称:高校信息 数据结构标识:SCH_NODE数据项名称数据项标识
16、数据类型数据长度取值范围例如华中科技大学?C 语言程序设计?实验报告表 专业信息统计表表 招生信息统计表-6-|数据结构名称:专业信息 数据结构标识:ENROL_NODE数据项名称数据项标识数据类型数据长度取值范围例如所属高校编号enrol_schchar10“yyyy/mm/dd1所属专业编号enrol_majorchar10“yyyy/mm/dd11招生信息编号enrol_idchar10“yyyy/mm/dd“111招生年份enrol_yearint4-214748364821474836472021方案招生enrol_numint4-2147483648214748364790实际招生
17、enrol_realnumint4-2147483648214748364789最高分数enrol_highestint4-21474836482147483647629最低分数enrol_lowestint4-21474836482147483647600高校编号sch_idChar10“yyyy/mm/dd1高校名称sch_namechar10“yyyy/mm/dd华中科技大学高校简介sch_introchar100“985 高校高校地址sch_addchar50“湖北省武汉市珞喻路 1037号高校 sch_telchar20“027-87541114数据结构名称:专业信息 数据结构标识:
18、MAJOR_NODE数据项名称数据项标识数据类型数据长度取值范围例如专业所属高校编号major_schchar10“yyyy/mm/dd1专业编号major_idchar10“yyyy/mm/dd11专业名称major_namechar30信息平安华中科技大学?C 语言程序设计?实验报告3.2 算法设计一总体流程图 3.2.1 总体流程二文件模块图 3.2.2 文件模块-7-|华中科技大学?C 语言程序设计?实验报告三数据维护模块图 3.2.3 数据维护模块四数据查询模块图 3.2.4 数据查询模块-8-|华中科技大学?C 语言程序设计?实验报告五数据统计模块图 3.2.5 数据统计模块六帮助
19、模块图 3.2.6 帮助模块-9-|华中科技大学?C 语言程序设计?实验报告4.系统实现与测试4.1 系统实现本系统在 windows 7 操作系统下,以 C 语言为根底,由 CodeBlocks 编译器编译完成。4.1.1 人机交互界面模块1界面初始化这一局部主要是创立简易文本菜单的初始化界面,通过利用控制台函数及有关屏幕缓冲区的一些基层函数在屏幕上生成刚进入程序的控制台窗口。2界面的弹出窗口在指定的区域显示信息,使每个功能模块的根底功能能够有条理的显示出其相关性,同时也方面用户调用和操作。3键盘和鼠标信息的获取及函数调用通过获取键盘及鼠标在控制台的信息,调用相关的函数运行,从而到达相应的功
20、能。4.1.2 功能函数模块1文件模块数据保存:将链表中的数据重新以文本格式写入到三个根底文件里。数据备份:将链表中的数据以文本格式写入到另外三个做为备份的根底文件中去。数据恢复:从备份的三个文本文件中将数据加载到链表中去。退出:从该招生查询信息系统中退出。2数据维护模块维护高校信息:共包含查找插入、修改和删除三个功能,分别调用插入高校结点函数、修改高校结点函数和删除高校结点函数进行操作。维护专业信息:与维护高校信息类似。维护招生信息:与维护高校信息类似。3数据查询模块- 10 - |华中科技大学?C 语言程序设计?实验报告查询高校信息:调用查询高校信息结点函数查找相应的结点,并显示出来。查询
21、专业信息:调用查询专业信息结点函数查找相应的结点,并显示出来。查询招生信息:调用查询招生信息结点函数查找相应的结点,并显示出来。组合查询模块:选择年份和设置分数线,通过指针遍历的形式,遍历所有招生结点,找到对应年份且录取分数线低于所设置分数线的所有结点,并显示出来。4数据统计模块统计高校数量:采用指针遍历,遍历主链上所有高校结点,遍历的结点数即为高校总数。统计招生总人数:采用指针遍历,遍历所有结点,找出对应年份的所有结点,并对每个结点中的实际招生一项求和,和即为该年份招生总人数。5帮助模块帮助主题:显示一些帮助信息。关于.:显示该系统的作者等信息。4.1.3 函数模块函数皆在头文件中有定义以及
22、功能表达。详见附录。4.2 系统测试4.2.1 载入功能模块一、模块功能与设计目标载入已有的数据文件。二、测试当文件夹里没有相应文件图时,会出现如图提示。当文件夹里有相应文件图时,会出现如图提示。图图图- 11 - |华中科技大学?C 语言程序设计?实验报告4.2.2 文件模块一、模块功能与设计目标拥有【数据保存】、【数据备份】、【数据恢复】、【退出 Alt+X】。管理已有文件数据,对文件数据进行保存,备份,恢复以及程序的退出。二、测试数据保存数据保存会在文件夹里面不存在三个文档时自动生成该文档,并保存本次操作所对文件数据进行的修改增添,修改,删除。数据备份数据备份会在文件夹里面不存在三个文档
23、是自动生成该文档,并将现有数据保存至这三个文档当中。以作备份使用。数据恢复数据恢复会将上一次所备份的三个文档中的数据拷贝到三个文档中,以恢复上个保存节点中的内容。退出退出系统。图 4.2.2.1 及图图- 12 - |华中科技大学?C 语言程序设计?实验报告4.2.3 数据维护模块一、模块功能与设计目标拥有【维护高校信息】、【维护专业信息】、【维护招生信息】三个模块。每个模块对应有插入、修改、删除信息的功能。二、测试以维护高校信息为例维护高校信息1.插入高校信息起始查询学校编号为 4 的学校,显示未找到高校图图然后点击维护高校信息,显示如图图假设输入非 1,2,3 三个数字,系统会提示错误,并
24、提示重新输入。选择 1 插入高校信息,添加新的高校信息。图图- 13 - |华中科技大学?C 语言程序设计?实验报告再次查询编号为 4 的高校。资料已经在数据库里。图图2.修改高校信息起始查询编号为 1 的高校信息图图选择 2 修改高校信息。对编号为 1 的高校资料进行修改。图图查询编号为 1 的高校图,修改成功。- 14 - |华中科技大学?C 语言程序设计?实验报告图3.删除高校信息删除上述编号为 1 的高校信息。图图查询编号为 1 的高校,查找不到,删除成功。图图在以上插入,修改,删除操作后。务必记住进行数据保存,否那么修改的数据不会保存至数据库中。4.2.4 数据查询模块一、模块功能与
25、设计目标分【查询高校信息】、【查询专业信息】、【查询招生信息】、【组合查询】。对已有资料进行查询,得到自己想要的资料。支持编号查询,编号由数据统计中给出。图。- 15 - |华中科技大学?C 语言程序设计?实验报告图组合查询能够查询某年某分数能够读取哪些学校哪些专业。以方便用户筛选。二、测试查询编号为 1 的高校图。图查询编号为 11 的专业图。图- 16 - |华中科技大学?C 语言程序设计?实验报告查询编号为 11 的专业,编号为 111 的招生信息。图图组合查询 2021 年 620 分能报取的专业。 图 数据尽为虚构,实际数据以网上为准图4.2.5 数据统计模块一、模块功能与设计目标拥
26、有【整体统计】和【招生总人数】两局部。【整体统计】为统计数据库中现有的所有数据,并列表显示出来。【招生总人数】为统计某年招生总人数,以供参考。二、测试【整体统计】图。- 17 - | 华中科技大学?C 语言程序设计?实验报告图【招生总人数】统计 2021 年招生总人数。图数据尽为虚构,实际数据以网上为准图4.2.6 帮助模块一、模块功能与设计目标有【帮助主题】和【关于】两局部。【帮助主题】为介绍该系统内容以及帮助用户运用该系统。【关于】申明版权。二、测试【帮助主题】图- 18 - |华中科技大学?C 语言程序设计?实验报告图【关于】图图- 19 - |华中科技大学?C 语言程序设计?实验报告5
27、.总结与体会课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术开展的日新日异,当今计算机应用在是生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术十分重要的。这次的课程设计实验是对我们进入大学以来学习 C 语言结果的一次考验。全盘由自己动手,发现并解决问题。并发现了许多自己缺乏之处,在实践过程中,平时没有掌握的知识一一暴露并自行经过查阅,思考等方式解决。此次课程设计真是一个漫长的过程,从开始做到完成消耗一个月以上的时间。从不知道如何开头到码出 3000 行代码也是经历了很多艰辛
28、。与平时的上机训练不一样,课程设计是个庞大的工作,有超过 50 个函数,并且相互镶嵌调用,如果没有提前筹划好,只会越做越乱。我明白了程序员并不是一个简单的工作,这个工作需要全局观,需要细心,需要无限的耐心。在 3000 行代码中,一个小小的符号可能就会引起全局性的 bug。这次在检查前我甚至就因为漏了 3 个换行符,导致保存和读取方式不一致,使得 I/O 没有实现。直到检查完回来才注意到。在这个过程中,我不仅稳固了书本上学习的内容,掌握设计的根本方法,强化上机动手能力,还进一步掌握了:数据类型、分支控制、循环控制、函数定义与调用、结构体、数组、指针、文件操作、编译预处理等;通过课程设计,掌握了
29、程序的局部测试、调试方法,学会较大程序的系统测试和调试方法。通过这次课程设计,我懂得了理论与实际相结合很重要,只有理论知识是远远不够的,只有把理论和实践相结合才能真正的提高自己的能力。当上程序员还有很长的路要走,我一定要以这次实践为引,将课程设计的精神带到学习生活中,让生活更加美好。- 20 - |华中科技大学?C 语言程序设计?实验报告参考文献1曹计昌,卢萍,李开著。?C 语言与程序设计?。北京:电子工业出版社,。2李开,卢萍,曹计昌 著。?C 语言实验与程序设计?。背景:科学出版社,2021。3(美)克尼汉Kernighan,B.W.(美)里奇Ritchie,D.M.著;徐宝文,李志译.?C 语言程序设计第二版?。北京:机械工业出版社,。4(美)汤多Tondo,C.L.,(美)吉米拜尔Gimpe,S.E.著;杨涛等译。?C语言程序设计第二版?习题解答。北京:机械工业出版社,。- 21 - |华中科技大学?C 语言程序设计?实验报告附录头文件#include #include #include #include #include #include #include #include #include #include #include #ifndef TYPE_H_INCLUDED#define TYPE_H_INCLUDED#de
限制150内