学生信息管理系统课程设计报告_第1页
学生信息管理系统课程设计报告_第2页
学生信息管理系统课程设计报告_第3页
学生信息管理系统课程设计报告_第4页
学生信息管理系统课程设计报告_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

精选优质文档-----倾情为你奉上精选优质文档-----倾情为你奉上专心---专注---专业专心---专注---专业精选优质文档-----倾情为你奉上专心---专注---专业计算机学院信息管理与信息系统专业《管理信息系统课程设计》报告(2010/2011学年第一学期)学生姓名:学生班级:学生学号:指导教师:2011目录第一章课程设计的目的和要求.............................................11.1C++课程设计的目的1.2C++课程设计的要求........................................第二章课程设计任务内容.................................................32.1背景............................................................32.2功能需求........................................................32.3性能要求.................................................4第三章模块设计说明.....................................................53.1模块说明......................................................53.2主函数的流程图..................................................63.3录入学生信息流程图..............................................73.4查询学生信息流程图..............................................83.5删除学生信息流程图........................................9第四章软件使用说明及运行结果..........................................104.1使用说明.......................................................104.2运行结果......................................................11第五章课程设计心得与体会..............................................15附录1参考文献........................................................17附录2程序清单........................................................18学生信息管理系统第一章课程设计的目的和要求1.1课程设计的目的本次课程设计主要目的是让我们认识到必须重视实践环节,多读程序,多编写程序,多上机实践。进一步培养结构化程序设计的思想,加深对高级语言要素和控制结构的理解,培养我们综合运用高级语言程序设计课程所学到的知识,编写C++程序解决实际问题的能力,独立完成有一定工作量的程序设计任务,同时强调良好的程序设计风格。本次课程设计着眼于知识的运用,把平常学的知识运用到课程设计中来,考察我们知识运用能力,对我们所学的理论知识进一步深化。通过课程设计的训练,我们应该充分了解程序设计的基本开发过程,掌握编写、调试和测试C++语言程序的基本技巧,充分理解结构化程序设计的基本方法。本课程设计的目的:巩固和加深对C++语言课程的基本知识的理解和掌握;掌握C++语言编程和程序调试的基本技能;掌握利用C++语言进行软件设计的方法;提高书写程序设计说明文档的能力;提高运用C++语言解决实际问题的能力。1.2课程设计的要求本课程设计基本要求:分析课程设计题目的要求;所设计的系统应包含简单的输入输出、查询、删除等基本功能。编写程序代码,代码量要求不少于300行,调试程序使其能正确运行;设计完成的软件要便于操作和使用;根据课程设计3周时间的安排选择适当大小的设计课题,根据题目的基本需求,画出流程图,编写程序,并写出详细的设计说明。设计完成后提交课程设计报告。第二章课程设计任务内容本次课程设计的主要内容是编写程序学生信息管理系统。2.1背景本系统针对高校学生信息的特点以及管理中的弊端而设计,实现了学生信息管理的信息化、减轻了管理人员的工作负担,能够规范、高效地管理大量的学生信息,该系统旨在更好地管理高校的教学和资源的整合,推动科技成果的转化,推进高校改革,提高高校的办学效率。近几年来,随着各高校办公自动化工作的推进,学生信息管理自动化也被摆上了日程。在学校工作中占有很大比重的一项就是每学期的学生信息管理工作。由于教工、教室和设备的相对紧张,如何进行合理地安排和分配,从而充分利用教学资源是我们不得不面对的问题。而人工进行管理不仅任务重,效率低,而且易出错,难于维护,想要排出一张各方面都满意的信息管理表非常困难。并且随着高校规模的扩大手工管理的难度和工作量呈几何级数增长。学生信息管理系统正是为了减轻教务人员工作量,实现学校管理科学发展观自动化,解决管理难这一老大难题的教务办公软件。本系统最大的优点就是学生的所有信息及全部操作完全可以通过各功能模块直接写入后台数据库,操作简单易行,使信息管理流程能够在一个安全可视的环境下运行。2.2功能需求用C++实现学生信息管理系统,学生信息包括班级,姓名,学号,性别,籍贯,出生年月,电话,邮箱等。该系统主要有以下功能:1、 系统以菜单方式工作;2、 学生信息录入功能(学生信息用文件保存)--输入;3、 学生信息浏览功能—输出;4、 学生信息查询功能—算法;按学号查询按姓名查询5、 学生信息的删除与修改。2.3性能要求1.系统易操作性所开发的系统应操作简单,使学生不受电脑水平的限制。2.系统具有可维护性由于系统设计的范围较广,数据库中的信息需定期修改,为了使系统运作的更好,可以对系统数据及简单的功能进行简单的维护及调整。3.该系统能够在开发的硬件系统中运行不会因外部系统的不同面做不同的修改。第三章模块设计说明3.1模块基本信息管理:基本信息管理模块可以进行学生基本信息的录入、查询、修改、删除等操作学生信息管理系统学生信息管理系统录入学生信息浏览学生信息查询学生信息修改学生信息删除学生信息退出程序按姓名查询修改按学号查询修改开始程序图1函数功能模块图3.2主函数流程图开始开始YYN执行相应的处理函数结束提示保存Y有错?退出?N输入菜单学生信息录入学生信息初始化变量YYN执行相应的处理函数结束提示保存Y有错?退出?N输入菜单学生信息录入学生信息初始化变量删除删除学生信息图2主函数流程图3.3录入学生信息录入学生信息模块:录入学生的学号、姓名、性别、民族、籍贯、出生日期、联系电话等信息。录入第一条记录后,系统会自动进入下一编号的录入页面,减轻了手工劳动并避免了许多错误的发生。图3录入学生信息流程图Y不用添加N结束添加该学生信息信息是否存在输入学生信息开始图3录入学生信息流程图Y不用添加N结束添加该学生信息信息是否存在输入学生信息开始3.4查询学生信息查询学生信息模块:可从学号号、姓名或院系三种查询方法任选其一进行查询学生信息。并且支持模糊查询!例如:在编号查询框中输入2009,则查询结果为编号中包含“2009”的学生;在姓名中输入“小”,则查询结果为姓名中包含有“小”开始开始是否存在结束NY显示所查询学生信息输入学生信息图4查询学生信息流程图3.5删除学生信N结束删除该学生信息信息是否存在输入学生信息开始息N结束删除该学生信息信息是否存在输入学生信息开始修改/删除学生信息模块:首先使用查询功能查询出需要修改/删除的记录,然后进行修改/删除操作。图5图5删除学生信息流程图YYy第四章软件使用说明及运行结果4.1使用说明该程序可以学生信息管理功能,安装VisualC++6.0中文版后,在工具栏“文件”中单击“新建”选项,单击“文件”菜单,选择“C++Sourcefile”输入文件名“学生信息管理系统”,开始输入程序,程序输入完成,单击“组建”工具栏,待程序无误后,开始执行程序。界面显示后,按要求首先按所提示键开始进行系统工作。编码操作完成后,先静态检查一下有没有语法错误,然后进行编译,更深一步检查语法错误。待编译通过时,运行程序,观察是否能够正常运行,如果有问题,再去修改源程序,直至达到了预期的效果学生信息管理系统采用面向对象的程序设计思想为基本的设计指导思想。本系统主要实施目标是帮助学校的学生档案管理人员对学校学生信息进行管理。本系统优点:检索迅速、查询方便、可靠性高、存储量大、保密性好、寿命长、成本低等。本信息管理系统在追求完善的同时达到以下目标:1)界面友好、易于操作;2)实现基本信息管理,包括操作员的注册及权限设置,所需基本信息的建立与设置等功能;3)实现数据库管理,包括数据库的自动创建,备份与恢复。4.2运行结果创建学生信息截图一创建学生信息截图二从文件导入信息表截图三删除信息截图四插入信息截图五清空屏幕截图六打印信息截图七按班级查询截图八第五章课程设计心得与体会当被通知要进行三周的课程设计。当时有点懵,感觉学的东西很少,很零散,不知该怎么弄到一起,就要课程设计,是不是太难为我们了。第一天基本上都是在看书,把基本知识再熟悉一边。第一周结束的时候,我感觉自己收获挺大的,从一开始的迷茫,不知道从何下手到把程序中的几个模块编写出来,心里挺开心的。但是,到了第二周,我们由不得不再次陷入困境。在整个程序的编写过程中。最难的就是修改和删除这两个模块。开始编写修改和删除时,很头疼,去向其他人寻求帮助,在别人的帮助和提示下,我编完了修改程序,但编译时老出错,修改后的内容将文本内的信息全部覆盖了。经过一段时间的修改与调试,完成了修改和删除。这样的话,整个程序基本上全部完成了,就剩下完善工作了。在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。对于学生信息管理系统,其程序是比较简单的,主要是解决程序设计中的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此在整个设计过程中大部分时间是用在程序上面的。很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对系统的结构很熟悉。因此可以说系统的设计是软件和硬件的结合,二者是密不可分的。通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。觉得作为一名计算机专业的学生,这次课程设计是很有意义的。更重要的是如何把自己平时所学的东西应用到实际中。虽然自己对于这门课懂的并不多,很多基础的东西都还没有很好的掌握,觉得很难,也没有很有效的办法通过自身去理解,但是靠着这三个礼拜的“学习”,渐渐对这门课逐渐产生了些许的兴趣,自己开始主动学习并逐步从基础慢慢开始弄懂它。对于我们来说,积累实战经验是一项极其重要的内容,很可能成为将来就业的敲门砖。而程序设计综合课程设计就是积累实战经验的一个过程,虽然程序的规模并不大,但能够让我们尽早地认识软件开发的重要性和必要性,为将来的就业打下坚实的基础。通过对高级语言语言的课程设计,我了解并发现了很多调试程序的方法,而且懂得了如何处理错误的方法。对C++语言的使用得到了进一步的提高。针对顺序结构程序,选择结构程序的设计和函数等知识得到了进一步的巩固,具体化就是加深了我对程序的深层理解,清楚程序中每一步的功能,在程序的运行中是十分重要的,一个好的结构在运行中能够充分的发挥程序的功能。结构设计的合理性决定了这个程序的价值。在今后的学习中我要注意这方面,使得我的编程能力能有进一步的提高。这次的课程设让我认识到很多C++的内在要素:程序设计语言是程序设计的工具。这是我通过两周课程设计深深体会的一点,并且发现如果想有效的进行程序设计,正确地应用程序设计语言表达算法,必须准确的运用程序设计语言,掌握其语法知识。学习程序设计必须重视时间环节,多读程序,多编写程序,多上机实践。这次的课程设计就使得课堂教学、式样和实践之间的关系更为紧密。对我的学习有着很深远的影响。我发现作为一个程序设计人员,需要掌握面向过程的程序设计,也要掌握面向对象的程序设计。从前,人们通过C语言学习面向过程的程序设计,再通过C++学习面向对象的程序设计。其实C++并不是纯粹的面向对象的语言,它是一种混合语言。学习C++既可以编写面向过程的程序,也可以编写面向对象的程序。这一点是我通过可课程设计所的实践发现的。深切感受到了C++语法的复杂,内容的繁多。发现如果对它缺乏系统的了解,将难以真正的运用,编出来的程序错误百出,编译出错,事倍功半。这次的C++课程设计很快就要结束了,想说的是,这三周实践所学到的东西比我一个学期在教室学到的东西要多得多。设计中遇到很多难题,都是费了很大劲才解决得,但是所有的努力都没有白费,我的课程设计终于“竣工”了,而且更是从中感受到了一些书本上和课堂上所不能感受到的。通过实践的学习,我认识到学好计算机要重视实践操作,不仅仅是学习C++语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以以后在学习过程中,我会更加注视实践操作,使自己更好地学好计算机。我觉得课程设计反映的是一个从理论到实际应用的过程,但是更远一点可以联系到以后毕业之后从学校转到踏上社会的一个过程。附录1:参考文献[1]、谭浩强编著:C++程序设计,北京:清华大学出版社,2004[2]、(美)戴特尔(Deitel,H.M.)等编著,张引等译:C++大学基础教程(第五版),北京:电子工业出版社,2006.6[3]、夏云庆编著:VisualC++6.0数据库高级编程,北京:希望电子出版社2002[4]、伍俊良编著:VisualC++6.0课程设计与系统开发案例,北京:清华大学出版社,2002.11[5]、严蔚敏吴伟明编著:数据结构,北京:清华大学出版社,2002.6附录2:程序清单以下是学生信息管理系统的源代码:#include<iostream>#include<fstream>#include<string>#include<iomanip>usingnamespacestd;#defineNULL0intn=0;//链表节点数boolformExist=false;//原有链表是否存在structStudent{ stringname; stringClass; longnum; floatscore; Student*next;};//创建链表Student*create();//打印信息voidprint(Student*pt);//删除节点Student*del(Student*head,longnum);//插入节点Student*insert(Student*head,Student*stu);//保存到文件voidsave(Student*head,charfilename[]);//菜单voidmenu();//欢迎voidwelcome();//按班级查询voidinquire(Student*head,stringClass);//按学号查询voidinquire(Student*head,longnum);//求平均成绩voidaverage(Student*head);//从文件导入Student*import(charfilename[],Student*head);//排序Student*rank(Student*head);intmain(){ Student*head=NULL; StudentnewStu; stringClass; ifstreaminfile; charfilename[20]; longnum; charchoose; boolquit=false; charc; welcome(); while(true) { menu(); cin>>choose; switch(choose) { case'1': if(formExist) { cout<<"您要创建新的链表,原有链表将丢失,是否继续?(Y/N)"; cin>>c; if(!(c=='y'||c=='Y')) continue; else { n=0; head=create(); system("pause"); break; } }else { head=create(); system("pause"); break; } case'2': cout<<"请输入文件名:"; cin>>filename; head=import(filename,head); system("pause"); break; case'3': cout<<"\n您想删除哪个学生的信息?输入该学生的学号姓名:"<<endl; cin>>num; head=del(head,num); system("pause"); break; case'4': cout<<"请输入新增学生的姓名、班级、学号、成绩、性别、出生年月、电话、 邮箱:"<<endl; cin>>newS; cin>>newStu.Class; cin>>newStu.num; cin>>newStu.score; head=insert(head,&newStu); system("pause"); break; case'5': print(head); system("pause"); break; case'6': cout<<"请输入班级:"<<endl; cin>>Class; inquire(head,Class); system("pause"); break; case'7': cout<<"请输入学号:"<<endl; cin>>num; inquire(head,num); system("pause"); break; case'8': average(head); system("pause"); break; case'9': head=rank(head); system("pause"); break; case'k': cout<<"请输入文件名:"; cin>>filename; save(head,filename); system("pause"); break; case'c': system("cls"); welcome(); break; case'q': quit=true; break; default: cout<<"error"<<endl; } if(quit) break; } //退出时提示保存 cout<<"您想保存这些信息吗?(Y/N)"; cin>>c; if(c=='y'||c=='Y') { cout<<"请输入文件名:"; cin>>filename; save(head,filename); } return0;}//欢迎界面voidwelcome(){ cout<<"*******************************"<<endl <<"欢迎使用简易学生信息管理系统!"<<endl <<"程序员: 翟纯洁 时间:2010-12-31"<<endl <<"*******************************"<<endl<<endl;}//菜单voidmenu(){ cout<<setiosflags(ios::left); cout<<"\n\n您要做什么?"<<endl <<setw(20)<<"1.创建学生信息表" <<setw(20)<<"2.从文件导入信息表"<<endl <<setw(20)<<"3.删除信息" <<setw(20)<<"4.插入信息"<<endl <<setw(20)<<"5.打印所有的信息" <<setw(20)<<"6.按班级查询"<<endl <<setw(20)<<"7.按学号查询" <<setw(20)<<"8.求平均成绩"<<endl <<setw(20)<<"9.按成绩排序" <<setw(20)<<"10.保存信息表到文件"<<endl <<setw(20)<<"11.清空屏幕" <<setw(20)<<"12.退出"<<endl<<endl <<"输入您的选择:";}//创建链表Student*create(){ boolerror=false; formExist=true; Student*p1,*p2,*head; head=NULL; p1=head; while(true) { p2=p1; p1=newStudent; cout<<"请输入新增学生的姓名:(输0结束)"; cin>>p1->name; if(p1->name=="0") break; cout<<"班级:"; cin>>p1->Class; cout<<"学号:"; cin>>p1->num; do { cout<<"成绩:"; cin>>p1->score; if(p1->score<0||p1->score>100) { cout<<"分数错误!请重新输入"<<endl; error=true; } else error=false; }while(error); n++; if(n==1) { head=p1; p1->next=NULL; } else { p2->next=p1; p1->next=NULL; } } cout<<"输入结束!"<<endl; returnhead;}//输出信息voidprint(Student*head){ Student*p=head; if(p!=NULL) { cout<<setw(15)<<"姓名"<<setw(13)<<"班级" <<setw(10)<<"学号"<<setw(7)<<"分数"<<endl; do { cout<<setw(15)<<p->name<<setw(13)<<p->Class <<setw(10)<<p->num<<setw(7)<<p->score<<endl; p=p->next; }while(p!=NULL); cout<<"合计学生"<<n<<"人。"<<endl; } else cout<<"没有信息!"<<endl;}//删除信息Student*del(Student*head,longnum){ Student*p1,*p2; if(head==NULL) { cout<<"信息为空!"<<endl; returnhead; } p1=p2=head; while(p1->num!=num&&p1->next!=NULL) { p2=p1; p1=p1->next; } if(p1->num!=num) { cout<<"找不到该学生!"<<endl; returnhead; } else { if(p1==head) head=p1->next; else p2->next=p1->next; cout<<"成功删除学号为"<<num<<"的学生!"<<endl; n--; } returnhead;}//插入信息Student*insert(Student*head,Student*stu){ Student*p0,*p1; p1=head; p0=stu; if(head==NULL) { head=p0; p0->next=NULL; } else { while(p1->next!=NULL) { if(p0->num==p1->num) { cout<<"学号为"<<p0->num<<"的学生已存在!"<<endl; returnhead; } p1=p1->next; } p1->next=p0; p0->next=NULL; n++; } cout<<"成功插入信息!"<<endl; returnhead;}//保存到文件voidsave(Student*head,charfilename[]){ Student*p=head; boolflag=false; if(head==NULL) { cout<<"没有可以保存的信息!"<<endl; return; } else { fstreamoutfile(filename,ios::out); if(!outfile) { cout<<"打开数据文件出错!"<<endl; return; } do { if(flag) outfile<<endl; outfile<<p->name<<"\t"<<p->Class<<'\t' <<p->num<<'\t'<<p->score; flag=true; p=p->next; }while(p!=NULL); outfile.close(); cout<<"保存成功!保存到"<<filename<<endl; }}//按班级查询voidinquire(Student*head,stringClass){ boolflag=true; Student*p=head; inttotal=0; if(p==NULL) { cout<<"信息为空!"<<endl; return; } do { if(p->Class==Class) { if(flag) { cout<<"班级为"<<Class<<"的学生有:"<<endl; cout<<setw(15)<<"姓名"<<setw(10)<<"学号"<<setw(7)<<"分数"<<endl; flag=false; } cout<<setw(15)<<p->name<<setw(10)<<p->num<<setw(7)<<p->score<<endl; total++; } p=p->next; }while(p!=NULL); cout<<"已查询到"<<total<<"条记录。"<<endl;}//按学号查询voidinquire(Student*head,longnum){ boolflag=true; Student*p=head; if(p==NULL) { cout<<"信息为空!"<<endl; return; } do { if(p->num==num) { if(flag) { cout<<"学号是"<<num<<"的学生是:"<<endl; cout<<setw(15)<<"姓名"<<setw(13)<<"班级"<<setw(7)<<"分数"<<endl; flag=false; } cout<<setw(15)<<p->name<<setw(13)<<p->Class<<setw(7)<<p->score<<endl; return; } p=p->next; }while(p!=NULL); cout<<"查无此人!"<<endl;}//求平均值voidaverage(Student*head){ Student*p=he

温馨提示

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

评论

0/150

提交评论