《C++程序设计》课程设计报告范本模板.docx
- 文档编号:5569861
- 上传时间:2022-12-27
- 格式:DOCX
- 页数:33
- 大小:149.24KB
《C++程序设计》课程设计报告范本模板.docx
《《C++程序设计》课程设计报告范本模板.docx》由会员分享,可在线阅读,更多相关《《C++程序设计》课程设计报告范本模板.docx(33页珍藏版)》请在冰豆网上搜索。
《C++程序设计》课程设计报告范本模板
《C++程序设计》课程设计报告
题目:
学生学籍管理系统
学院:
计算机科学与工程学院
专业:
计算机科学与技术
学生姓名:
学号:
指导教师:
2012年06月20日
10.学生学籍管理系统ii
1。
前言1
2.需求分析1
3.概要设计1
4.详细设计1
5.测试1
6.总结2
附录2
1.前言
题目:
学生学籍信息管理系统
1前言
21世纪随着计算机技术的不断成熟,带来了信息技术的高速发展。
信息技术的发展极大地推动了整个社会信息化的进程。
在日益庞大的信息管理领域,信息管理自动化直接地改变了传统的文档管理方式,极大地提高了工作效率和管理水平。
2。
需求分析
鉴于高等院校在校学生、教职员工、日常事务处理信息数据的繁多,学校信息管理部门通常感到无法高效的进行管理。
就高等院校学生学籍管理这一方面,由于院校学生人数众多,专业不同,学校所安排的教学计划也就因人而异。
这对于管理学生学籍信息的教务老师来说,无疑是一项庞大和复杂的工作。
不仅要考虑学校对某一专业整体的教学计划安排,也要对各专业相关老师的教学任务进行统一协调,还要考虑某些学生的特别学籍变化。
为解决学校上述的学生学籍管理难题,提高教务老师的信息管理效率,以及为了方便学生更好、更便捷的查看自己的学籍信息;让老师的教学工作更加顺利和对教学信息的及时掌握.本系统特参照一般高等院校对在校学生课程选修的数据库管理办法,结合实践,设计出学生,教师和管理员三大功能模块,根据赋予系统权限不同,分别对系统进行相关操作,方便了学生、教师对学籍信息的查看,同时,也大大减少了管理员的信息管理工作量,提高了系统效率。
3概要设计
1)、通过对高等院校管理学生学籍的管理模式和步骤流程,设计出系统的总体结构和各主要功能模块。
2)、了解面向对象语言的编程风格,以及数据库对数据信息处理的特点,确定好系统的设计语言和数据库平台。
3)、及时与学校管理信息老师和课程设计指导老师沟通,进一步熟悉学生学籍信息管理系统的数据流程、数据处理以及操作步骤.提出自己的设计想法,征求老师意见,改正不合理的地方,为下面的概念设计和详细设计奠定基础。
3.1概要设计阶段总体结构设计
1)、确定系统的总体结构以及子结构:
系统根据用户模式的不同,实现不同的系统功能.系统功能层次图如下:
3。
2概要设计阶段成果
4详细设计
4.1界面设计
系统开始运行后自动从当前目录下的xueshen文件中读取信息,并实时显示信息的读取情况。
用户登录系统主界面,输入用户名和密码,。
系统对用户进行安全验证,若通过,则跳转到相应操作界面;若失败,则提示相应错误信息.系统主界面如下图所示,各功能模块前面都标注了编码,用户只要输入相应的编码就可以选择相应的功能模块,方便了各层次用户对系统的功能操作。
同时界面中也显示了整体的结构图,以便用户对系统的整个功能结构有着清晰的认识。
在用户选择每一个具体的功能模块后,系统都会提示用户做出相应的操作,并根据用户的指令反馈相应的信息处理结果。
另外在显示新的菜单时,都会将之前的内容清空,使系统的操作界面简洁,提高用户使用系统的效率。
图1
功能描述:
图1为学生学籍管理系统操作界面
选择1:
进入学生信息登记界面,可查看学生的学籍信息,对信息进行添
加
选择2:
进入学生信息删除界面,输入学生学号,进行学生信息删除功
提示。
选择3:
进入学生信息查找界面,录入学生学号,对学生的相关信息进行查找。
选择4:
进入学生信息修改界面,录入要修改的学生编号,选择要修改的信息,输入新信息。
选择5:
按要求输出学生信息界面,输入要输出的学生信息进行相同信
息学生的统计输出。
选择6:
退出操作界面,退出系统操作。
图2
功能描述:
图2为是否进行操作界面
选择Y:
返回学生学籍管理系统操作界面
选择N:
退出操作界面
图3
功能描述:
图3为信息保存界面。
选择Y:
进行信息保存退出系统
选择N:
不保存信息退出系统
4.2编码.
1)头文件代码
//MyStudent。
h
#ifndefMYSTUDENT_H_
#defineMYSTUDENT_H_
#include〈iostream>
#include
usingnamespacestd;
classStudent
{
public:
doubleNum;
stringName;stringSex;intAge;
stringJiguan;
stringXibie;
stringZuanye;
stringClass;
stringbianhua;
Student*next;};
#endif
//MyLIST。
h
#include
#include〈string〉
#include〈fstream>
#include”MyStudent.h”
usingnamespacestd;
classLIST
{private:
public:
Student*head;
LIST()
{head=newStudent;
head->next=NULL;
};
intlength();
boolisempty(){returnhead->next==NULL?
true:
false;}
boolget_data(inti,Student&x);
boolget_succ(inti,Student&x);
boolget_prior(inti,Student&x);//取前驱元素函数
boolreplace_data(doublei);//置换元素
boolinsert_data(Studentdata,inti);//插入元素函数
booldelete_data(doublei);//删除元素函数
boolfind_data(doublei,Student&result);
voidtongji(Studentx);//查找函数
voidprint_list();
voidshuchu();
~LIST()//析构函数
{Student*p;
while(head)//将链表中所有元素占用空间释放
{p=head;
head=head-〉next;
deletep;
}
}
};
#endif
//Myvoid.h
#include #include"MyLIST.h" #include”MyStudent.h" voidIn(inti,Studentchuandi[]) { doubleNum; stringName; stringSex; intAge; stringJiguan; stringXibie; stringZuanye; stringClass; stringbianhua; ifstreamin("xuesheng"); if(! in){cout<<”不能打开! "〈 for(intj=1;j〈=i;j++) { in〉〉Num〉>Name〉>Sex 〉〉Age〉〉Jiguan 〉〉Xibie>>Zuanye〉〉Class>〉bianhua; in。 close; chuandi[j].Num=Num; chuandi[j]。 Name=Name; chuandi[j].Sex=Sex; chuandi[j]。 Age=Age; chuandi[j].Jiguan=Jiguan; chuandi[j]。 Xibie=Xibie; chuandi[j]。 Zuanye=Zuanye; chuandi[j]。 Class=Class; chuandi[j].bianhua=bianhua; } } voidchangdu(LISTlis) { ofstreamout(”len"); out<〈lis.length(); out.close; } intlen() { inti; ifstreamin("len”); in>>i; returni; } voidoutput() { cout< <<"****************************************************"〈〈endl <〈”**”〈 <<"*学生学籍管理系统*"< 〈〈"**”<〈endl <<"*1.登记学生信息*"〈〈endl 〈〈"*2。 删除学生信息*”< <〈"*3.查找学生信息*"〈〈endl <<"*4.修改学生信息*"<〈endl 〈<”*5。 按要求输出籍贯表*"<〈endl <<"*6。 退出操作选择*”〈〈endl <〈"**"〈 <<”**"<〈endl 〈〈"****************************************************"〈 cout〈 "; } voidbaochun() { cout< cout〈〈”############################################”< <〈"##”〈〈endl <〈”#是否保存修改信息? #"< 〈<"#是输入Y,#”〈〈endl <〈”#退出输入N#”〈〈endl <<”##"〈 <〈"############################################"〈 cout<〈"输入您的选择: "; } voidjixu() { cout〈〈endl< cout〈〈”############################################"〈〈endl <<”##”<〈endl <〈”#是否继续操作? #"< <<"#是输入Y,#”〈〈endl <<"#退出输入N#"< 〈<”##"〈〈endl <<”############################################"< cout<<”输入您的选择: ”; } #endif 5.测试 创建数据库,建立好相应的数据表,插入系统用户、学生、课程等数据信息,进行系统测试与调试。 5。 1创建系统测试数据 学号姓名性别年龄籍贯系别专业班级学籍变化 11003小虎男21广西计算机软件102入学 09002小华女23湖北机电制作301毕业 10004小东男22湖南材料开发501转专业 6.总结 课程设计总结: 学习C++课程两个学期,现在刚刚学完,学校安排大一下学期做面向对象语言程序设计。 知识的掌握和了解还不是很到位,应用起来不灵活,拿起书本不断的翻看查找,复习一下所学的知识,开始在脑海中酝酿要做一个什么样的系统。 经过一周的努力,算是完成了任务吧.马上进入大二了,还没有完全巩固学习过的知识,所以只能每天白天查阅资料,基本上都是晚上敲一些代码,所以会有许多不足之处,也遇到了不少问题。 例如: 在测试连接数据库时,对学生信息的更新总是失败。 我对程序执行过程进行了细致分析,没有发现任何逻辑上的问题,于是我在所有的地方都添加断点,多次调试后,发现问题出在类的构造函数和析构函数被多次调用,而且每次调用对象时,都会建立类的临时对象。 后来我弄明白了在对对象进行操作时,没有使用引用方式,所以任何操作都不会对其产生实质作用。 当我把菜单函数中对类对象的调用方式都改成引用后,问题迎刃而解。 在完成课程设计的过程中,这种问题还有很多,加上时间紧迫,中途时不时会灰心丧气,但是最后还是坚持了下来.这次的课程设计经历告诉我,做一件事情,只要自己不放弃,就一定能得到自己所要的。 参考文献 [1]张俊。 王庆春.面向对象程序设计(C++).武汉: 武汉大学出版社.2009 [2]谭浩强.语言程序设计.北京: 清华大学出版社。 2004 [3]李普曼。 C++Primer中文版(第4版)。 北京: 人民邮电出版社.2008 [4]钱雪忠。 黄建华.数据库原理及应用第二版。 北京: 北京邮电大学出版社。 2005 [5]罗建军。 朱丹军.顾刚.刘路放。 高等教育出版社__2版 附录部分代码 //MyLIST。 cpp #include”MyLIST。 h" intLIST: : length() { intcounter=0; Student*current; current=head-〉next; while(current! =NULL) { current=current->next; counter++; } returncounter; } boolLIST: : get_data(inti,Student&x) {Student*current; intj=1; if((i<1)||(i〉length())) { cout〈<”非法位置读取元素,不能读取! \n”; returnfalse; } current=head-〉next; while(current! =NULL&&j〈i) { j++; current=current—>next; } x=*current; returntrue; } boolLIST: : get_succ(inti,Student&x) { Student*current; intj=1; if((i〈1)||(i〉length())) {cout<<”非法位置读取元素,不能读取! \n"; returnfalse; } current=head—>next; while(current! =NULL&&j { j++; current=current—〉next; } if(current->next! =NULL) { x=*current-〉next; returntrue; } else { cout<〈"第"< \n”; returnfalse; } } boolLIST: : get_prior(inti,Student&x) { Student*current,*previous; intj=1; if((i<1)||(i>length())) {cout<<”非法位置读取元素,不能读取! \n"; returnfalse; } previous=head; current=head—>next; while(current! =NULL&&j { j++; previous=current; current=current-〉next; } if(previous! =head) { x=*previous; returntrue; } else { cout〈<”第”〈 \n”; returnfalse; } } boolLIST: : replace_data(doublei) { intj=0; Student*current=head; current=head—>next; while(current! =NULL&¤t—>Num! =i) { j++; current=current-〉next; } if(j==length()) { cout<〈”没有找到该学号相关信息! ”<〈endl; returnfalse; } intxg; cout〈〈"输入您要修改的学生信息: 1学号,2姓名,3性别,4年龄,5籍贯,6系别,7专业,8班级,9学籍变化."< cin〉〉xg; stringxingming; stringxingbie; stringjiguan; stringxibie; stringzhuanye; stringbanji; stringbianhua; switch(xg) { case1: doublenum; cout<〈”您将修改学号,请输入新的学号"〈〈endl; cin>>num; current—〉Num=num; break; case2: cout〈<"您将修改姓名,请输入新姓名”< cin>>xingming; current->Name=xingming; break; case3: cout<<"您将修改性别,请输入新性别"〈 cin>>xingbie; current-〉Sex=xingbie; break; case4: intnianling; cout〈<”您将修改年龄,请输入新的年龄"〈 cin〉>nianling; current->Num=nianling; break; case5: cout〈<”您将修改籍贯,请输入新籍贯”<〈endl; cin〉〉jiguan; current—>Jiguan=jiguan; break; case6: cout<<"您将修改系别,请输入新系别"<〈endl; cin〉〉xibie; current->Xibie=xibie; break; case7: cout<<”您将修改专业,请输入新专业"<〈endl; cin>>zhuanye; current->Zuanye=zhuanye; break; case8: cout<〈"您将修改班级,请输入新班级"〈 cin>>banji; current—>Class=banji; break; case9: cout〈<”您将修改学籍,请输入新学籍”〈〈endl; cin〉〉bianhua; current—〉bianhua=bianhua; break; } returntrue; } boolLIST: : insert_data(Studentdata,inti) { Student*current,*previous,*newnode; intj=1; newnode=newStudent; if(newnode==NULL) { cout〈<"内存无空闲空间,不能插入: ”; returnfalse; } newnode-〉Age=data.Age; newnode—〉Num=data.Num; newnode-〉Class=data.Class; newnode—>Jiguan=data。 Jiguan; newnode-〉Name=data.Name; newnode—>Sex=data。 Sex; newnode—>Xibie=data.Xibie; newnode—>Zuanye=data.Zuanye; newnode->bianhua=data。 bianhua; newnode—>next=NULL; previous=head; current=head—>next; while(current! =NULL&&j { previous=current; current=current-〉next; j++; }; newnode—>next=current; previous->next=newnode; returntrue; } boolLIST: : delete_data(doublei) { Student*current,*previous; intj=0; if(isempty()) { cout〈〈"表已空,不能删除! \n"; returnfalse; }; previous=head; current=head—>next; while(current! =NULL&¤t->Num! =i) { previous=current; current=current—〉next; j++; }; if(j==length()) { cout〈<”没有该学号信息,不能删除! "〈〈endl; returnfalse; } previous-〉next=current—>next; deletecurrent; returntrue; } boolLIST: : find_data(doublei,Student&result) { Student*current; current=head—>next; while(current! =NULL) { if(current—>Num! =i) current=current—>next; else { result.Age=current—〉Age; result。 Num
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+程序设计 C+ 程序设计 课程设计 报告 范本 模板
![提示](https://static.bdocx.com/images/bang_tan.gif)