




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录数据库课程设计报告1一、绪论21.1课程设计的目的和意义21.2 为何选用C+3二.需求分析42.1管理功能42.2系统总体设计图4三.概念设计43.1基本信息4四.程序设计5五、心得及体会12六、参考文献或网站13一、绪论1.1课程设计的目的和意义当代大学生是一个特殊的团体,他们具有较高知识修养和较强综合素质,但是他们中的大部分却不具有与他们能力相符的动手能力与就业竞争能力。大学毕业生是新兴劳动力的组成部分,提高大学毕业生就业工作发展水平,事关我国经济社会可持续发展的进程 ,高校作为培养大学生的摇篮,必须责无旁贷地承担起提高大学生就业能力的重任。提高大学生的就业能力,不仅需要教师付出辛勤
2、的劳动,还需要一套科学完善的制度作为保障,而高校毕业生基本情况数据库管理系统无疑是一个很好的尝试。本文设计的这套数据库管理系统,是综合日常管理、实践考核、科目成绩统计、就业管理等等的综合性数据库系统。设计学生管理这样一个系统,可以涉及到大多数MFC与C+数据库的重要数据库对象、重要功能和特性,例如:视图、触发器和存储过程等。由此,通过这个课程设计可以加深学生对这些MFC与C+数据库知识的学习、理解,积累在实际工程应用中运用各种数据库对象的经验,使学生掌握使用应用软件开发工具开发数据库管理系统的基本方法。在实用性方面,学生管理系统是很普遍的一种应用,选择该系统作为课程设计也可以为学生以后可能遇到
3、的实际开发提供借鉴。1.2 为何选用C+ 相比较于DOS系统、C语言系统、JAVA系统等,C+具有其独特的优点让我们在设计中选择它。它是一门独立的语言;它并不依赖C语言,我们可以完全不学C语言,而直接学习C+。根据C+编程思想()一书所评述的,C+与C的效率往往相差在正负5%之间。所以有人认为在大多数场合C+ 完全可以取代C语言(然而我们在单片机等需要谨慎利用空间、直接操作硬件的地方还是要使用C语言)。支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格。对于初学者来说,用起编程很上手。二.需求分析2.1管理功能系统主
4、要实现对学生的管理功能。主要有管理员登陆、学生登录、管理员信息管理、学生信息管理等。2.2系统总体设计图学生管理管理员登陆管理员查询学生登录添加管理员修改密码删除管理员详细查询概况查询详细查询信息修改概况查询三.概念设计3.1基本信息学生基本信息:学号、学生姓名、性别、出生日期、专业课程信息:课程号、所属专业、课程名、类型、开课学期、课时数、学分学生课程成绩信息:学号、课程号、成绩、学分管理员信息: 管理员账号、管理员姓名、密码四.程序设计使用Visual C+平台设计学生成绩管理系统的主框架。 学生成绩管理系统能有效地管理每个学生的各科成绩,还可以管理学生的基本信息以及课程信息。该系统能简便
5、地实行相关记录的查询,添加,修改,删除操作。改程序设计主要记录编写学生成绩表中记录的查询,添加,修改,删除功能,以及实现这些功能的相关代码。学生基本信息表,课程信息表的功能和功能实现代码与此表类似。4.1问题定义该程序主要是为了实现对一个班某一门课的成绩进行管理,为实现该功能先定义了一个系统菜单:(1)输入若干条记录 (2)显示所有记录 (3)按学号排序 (4)插入一条记录 (5)按姓名查找,删除一条记录 (6)查找并显示一条记录 (7)输出统计信息 (新增) (8)从正文中添加数据到结构体数组中 (9)将所有数据写入文件中 (0)退出程序 4.2功能实现: 菜单中的每一个选项都对应一个子程序
6、,子程序的算法几乎囊获了所有C语言学过的技巧,下面就各个子程序中的功能进行说明: 功能1和4的算法相似,输入一条记录到结构体中去,其中有一部很关键,就是通过gets将所有的多余的字符,回车读去,否则就会出错。 功能2是显示所有的记录,通过循环输出,格式也比较重要。 功能3为按学号排序,因为学号定义成了字符数组的形式,因此在运用冒泡法进行排序的时候,要用到strcmp,strcpy等函数。 功能5为按姓名删除记录,先输入姓名,再一一比较,如果没有则返回失败信息,如果找到就将此记录都向前移一位,返回n-1。 功能6的算法在5中就已经体现了,输入姓名,一一比较。 功能7为新增的功能,因为考虑到原来给
7、出的函数中竟然没有对学生成绩的统计功能,因此新增此功能,可以得出所有的记录个数,最高、最低、平均分,并输出相关的学生信息等。 功能8和9是对文件的操作,提前准备好数据。 4.3数据结构1、typedef struct Student 定义一个结构体数组、并使用类型定义为Student新类型。Student stu80;Stu是一个包含有80个元素的一维结构体数组;Stu2表示第三个学生的相关信息, 表示第三个人的姓名,类似stu2.score 表示第三个人的分数。2、int menu_select () 定义一个菜单函数,通过向形参里输入整数来进行下 一步操作。如 int m
8、enu_select(1)表示想数组中输入学生信息,接下来会进 入到下一界面操作。3、int Input(Student stud,int n) 表示定义一个输入学生信息的函数,通过向形参里输入一个数组名来完成下一步操作。如scanf(“%s”,stun+)表示想数组中输入学生姓名。4、void Display(Student stud,int n) 表示定义一个输出学生信息函数,通过向形参里输入一个数组名来完成下一步操作。如scanf(“%s”,stun+)表示想数组中输出学生姓名。5、void Sort_by_num(Student stud,int n) 表示定义
9、一个按学号排序的函数,通过向形参里输入一个数组名来完成下一步操作,即是排序。如scanf(“%s”,stun+) 表示对输入进去的N+I个学生进行排序。6、int Insert_a_record(Student stud,int n) 表示定义一个插入函数,通过向形参中调入数组来实现功能。7、int Delete_a_record(Student stud,int n) 表示定义一个按姓名查找、删除函数来实现功能。8、void Query_a_record(Student stud,int n)表示定义一个查找函数来显示查找功能。9、void Statistic(Student s
10、tud,int n) 表示定义一个新增功能函数,输出统计信息。10、int AddfromText(Student stud,int n) 表示定义一个从文件中读入数据函数。11、void WritetoText(Student stud,int n) 表示定义一个将数据写入文件的函数。4.4程序编写void main() /*主函数*/ int n=0; for(;) 通过FOR循环来完成以下程序 switch(menu_select() /*选择判断*/ 进入菜单选项后选择功能选项 case 1: 如要输入学生信息键入1号键printf(tttInput Recordsn); /*输入若干
11、条记录*/ n=Input(stu,n); break; case 2: 如要显示所有信息键入2号键printf(tttDisplay All Recordsn); /*显示所有记录*/ Display(stu,n); break; case 3: 如要将输入的信息按学号排序键入3号键printf(tttSortn); Sort_by_num(stu,n); /*按学号排序*/ 然后通过调用Sort_by_num(stu,n)函数完成排序printf(tttSort Suceessed!n); printf(ttt); system(pause); break; case 4: 如要插入一条信
12、息键入4号键printf(tttInsert a Recordn); n=Insert_a_record(stu,n); /*插入一条记录*/ 然后通过调用Insert_a_record(stu,n)完成插入printf(ttt); system(pause); break; case 5: 如要按姓名删除一个记录键入5号键printf(tttDelete a Recordn); n=Delete_a_record(stu,n); /*按姓名查找,删除一条记录*/ 然后通过调用函数n=Delete_a_record(stu,n)实现删除记录printf(ttt); system(pause);
13、 break; case 6: 如要显示所有信息键入6号键printf(tttQueryn); Query_a_record(stu,n); /*查找并显示一个记录*/ 然后通过调用函数Query_a_record(stu,n)实现功能printf(ttt); system(pause); break; case 7: 如要输出统计信息键入7号键printf(tttStatisticn); Statistic(stu,n); /*新增功能,输出统计信息*/ 然后通过调用函数Statistic(stu,n)实现统计功能printf(ttt); system(pause); break; case
14、 8: 如要对数据暂时保存键入8号键 printf(tttAdd Records from a Text Filen); n=AddfromText(stu,n); /*新增功能,输出统计信息*/ 然后通过调用函数AddfromText(stu,n)实现暂存信息break; case 9: 如要将刚才输入的信息保存键入9号键printf(tttWrite to a Text filen); WritetoText(stu,n); /*循环写入数据*/ 然后调用函数AddfromText(stu,n)实现保存功能printf(ttt); system(pause); break; case 0:
15、 最后入要退出程序键入0号键printf(tttHave a Good Luck,Bye-bye!n); /*结束程序*/ printf(ttt); system(pause); exit(0); 4.5设计测试流程1、进入界面 2、输入选项1,回车; 按提示输入数据: 3、回到主菜单; 输入选项7,回车; 输入文件名:data.txt,回车; 出现成功提示,则读入文件操作成功。 4、回到主菜单,输入2,回车 每10个暂停显示数据 5、回到主菜单,输入3,回车 出现排序成功信息。 6、回到主菜单,输入4,回车 按提示插入一组数据 7、回到主菜单,输入5,回车 按提示输入姓名,删除数据 出现删除
16、成功的信息 8、回到主菜单,输入6,回车 输入姓名进行查询 9、回到主菜单,输入7,回车 出现统计信息 10、回到主菜单,输入9,回车 输入result.txt,回车 出现成功写入文件的信息 11、回到主菜单,输入0,回车退出系统4.6程序调试情况1、开始进入界面时键入任意选项后就不能继续进行,发现是没有使用循环语句,重新使用后能继续运行。2、输入一个信息后在输出信息时,由于调用数据输出函数不正确不能显示刚才输入的信息,调试后能正常运行。3、对于插入一个成绩,必须是在所输入数据正确排序后方可进行。4、从正文中输入数据到结构体中只能暂存信息,如要保存信息必须得将信息加入文件中。5、对于将信息加入文件,必须新建一个文本文件,方可保存。当数据输入文件后,就可以在你新建的文本文件中看到输入的信息。6、最后一条就是我所编写的程序一次性只能写入80个同学的信息,所以,必须每输完一次文件记录后再次新建文件。7、提示:每输入一个信息记得保存!五、心得及体会该次课程设计是将我们学的理论知识运用与实际的过程,开始出现了一些问题,走了许多弯路,在此期间,但通过上网搜索和询问同学把困难解决了。写的过程中遇到了些实际问题,如书写格式不对造成编译错误,更严重的是一些逻辑性错误,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 叉车停车考试题及答案
- 基本管理面试题及答案
- 2025年贵阳市清镇市招聘中小学教师考试笔试试题(含答案)
- 2025年广东公司招聘考试试题(含答案)
- 2025年福州市润楼教育科技集团有限公司招聘考试试题(含答案)
- 医院院感培训试题及答案
- 2025年新进人员辐射安全与防护考核试题及答案
- 2024年辽宁国家公务员申论考试真题及答案-副省卷
- 北京法律知识培训班课件
- 数字化物流商业运营 课后习题答案-模块3
- 压缩空气流量及管径计算
- 起重吊装作业安全培训题库
- 乐嘉性格色彩培训
- 铝合金技术服务协议
- 员工出差安全培训
- 手术室批量伤员应急预案
- 财险公司新人培训
- 固定收益投资回报协议范本
- 中医护理基础饮食护理
- 《幼儿园消防培训》课件
- 倪海厦天纪学习笔记以及讲义
评论
0/150
提交评论