收藏 分销(赏)

面向对象程序设计—选课管理.doc

上传人:仙人****88 文档编号:8767739 上传时间:2025-03-01 格式:DOC 页数:15 大小:219KB
下载 相关 举报
面向对象程序设计—选课管理.doc_第1页
第1页 / 共15页
面向对象程序设计—选课管理.doc_第2页
第2页 / 共15页
点击查看更多>>
资源描述
福建农林大学金山学院 课程设计报告 课程名称: 面向对象程序设计课程设计 课程设计题目: 选课管理 姓 名: 系: 信息与机电工程系 专 业: 计算机科学与技术 年 级: 09级 学 号: 0922310 指导教师: 职 称: 助教 2010年 12月 30日 福建农林大学金山学院课程设计结果评定 评语: 序号 评定标准 分值 评定结果 1 课程设计报告符合规范,条理清晰,重点突出 20% 2 程序实现设计方案,软件可靠性好 40% 3 课程设计有自己的收获、体会、感受,等等 15% 4 能够按照要求演示课程设计 15% 5 有一定的创新性,难易程度 10% 合计 成绩: 指导教师签字: 任务下达日期:2010年 月 日 评定日期: 12 目 录 1设计任务………………………………………………………………………1 2设计要求………………………………………………………………………1 3设计方案………………………………………………………………………1 4设计内容………………………………………………………………………1 4.1类层次结构图和用例图…………………………………………………………1 4.2运行结果……………………………………………………………………1 5总结……………………………………………………………………………3 参考文献……………………………………………………………………………3 附表(代码)…………………………………………………………………………4 选课管理 1.设计任务 运用C++语言描述学校类、学生类、课程类、选课类,每一个类应包含数据成员和成员函数。设计基类和派生类,并运用多态性和虚函数的知识。注重面向对象程序设计理论知识的理解与实际的动手编程能力,要求学生设计具有继承与派生以及多态性的类,理解面向对象程序设计的核心的概念。 2.设计要求 本课程设计要实现的主要功能如下: 1)建立学校类、学生类、课程类、选课类 2)学校、学生、课程、选课信息的初始化 3)学校、学生、课程、选课信息的添加、修改、删除、查找 4)学校、学生、课程、选课信息的输出 5)对选课信息按学号、课程编号排序. 3.设计方案 先建立一个学生类、课程类、老师类 4.设计内容 4.1类层次结构图和用例图 类层次结构图如下:student //学生类 course //课程类 teacher //教师类 jilei //基类 用例图如下: teacher course student jilei 数据成员: name 数据成员: xuehao; major; grade; cursename; 成员函数: set() 数据成员: classnum; teachername; 成员函数: set() 数据成员: jiaoshihao; coursename; 成员函数: set() 4.2 运行结果截图 学生信息录入及查询学生信息: 课程信息录入及查询课程信息: 5.总结 对c++语言有一定的了解和掌握。可是课程设计还是好难,好多搞不懂的。 参考文献 [1]马石安,魏文平.面向对象程序设计(c++语言描述)[T].北京:清华大学出版社,2007.8 附表:(代码) #include<iostream> #include<fstream> using namespace std; void menu() { cout<<"**************学生选课系统*******************"<<endl; cout<<"1.信息录入"<<endl; cout<<"2.信息查询"<<endl; cout<<"3.修改信息"<<endl; cout<<"4.退出程序"<<endl; cout<<"请输入选项序号(1~4):"<<endl; } class jilei { public: char name[10]; } ; class student:public jilei //学生类 { public: int xuehao; char major[10]; char grade[10]; char coursename[10]; void set() { student s; cout<<"请输入学生学号:"; cin>>s.xuehao; cout<<"请输入学生姓名:"; cin>>s.name; cout<<"请输入学生专业:"; cin>>s.major; cout<<"请输入学生年级:"; cin>>s.grade; cout<<"请输入学生所选课程名:"; cin>>s.coursename; ofstream os("学生.txt",ios_base::binary|ios_base::app); os.write(reinterpret_cast< char *>(& s),sizeof(s)); os.close(); menu(); } }; class course:public jilei //课程类 { public: int classnum; char teachername[10]; void set() //函数体 { course s; cout<<"请输入课程名:"; cin>>s.name; cout<<"请输入课程号:"; cin>>s.classnum; cout<<"请输入任课教师姓名:"; cin>>s.teachername; ofstream os("课程.txt",ios_base::binary|ios_base::app); os.write(reinterpret_cast<char *>(& s),sizeof(s)); os.close(); menu(); }; }; class teacher:public jilei //教师类 { public: int jiaoshihao; char coursename[10]; void set() { teacher s; cout<<"请输入教师名:"; cin>>s.name; cout<<"请输入教师号:"; cin>>s.jiaoshihao; cout<<"请输入所授课程"; cin>>s.coursename; ofstream os("老师.txt",ios_base::binary|ios_base::app); os.write(reinterpret_cast<char*>(& s),sizeof(s)); os.close(); menu(); }; }; void checkstu() //查询学生信息 { student s; cout<<"请输入学生学号:"; int xuehao; cin>>xuehao; ifstream is("学生.txt",ios_base::binary); for(int i=0;!is.eof();i++) { is.seekg(48*i); is.read(reinterpret_cast< char *>(& s),sizeof(s)); if(s.xuehao==xuehao) { cout<<"该生姓名为"<<s.name<<endl; cout<<"专业是"<<s.major<<endl; cout<<"年级是"<<s.grade<<endl; cout<<"所选课程名是"<<s.coursename<<endl; menu(); break; } } is.close(); if(s.xuehao!=xuehao) cout<<"没有这个学生"<<endl; } void checkcor()//查询课程信息 { course s; cout<<"请输入课程号:"; int classnum; cin>>classnum; ifstream is("课程.txt",ios_base::binary); for(int i=0;!is.eof();i++) { is.seekg(28*i); is.read(reinterpret_cast<char * >(& s),sizeof(s)); if(s.classnum==classnum ) { cout<<"课程名是"<<s.name<<endl; cout<<"课程号是"<<s.classnum<<endl; cout<<"任课老师姓名"<<s.teachername<<endl; menu(); break; } } is.close(); if(s.classnum!=classnum) cout<<"没有这个课程"<<endl; } void checktea()//查询教师信息 { teacher s; cout<<"请输入教师号"<<endl; int jiaoshihao; cin>>jiaoshihao; ifstream is("老师.txt",ios_base::binary); for(int i=0;!is.eof();i++) { is.seekg(28*i); is.read(reinterpret_cast<char*>(& s),sizeof(s)); if(s.jiaoshihao==jiaoshihao) { cout<<"教师名是"<<s.name<<endl; cout<<"教师号是"<<s.jiaoshihao<<endl; cout<<"所授课程"<<s.coursename<<endl; menu(); break; } } is.close(); if(s.jiaoshihao!=jiaoshihao) cout<<"没有这个教师"<<endl; } void check()//查询主菜单 { int chose; cout<<"1.查询学生信息"<<endl; cout<<"2.查询课程信息"<<endl; cout<<"3.查询授课教师信息"<<endl; cout<<"4.还回主菜单"<<endl; cout<<"请输入选项序号(1~4):"<<endl; cin>>chose; switch(chose) { case 1: checkstu();break; case 2: checkcor();break; case 3: checktea();break; case 4: menu();break; default : cout<<"error"<<endl; } } void changestu()//修改学生信息 { student s; int mark; cout<<"请输入需要修改信息的学生学号"<<endl; int xuehao; cin>>xuehao; ifstream is("学生.txt",ios_base::binary); for(int i=0;!is.eof();i++) { is.seekg(48*i); is.read(reinterpret_cast<char*>(& s),sizeof(s)); if(s.xuehao==xuehao) { cout<<"请输入要修改的学生姓名"<<endl; cin>>s.name ; cout<<"请输入要修改的学生年级"<<endl; cin>>s.grade; cout<<"请输入要修改的学生专业"<<endl; cin>>s.major; cout<<"请输入要修改的学生所选课程"<<endl; cin>>s.coursename; menu(); mark=48*i; break; } } is.close(); if(s.xuehao!=xuehao) cout<<"没有这个学生"<<endl; else { ofstream os("学生.txt",ios_base::in|ios_base::binary); os.seekp(mark); os.write(reinterpret_cast<char*>(& s),sizeof(s)); os.close(); } } void changecour()//修改课程信息 { int mark; course s; cout<<"请输入要修改课程信息的课程号"<<endl; int classnum; cin>>classnum; ifstream is("课程.txt",ios_base::binary); for(int i=0;!is.eof();i++) { is.seekg(28*i); is.read(reinterpret_cast<char*>(& s),sizeof(s)); if(s.classnum==classnum) { cout<<"请输入要修改的课程名"<<endl; cin>>s.name; cout<<"请输入要修改的任课老师"<<endl; cin>>s.teachername; cout<<"修改完毕"<<endl; mark=28*i; menu(); break; } } is.close(); if(s.classnum!=classnum) cout<<"没有这个课程"<<endl; else { ofstream os("课程.txt",ios_base::binary|ios_base::in); os.seekp(mark); os.write(reinterpret_cast<char*>(& s),sizeof(s)); os.close(); } } void changetea() //修改教师信息 { teacher s; int mark; cout<<"请输入教师号"<<endl; int jiaoshihao; cin>>jiaoshihao; ifstream is("老师.txt",ios_base::binary); for(int i=0;!is.eof();i++) { is.seekg(28*i); is.read(reinterpret_cast<char*>(& s),sizeof(s)); if(s.jiaoshihao==jiaoshihao) { cout<<"你要修改的教师名是"<<s.name<<endl; cin>>s.name; cout<<"你要修改的课程名"<<endl; cin>>s.coursename; cout<<"修改完毕"<<endl; mark=28*i; menu(); break; } } is.close(); if(s.jiaoshihao!=jiaoshihao) cout<<"没有这个课程"<<endl; else { ofstream os("老师.txt",ios_base::binary|ios_base::in); os.seekp(mark); os.write(reinterpret_cast< char*>(& s),sizeof(s)); os.close(); } } void change()//修改 { cout<<"1.修改学生信息"<<endl; cout<<"2.修改课程信息"<<endl; cout<<"3.修改授课教师信息"<<endl; cout<<"4.还回主菜单"<<endl; cout<<"请输入选项序号(1~4):"<<endl; int chose; cin>>chose; switch(chose) { case 1: changestu();break; case 2: changecour();break; case 3: changetea();break; case 4: menu();break; default : cout<<"error"<<endl; } } void setstu()//输入学生信息 { student s1; s1.set(); } void setcour()//输入课程信息 { course s2; s2.set(); } void settea()//输入老师信息 { teacher s1; s1.set(); } void set()//输入函数 { int chose; cout<<"1.录入学生信息"<<endl; cout<<"2.录入课程信息"<<endl; cout<<"3.录入授课教师信息"<<endl; cout<<"4.还回主菜单"<<endl; cout<<"请输入选项序号(1~4):"<<endl; cin>>chose; switch (chose) { case 1 :setstu(); break; case 2: setcour(); break; case 3 :settea();break; case 4 :menu();break; default :cout<<"error"<<endl; } } int main() { menu(); while(1) { int chose; cin>>chose; switch (chose) { case 1 :set();break; case 2 :check();break; case 3 :change();break; case 4: return 0; } } return 0; }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服