学生管理系统课程设计.doc_第1页
学生管理系统课程设计.doc_第2页
学生管理系统课程设计.doc_第3页
学生管理系统课程设计.doc_第4页
学生管理系统课程设计.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

沈 阳 工 程 学 院 课程设计任务书 课课程程设计题设计题目:目: 数据数据结结构及算法的构及算法的设计设计与与实现实现 系系 别别 信息工程系信息工程系 班班级级 学生姓名学生姓名 学号学号 指指导导教教师师 杨杨政、政、 姜柳姜柳 职职称称 讲师讲师、副教授、副教授 课课程程设计进设计进行地点:行地点: 实训实训 E312 任任 务务 下下 达达 时时 间间: : 2008 年年 11 月月 27 日日 起止日期:起止日期:2008 年年 12 月月 1 日起日起至至 2008 年年 12 月月 5 日止日止 教教研研室室主主任任 姜柳姜柳 2008 年年 11 月月 28 日日批批准准 数据结构课程设计任务书数据结构课程设计任务书 一、设计目的一、设计目的 数据结构是计算机专业的核心课程,是一门实践性很强的课程。课程设计是 加强学生实践能力的一个强有力手段,要求学生掌握数据结构的应用、算法的编 写、类 C 语言的算法转换成 C(C+)程序并上机调试的基本方法,还要求学生在 完成程序设计的同时能够写出比较规范的设计报告。严格实施课程设计这一环 节,对于学生基本程序设计素养的培养和软件工作者工作作风的训练,将起到显 著的促进作用。 二、设计要求设计要求 1、课程设计题目每组三题,每个学生必须独立完成; 2、课程设计时间为 1 周; 3、设计语言 C(C+)不限; 4、课余时间完成源程序和课程设计报告等文档书写工作,上机时间只能做 调试工作。上机时带上源程序、数据结构教材、C 语言教材。 5、上机任务 1)选择合适的数据结构,并定义数据结构的结构体; 2)根据程序所要完成的基本要求,设计出完整的算法; 3)设计出主程序(main 函数),使其成为完整的程序。 6、上机时间:按照实验室上机时间安排计划执行 7、无论在校外、校内,都要严格遵守学校和所在单位的学习和劳动纪律、规 章制度,学生有事离校必须请假。课程设计期间,无故缺席按旷课处理;缺席时间 达四分之一以上者,其成绩按不及格处理。 三、报告书写格式报告书写格式 1封皮 2成绩单 3任务书 4目录 5正文 6参考文献 四、成绩评定四、成绩评定 评定成绩根据课程设计表现、成绩测验、课程设计报告等进行综合评定。评 定等级:不及格、及格、中、良好、优秀。 五、设计题目五、设计题目 设计题目一设计题目一 全国交通咨询模拟全国交通咨询模拟 【问题描述问题描述】处于对不同目的的旅客对交通工具有不同的要求。例如,因公出差的 旅客希望在旅途中的时间尽可能短,出门旅游的游客则希望旅费尽可能省,而老 年旅客则要求中转次数最少。编制一个全国城市间的交通咨询程序,为旅客提供 两种或三种最优决策的交通咨询。 【基本要求基本要求】(1)提供对城市信息进行编辑(如:添加或删除)的功能。 (2)城市之间有两种交通工具:火车和飞机。提供对列车时刻表 和飞机航班进行编辑(增设或删除)的功能。 (3)提供两种最优决策:最快到达或最省钱到达。全程只考虑一 种交通工具。 (4)旅途中耗费的总时间应该包括中转站的等候时间。 (5)咨询以用户和计算机的对话方式进行。由用户输入起始站、 终点站、最优决策原则和交通工具,输出信息:最快需要多长时间才能到达或者 最少需要多少旅费才能到达,并详细说明依次于何时乘坐哪一趟列车或哪一次 班机到何地。 【测试数据测试数据】 【实现提示实现提示】 (1)对全国城市交通图和班车时刻表及飞机航班表的编辑,应该提供文件形 式输入和键盘输入两种方式。飞机航班表的信息应包括:起始站的出发时间、终 点站的到达时间和票价;列车时刻表则需根据交通图给出各个路段的详细信息, 例如:对于从北京到上海的火车,需给出北京至天津、天津至徐州及徐州至各段 的出发时间、到达时间和票价信息。 (2)以邻接表作交通图的存储结构,表示边的结点内除含有邻接点的信息外, 包括交通工具、路程中消耗的时间和花费以及出发和到达的时间等多项属性。 【选作内容选作内容】增加旅途中转次数最少的最优决策。 设计题目二设计题目二 学生成绩管理系统学生成绩管理系统 【基本要求】 现有学生成绩信息文件 1(1.txt),内容如下 姓名 学号 语文 数学 英语 张明明 01 67 78 82 李成友 02 78 91 88 张辉灿 03 68 82 56 王露 04 56 45 77 呼和浩特 北京 大连 西宁 武汉 南昌 842 137 674 825 672 徐州 397 乌鲁木齐 哈尔滨 长春 沈阳 天津 郑州 西安 兰州 成都 上海 昆明贵阳株州 福州 柳州 广州 深圳 南宁 1892 216 1145 668 1100967 639907 349 676 511 242 305 704 651 622 367 409 255 607 675 140 534 陈东明 05 67 38 47 . 学生成绩信息文件 2(2.txt),内容如下: 姓名 学号 语文 数学 英语 陈果 31 57 68 82 李华明 32 88 90 68 张明东 33 48 42 56 李明国 34 50 45 87 陈道亮 35 47 58 77 . 试编写一管理系统,要求如下: 1、 实现对两个文件数据进行合并,生成新文件 3.txt 2、 抽取出三科成绩中有补考的学生并保存在一个新文件 4.txt 3、 对合并后的文件 3.txt 中的数据按总分降序排序(至少采用两种排序方法实现) 4、 输入一个学生姓名后,能查找到此学生的信息并输出结果(至少采用两种查找 方法实现) 5、 要求使用结构体,链或数组等实现上述要求. 采用多种方法且算法正确者,可适当加分. 设计题目三设计题目三 小型图书馆管理系统(链表的插入,排序,查询,删除)小型图书馆管理系统(链表的插入,排序,查询,删除) 设计要求 对 C 语言软件开发有一定的认识,了解并掌握开发的各个流程,以及各功能代码 的实现。创建一个图书馆管理系统,可进行还书(插入),排序,查找,借书(删除) 操作。 【设计原理】 1所有信息存储在一个带头结点的单向链表中,每个结点存储一条图书记录,即 结构体(book),其中各域为:书号(number)、书名(title)、作者(writer)、定价(pricing)、 出版社(publishinghouse),指针域(next)。 2系统初始时图书记录为空,由用户录入信息,进行插入(包括创建),排序,查 找,删除操作。 3有两种排序算法可选:选择排序和直接插入排序,均由链表实现。 4如输入有错,给出出错提示。 设计内容与步骤设计内容与步骤 选择合适的数据结构 结点结构的设计 算法设计与分析 程序设计、实现、调试 课程设计说明书 进度安排进度安排 设计工作 4 学时 实现与调试 12 学时 课程设计说明书 4 学时 设计考核要求设计考核要求 考勤 20% 课程设计说明书 50% 答辩 30% 五、参考书目五、参考书目 摘摘 要要 “数据结构”是一门专业技术基础课。它的教学要求是:学会分析研究计 算机加工的数据结构的特征,以便为应用涉及的数据选择适当的逻辑结构、存 储结构及其相应的算法,并初步掌握算法的时间分析和空间分析的技术。另一 方面,本课程的学习过程也是复杂程序设计的训练过程,要求学生编写的程序 结构清楚和正确易读,符合软件工程的规范。 在学习中,先要学习程序设计课程的目的掌握设计程序的思路,学习会用 计算机语言编写程序,以实现所需要处理的任务。要正确处理算法与语法的关 系,算法是程序的核心、是灵魂,语法是外壳、是工具。不应把学习重.点放在 语法规则上,语法是重要的,不掌握语法规则就无法编写出正确的程序。一定 要把重点放在解题的思路上,通过思考,和大量的阅读,来构造一个完整的程 序。请记住:重要的是学会编程,而不是背语法。 程序设计是为了锻炼我们的实际动手能力,在一定程度上,又增加了我们 的各方面的知识,特别是一些联系实际的课程设计,它的完成需要自己平时积 累的大量知识、并且需要勤于思考的能力和无限的激情。本次课设主要是学习 程序设计的方法,进行程序设计的基本训练,大多数的学生应该把精力放在最 基本,最常用的内容上,学好基本功。 最后,感谢老师在我们程序设计的过程中辛勤的指导和不倦的教诲。 关键词关键词 :线性表,栈和队列,二叉树,图,查找,排序 目目 录录 摘摘 要要5 目目 录录6 第一章第一章 问题分析问题分析14 1.1 项目的必要性和可行性14 1.2 需求分析14 第二章第二章 数据结构与算法分析数据结构与算法分析15 第三章第三章 核心代码核心代码16 第四章第四章 运行结果运行结果23 结结 论论24 致致 谢谢25 第一章第一章 问题分析问题分析 1.1 项目的必要性和可行性项目的必要性和可行性 学生成绩管理系统,可以解决复杂的学生的各门学科成绩的汇总,对信息 资源进行高级管理,方便拥护对信息的查找,修改和编辑,基于计算机技术的 发展,特别是数据库技术的发展以及操作语言,系统开发软件的发展,使设计 一个满足用户需求的多功能的管理系统更为方便,更加美观,也具有更佳的操 作性。 1.2 需求分析需求分析 通过调查,要求系统需要有以下功能: 由于操作人员的计算机知识普遍较差,要求有良好的人机界面; 由于该系统的使用对象多,要求有较好的权限管理; 原始数据修改简单方便,支持多条件修改 方便的数据查询,支持多条件查询; 在相应的权限下,删除数据方便简单,数据稳定性好; 数据计算自动完成,尽量减少人工干预; 1.设计步骤 (1) 、需求分析:对系统的应实现的功能进行分析。 (2) 、概要设计:对系统功能进行模块分解,对模块的功能及模块之间的相互 关系进行说明(如用到函数,则对函数间的接口进行说明) ,对系统使用的数据 结构(各数组、主要变量的设置及其代表的含义)进行说明。 (3) 、详细设计:用流程图、伪代码等方法对各主要算法进行描述。 (4) 、编写代码:根据设计编写。源程序要按照程序的格式规范来编写,要求 结构清晰,界面友好,关键部分有必要的注释。 (5) 、调试分析:准备充分的测试数据对系统进行调试(对错误的数据输入也 要进行测试,保证程序的容错性) ,并通过测试对系统提出改进设想。 第第 2 2 章章 数据结构与算法分析数据结构与算法分析 数据结构算法应用 从算法设计能力的角度来说,其培养目标分三个层次: (1)模仿学习:通过学习常用数据结构的基本操作的实现过程,以及排序和查 找算法,掌握算法设计的一般过程、思考问题的方法和伪代码的书写; (2)简单应用:在掌握算法设计一般过程的基础上,对给定的数据结构,要求 完成单一的功能,其难度相当于常用数据结构的基本操作,能够实现一些特定 操作; (3)综合应用:综合应用数据结构知识和算法知识,学会分析研究数据对象的 特性,以便选择合适的数据结构和存贮结构以及相应的算法,合理地组织数据、 有效地表示数据、高效地处理数据,书写的程序结构清楚、正确易读,提高程 序设计的质量。 算法设计详见图 2-1(流程图) 开始 选择功能 学生登入忘记密码 回到首页是否查询 账户密码 是否正确 管理员 课程信息管理显示成绩学生成绩管理 结束 No Yes 学生资料管理 修改密码 图 2-1 第三章第三章 核心代码核心代码 struct stud /定义结构体 long num; /定义长整形变量; char name20; /定义字节数组; double score; /定义双精度变量 ; typedef struct stucode /定义结构体 struct stud student ; struct stucode *next; /定义指针 L; while(flag) system(“cls“); menu(); choose=getchar(); switch(choose) case 1: createlist( out(r); printf(“Testing function 1nPress any key to continuen“); getchar(); getchar(); break; case 2: search1(r); printf(“Testing function 1nPress any key to continuen“); getchar(); getchar(); break; case 3: search2(r); printf(“Testing function 1nPress any key to continuen“); getchar(); getchar(); break; case 4: del( out(r); printf(“Testing function 1nPress any key to continuen“); getchar(); getchar(); break; case 5: insert( out(r); printf(“Testing function 1nPress any key to continuen“); getchar(); getchar(); break; case 6: sort( out(r); printf(“Testing function 1nPress any key to continuen“); getchar(); getchar(); break; case 7: out(r); printf(“Testing function 7nPress any key to continuen“); getchar(); getchar(); break; case 0: flag=0; printf(“The end.n“); break; default: printf(“nWrong Selection!(选择错误,请重选!)n“);getchar();getchar(); void main() /主函数 char choose; int flag=1; /标识位 1 struct stucode *r=NULL; void createlist(struct stucode *r) struct stucode *p,*t; long n; char a20; double s; if(*r) *r=NULL; printf(“ n 请输入:n 学号(请按学号升序排列) 姓名 分数 (若要结束请输入三个为零) n“); scanf(“%ld%s%lf“, if(n=0) return; p=(L *)malloc(sizeof(L); /调用函数 malloc p-student.num=n; strcpy(,a); /调用函数 strcpy p-student.score=s; p-next=NULL; *r=p; scanf(“%ld%s%lf“, while(n) t=p; p=(L *)malloc(sizeof(L); p-student.num=n; strcpy(,a); p-student.score=s; p-next=NULL; t-next=p; scanf(“%ld%s%lf“, void search1(struct stucode *r) long x; if(!r) printf(“没有学生信息可查询!n“); return ; printf(“ 请输入要查询的学生信息的学生学号:n“); scanf(“%ld“, while(r if(r=NULL) printf(“Error! No such student !n“); else printf(“%ld %s %.2lfn“,r-student.num,,r-student.score); void search2(struct stucode *r) char m20; if(!r) printf(“没有学生信息可查询!n“); return ; printf(“ 请输入要查询的学生信息的学生姓名:n“); scanf(“%s“,m); while(r if(r=NULL) printf(“Error! No such student !n“); else printf(“%ld %s %.2lfn“,r-student.num,,r-student.score); void del(struct stucode *r) long k; struct stucode *p=*r,*t; if(!(*r) printf(“没有学生信息可删除 !n“); return ; printf(“ 请输入要删除的学生信息的学生学号:n“); scanf(“%ld“, if(p-student.num=k) *r=(*r)-next,free(p); else while(p-next if(p-next=NULL) printf(“Error! No such student !n“); else t=p-next; p-next=p-next-next; free(t); void insert(struct stucode *r) /插入具体实现 long n; /定义长整形变量 char a20; /定义字节数组 double s; /定义双精度类型变量 L *p,*t,*k; printf(“ 请输入要插入的学生信息的学生学号 姓名 分数:n“); scanf(“%ld%s%lf“, p=(L *)malloc(sizeof(L); p-student.num=n; p-student.score=s; strcpy(,a); if(!(*r) *r=p; (*r)-next=NULL; return ; if(p-student.numstudent.num) p-next=(*r),(*r)=p; else t=*r; k=t; while(t-next p-next=t-next; t-next=p; *r=k; void sort(struct stucode *r) /排序 指针函数 struct stucode *t,*p,*q,*z; if(!r) printf(“没有学生信息可排序!n“); return ; if(!(*r)|!(*r)-next) return; t=*r; p=t-next; t-next=NULL; while(p) q=p-next; if(p-student.scoret-student.score) p-next=t; t=p; else z=t; while(z-next p-next=z-next; z-next=p; p=q; *r=t; 第四章第四章 运行结果运行结果 结结 论论 通过这次实训,增加了我学习软件技术的兴趣,虽然还不明确软件技术包 含的具体内容,但从数据结构这门课程开始,已发现程序设计的乐趣,在学习 C 语言的过程中也学到了许多计算机应用基础知识,对计算机的机体也有了一 个大体的了解。 这次实训是老师给了范例程序,经过自己的改写,实现要求。先做简单的 输出,一步步的再做其它图案,在实际操作过程中犯的一些错误还会有意外的 收获,感觉实训很有意思。在具体操作中对这学期所学的数据结构的理论知识 得到巩固,达到实训的基本目的,也发现自己的不足之出,在以后的上机中应 更加注意,同时体会到 C 语言具有的语句简洁,使用灵活,执行效率高等特点。 发现上机实训的重要作用,特别是对数组和链表

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论