欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    c++课程设计-学生信息管理系统.doc

    • 资源ID:5014002       资源大小:121.50KB        全文页数:28页
    • 资源格式: DOC        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    c++课程设计-学生信息管理系统.doc

    目录第一章 课程设计的目的和要求1第二章 课程设计任务内容22.1 背景22.2功能需求3第三章 模版设计说明33.1 系统总框架33.2 主函数的流程图53.3 录入学生信息流程图63.4 插入学生信息流程图7第四章 软件使用说明及运行结果84.1使用说明84.2 运行结果9第五章 课程设计心得与体会10附录1:参考文献12附录2:程序清单13第一章 课程设计的目的和要求1.1课程设计的目的C+课程设计的主要目的是根据课堂讲授内容,学生做相应的自主练习,在进行课程设计的过程中,消化自己所学的内容,同时也培养综合运用C+程序设计课程所学到的知识和编写C+程序解决实际问题的能力,以及良好的程序设计习惯。通过课程设计的训练,学生了解程序设计的基本开发过程,掌握编写、调试和测试C+语言程序的基本技巧,充分理解结构化程序设计的基本方法,熟悉运用结构化程序设计的方法。1.2课程设计的目标本课程设计的目标:1. 巩固和加深学生对C+语言课程的基本知识的理解和掌握;2. 掌握C+语言编程和程序调试的基本技能;3. 掌握利用C+语言进行软件设计的方法;4. 提高书写程序设计说明文档的能力;5. 提高运用C+语言解决实际问题的能力。1.3课程设计要求基本要求:1. 分析课程设计题目的要求;2. 对系统功能模块进行分析,写出详细设计说明文档;3. 编写程序代码,代码量要求不少于300行,调试程序使其能正确运行;4. 设计完成的软件要便于操作和使用;5. 设计完成后提交课程设计报告。第二章 课程设计任务内容此次程序设计综合课程设计的任务内容是编写保安人员的休息时间安排系统。2.1 背景随着学校的快速发展和在校学生的增多,学生管理工作变得越来越复杂,许多工作非常繁琐,消耗了大量的人力物力。比如学生档案管理,学生的姓名、出生年月等资料在做了修改后,可能在招办、学生科、财务科有同一个学生的几份不同档案材料,数据共享性极差;有的学生欠费,财务部门也很难及时发现;有的学生中途变更学籍,给教学管理工作带来不便。2.2功能需求用C+实现学生信息管理系统,学生信息包括:学号,姓名,性别,地址,出生年月,电话,E-mail等。该系统主要有以下功能:1、 系统以菜单方式工作;2、 学生信息录入功能(学生信息用文件保存)-输入;3、 学生信息浏览功能输出;4、 学生信息查询功能算法;按学号查询按姓名查询5、 学生信息的删除与修改(可选项)。本人承担的功能有:(1)、(2)、(4)。第三章 模版设计说明3.1 系统总框架学生信息管理系统录入学生信息浏览学生信息查询学生信息修改学生信息删除学生信息退出程序按姓名查询按学号查询图3-1 系统模块图 3.2 主函数的流程图录入学生信息初始化变量输出菜单输入操作标号标号有误?根据标号执行相应的处理函数标号为退出?提示保存NNY浏览学生信息修改学生信息Y开始结束图3-2 主函数流程图3.3 录入学生信息输入函数:刷新此前的显示界面,然后输入在执行上步操作后的显示界面输入学生学号、姓名开始添加错误该信息是否存在结束NY添加到文件图3-3录入函数流程图3.4 查询学生信息查询函数:刷新此前的显示界面,然后查询在执行上步操作后的显示界面输入学生学号或姓名开始是否存在结束NY显示所查询学生信息图3-4 查询函数流程图第四章 软件使用说明及运行结果4.1使用说明该程序可以实现对学生有关信息查找的功能,安装VisualC+6.0中文版后,在工具栏“文件”中单击“新建”选项,单击“文件”菜单,选择“C+ Source file”输入文件名“单项选择题标准化考试系统”。开始输入程序,程序输入完成,单击“组建”工具栏,选择“编译简化学生信息管理系统.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+程序设计,北京:清华大学出版社,20042、(美)戴特尔(Deitel,H.M.)等编著,张引等译:C+大学基础教程(第五版),北京:电子工业出版社,2006.63、夏云庆编著:Visual C+ 6.0数据库高级编程,北京:希望电子出版社 20024、伍俊良编著:Visual C+6.0课程设计与系统开发案例,北京:清华大学出版社,2002.11附录2:程序清单以下是学生信息管理系统的源代码:#include<iostream>#include<fstream>#include<string>#include<iomanip>using namespace std;#define NULL 0int n=0; /链表节点数bool formExist=false; /原有链表是否存在struct Studentstring name;string Class;long num;float score;Student *next;/创建链表Student *create();/打印信息void print(Student *pt);/删除节点Student *del(Student *head,long num);/插入节点Student *insert(Student *head,Student *stu);/保存到文件void save(Student *head,char filename);/菜单void menu();/欢迎void welcome();/按班级查询void inquire(Student *head,string Class);/按学号查询void inquire(Student *head,long num);/求平均成绩void average(Student *head);/从文件导入Student *import(char filename,Student *head);/排序Student *rank(Student *head);int main()Student *head=NULL;Student newStu;string Class;ifstream infile;char filename20;long num;char choose;bool quit=false;char c;welcome();while(true)menu();cin>>choose;switch(choose)case '1':if (formExist)cout<<"您要创建新的链表,原有链表将丢失,是否继续?(Y/N)"cin>>c;if (!(c='y'|c='Y')continue;elsen=0;head=create();system("pause");break;elsehead=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<<"请输入新增学生的姓名、班级、学号、成绩、性别、出生年月、电话、E-mail:"<<endl;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<<"请输入班级:"<<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<<"输入错误!"<<endl;if (quit)break;/退出时提示保存cout<<"您想保存这些信息吗? (Y/N)"cin>>c;if (c='y' | c='Y')cout<<"请输入文件名:"cin>>filename;save(head,filename);return 0;/欢迎界面void welcome()cout<<"*"<<endl<<"欢迎使用简易学生信息管理系统!"<<endl<<"制作人:齐俊时间:2009-12-4"<<endl<<"*"<<endl<<endl;/菜单void menu()cout<<setiosflags(ios:left);cout<<"nn您要做什么?"<<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)<<"k.保存信息表到文件"<<endl<<setw(20)<<"c.清空屏幕"<<setw(20)<<"q.退出"<<endl<<endl<<"输入您的选择:"/创建链表Student *create()bool error=false;formExist=true;Student *p1,*p2,*head;head=NULL;p1=head;while(true)p2=p1;p1=new Student;cout<<"请输入新增学生的姓名:(输0结束)"cin>>p1->name;if (p1->name="0")break;cout<<"班级:"cin>>p1->Class;cout<<"学号:"cin>>p1->num;docout<<"成绩:"cin>>p1->score;if (p1->score<0 | p1->score>100)cout<<"分数错误!请重新输入"<<endl;error=true;elseerror=false;while (error);n+;if (n=1)head=p1;p1->next=NULL;elsep2->next=p1;p1->next=NULL;cout<<"输入结束! "<<endl;return head;/输出信息void print(Student *head)Student *p=head;if(p!=NULL)cout<<setw(15)<<"姓名"<<setw(13)<<"班级"<<setw(10)<<"学号"<<setw(7)<<"分数"<<endl;docout<<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;elsecout<<"没有信息!"<<endl;/删除信息Student *del(Student *head,long num)Student *p1,*p2;if (head=NULL)cout<<"信息为空!"<<endl;return head;p1=p2=head;while(p1->num!=num && p1->next!=NULL)p2=p1;p1=p1->next;if (p1->num!=num)cout<<"找不到该学生!"<<endl;return head;elseif (p1=head)head=p1->next;elsep2->next=p1->next;cout<<"成功删除学号为"<<num<<"的学生!"<<endl;n-;return head;/插入信息Student *insert(Student *head,Student *stu)Student *p0,*p1;p1=head;p0=stu;if (head=NULL)head=p0;p0->next=NULL;elsewhile(p1->next!=NULL)if (p0->num=p1->num)cout<<"学号为"<<p0->num<<"的学生已存在!"<<endl;return head;p1=p1->next;p1->next=p0;p0->next=NULL;n+;cout<<"成功插入信息!"<<endl; return head;/保存到文件void save(Student *head,char filename)Student *p=head;bool flag=false;if (head=NULL)cout<<"没有可以保存的信息!"<<endl;return;elsefstream outfile(filename,ios:out);if (!outfile)cout<<"打开数据文件出错!"<<endl;return;doif(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;/按班级查询void inquire(Student *head,string Class)bool flag=true;Student *p=head;int total=0;if (p=NULL)cout<<"信息为空!"<<endl;return;doif(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;/按学号查询void inquire(Student *head,long num)bool flag=true;Student *p=head;if (p=NULL)cout<<"信息为空!"<<endl;return;doif(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;/求平均值void average(Student *head)Student *p=head;float sum=0;if (head=NULL)cout<<"信息为空!"<<endl;return;dosum+=p->score;p=p->next;while(p!=NULL);cout<<"平均成绩是"<<sum/n<<endl;/从文件导入Student *import(char filename,Student *head)ifstream infile;infile.open(filename,ios:in);if(!infile)cout<<"打开文件失败!"<<endl;return head;head=NULL;n=0;Student *p1;Student *p;while(!infile.eof()p=new Student;if(n>=1)p1->next=p;infile>>p->name>>p->Class>>p->num>>p->score;p->next=NULL;if (n=0)head=p;p1=p;n+;infile.close();cout<<"导入成功!"<<endl;return head;/按成绩排序Student *rank(Student *head)if(head=NULL)cout<<"没有信息!"<<endl;return head;int m=0;/已排好的个数float max_score;/分数最大值Student *p,*p1;/原链表指针Student *p2=NULL;/新链表指针Student *head2;/新链表头指针p1=p=head;while(true)p1=p=head;max_score=head->score;do/寻找原链表中的最高分if(p->score>max_score)max_score=p->score;p=p->next;while(p!=NULL);p=head;doif(p->score=max_score)/寻找最高分的学生if(p=head)head=p->next;elsep1->next=p->next;if(m=0)/第一个最高分head2=p;p2=p;elseif(m>=1)p2->next=p;/在新链表中的操作p2=p;p2->next=NULL;m+;break;p1=p;/p1尾随着pp=p->next;while(p!=NULL);if(head=NULL)/当原链表为空时结束break;cout<<"成绩从高到低排序完毕!"<<endl;return head2;27

    注意事项

    本文(c++课程设计-学生信息管理系统.doc)为本站会员(西安人)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开