学生成绩管理系统程序设计.docx

上传人:b****4 文档编号:5647198 上传时间:2023-05-08 格式:DOCX 页数:12 大小:89.13KB
下载 相关 举报
学生成绩管理系统程序设计.docx_第1页
第1页 / 共12页
学生成绩管理系统程序设计.docx_第2页
第2页 / 共12页
学生成绩管理系统程序设计.docx_第3页
第3页 / 共12页
学生成绩管理系统程序设计.docx_第4页
第4页 / 共12页
学生成绩管理系统程序设计.docx_第5页
第5页 / 共12页
学生成绩管理系统程序设计.docx_第6页
第6页 / 共12页
学生成绩管理系统程序设计.docx_第7页
第7页 / 共12页
学生成绩管理系统程序设计.docx_第8页
第8页 / 共12页
学生成绩管理系统程序设计.docx_第9页
第9页 / 共12页
学生成绩管理系统程序设计.docx_第10页
第10页 / 共12页
学生成绩管理系统程序设计.docx_第11页
第11页 / 共12页
学生成绩管理系统程序设计.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

学生成绩管理系统程序设计.docx

《学生成绩管理系统程序设计.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统程序设计.docx(12页珍藏版)》请在冰点文库上搜索。

学生成绩管理系统程序设计.docx

学生成绩管理系统程序设计

目录

数据库课程设计报告1

一、绪论2

1.1课程设计的目的和意义2

1.2为何选用C++3

二.需求分析4

2.1管理功能4

2.2系统总体设计图4

三.概念设计4

3.1基本信息4

四.程序设计5

五、心得及体会12

六、参考文献或网站13

一、绪论

1.1课程设计的目的和意义

当代大学生是一个特殊的团体,他们具有较高知识修养和较强综合素质,但是他们中的大部分却不具有与他们能力相符的动手能力与就业竞争能力。

大学毕业生是新兴劳动力的组成部分,提高大学毕业生就业工作发展水平,事关我国经济社会可持续发展的进程,高校作为培养大学生的摇篮,必须责无旁贷地承担起提高大学生就业能力的重任。

提高大学生的就业能力,不仅需要教师付出辛勤的劳动,还需要一套科学完善的制度作为保障,而高校毕业生基本情况数据库管理系统无疑是一个很好的尝试。

本文设计的这套数据库管理系统,是综合日常管理、实践考核、科目成绩统计、就业管理等等的综合性数据库系统。

设计学生管理这样一个系统,可以涉及到大多数MFC与C++数据库的重要数据库对象、重要功能和特性,例如:

视图、触发器和存储过程等。

由此,通过这个课程设计可以加深学生对这些MFC与C++数据库知识的学习、理解,积累在实际工程应用中运用各种数据库对象的经验,使学生掌握使用应用软件开发工具开发数据库管理系统的基本方法。

在实用性方面,学生管理系统是很普遍的一种应用,选择该系统作为课程设计也可以为学生以后可能遇到的实际开发提供借鉴。

1.2为何选用C++

相比较于DOS系统、C语言系统、JAVA系统等,C++具有其独特的优点让我们在设计中选择它。

它是一门独立的语言;它并不依赖C语言,我们可以完全不学C语言,而直接学习C++。

根据《C++编程思想》()一书所评述的,C++与C的效率往往相差在正负5%之间。

所以有人认为在大多数场合C++完全可以取代C语言(然而我们在单片机等需要谨慎利用空间、直接操作硬件的地方还是要使用C语言)。

支持多重编程范式的通用程序设计语言。

它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格。

对于初学者来说,用起编程很上手。

二.需求分析

2.1管理功能

系统主要实现对学生的管理功能。

主要有管理员登陆、学生登录、管理员信息管理、学生信息管理等。

2.2系统总体设计图

三.概念设计

3.1基本信息

学生基本信息:

学号、学生姓名、性别、出生日期、专业

课程信息:

课程号、所属专业、课程名、类型、开课学期、课时数、学分

学生课程成绩信息:

学号、课程号、成绩、学分

管理员信息:

管理员账号、管理员姓名、密码

四.程序设计

使用VisualC++平台设计学生成绩管理系统的主框架。

学生成绩管理系统能有效地管理每个学生的各科成绩,还可以管理学生的基本信息以及课程信息。

该系统能简便地实行相关记录的查询,添加,修改,删除操作。

改程序设计主要记录编写学生成绩表中记录的查询,添加,修改,删除功能,以及实现这些功能的相关代码。

学生基本信息表,课程信息表的功能和功能实现代码与此表类似。

4.1问题定义

该程序主要是为了实现对一个班某一门课的成绩进行管理,为实现该功能先定义了一个系统菜单:

(1)输入若干条记录

(2)显示所有记录

(3)按学号排序

(4)插入一条记录

(5)按姓名查找,删除一条记录

(6)查找并显示一条记录

(7)输出统计信息(新增)

(8)从正文中添加数据到结构体数组中

