学生信息管理系统1.docx
- 文档编号:29796321
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:30
- 大小:108.28KB
学生信息管理系统1.docx
《学生信息管理系统1.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统1.docx(30页珍藏版)》请在冰豆网上搜索。
学生信息管理系统1
目录
第一章课程设计的目的和要求1
第二章课程设计任务内容2
2.1背景2
2.2功能需求3
第三章模版设计说明3
3.1系统总框架3
3.2主函数的流程图5
3.3录入学生信息流程图6
3.4插入学生信息流程图7
第四章软件使用说明及运行结果8
4.1使用说明8
4.2运行结果9
第五章课程设计心得与体会10
附录1:
参考文献12
附录2:
程序清单13
第一章课程设计的目的和要求
C++语言课程设计的主要目的是培养学生综合运用C语言程序设计课程所学到的知识,编写C++程序解决实际问题的能力,以及严谨的工作态度和良好的程序设计习惯。
通过课程设计的训练,学生应该能够了解程序设计的基本开发过程,掌握编写、调试和测试C++语言程序的基本技巧,充分理解结构化程序设计的基本方法。
C++语言程序设计的主要任务时要求学生遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,分析、设计、编写、调试和测试C++语言程序及编写设计报告。
本课程设计的目标:
1.巩固和加深学生对C++语言课程的基本知识的理解和掌握;
2.掌握C++语言编程和程序调试的基本技能;
3.掌握利用C++语言进行软件设计的方法;
4.提高书写程序设计说明文档的能力;
5.提高运用C++语言解决实际问题的能力。
基本要求:
1.分析课程设计题目的要求;
2.对系统功能模块进行分析,写出详细设计说明文档;
3.编写程序代码,代码量要求不少于300行,调试程序使其能正确运行;
4.设计完成的软件要便于操作和使用;
第二章课程设计任务内容
此次程序设计综合课程设计的任务内容是编写学生信息化管理系统。
2.1背景
随着学校的快速发展和在校学生的增多,学生管理工作变得越来越复杂,许多工作非常繁琐,消耗了大量的人力物力。
比如学生档案管理,学生的姓名、出生年月等资料在做了修改后,可能在招办、学生科、财务科有同一个学生的几份不同档案材料,数据共享性极差;有的学生欠费,财务部门也很难及时发现;有的学生中途变更学籍,给教学管理工作带来不便。
2.2功能需求
用C++实现学生信息管理系统,学生信息包括:
学号,姓名,性别,地址,出生年月,电话,E-mail等。
该系统主要有以下功能:
1、系统以菜单方式工作;
2、学生信息录入功能(学生信息用文件保存)--输入;
3、学生信息浏览功能—输出;
4、学生信息查询功能—算法;
按学号查询
按姓名查询
5、学生信息的删除与修改(可选项)。
本人承担的功能有:
(1)、
(2)、(4)。
第三章模版设计说明
3.1系统总框架
图3-1系统模块图
3.2主函数的流程图
图3-2主函数流程图
3.3录入学生信息
输入函数:
刷新此前的显示界面,然后输入在执行上步操作后的显示界面
图3-3录入函数流程图
3.4查询学生信息
查询函数:
刷新此前的显示界面,然后查询在执行上步操作后的显示界面
图3-4查询函数流程图
第四章软件使用说明及运行结果
4.1使用说明
该程序可以实现对学生有关信息查找的功能,安装VisualC++6.0中文版后,在工具栏“文件”中单击“新建”选项,单击“文件”菜单,选择“C++Sourcefile”输入文件名“单项选择题标准化考试系统”。
开始输入程序,程序输入完成,单击“组建”工具栏,选择“编译[简化学生信息管理系统.cpp1]”,待程序无误后,开始执行程序。
根据数据结构、函数功能和主要的流程图,进行录入源代码操作。
在编码时,注意代码的书写规范,包括命名惯例、注释、分隔和缩进等,这样使程序层析清晰,增强可读性和可维护性。
编码操作完成后,先静态检查一下有没有语法错误,然后进行编译,更深一步检查语法错误。
待编译通过时,运行程序,观察是否能够正常运行,如果有问题,再去修改源程序,直至达到了预期的效果。
4.2运行结果
图4-1程序截图一
图4-2程序截图二
第五章课程设计心得与体会
课程设计刚开始的时候,我真的感觉到无从下手。
因为已经过去一个学期了,期间又没有怎么看书,考完试就放下了。
许多知识都已经忘却。
不过老师为我们安排的很周到,一开始并没有直接让我们做系统。
而是复习上个学期最基本的知识。
例如:
通过做一些题目去熟悉冒泡排序,选择排序、指针、如何建立动态存储空间等。
经过这样的训练之后,对C++语言感觉不那么陌生了。
对后面的设计也终于有了点信心。
通过这三周的课程设计,我独立完成了一个较大的C++语言程序的设计,以及认真完成了课程设计报告。
回忆这三周的时间,我收获很大。
首先,我熟练地运用了所学的知识编写程序,并成功的完成,感觉成就感很强,这大大激发了我编程的兴趣;其次,在设计的过程中遇到了一些困难,我会认真的去思考,或者充分利用网络资源来寻求帮助,提高获取信息的能力。
如果自己解决有困难,我会向老师和同学寻求帮助,在交流中共同进步。
最后,我了解了软件开发的大体过程及各个步骤,这对将来的学习和工作是很有帮助的。
对于计算机专业的大学生来说,积累实战经验是一项极其重要的内容,很可能成为将来就业的敲门砖。
而程序设计综合课程设计就是积累实战经验的一个过程,虽然程序的规模并不大,但能够让我们尽早地认识软件开发的重要性和必要性,为将来的就业打下坚实的基础。
经过两个星期的上机实践学习,使我对C++语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的好多不足之处,首先是自己编程粗心大意,经常出错,通过学习也有所改进;再有对C++语言的一些标准函数不太了解,还有对函数调用的正确使用不够熟悉,以及对C++语言中经常出现的错误也不了解,通过实践,使我在这几个方面的认识有所提高。
这次的课程设让我认识到很多C++的内在要素:
1.程序设计语言是程序设计的工具。
这是我通过两周课程设计深深体会的一点,并且发现如果想有效的进行程序设计,正确地应用程序设计语言表达算法,必须准确的运用程序设计语言,掌握其语法知识。
2.学习程序设计必须重视时间环节,多读程序,多编写程序,多上机实践。
这次的课程设计就使得课堂教学、式样和实践之间的关系更为紧密。
对我的学习有着很深远的影响。
3.我发现作为一个程序设计人员,需要掌握面向过程的程序设计,也要掌握面向对象的程序设计。
从前,人们通过C++语言学习面向过程的程序设计,再通过C++学习面向对象的程序设计。
其实C++并不是纯粹的面向对象的语言,它是一种混合语言。
学习C++既可以编写面向过程的程序,也可以编写面向对象的程序。
这一点是我通过可课程设计所的实践发现的。
4.深切的感受到了C++语法的复杂,内容的繁多。
发现如果对它缺乏系统的了解,将难以真正的运用,编出来的程序错误百出。
附录1:
参考文献
[1]、谭浩强编著:
C++程序设计,北京:
清华大学出版社,2004
[2]、(美)戴特尔(Deitel,H.M.)等编著,张引等译:
C++大学基础教程(第五版),北京:
电子工业出版社,2006.6
[3]、夏云庆编著:
VisualC++6.0数据库高级编程,北京:
希望电子出版社2002
[4]、伍俊良编著:
VisualC++6.0课程设计与系统开发案例,北京:
清华大学出版社,2002.11
附录2:
程序清单
以下是学生信息管理系统的源代码:
#include
#include
#include
#include
usingnamespacestd;
#defineNULL0
intn=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您想删除哪个学生的信息?
输入该学生的学号:
"< cin>>num; head=del(head,num); system("pause"); break; case'4': cout<<"请输入新增学生的姓名、班级、学号、成绩、性别、出生年月、电话、E-mail: "< cin>>newStu.name; 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<<"请输入班级: "< cin>>Class; inquire(head,Class); system("pause"); break; case'7': cout<<"请输入学号: "< 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<<"输入错误! "< } if(quit) break; } //退出时提示保存 cout<<"您想保存这些信息吗? (Y/N)"; cin>>c; if(c=='y'||c=='Y') { cout<<"请输入文件名: "; cin>>filename; save(head,filename); } return0; } //欢迎界面 voidwelcome() { cout<<"*******************************"< <<"欢迎使用简易学生信息管理系统! "< <<"制作人: 齐俊时间: 2009-12-4"< <<"*******************************"< } //菜单 voidmenu() { cout< : left); cout<<"\n\n您要做什么? "< < < < < < < < < < < < < <<"输入您的选择: "; } //创建链表 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<<"分数错误! 请重新输入"< error=true; } else error=false; }while(error); n++; if(n==1) { head=p1; p1->next=NULL; } else { p2->next=p1; p1->next=NULL; } } cout<<"输入结束! "< returnhead; } //输出信息 voidprint(Student*head) { Student*p=head; if(p! =NULL) { cout< < do { cout< < p=p->next; }while(p! =NULL); cout<<"合计学生"< "< } else cout<<"没有信息! "< } //删除信息 Student*del(Student*head,longnum) { Student*p1,*p2; if(head==NULL) { cout<<"信息为空! "< returnhead; } p1=p2=head; while(p1->num! =num&&p1->next! =NULL) { p2=p1; p1=p1->next; } if(p1->num! =num) { cout<<"找不到该学生! "< returnhead; } else { if(p1==head) head=p1->next; else p2->next=p1->next; cout<<"成功删除学号为"< "< 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<<"学号为"< "< returnhead; } p1=p1->next; } p1->next=p0; p0->next=NULL; n++; } cout<<"成功插入信息! "< returnhead; } //保存到文件 voidsave(Student*head,charfilename[]) { Student*p=head; boolflag=false; if(head==NULL) { cout<<"没有可以保存的信息! "< return; } else { fstreamoutfile(filename,ios: : out); if(! outfile) { cout<<"打开数据文件出错! "< return; } do { if(flag) outfile< outfile< < flag=true; p=p->next; }while(p! =NULL); outfile.close(); cout<<"保存成功! 保存到"< } } //按班级查询 voidinquire(Student*head,stringClass) { boolflag=true; Student*p=head; inttotal=0; if(p==NULL) { cout<<"信息为空! "< return; } do { if(p->Class==Class) { if(flag) { cout<<"班级为"< "< cout< flag=false; } cout< total++; } p=p->next; }while(p! =NULL); cout<<"已查询到"< "< } //按学号查询 voidinquire(Student*head,longnum) { boolflag=true; Student*p=head; if(p==NULL) { cout<<"信息为空! "< return; } do { if(p->num==num) { if(flag) { cout<<"学号是"< "< cout< flag=false; } cout< return; } p=p->next; }while(p! =NULL); cout<<"查无此人! "< } //求平均值 voidaverage(Student*head) { Student*p=head; floatsum=0; if(head==NULL) { cout<<"信息为空! "< return; } do { sum+=p->score; p=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 信息管理 系统