学籍信息管理系统.docx
- 文档编号:2802655
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:23
- 大小:264.95KB
学籍信息管理系统.docx
《学籍信息管理系统.docx》由会员分享,可在线阅读,更多相关《学籍信息管理系统.docx(23页珍藏版)》请在冰豆网上搜索。
学籍信息管理系统
成绩
课程设计报告
题目学籍信息管理系统
课程名称面向对象程序设计课程设计
院部名称软件工程
专业软件工程
班级13软件工程1班
学生姓名
学号
课程设计地点A203
课程设计学时20学时
指导教师李尤丰
金陵科技学院教务处制
一、课程设计的目的和要求
目的:
该课程设计的目的采用面向对象的程序设计语言,开发实现一个应用程序,主要目的是使学生更好的掌握面向对象程序设计语言及其开发工具,掌握如何使用面向对象的程序设计语言设计一个小的软件系统。
通过该课程设计培养学生分析和解决实际问题的能力,培养学生综合应用基本概念,基本原理,和技术方法的能力,真正做到学以致用,使课本上抽象的理论,方法与具体的实践应用相结合。
要求:
1.课程设计任务
完成选定的题目的开发工作,并接受程序运行检查。
要求提交报告一份。
2.在本课程设计过程中要求学生:
(1)重视课程设计环节,用严谨、科学和踏实的工作态度对待课程设计的每一项任务;
(2)按照课程设计的题目要求,独立地完成各项任务,不允许相互抄袭;
(3)按时到计算中心上机,并接受教师的检查;
(4)认真撰写课程设计报告。
.
2、系统需求分析
本系统功能主要针对一个班级新生入学、中途学生转入转出学校以及学
生考试成绩的录入查询等等进行有效的管理。
这些学生的各项信息,帮主学校和老师及时准确地掌握学生的情况。
基本功能:
(1)学生信息添加:
添加学生的基本信息,包括学号、姓名、性别、出生日期、政治面貌、家庭住址等;
(2)学生信息查询:
选择
(1)根据学生的姓名查找,调用strcmp()函数,找出后从文件中输出学生的信息;选择
(2)根据学号进行查找,调用指针,查找出后将信息从文件中输出;
(3)学生信息修改:
该模块分为两步,调用strcmp()函数按照学生姓名进行查找,查找是否存在该学生,若不存在则输出“该学生不存在,请重新输入”,若存在则调用该学生信息,重新输入对原信息进行覆盖;
(4)学生信息删除:
调用指针链表根据学生的学号进行数据的删除;
(5)学生信息显示:
显示出所有录入的学生的信息;
(6)学生信息保存:
将学生信息写入文件;
(7)学生信息读取:
从文件中读取学生的信息;
三、总体设计
框架结构:
学籍管理系统应便于对学籍进行分类和管理,提高工作效率,便于操作,此软件由于只是一个初级产品,只要能构建一个结构,达到一些帮助查询、索引等基本功能和要求即可。
整体设计了一个学生类,在学生类中完成各项操作。
4、详细设计
修改学生数据模块:
voidstudent:
:
change(date*head)
{
charname[9];charc;
do
{
boolflag2=0;
date*stu=head;
cout<<"请输入您要修改的学生的姓名:
";
cin>>name;
do
{
if(strcmp(name,stu->name)==0)//使用字符串比较学生姓名
{
flag2=1;//标记,表示找到对应学生
cout<<"请输入新的出生年、月、日:
";
cin>>stu->year>>stu->month>>stu->day;
cout<<"请输入新的政治面貌:
";
cin>>stu->zhengzhi;
cout<<"请输入新的家庭住址:
";
cin>>stu->adress;
cout<<"学号姓名性别出生年月日政治面貌家庭住址"< cout<<"==============================================================================="< cout< cout< cout< cout< (1)< (1)< cout< cout< cout< cout<<".......数据修改成功! \n"; break; } stu=stu->next; }while(stu! =NULL); if(flag2==0)//找不到输入学生时的输出 { cout<<"对不起! 您要修改的学生不存在! 请检查重新输入! ! ! ! ! ! ! "< } cout<<"是否继续修改? (y/n)"; cin>>c; if(c! ='y'&&c! ='n')//规范输入 { cout<<"指令错误! 请重新输入 ! ! ! ! ! ! "; cin>>c; } }while(c=='y'); } 此处调用strcmp()通过字符串的比较来找出对应的学生,直接在原来的数据上进行覆盖修改,在if(c! ='y'&&c! ='n')中进行输入完成时后是否进行输入的字符的规范输入。 五、测试、调试过程 软件测试运行图: 初始界面: 添加学生信息: 查询学生信息: 根据姓名查询 根据学号查询: 修改学生数据: 学生数据删除: 学生数据显示: 学生数据保存: 学生数据读取: 6、结论与体会 知道课题后我们选择了使用链表,它可以实现无序的在内存中存放,只要有一个头结点,就可以对整个链表进行相关的操作,在调式时遇到了很多问题,最多的是有些程序看起来很简单但是要把所有的连接在一起就有很多问题出现了,结果我发现链表的建立、查找、删除、插入以及修改还有指针这一块知识还得好好的加强,当我在编写学生成绩管理系统时,出现了许多问题,我到处查找资料同时也向老师和同学请教,经过一个星期的努力我总算实现了基本功能。 我现在体会到程序的调试是相当的重要的。 在使用指针时要特别注意用过后的指针不使用就要删除,以防出错。 链表的尾部要指向NULL,这点是很重要的。 我们所做的设计“学生学籍管理信息系统”是集聚了全组每一位设计成员的心思。 在我们的成果里,可以看到我们每一位设计者所做出的努力。 在系统的设计过程中,我们也遇到了一些困难和迷惑。 但是在我们全组设计成员的齐心协力与不同组同学之间的互相的帮助下,我们克服了一个又一个的问题,保证了设计作业的顺利进行。 通过完成本次C++程序设计的任务,使我熟练和掌握了所学的有关c++中的一些主要知识点和应用点,如类的定义,类的实现,对象的定义,类的继承等等。 可以所学有所学,所有所用,不至于自己所学知识由于没有经历可用过程,而放弃对它的兴趣。 我们遇到的问题这些问题,又都是课本上很少提到的、更深一层的知识领域和应用领域。 这些问题,并不是我们平时只靠课本,就可以轻易解决的。 所以,锻炼了我们面对难题,自己思索,自己探索,自己查资料发现问题、解决问题的独断能力。 更使我加强了灵活应用理论知识的能力。 当然,此次任务的完成,也体现出同学之间的团结精神。 所遇种种难以解决的问题,大家都会把它当作共同遇到的问题,在一起共同探讨,共同发挥自己所学和所知,投入式的互相帮助和解决困难。 七、参考文献 [1]谭浩强编,《C++面向对象程序设计》,清华大学出版社,2005年7月出版 [2]韩滨 魏海萍,《C++类库使用手册》,电子工业出版社,2007年7月出版 [3]文件的输入输出(XX百科 附录: 源程序 #include #include #include #include doubleamount=0; structdate { charname[9]; charsex[3]; charzhengzhi[5]; charadress[20]; doublenum; doubleyear; doublemonth; doubleday; date*next; }; classstudent { public: dated; voidadd(date*head); voidchange(date*head); voiddel(date*head); voidsearch1(date*head); voidsearch2(date*head); voidload(date*head); voidmenu(); voidshow(date*head); voidsave(date*head); voidchushihua(date*head); }; /////////////////////////////////*主函数*//////////////////////////////////////// intmain() { students; charx; boolflag2=0; date*head=newdate;//初始化学生数据 head->next=NULL; cout<<"★欢迎使用学籍信息管理系统★\n"; s.menu();//显示菜单 do { do { cin>>x; if((x>='0'&&x<='8'))flag2=1; else { cout<<"指令错误! ! ! ! ! ! ! ! ! ! "< cout<<"请选择相应的数字进行操作: "; } }while(flag2==0); switch(x) { case'0': cout<<"******************************现在进行学生信息添加******************************\n"; s.add(head); cout<<"输入的学生信息为: \n"; s.show(head); cout<<"********************************************************************************\n"; s.menu();break;//添加结束后返回菜单 case'1': { charz; cout<<"******************************现在进行学生信息查询******************************\n"; cout<<"请选择查询方式: "; cout<<"(0).姓名查询; (1).学号查询: "; cin>>z; while(z! ='0'&&z! ='1') { cout<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学籍 信息管理 系统