学生籍贯记录簿设计.docx
- 文档编号:7729770
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:18
- 大小:167.48KB
学生籍贯记录簿设计.docx
《学生籍贯记录簿设计.docx》由会员分享,可在线阅读,更多相关《学生籍贯记录簿设计.docx(18页珍藏版)》请在冰豆网上搜索。
学生籍贯记录簿设计
华科学院计算机科学与技术系
信息管理与信息系统专业
《程序设计综合课程设计》报告
(2010/2011学年第一学期)
学生姓名:
学生班级:
学生学号:
指导教师:
2011年 01 月 12 日
目录
第一章课程设计的目的和要求1
1.1课程设计的目的:
1
1.2课程设计的要求:
2
第二章课程设计任务内容2
2.1考核内容2
2.1.1编写C++语言程序2
2.1.2课程设计报告3
2.2课题3
第三章详细设计说明3
3.1总体设计:
3
3.2函数功能说明:
3
3.3详细设计流程图:
4
3.3运行结果:
6
第四章软件使用说明9
4.1程序运行环境9
4.2程序操作方法9
第五章课程设计心得与体会10
附录一参考文献11
附录二程序清单12
《程序设计基础》课程设计
——学生籍贯信息记录簿
第一章课程设计的目的和要求
1.1课程设计的目的:
用高级程序语言设计出学生籍贯纪录系统,实现查找方便快捷。
通过用高级程序语言制作程序,熟悉用高级程序语言编程的操作和步骤,学习高级程序语言的运用,以及高级程序语言实验报告的书写格式,使学生掌握一门高级程序设计语言,了解面向对象程序设计的基本概念与方法,进而学会利用C++语言学会解决一般应用问题,并为后续的专业课程奠定程序设计基础。
1.2课程设计的要求:
课程设计要求学会分析研究计算机加工的数据结构的特性,了解并掌握涉及的数据选择的适当的逻辑结构、存储结构及其相应的算法等,同时要求在掌握的基础上学会编写程序,使程序结构清楚和正确易读,符合软件工程的规范。
通过编写C++程序,设计学生籍贯信息管理系统,可以方便对学生信息进行查找及管理,或者添加、删除及修改学生信息,将信息永久保存。
第二章课程设计任务内容
2.1考核内容
2.1.1编写C++语言程序
●针对编写的C++程序,应该主要考查下列内容:
●是否符合题目要求,是否完成了主要功能;
●是否存在语法错误、逻辑错误及运行错误;
●程序设计是否合理;
●程序是否具有良好的可读性和可靠性;
●是否符合结构化程序设计所倡导的基本理念;
●用户界面是否友好。
2.1.2课程设计报告
●针对提交的课程设计报告,应该主要考查下列内容:
●程序设计的报告内容是否全面,观点是否正确;
●设计过程是否符合结构化程序设计方法的基本原则;
●层次是否清楚,语言是否通顺;
●各种图表是否规范;是否具有良好的程序设计习惯。
2.2课题
设计一个学生籍贯信息记录簿,实现以下功能:
1)创建信息并以磁盘文件保存;
2)读取磁盘文件并显示输出所有学生的籍贯信息;
3)按学号或姓名查询其籍贯;
4)按籍贯查询并输出该籍贯的所有学生;
5)能添加、删除和修改学生的籍贯信息;
备注:
每个学生信息包括,学号、姓名、籍贯;
第三章详细设计说明
3.1总体设计:
1.设置输入输出流及将程序由磁盘文件保存,构件类stu,其主要包括:
学号,姓名,籍贯.
2.构建无返回值main函数,输出由与程序相关操作构成的信息链表
3.根据链表设置利用switch函数和循环函数将链表中的内容一一实现.
3.2函数功能说明:
main()主函数
每一C程序都必须有一main()函数,可以根据自己的爱好把它放在程序某个地方。
程序之前输入学生信息,main()申明主函数,输出相应的功能函数。
#include<>头文件
iostream意为输入输出流,包含了对输入输出流进行操作所需的基本信息;string意为字符串,用于定义程序中的字符串;fstream用于用户管理的文件的I/O操作。
usingnamespace命名空间名
usingnamespace一次只能声明一个命名空间成员,using
namespacestd声明了在本作用域中要用的命名空间std中的成员。
break语言
break语句可以使流程跳出switch结构,继续执行switch语句下面的一个语句。
其作用为使流程从循环体内跳出循环体,即提前结束循环,接着执行循环体下面的语句。
break语句只能用于循环语句和switch语句内,不能单独使用或用于其他语句中。
3.3详细设计流程图:
图3-1系统设计流程图
子函数流程图如下:
图3-2录入函数流程图
图3-3增加/删除函数流程图
图3-4查询函数流程图
图3-5输出所有信息函数流程图
3.3运行结果:
1.输入程序检查程序是否有误并对其进行运行,其运行结果如下图(3-6)所示
图3-6程序界面
2.在第一步的基础上接着按键盘数字“1”输入所有学生的信息资料,然后对其进行查找,首先输入键盘数字“2”查看输入的学生信息资料(如图3-7所示)
图3-7学生的信息资料
3.通过学号进行查找,输入键盘数字“3”,任意输入学号查询(如图3-8所示)
图3-8学号查询
4.再通过姓名查找,首先退出先前的学号查找,再输入键盘数字“4”屏幕显示按姓名查找,再输入要查找的学生姓名并查询其相关信息(如图3-9所示)
图3-9姓名查询
5.再次退出按姓名查找,输入键盘数字“5”通过籍贯查找学生,输入要查找的学生的籍贯再进行筛选(如图3-10所示)
图3-10籍贯查询
第四章软件使用说明
4.1程序运行环境
程序运行的环境Win9X/Win2000/WinXP/Win2003
4.2程序操作方法
上机操作一般包括以下几个步骤:
1.进入C++工作环境(VisualC++6.0版本).
2.输入以编译好的程序.
3.检查自己所编译的程序是否有输入或者是语法性错误,如有及时改正.
4.进行编译和连接,如果在编译和连接时出现错误,屏幕上会显示出错信息,按照提示找到出错位置和原因并加以改正,再进行编译……,如此反复直到顺利通过编译和连接为止.
5.运行程序并分析结果是否合理.
6.输出程序清单和运行结果.
第五章课程设计心得与体会
在本次课程设计中,我利用到了本学期学到的大部分知识,而在次程序中,最主要运用是在数组和类及在指针的运用方面。
同时明白只要充分的融会贯通在课堂上学会的东西并在课后积极的进行程序设计的训练,增加自己对C++程序语言的了解,并应取尽早的熟练的使用这一门语言。
通过此学期的学习我了解到了C++作为一种面向对象的程序设计语言,它支持对类的抽象。
而在此程序中,主要运用的知识为函数的循环系统,类的组成,对象成员的应用等,而访问对象中的成员可以有三种方法,通过对象名和成员运算符访问对象中的成员,通过指向对象的指针访问对象中的成员,通过对象的引用变量访问对象中的成员。
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。
回顾起此次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整一个星期的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真
正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,这毕竟独立做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识重新温故。
附录一参考文献
[1]G.Perry.《C++程序设计教程》北京:
清华大学出版社,1994年
[2]谭浩强,《C++程序设计》北京:
清华大学出版社
[3]丁勇,彭积云,查金旺《学生管理系统的设计与实现》
附录二程序清单
#include
#include
#include
usingnamespacestd;
classCStudent
{
private:
intID;//学号
stringProvince;//籍贯
stringName;//姓名
public:
voidsetID(intid){ID=id;}
voidsetProvince(stringprovince){Province=province;}
voidsetName(stringname){Name=name;}
intgetID(){returnID;}
stringgetProvince(){returnProvince;}
stringgetName(){returnName;}
};
CStudentstudent[1000];
intn=0;//数组学生总数
stringfileName="students.txt";
intAddStudent();//添加一个学生到数组
intLoop();//显示数组中所有学生
intAddToFile();//加数组学生到文件
intSaveFile();//数组到文件
intShowFile();//显示文件所有学生
intFindID();//按学号查询学生
intFindname();//按姓名查询学生
intFindProvince();//按籍贯查询学生
intDelete();//删除一个学生
intReadFile();//文件输入数组
intRemove();//修改一个学生
intRediscovername();//重新输入学生
intReadFile();//文件输入数组
voidmain()
{
intk=-1;
while(k!
=0)
{
cout< cout<<"1添加一个学生到数组"< cout<<"2显示数组中所有学生"< cout<<"3加数组学生到文件"< cout<<"4显示文件中所有学生"< cout<<"5按学号查询学生"< cout<<"6按籍贯查询学生"< cout<<"7按姓名查询学生"< cout<<"8删除一个学生"< cout<<"9修改一个学生"< cout<<"10文件输入数组"< cout<<"0完成"< cout<<"选择上面一个数字: ";cin>>k; if(k==1)AddStudent(); elseif(k==2)Loop(); elseif(k==3)AddToFile(); elseif(k==4)ShowFile(); elseif(k==5)FindID(); elseif(k==6)FindProvince(); elseif(k==7)Delete(); elseif(k==8)Remove(); elseif(k==9)ReadFile(); elseif(k==0)printf("完成! \n"); elseprintf("你输入了个错误的数字! \n"); } return; } intFindProvince() { intid; stringprovince1,province2; cout<<"籍贯: ";cin>>province1; ifstreamiFile(fileName.c_str()); while(iFile>>id>>province2) { if(province1==province2) cout< } iFile.close(); return0; } intFindID() { intid1,id2; stringprovince; cout<<"学号: ";cin>>id1; ifstreamiFile(fileName.c_str()); while(iFile>>id2>>province) { if(id1==id2) { cout< break; } } iFile.close(); return0; } intFindProvince() { intname; stringprovince1,province2; cout<<"籍贯: ";cin>>province1; ifstreamiFile(fileID.c_str()); while(iFile>>name>>province2) { if(province1==province2) cout< } iFile.close(); return0; } intFindName() { intname1,name2; stringprovince; cout<<"姓名: ";cin>>id1; ifstreamiFile(fileID.c_str()); while(iFile>>name2>>province) { if(name1==name2) { cout< break; } } iFile.close(); return0; } intRemove() { intid,i,j; cout<<"学号: ";cin>>id; ReadFile(); for(i=0;i { if(student[i].getID()==id) { n--; for(j=i;j student[j]=student[j+1]; } } SaveFile(); return0; } intAddStudent() { intid; stringprovince; cout<<"学号,籍贯: ";cin>>id>>province; student[n].setID(id); student[n].setProvince(province); n++; return0; } intAddToFile() { ofstreamoFile(fileName.c_str(),ios: : app); inti; for(i=0;i oFile< oFile.close(); return0; } intSaveFile() { ofstreamoFile(fileName.c_str()); inti; for(i=0;i oFile< oFile.close(); return0; } intReadFile() { intid; stringprovince; ifstreamiFile(fileName.c_str()); n=0; while(iFile>>id>>province) { student[n].setID(id); student[n].setProvince(province); n++; } iFile.close(); return0; } intLoop() { inti; cout<<"显示所有学生: "< for(i=0;i cout<<"学号="< return0; } intShowFile() { intid; stringprovince; ifstreamiFile(fileName.c_str()); while(iFile>>id>>province) cout< iFile.close(); return0; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 籍贯 记录簿 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)