版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C+课程设计目录前言41、课程设计的目的及要求51.1课程设计的目的51.2课程设计的内容51.3课程设计的要求62、设计方案及具体实现62.1 程序总的功能说明62.2 总的设计思路及流程62.3系统功能的说明和设计及各模块流程图73、调试及运行结果133.1 主菜单133.2 录入学生信息133.3 显示学生信息143.4 查询学生信息153.5 统计学生信息153.6 删除学生信息153.7 修改学生信息163.8 清理与退出164、小结16参考文献17附录:程序代码18前言随着两周时间的过去,本次的“学生成绩管理系统”课程设计也结束了。虽然只是两周时间,但是却让我对C+有了新的认识和更
2、深一步的了解。在这两周里,每天下午都坐在机房,对着电脑,看着自己编写的代码从少变多,从简单变复杂。心里都有种说不出的感觉,既希望能够快点写完,又害怕出现未知的错误。虽然其中出现很多错误,但是经过请教一些同学,上网百度或者翻看教科书,最终还是解决了这些问题,完成了任务。 “C+程序设计”是大学本科计算机相关专业的一门非常重要的专业基础课。本课程的重点是C+程序语言的选择、循环语句,数组,函数,指针,类与对象以及继承、多态等,给学生渗透程序与算法设计的基本思想与方法,难点是指针和面向对象的理解。为体现作为专业基础课的“专业”和“基础”的特点,本次课程设计有两个方面的内容要在实践中落实:一、掌握C+
3、语言本身的语法与程序结构。二、掌握一定的算法与常用函数的编程实现,为后续课程打好基础。同时,我也希望自己可以在此次课程设计学习之后,可以更加熟练的运用C+基本语句,培养自己对于计算机编程的喜爱,对编程可以有更深一步的了解。1、 课程设计的目的及要求1.1 课程设计的目的C+课程设计是将C+理论教学与实践环节相结合的关键步骤,通过该实践教学环节,使学生进一步学习和巩固C+课程的核心内容,加深对面向对象程序设计思想的正确理解;并且熟练掌握C+程序设计技能及上机调试方法,为今后学习其他专业课程打好基础;并能具备一定的计算机程序设计能力,培养独立分析问题、解决问题及查阅资料、获取新知识的能力,以适应技
4、术不断更新的计算机行业特点。1.2 课程设计的内容按照要求设计一个学生基本信息管理系统,实现对学生信息的综合管理。学生信息包括:学号、姓名、年龄、性别、家庭住址、联系电话、寝室号等信息。现要求编写程序来完成如下功能:(1)学生信息的输入包含功能:对输入的学号是否重复进行判断(学号唯一);对输入的是否为有效性别进行判断。(2)学生信息的显示(3)学生信息的查询包含功能:实现按“学号、姓名、性别、寝室号”等查询;若非法查询或未查到请给予提示。(4)学生信息的统计包含功能:统计学生的“男生人数、女生人数、总人数” (5)学生信息的删除包含功能:删除指定学号的学生信息;若无此记录,给予提示。(6)学生
5、信息的修改包含功能:根据接收到的待修改的学生的学号,进行对相应信息的修改。(7)清理屏幕(8)退出1.3 课程设计的要求 (1)熟悉VC+6.0编译环境,熟练使用编译调试工具。(2)学习C+输入输出流对象的使用。(3)通过系统分析和实现,掌握简单软件开发的一般过程。(4)以学生独立思考、解决问题为主,教师指导为辅,结合上机操作,完成指定的任务,撰写课程设计报告。2、 设计方案及具体实现2.1 程序总的功能说明这是一个学生基本信息管理系统,通过本系统,可以实现对学生信息进行学生信息的录入、学生信息的显示、学生信息的统计、学生信息的删除、学生信息的修改、清理屏幕和退出等功能,可以有效的对学生信息进
6、行综合管理。学生信息包括:学号、姓名、性别、年龄、家庭住址、联系电话以及寝室号等信息。2.2 总的设计思路及流程在这个学生基本信息管理系统中,定义了函数void getInfo()、void SaveTxt()、void stuSaveTxt()、void showInfo()、void searchmenu()、void searchnum()、void searchname()、void searchsex()、void searchdormitory()、void countmenu()、void altermenu()、void alterstudent()、void erase()、
7、int huoqu(int i)、进行学生信息的录入、保存、显示学生信息、按学号、姓名、性别、寝室号查询;统计学生信息、修改学生信息、删除学生信息等的实现,另外用函数实现了程序中的清屏和退出。在函数中,多次运用switch(),do while()函数,使程序简单顺利的进行。当然,通过menu()等的菜单函数,来实现功能菜单显示在运行窗口以提示用户如何进行操作。另外,主函数main()中,不再是全部在一个函数中实现,而是通过对函数的调用,让函数的功能进行实现。另外,在函数中也用了大量的清屏和退出函数,使整个管理系统更为合理和完善。2.3系统功能的说明和设计及各模块流程图在本章中,主要是介绍各个
8、功能函数的设计思路和实现方法。在整个管理系统中让用户的使用更加容易,使整个程序变得更为简便。整个管理系统的结构图如下:录入学生信息学生的录入信息函数中,通过对getInfo()函数的调用,对学号、姓名、年龄、性别、家庭住址、联系电话、寝室号进行录入、保存。显示学生信息 在学生信息的显示中,通过对showInfo()函数的调用,来显示所有的学生数据。其中包括所有学生的学号、姓名、年龄、性别、家庭住址、联系电话、寝室号,显示成功后,又用system(pause)来实现按任意键返回,可以返回到主菜单,再次进行选择。查询学生信息在学生的信息查询中,通过调用searchmenu()来进行输入提示。具体操
9、作中,通过调用searchnum()、searchname()、searchsex()、searchdormitory()分别以学生的学号、姓名、性别、寝室号进行查询,通过这些函数对学生的信息进行了筛选,使查询信息变得更为简单,也更省时间。通过switch()函数,实现了查询的四种方法,也通过system(pause)进行了程序的返回。统计学生信息在学生信息的统计中,统计函数主要通过对TXT文件里面性别(sex)数据做统计,最后按照想要统计的输出统计的男生人数、女生人数、总人数的统计,同时输入任意键可以用system(pause)来进行返回。删除学生信息 删除信息功能需要先调用查找学号位置函数
10、,然后通过不读入要删除学号信息的方法,重新写入原来TXT文件里面实现删除功能。修改学生信息修改函数主要是先通过输入的学号查找信息所在TXT文件所在的位置,然后再通过void alterstudent()函数对学号,姓名,性别,年龄,家庭住址,联系方式,宿舍号的修改。清理屏幕清理屏幕通过system(cls);函数实现。退出退出功能就是结束程序,通过break结束循环结束程序。3、 调试及运行结果3.1 主菜单主菜单显示了1 录入学生信息,2 显示学生信息,3 查询学生信息,4 统计学生信息,5 删除学生信息,6 修改学生信息,7 清理屏幕,0 退出管理系统等功能选项及姓名联系方式等信息。3.2
11、 录入学生信息在主菜单中选择1,将出现输入学号,姓名,年龄,性别,地址,电话,寝室号等选项,输入完毕后,成功保存到电脑D盘中。若输入相同的学号,将出现提示“重复学号”。 3.3 显示学生信息在主菜单中选择2,系统将会自动显示student.txt文件中的内容。3.4 查询学生信息在主菜单选择3,将通过选择按学号查询,按姓名查询,按性别查询,按寝室号查询等选项,输入对应的选项将显示所查找的信息。以下是按学号查询:3.5 统计学生信息在主菜单选择4,系统将会统计出来输入的男生人数,女生人数,总人数并显示。3.6 删除学生信息选择删除信息选项后,系统提示输入要删除的学号,输入回车即可删除学生信息。3
12、.7 修改学生信息3.8 清理与退出选择退出管理系统后,程序将结束4、 小结经过不到两个星期的努力,“学生信息管理系统”终于做完了,这是第一次完成一个系统。学习的心态很关键,不懂了就要学着去用不同的方式去获取,补足自己,通过各种各样的方式,学着去请教别人和别人交流,做到不懂就问。不可否认的是,这个系统并不是靠我一个人的能力完成的。我请教了很多同学,有时为了理解代码的含义,经常问同学或是上网查资料,并且老师给我们的模板对我的帮助也非常大,让我学会了使用#include 等文件的使用,在编程过程中有的错误提示自己实在想不通的就去百度上搜,网络给了我很多帮助。过程是有点儿浮躁的,有的时候为难的有点儿
13、绝望,不过经过同学在一起讨论和自己的摸索,整个流程还是较为通顺的完成了。在做程序的过程中,因为太为频繁的使用switch语句do-while语句,有的甚至是switch中套着switch,出错后再进行修改,很容易大括号丢失或多余,这时程序提示的错误也就变得不准确了,即使知道是因为大括号导致的问题,也一时半会儿改不出来,浪费了很多时间。这种错误的原因还是因为自己对语句不够熟练,以后的学习中要避免类似错误发生。另外,在刚开始做这个程序的时候,和老师的思路不是特别一样,自己也尝试着按照自己的想法做程序,但是导致自己两天都没有任何进展,最后又重新做了一遍。自己在对C语言的了解还不够多,只是皮毛,所以还
14、不能轻松地运用自如,一些方面还是考虑的不够周全,这是我所欠缺的。虽然这次课程设计是在参考程序的基础之上进行的,但是我觉得对自己是一个挑战和锻炼。学习计算机是一个漫长的过程,当然有时也会很枯燥,甚至在别人眼中是不可思议的。但是既然选择了这个专业,就努力脚踏实地学好,让它真正的为己所用。参考文献1.C+面向对象程序设计谭浩强 清华大学出版社2.数据结构(C语言版)严蔚敏&吴伟民 清华大学出版社3. 百度资源附录:程序代码#include#include#include#includeusing namespace std;class Student /声明类 private : string nu
15、m; string name; int age; string sex; string address; string phone; string dormitory; public :void getInfo();/录入void SaveTxt();/保存 void showInfo();/显示void searchmenu();/查询菜单 void searchnum();void searchname();void searchsex();void searchdormitory();void countmenu();/统计void altermenu();/修改菜单void alter
16、student();/修改 void alterSaveTxt();void erase();/删除int huoqu(int i);/获取录入新的学生信息void Student:getInfo() cout请输入学号:num;cout请输入姓名:name;cout请输入年龄:age;cout请输入性别:sex;cout请输入地址:address;cout请输入电话:phone;cout请输入寝室号:dormitory;cout是否确认? 1、是,按其他键为退回主页面a;void Student:SaveTxt()fstream fout1(f:student.txt,ios:out|ios
17、:app);if(!fout1)coutCannot open file.endl;exit(1);fout1num name sex age address phone dormitoryendl;fout1.close();/显示所有学生信息void Student:showInfo()fstream fin(f:student.txt,ios:in);if (!fin)coutCannot open file.numnamesexageaddressphonedormitory;if(num=)break;cout学号:num 姓名:name 性别:sex 年龄:ageendl;cout
18、家庭住址:address 联系方式:phone 寝室号:dormitoryendl;num=;fin.close();system(pause);/查询菜单void Student:searchmenu()cout=endl;cout 1 按学号查询 2 按姓名查询 endl;cout 3 按性别查询 4 按寝室号查询 endl;cout-endl;cout请选择:;void Student:searchnum()string Num;cout请输入你要查询的学号:Num;fstream fin(f:student.txt,ios:in);if (fin.fail()coutCannot op
19、en file.endl;exit(1);int n=0;coutnumnamesexageaddressphonedormitory;if(num=)break;if(num=Num)cout学号:num 姓名:name 性别:sex 年龄:ageendl;cout家庭住址:address 联系方式:phone 寝室号:dormitoryendl;n=1;num=;if(n=0)cout没有要找的学生endl;fin.close();system(pause);void Student:searchname()string Name;cout请输入你要查询的姓名:Name;fstream f
20、in(f:student.txt,ios:in);if (fin.fail()coutCannot open file.endl;exit(1);int n=0;coutnumnamesexageaddressphonedormitory;if(num=)break;if(name=Name)cout学号:num 姓名:name 性别:sex 年龄:ageendl;cout家庭住址:address 联系方式:phone 寝室号:dormitoryendl;n=1;num=;if(n=0)cout没有要找的学生endl;fin.close();system(pause);void Student
21、:searchsex()string Sex;cout请输入你要查询的性别:Sex;fstream fin(f:Student.txt,ios:in);if (fin.fail()coutCannot open file.endl;exit(1);int n=0;coutnumnamesexageaddressphonedormitory;if(num=)break;if(sex=Sex)cout学号:num 姓名:name 性别:sex 年龄:ageendl;cout家庭住址:address 联系方式:phone 寝室号:dormitoryendl;n=1;num=;if(n=0)cout没
22、有要找的学生endl;fin.close();system(pause);void Student:searchdormitory()string Dormitory;cout请输入你要查询的寝室号:Dormitory;fstream fin(f:student.txt,ios:in);if (fin.fail()cout无法找到文件endl;exit(1);Student stu;int n=0;coutnumnamesexageaddressphonedormitory;if(num=)break;if(dormitory=Dormitory)cout学号:num 姓名:name 性别:s
23、ex 年龄:ageendl;cout家庭住址:address 联系方式:phone 寝室号:dormitoryendl;n=1;num=;if(n=0)cout没有要找的学生endl;fin.close();system(pause);void Student:countmenu()/统计fstream fin(f:student.txt,ios:in);int m=0,n=0,i=0;if (fin.fail()coutnumnamesexageaddressphonedormitory;if(num=)break;if(sex=男)n+;elsei+;m+;fin.close();cout
24、男生人数有n人endl;cout女生人数有i人endl;cout总人数m人endl;system(pause);/查找int Student:huoqu(int i)int n=0;string m;switch(i)case 1:cout请输入要删除的学号:;break;case 2:coutm;fstream fin(f:student.txt,ios:in);if (fin.fail()coutnumnamesexageaddressphonedormitory;if(num=)break;if(num=m)n+;return n;/删除void Student:erase() int
25、count=0,n;n=huoqu(1);fstream file(f:student.txt);string line;ofstream outfile(d:in2.txt,ios:out|ios:trunc); while(!file.eof() getline(file,line); if(count!=n-1) outfilelineendl;count+; outfile.close();file.close();ofstream outfile1(f:student.txt,ios:out|ios:trunc);fstream file1(d:in2.txt); while(!fi
26、le1.eof() getline(file1,line);outfile1lineendl; outfile1.close();file1.close(); system(del in2.txt);void Student:altermenu()coutnum;coutname;coutsex;coutage;coutaddress;coutphone;coutdormitory;/修改学生信息void Student:alterstudent()int count=0,n;n=huoqu(2);fstream file(f:student.txt);string line,x;ofstre
27、am outfile(f:in2.txt,ios:out|ios:trunc); while(!file.eof() getline(file,line); if(count!=n-1) outfilelineendl;elsealtermenu(); alterSaveTxt();fstream file2(d:in3.txt);getline(file2,line);outfilelineendl;file2.close();count+; outfile.close();file.close();ofstream outfile1(f:student.txt,ios:out|ios:trunc);fstream file1(f:in2.txt); while(!file1.eof() getline(file1,line);outfile1lineendl; outfile1.close();file1.close();system(del in2.txt);void Student:alterSaveTxt()fstream fout1(f:in3.txt,ios:out|ios:app);if(!fout1)coutCannot open file.endl;exit(1);fout1num name
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 园区食堂运营管理方案
- 保温砂浆顶棚保温施工方案
- 采光顶钢结构安装施工方案
- 锚杆支护施工方案主要内容
- 集团总部整顿工作方案
- 室内装饰装修施工方案参考
- 和谐班级建设实施方案
- 语文园地三【活动探究版】
- 《西南地区高粱-苏丹草杂交种制种技术规程》编制说明
- 工业机器人的三维造型与设计一体化教程(中篇共上中下3篇)
- 招聘 成都新都投资集团有限公司2026年招聘工会统战岗等岗位(65人)考试备考试题及答案解析
- 企业品牌危机公关方案指引
- 2025江苏省苏州市中考英语真题(原卷版)
- 2025年四川省遂宁市中考八年级会考生物试题(含答案)
- Q320684FESO-001-2021 船用阀门遥控系统
- 2025年重庆市中考地理试卷真题(含标准答案)
- JG/T 468-2015墙体用界面处理剂
- 加油加气、充电一体站项目可行性研究报告商业计划书
- 2024年10月自考02318计算机组成原理试题及答案
- 辽宁大学《大学计算机多媒体应用》2021-2022学年第一学期期末试卷
- 工业用除湿机相关项目实施方案
评论
0/150
提交评论