(9)将所有数据写入文件中

(0)退出程序

4.2功能实现:

菜单中的每一个选项都对应一个子程序,子程序的算法几乎囊获了所有C语言学过的技巧,下面就各个子程序中的功能进行说明:

功能1和4的算法相似,输入一条记录到结构体中去,其中有一部很关键,就是通过gets将所有的多余的字符,回车读去,否则就会出错。

功能2是显示所有的记录,通过循环输出,格式也比较重要。

功能3为按学号排序,因为学号定义成了字符数组的形式,因此在运用冒泡法进行排序的时候,要用到strcmp,strcpy等函数。

功能5为按姓名删除记录,先输入姓名,再一一比较,如果没有则返回失败信息,如果找到就将此记录都向前移一位,返回n-1。

功能6的算法在5中就已经体现了,输入姓名,一一比较。

功能7为新增的功能,因为考虑到原来给出的函数中竟然没有对学生成绩的统计功能,因此新增此功能,可以得出所有的记录个数,最高、最低、平均分,并输出相关的学生信息等。

功能8和9是对文件的操作,提前准备好数据。

4.3数据结构

1、typedefstructStudent定义一个结构体数组、并使用类型定义为Student新类型。

Studentstu[80];

Stu是一个包含有80个元素的一维结构体数组;

Stu[2]表示第三个学生的相关信息,stu[2].name表示第三个人的姓名,类似stu[2].score表示第三个人的分数。

2、intmenu_select()定义一个菜单函数,通过向形参里输入整数来进行下

一步操作。

如intmenu_select

(1)表示想数组中输入学生信息,接下来会进入到下一界面操作。

3、intInput(Studentstud[],intn)表示定义一个输入学生信息的函数,通过向形参里输入一个数组名来完成下一步操作。

如scanf(“%s”,stu[n+i].name)表示想数组中输入学生姓名。

4、voidDisplay(Studentstud[],intn)表示定义一个输出学生信息函数,通过向形参里输入一个数组名来完成下一步操作。

如scanf(“%s”,stu[n+i].name)表示想数组中输出学生姓名。

5、voidSort_by_num(Studentstud[],intn)表示定义一个按学号排序的函数,通过向形参里输入一个数组名来完成下一步操作,即是排序。

如scanf(“%s”,stu[n+i].name)表示对输入进去的N+I个学生进行排序。

6、intInsert_a_record(Studentstud[],intn)表示定义一个插入函数,通过向形参中调入数组来实现功能。

7、intDelete_a_record(Studentstud[],intn)表示定义一个按姓名查找、删除函数来实现功能。

8、voidQuery_a_record(Studentstud[],intn)表示定义一个查找函数来显示查找功能。

9、voidStatistic(Studentstud[],intn)表示定义一个新增功能函数,输出统计信息。

10、intAddfromText(Studentstud[],intn)表示定义一个从文件中读入数据函数。

11、voidWritetoText(Studentstud[],intn)表示定义一个将数据写入文件的函数。

4.4程序编写

voidmain()/*主函数*/

