六安职业技术学院课程设计报告2Word格式.docx
《六安职业技术学院课程设计报告2Word格式.docx》由会员分享,可在线阅读,更多相关《六安职业技术学院课程设计报告2Word格式.docx(27页珍藏版)》请在冰豆网上搜索。
星期四编程实现
星期五撰写实习报告
第二章系统的需求分析与设计
2.1系统需求分析
学生成绩管理系统(以下简称“系统”)可以用来管理规模较大的成绩信息,对学生的成绩信息进行维护和统计。
系统的目标用户为老师或其他需要统计各种信息的人员。
系统可以极大的减少用户的工作量,为用户节省更多的时间,让用户在几秒钟内获得各种统计信息,在第一时间对学生成绩有全面的了解。
系统给用户提供了简单而实用的功能。
如图2-1所示
图2-1
系统使用菜单式的用户界面,给用户以直观的使用体验。
用户只要根据系统提示,通过键盘输入相应信息就可以使用系统,操作简单,不需要任何经验知识就可以轻松上手。
2.1.1、系统分析(需求分析)
1)能够实现学生学号、姓名、成绩的录入;
2)能够实现对学生信息的浏览、查找、删除;
3)能够实现对学生信息按学号顺序显示,成绩排名;
4)能够对各科成绩统计情况输出。
2.1.2系统性能要求:
1)系统安全、可靠;
2)功能齐全;
3)操作方便;
4)易于维护和扩充
2.1.3系统的功能分析:
资料维护:
系统维护包括对各个学生姓名、成绩、学号的录入操作,对数据表中的信息进行浏览。
成绩查询:
可以对学生成绩进行详细查询。
排列显示:
包括统计学生排名成绩等.
2.2系统总体设计
系统功能分为两大部分:
编辑和统计。
增加学生成绩、显示学生成绩、排序统计成绩、查找学生成绩、删除学生成绩、修改学生信息
2.2.1编辑功能可以对数据和信息进行维护,其子目录下有以下几个功能:
(1)增加学生成绩信息
通过键盘输入增加学生成绩信息,。
通过键盘建立最初的信息了,建立后就可以保存成文件形式,方便以后使用。
(2)修改学生成绩信息
修改学生成绩信息:
通过用户提供的学生姓名或学号,检索到该学生,然后进行修改,可以修改姓名、年龄、各科成绩等。
(3)删除学生成绩信息
删除某学生的单科成绩。
(例如,当某学生中期退课后,就可以用此功能将该课程成绩删除)
删除某一个学生。
将该学生的全部信息删除,该学生的数据将不再出现在数据库中。
2.2.2统计功能可以给用户提供各种统计信息,其子目录下有以下几个功能:
(1)显示学生成绩信息:
可以指定任意科目,并按该科目成绩由高到低将学生信息输出到屏幕。
(2)排列学生成绩信息:
按照学分绩优高到低的顺序,将学生信息输出到屏幕。
(3)查找学生成绩信息:
按照学号由小到大的顺序将学生信息输出到屏幕。
2.3功能需求分析
简易学生成绩管理系统主要有六大模块:
学生信息(如学号、姓名、各科成绩、年龄等)的录入文件中;
查找学生成绩信息;
显示学生成绩信息;
修改学生成绩信息;
删除学生成绩信息;
排列学生成绩信息。
2.3.1学生信息录入模块
主要功能是录入学生的信息,具体操作是:
先打开程序的主界面,输入密码,然后选择数字1,即可录入数据,程序依次输出:
学生姓名、学生学号、学生的出生年份以及各科成绩等,确认后按任意键退出。
2.3.2学生信息查找模块
主要功能是查找用户所需要的学生信息,直接选择数字4,便可根据学生的姓名、学号可以查询到相关成绩,
2.3.3学生信息显示模块
主要功能是显示学生的相关信息,直接选择数字2,便可显示相关学生的信息(包括学号、姓名、年龄以及各科成绩)
第三章系统模块功能介绍
3.1功能模块
“学生成绩管理系统”包括六个模块:
增加学生成绩、显示学生成绩、排序统计成绩、查找学生成绩、删除学生成绩、修改学生信息。
这六个模块既相互联系又相互独立。
3.1.1登录界面
如图3-1-1所示
图3-1-1
3.1.2增加学生成绩模块:
主要功能用来对学生的成绩进行收集和对年龄和学号的收集,以便于统计信息及增加学生成绩信息界面的可观度。
老师可以通过填写表格的形式,输入成绩等相关信息,系统可以自动避免重复信息。
如图3-2-2所示
图2-3-2
3.1.3显示学生成绩模块:
主要功能便于大家对成绩出生年份、学号进行查询处理。
显示学生成绩信息界面如图3-1-3所示
图3-1-3
3.1.4排序统计成绩模块:
主要功能用来对学生的成绩进行排序,使教师了解学生的近期学习状况排列系统成绩信息界面,如图3-1-4所示
图3-1-4
3.1.5查找学生成绩模块:
主要功能用来对学生的成绩方便快捷的进行查询,可以通过学号和姓名进行查询。
查找学生成绩信息界面如图3-1-5所示
图3-1-5
3.1.6删除学生成绩模块:
主要功能用来对学生的成绩进行删除,老师可以对数据进行删除,系统能够通过老师给出的条件查找出要删除信息,并提示是否确定删除,删除后该信息将从数据库消失。
删除学生成绩信息界面如图2-3-5所示
3.1.7修改学生信息模块:
主要功能用来对学生的一些信息进行修改。
老师可以对数据库中的一些信息进行修改,系统能够通过老师给出的条件查找出所要修改的信息。
修改后自动保存,并自动查找是否是重复信息。
修改学生信息模块界面如图3-1-7所示
第四章课程设计总结
2011年12月5日至2010年12月9日一周,按照教学计划和学院的安排,在教室进行了10级计算机应用技术专业《C++语言程序设计》课程设计的实训周。
C++语言程序设计的课程设计,使学生能将学到的C++语言程序设计思想用到具体的工作和学习中,加深对类与对象的理解,是将计算机课程与实际问题相联接的关键步骤。
通过课程设计,能够提高学生分析问题、解决问题,从而运用所学知识解决实际问题的能力,因而必须给予足够的重视。
整个课程设计分为分组、编程及调试、程序测试及检查、提交课程设计报告四个阶段来完成。
1、分组及准备阶段:
此阶段将学生分成若干小组,每小组选择好设计模块,然后由学生自主进行问题分析和相关资料查询,通过问题分析、概要设计、详细设计、用户界面设计、编码、测试等一系列过程,培养学生动手实践、协作开发项目的能力,为后续专业技能的训练提供基础;
2、编程及程序调试阶段:
此阶段学生集中上机进行,对于学生出现的问题,老师及时帮助学生解决,取得了很好的效果。
同时为了保证每位同学的课程设计效果,每次课堂都会点名,并纳入学生的平时成绩,该成绩占总成绩的30%;
3、程序测试及检查阶段:
此阶段由老师对每位学生的设计结果作测试和检查,并根据测试及检查结果评定学生成绩,此成绩占课程设计总成绩的40%。
检查的方法以学生答辩的方式进行,针对学生的课设提问有针对性的问题,根据回答问题的情况和课程设计的复杂度给定成绩;
由于学生成绩管理系统的功能十分强大,程序的编写也十分的复杂,所以我们七个人一组,每人完成一部分程序.程序的编写是一项困难的任务,完成此程序必需运用书中的大部分知识,而且要有清晰的思路,有较强的语言组织能力.由于七人各完成一部分,所以最后七部分程序要能衔接得十分完整,所以七个人要在编写自己的程序的基础上考虑其他人的程序结构.编写程序就是一项十分困难的事,所以一定要细心,不能有一丝的马虎,否则会前功尽弃.三是程序的检查和系统的调用.程序写完后并不能保证它一定能运行,所以要对它进行调试,发现其中的弊端,并作出相应的修改,以完善程序,使其逻辑性,运算能力都符合题目要求,使学生成绩管理系统的运行能力达到课程的目的.这也体现了我们7个人的团队合作能力!
课程设计中体现出新时代大学生思维,理论方法结合实际应用能力的进步,也证明我系课程实践环节的点滴进步。
主要有以下几点特色:
1.本课程设计采取分组合作模式,这样可以增加同学们的协同能力,为以后融入单位合作工作模式打下良好的基础。
此外课程设计的选题模式采取抽签模式这样以来加强了随机性,增加量趣味性;
2.本课程设计的选课题库更加贴近于我们的生活,激发学生观察生活,体验生活的能力。
让同学有所想,有所做,同时增加量软件的应用性能;
3.本课程设计在一定的持续时间内,有明确的任务书,实行任务到人制度。
使同学有事可做,也充分体验了“赶工期”的生活;
4.本课程设计在撰写实践报告环节上,更是高标准、严要求。
老师专门找出时间为同学讲解报告的书写细节,并且为同学制作模板以供参考。
为日后撰写毕业设计报告等打下良好的基础。
我希望在下一次课程设计中我们会有更大的进步,我也会努力改进存在的问题,使我们的课程设计更具有特色。
通过本次的C++课程设计,让我们学会了把书本上的知识应用到了实际中来。
虽然在这一周中有过挫折和坎坷,有的问题一直到了最后才被解决,但是我认为这未必就不是好事,这样能锻炼我们的意志,磨练我们的耐心,失败是成功之母,这话一点都没错,没有失败就没有成功。
让我们没有失去信心的是关怀我们的老师,当我们有了问题和疑问,老师就很耐心的给予讲解,让我们有了一个良好的学习氛围。
经过为期一周的紧张的上机编程学习,每位同学的设计题目都达到了理想的效果,使学生对数据结构课程所学的知识有了更深入的理解和掌握,巩固了理论教学所学到的知识,扩展了学生编程思想,取得了预期的效果。
由于水平有限及所学知识无限,在课程设计中难免有不少错误和不足之处,还请老师批评指正。
致谢
C++课程设计是对我们对这一个学期所学知识运用能力的一次全面的考核,也是对我们进行基本功的训练,培养我们综合运用所学知识独立地分析问题和解决问题的能力,为以后撰写毕业论文和工作打下良好的基础。
在本次设计中,我得到吴涛老师的悉心指导,另外也是和本设计小组其他设计人员的大力支持才得以完成。
紧张而又辛苦的一周课程设计结束啦。
在我们快要完成老师给我们下达任务的时候,我们设计小组仿佛经历一次翻山越岭,登上了高山之巅,顿时心旷神怡,眼前豁然开朗。
课程设计是我们专业课程知识综合应用的实践训练,这是我们迈向社会、从事职业工作前一个必不可少的过程。
“千里之行始于足下”,通过这次毕业设计我们深深体会到这句千古名言的真正含义。
我们今天认真的进行课程设计,学会脚踏实地的迈开这一步,就是为了明天能稳健地在社会大潮中奔跑打下坚实的基础。
说实话,课程设计真的是有点累。
然而,当我们着手清理自己的设计资料,检查程序,得出的这个程序,仔细回味这一周的心路历程,一种少有的成功喜悦即刻使我们的倦意顿消。
虽然这是我们刚学会走完的第一步,是我们人生中的小胜利,然而它令我感受到自己成熟了许多。
我清楚的意识到做课程设计不是一件容易的事,但是我们更多的是一种收获。
通过此次课程设计我们深刻的感悟到:
做设计是苦活但要细心;
实践动手做比空想强:
合作精神的强大的;
老师是很好的资源,要想他挖掘。
成败决定于细节。
老子说:
“天下难事,必做于易;
天下大事,必做于细”;
我们做课程设计也需要这种精神,千里之堤毁于蚁穴,蚂蚁的巢穴都将会导致千里的河堤崩溃,一点的不足也会使种鸽程序运行不出来。
实践是检验真理的唯一标准,只有经得起实践检验的想法,意识才是正确的。
俗语有所:
众人拾柴火焰高。
我们做课程设计也需要发挥团队的精神的作用。
队员之间互相合作,发挥相互的特长这样会令程序设计工作顺利完成而省很多时间和精力,达到事半功倍的效果。
今天的企业管理强调的时团队精神,不是个人主义,我们通过这次课程设计深刻了解到这一点,我们同学之间也得到很好的交流。
老师是一本活书、是最好的利用资源,我们要不断在他身上进行“开采”,获取自己的宝贵的知识。
老师不会是都帮我们亲手的去做好,他主要做的工作的引导指引我们、启发我们。
以他的话说就是:
授之以鱼不如授之以渔,亲手帮你做好一次,那下次遇到同样的问题,你们还是不会解决,那不是等于不教。
我们要学会独立思考,提高自己的学习能力。
本次课程设计能够顺利完成,首先我要感谢我们C++老师吴老师,他不但教会我们专业方面的知识,在本次课程设计中给与我们大力支持和帮助的,每有问题,老师总是耐心的解答,使我能够充满热情的投入到课程设计中去;
还要感谢我们这个团队的同学们,是我们7个人的齐心协力才完成此次课程设计。
最后还要感谢相关资料的编著者和给予我们支持的社会各界人士,感谢您们为我们提供一个良好的环境,使本次课程设计圆满完成。
参考文献
1.郑莉,董渊,张瑞丰等编著.c++语言程序设计(第3版).北京:
清华大学出版社,2009.
2.关治.陈景良.数值计算.北京:
清华大学出版社,1993
3.洪永清,黄德才,吕丽民.面向对象建模与设计.北京:
人民邮电出版社,1998
4.邵维忠,杨芙清.面向对象的系统分析.北京:
清华大学出版社,1998
5.谭浩强.C程序设计.北京:
清华大学出版社,1991
6.张国峰.C++语言及其程序设计教程.北京:
电子工业出版社,1997
7.侯捷.STL源码剖析.武汉:
华中科技大学出版社,2002
8.三味创作室.VisualC++6.0应用与提高.北京:
科学出版社,1999
9.和克智.C++程序设计(第2版).西安:
西安交通大学出版社,1999
10.徐士良.C常用算法程序集.北京:
清华大学出版社,1995
11.
附录:
源程序代码
#include<
iostream>
fstream>
string.h>
conio.h>
intcode();
//登录密码
usingnamespacestd;
//Student类
classStudent
{
public:
charname[20];
charId[20];
intDate;
//学生出生日期
intAge;
//学生年龄
intCnum;
//C++课程得分
intMnum;
//数学课程得分
intEnum;
//英语课程得分
intsum;
//总分
Student*Next;
voidInput()
{
cout<
<
"
\t\t请输入学生的姓名:
;
cin>
>
name;
\t\t请输入学生的学号:
Id;
cout<
\t\t请输入学生的出生时间:
Date;
\t\t请输入C++课程的成绩:
Cnum;
\t\t请输入数学课程的成绩:
Mnum;
\t\t请输入英语课程的成绩:
Enum;
sum=Cnum+Mnum+Enum;
Age=2011-Date;
}
voidReadFile(istream&
in)
in>
name>
Id>
Date>
Age>
Cnum>
Mnum>
Enum>
sum;
voidShow()
姓名:
name<
endl<
学号:
Id<
出生日期:
Date<
年龄:
Age<
C++:
Cnum<
endl
<
数学:
Mnum<
外语:
Enum<
总成绩:
sum<
endl;
};
classStudentmessage:
publicStudent
Studentmessage();
~Studentmessage();
voidShowMenu();
voidFind();
voidSave();
voidModifyItem();
voidRemoveItem();
voidSort();
intListCount();
voidDisplay()
for(Student*p=Head->
Next;
p!
=End;
p=p->
Next)
p->
Show();
输入任意字符!
继续……"
getch();
voidAddItem()
End->
Input();
End->
Next=newStudent;
End=End->
添加成功!
getch();
private:
Student*Head,*End;
ifstreamin;
ofstreamout;
intFindItem(char*name,Student*a[])
inti=0;
for(Student*p=Head;
p->
Next!
if(!
strcmp(p->
Next->
name,name))
{
a[i]=p;
i++;
}
if(i==0)return0;
else
{
a[i]=End;
returni;
}
Student*FindID(char*Id)
Id,Id))returnp;
returnNULL;
intcode()
inti=0,j=0;
intc;
charname[15],cod[15];
\n\n"
while(j<
3)
\t\t管理员:
cin.getline(name,sizeof(name));
/
\t\t输入密码:
j++;
c=getch();
while(c!
='
\r'
)//回车
{
if(i>
=0)
if(c=='
\b'
)
{
cout<
\b\b"
i=i-1;
}
else
*"
cod[i]=c;
}
c=getch();
if(c!
i=i+1;
cod[i]='
\0'
\t\t"
if((strcmp(name,"
1"
)==0)&
&
(strcmp(cod,"
111"
)==0)
||(strcmp(name,"
2"
222"
)==0))
cout<
登陆成功!
j=4;
break;
if((strcmp(name,"
***"
)==0)||(strcmp(name,"
)==0))cout<
登陆失败!
密码错误\n\n"
elsecout<
管理员不存在\n\n"
returnj;
}
Studentmessage:
:
Studentmessage()
Head=newStudent;
Head->
End=Head->
in.open("
sort.txt"
);
if(!
in)
\t\t这是一个新系统,无学生信息。
请先输入。
else
while(!
in.eof())
End->
ReadFile(in);
if(End->
name[0]=='
)break;
in.close();
\t\t读取学生信息成功!
~Studentmessage()
Save();
for(Student*temp;
Head->
temp=Head->
Head->
Next=Head->
deletetemp;
deleteHead,End;
//菜单
voidStudentmessage:
ShowMenu()
※※※※※※※※※※※学生成绩管理系统※※※※※※※※※※※"
◇◇^^^^^^^^^^^^^^^^◇◇"
◇◇1.增加学生成绩◇◇"
◇◇2.显示学生成绩◇◇"
◇◇3.排序统计成绩◇◇"
◇◇4.查找学生成绩◇◇"
◇◇5.删除学生成绩◇◇"
◇◇6.修改学生信息◇◇"
※※※※※※※※※※※0.安全退出系统※※※※※※※※※※※"
\n\t\t\n\t\t请选择:
Find()
charname[20],Id[10];
intx,k;
Student*p