{

intn=0;

for(;;)通过FOR循环来完成以下程序

{

switch(menu_select())/*选择判断*/进入菜单选项后选择功能选项

{

case1:

如要输入学生信息键入1号键

printf("\t\t\tInputRecords\n");/*输入若干条记录*/

n=Input(stu,n);

break;

case2:

如要显示所有信息键入2号键

printf("\t\t\tDisplayAllRecords\n");/*显示所有记录*/

Display(stu,n);

break;

case3:

如要将输入的信息按学号排序键入3号键

printf("\t\t\tSort\n");

Sort_by_num(stu,n);/*按学号排序*/然后通过调用Sort_by_num(stu,n)函数完成排序

printf("\t\t\tSortSuceessed!

\n");

printf("\t\t\t");

system("pause");

break;

case4:

如要插入一条信息键入4号键

printf("\t\t\tInsertaRecord\n");

n=Insert_a_record(stu,n);/*插入一条记录*/然后通过调用

Insert_a_record(stu,n)完成插入

printf("\t\t\t");

system("pause");

break;

case5:

如要按姓名删除一个记录键入5号键

printf("\t\t\tDeleteaRecord\n");

n=Delete_a_record(stu,n);/*按姓名查找,删除一条记录*/然后通过调用函数n=Delete_a_record(stu,n)实现删除记录

printf("\t\t\t");

system("pause");

break;

case6:

如要显示所有信息键入6号键

printf("\t\t\tQuery\n");

Query_a_record(stu,n);/*查找并显示一个记录*/然后通过调用函数Query_a_record(stu,n)实现功能

printf("\t\t\t");

system("pause");

break;

case7:

如要输出统计信息键入7号键

printf("\t\t\tStatistic\n");

Statistic(stu,n);/*新增功能,输出统计信息*/然后通过调用函数Statistic(stu,n)实现统计功能

printf("\t\t\t");

system("pause");

break;

case8:

如要对数据暂时保存键入8号键

printf("\t\t\tAddRecordsfromaTextFile\n");

n=AddfromText(stu,n);/*新增功能,输出统计信息*/然后通过调用函数AddfromText(stu,n)实现暂存信息

break;

case9:

如要将刚才输入的信息保存键入9号键

printf("\t\t\tWritetoaTextfile\n");

WritetoText(stu,n);/*循环写入数据*/然后调用函数AddfromText(stu,n)实现保存功能

printf("\t\t\t");

system("pause");

break;

case0:

最后入要退出程序键入0号键

printf("\t\t\tHaveaGoodLuck,Bye-bye!

\n");/*结束程序*/

printf("\t\t\t");

system("pause");

exit(0);

}

}

}

4.5设计测试流程

1、进入界面

2、输入选项1,回车;

按提示输入数据:

3、回到主菜单;

输入选项7,回车;

输入文件名:

data.txt,回车;

出现成功提示,则读入文件操作成功。

4、回到主菜单,输入2,回车

每10个暂停显示数据

5、回到主菜单,输入3,回车

出现排序成功信息。

6、回到主菜单,输入4,回车

按提示插入一组数据

7、回到主菜单,输入5,回车

按提示输入姓名,删除数据

出现删除成功的信息

8、回到主菜单,输入6,回车

输入姓名进行查询

9、回到主菜单,输入7,回车

出现统计信息

10、回到主菜单,输入9,回车

输入result.txt,回车

出现成功写入文件的信息

11、回到主菜单,输入0,回车退出系统

4.6程序调试情况

1、开始进入界面时键入任意选项后就不能继续进行,发现是没有使用循环语句,重新使用后能继续运行。

2、输入一个信息后在输出信息时,由于调用数据输出函数不正确不能显示刚才输入的信息,调试后能正常运行。

3、对于插入一个成绩,必须是在所输入数据正确排序后方可进行。

4、从正文中输入数据到结构体中只能暂存信息,如要保存信息必须得将信息加入文件中。

5、对于将信息加入文件,必须新建一个文本文件,方可保存。

当数据输入文件后,就可以在你新建的文本文件中看到输入的信息。

6、最后一条就是我所编写的程序一次性只能写入80个同学的信息,所以,必须每输完一次文件记录后再次新建文件。

7、提示:

每输入一个信息记得保存!

 

五、心得及体会

该次课程设计是将我们学的理论知识运用与实际的过程,开始出现了一些问题,走了许多弯路,在此期间,但通过上网搜索和询问同学把困难解决了。

写的过程中遇到了些实际问题,如书写格式不对造成编译错误,更严重的是一些逻辑性错误,这些都反映出自己学习得不扎实,和自己的书写习惯不好,这也提醒我们在以后的编程中要时时小心步步留意。

六、参考文献或网站

【1】《C程序设计基础教程》(杨有安编人民邮电出版社)

【2】《C程序设计经典教程》

第四版(美国HarveyM.Deitel/PaulJ.Deitel著,聂雪军、贺军译,清华大学出版社出版)

【3】周长发《精通VisualC++图像处理编程》电子工业出版社2006年6月

【4】孙鑫.《VC++深入详解》电子工业出版社2006年06月

【5】XX

【6】谷歌

出师表

两汉:

诸葛亮

  先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。

然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。

诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。

  宫中府中,俱为一体;陟罚臧否,不宜异同。

若有作奸犯科及为忠善者,宜付有司论其刑赏,以昭陛下平明之理;不宜偏私,使内外异法也。

  侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下:

愚以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。

  将军向宠,性行淑均,晓畅军事,试用于昔日,先帝称之曰“能”,是以众议举宠为督:

愚以为营中之事,悉以咨之,必能使行阵和睦,优劣得所。

  亲贤臣,远小人,此先汉所以兴隆也;亲小人,远贤臣,此后汉所以倾颓也。

先帝在时,每与臣论此事,未尝不叹息痛恨于桓、灵也。

侍中、尚书、长史、参军,此悉贞良死节之臣,愿陛下亲之、信之,则汉室之隆,可计日而待也

  臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸侯。

先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。

后值倾覆,受任于败军之际,奉命于危难之间,尔来二十有一年矣。

  先帝知臣谨慎,故临崩寄臣以大事也。

受命以来,夙夜忧叹,恐托付不效,以伤先帝之明;故五月渡泸,深入不毛。

今南方已定,兵甲已足,当奖率三军,北定中原,庶竭驽钝,攘除奸凶,兴复汉室,还于旧都。

此臣所以报先帝而忠陛下之职分也。

至于斟酌损益,进尽忠言,则攸之、祎、允之任也。

  愿陛下托臣以讨贼兴复之效,不效,则治臣之罪,以告先帝之灵。

若无兴德之言,则责攸之、祎、允等之慢,以彰其咎;陛下亦宜自谋,以咨诹善道,察纳雅言,深追先帝遗诏。

臣不胜受恩感激。

  今当远离,临表涕零,不知所言。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2