学生选修课管理系统C++课程设计
课程设计选课管理系统

课程设计选课管理系统一、教学目标本课程的学习目标包括知识目标、技能目标和情感态度价值观目标。
知识目标要求学生掌握课程管理系统的基本概念、设计和实施方法。
技能目标要求学生能够运用课程管理系统进行课程安排、教学资源管理和教学评估。
情感态度价值观目标要求学生树立正确的教育观念,认识到课程管理系统在提高教学质量和效率方面的重要性。
通过本课程的学习,学生将能够:1.描述课程管理系统的基本概念和功能。
2.解释课程管理系统的设计原则和实施方法。
3.应用课程管理系统进行课程安排和教学资源管理。
4.评估课程管理系统的效果并进行改进。
5.认识到课程管理系统在提高教学质量和效率方面的重要性。
二、教学内容本课程的教学内容主要包括课程管理系统的基本概念、设计和实施方法。
具体内容包括:1.课程管理系统的定义、功能和分类。
2.课程管理系统的设计原则和方法。
3.课程管理系统的实施步骤和技巧。
4.课程管理系统在教学实践中的应用案例。
5.第1周:课程管理系统的基本概念。
6.第2周:课程管理系统的设计原则和方法。
7.第3周:课程管理系统的实施步骤和技巧。
8.第4周:课程管理系统在教学实践中的应用案例。
三、教学方法本课程将采用讲授法、讨论法、案例分析法和实验法等多种教学方法。
通过多样化教学方法,激发学生的学习兴趣和主动性。
1.讲授法:教师讲解课程管理系统的基本概念、设计和实施方法。
2.讨论法:学生分组讨论课程管理系统的应用案例,分享心得体会。
3.案例分析法:分析实际应用中的课程管理系统,引导学生思考和解决问题。
4.实验法:学生动手操作课程管理系统,进行课程安排和教学资源管理。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。
1.教材:课程管理系统教材,用于讲解基本概念、设计和实施方法。
2.参考书:相关领域的研究成果和案例,用于拓展学生视野。
3.多媒体资料:教学PPT、视频和音频资料,用于辅助讲解和演示。
4.实验设备:计算机、投影仪等设备,用于实验操作和展示。
选修课管理系统文档(数据库课程设计)

数据库系统设计课程设计任务书计算机科学与技术学院制目录1.相关专业背景功能--------------------------------- 12.需求分析--------------------------------------- 43.概念模型与E-R图__________________________________13 4.E-R模型转换-----------------------------------145.数据库设计与建立------------------------------176、连接数据库---------------------------------------237. 个人总结-----------------------------------------248.参考文献--------------------------------------25一、选修课管理系统的相关背景功能选修课管理系统是一个面向学校教务管理人员、教师和学生并为其提供服务的管理系统。
选修课管理系统所经历的三个阶段一、没有电脑的年代,网上选课根本不存在,当时学生根据自己的爱好兴趣等方面,先选择相应的课程,然后由班级上报院系,再通过人工整理所上报的信息的办法,决定每个人的选课信息以及任课老师所教的课程,也就是说几乎谈不上选修课管理系统这么一说。
二、每个院系有了为数不多的几台电脑后,班级上报院系的信息,由院系先在电脑上登记,最后交给教务处,教务处通过选修课管理系统(还不够完善),经过审核决定最终结果并公布;三、电脑普及率很高,也就是现在这样,网上选课已不成问题,教务处直接通过选修课管理系统,了解与审核选课信息,最终决定最后的结果并公布。
有关选修课的概念与定义选修课与“必修课”相对。
主要指高等学校和中等专业学校中学习某一专业的学生可以有选择地学习的课程。
在教学计划中一般不作硬性规定。
分限制性选修课程(某些特定专业指定选修课程,对该专业来说可视为必修课)和非限制性选修课程(任意专业选修课程)两种。
教务管理系统c语言课程设计

教务管理系统c语言课程设计一、教学目标本课程的教学目标是使学生掌握教务管理系统的基本原理和设计方法,能够运用C语言进行简单的教务管理系统开发。
具体分为以下三个部分:1.知识目标:使学生掌握C语言的基本语法、数据结构、算法和面向对象编程思想,了解教务管理系统的功能和结构。
2.技能目标:培养学生具备运用C语言进行程序设计的能力,能够独立完成简单的教务管理系统模块设计与实现。
3.情感态度价值观目标:培养学生对编程事业的热爱,提高学生解决实际问题的积极性,培养学生的团队协作精神和自主学习能力。
二、教学内容本课程的教学内容主要包括以下几个部分:1.C语言基础知识:数据类型、运算符、表达式、语句、函数等。
2.数据结构:数组、链表、栈、队列、树、图等。
3.算法:排序算法、查找算法、常用算法分析等。
4.面向对象编程:类、对象、封装、继承、多态等。
5.教务管理系统设计:系统需求分析、系统架构设计、模块划分、功能实现等。
三、教学方法为了达到本课程的教学目标,我们将采用以下几种教学方法:1.讲授法:通过讲解知识点,使学生掌握基本概念和原理。
2.案例分析法:分析实际案例,使学生了解教务管理系统的应用场景和设计方法。
3.实验法:让学生动手编写代码,培养实际编程能力。
4.讨论法:分组讨论问题,培养学生的团队协作精神和解决问题的能力。
四、教学资源为了支持本课程的教学内容和教学方法,我们将准备以下教学资源:1.教材:《C程序设计语言》(K&R)、《C Primer Plus》等。
2.参考书:《数据结构与算法分析》(C语言版)、《深度探索C++对象模型》等。
3.多媒体资料:教学PPT、视频教程、在线编程练习等。
4.实验设备:计算机、网络环境、编程调试工具等。
五、教学评估本课程的评估方式包括以下几个部分:1.平时表现:通过课堂参与、提问、讨论等环节,评估学生的学习态度和积极性。
2.作业:布置课后作业,评估学生的编程能力和对知识的理解程度。
c++学生管理系统课程设计

c++学生管理系统课程设计C++学生管理系统课程设计是一个非常常见的编程项目,旨在帮助学生练习使用C++语言来实现一个基本的学生信息管理系统。
这个系统可以用于录入、查看、修改和删除学生信息,并可以计算学生的平均分和排名。
在这个系统中,学生信息可以包括学号、姓名、性别、年龄、班级和成绩等。
通过使用C++的面向对象编程思想,可以创建一个学生类来表示学生信息,并可以在主程序中实例化该类来创建和管理学生对象。
首先,系统需要提供一个菜单界面,让用户可以选择不同的操作,比如添加学生信息、查看学生信息、修改学生信息和删除学生信息等。
用户可以通过输入相应的选项来执行特定的操作。
对于添加学生信息的操作,系统会要求用户输入学生的各个属性值,并根据输入的值创建一个新的学生对象并将其添加到系统中。
系统还可以提供验证机制,确保输入的学号不重复。
对于查看学生信息的操作,系统会将保存的学生信息按照一定的格式打印出来,以便用户查看。
用户可以选择按学号、姓名、班级等排序方式来查看学生信息。
对于修改学生信息的操作,系统会提示用户输入要修改的学生的学号,并根据学号在系统中查找对应的学生对象。
然后,用户可以选择要修改的属性,并输入新的值来更新学生对象的信息。
对于删除学生信息的操作,系统会提示用户输入要删除的学生的学号,并根据学号在系统中查找对应的学生对象。
然后,系统会确认用户是否要删除该学生信息,并在用户确认后将该学生对象从系统中移除。
除了上述基本功能,学生管理系统还可以提供其他附加功能,比如计算学生的平均分和排名。
系统可以遍历所有学生对象,并计算出他们的平均分和排名,然后将结果打印出来供用户查看。
总的来说,C++学生管理系统课程设计是一个综合性的编程项目,通过实现该项目,学生可以练习和巩固他们在C++语言和面向对象编程方面的知识。
此外,通过这个项目,学生还可以提高他们的逻辑思维能力和问题解决能力。
学生选课系统orcl课程设计

学生选课系统orcl课程设计一、教学目标本课程旨在通过学习Oracle学生选课系统的设计与实现,使学生掌握数据库管理系统的基本原理和应用,培养学生运用Oracle技术解决实际问题的能力。
具体目标如下:1.知识目标:–理解数据库管理系统的基本概念和架构。
–掌握Oracle数据库的基本操作和SQL语言。
–了解关系数据库的设计原则和范式。
–学习Oracle数据库的存储过程和触发器的编写。
2.技能目标:–能够熟练使用Oracle SQL进行数据查询、更新、删除和插入。
–能够设计和实现简单的数据库应用系统。
–能够编写简单的存储过程和触发器。
–能够对数据库进行性能优化和故障排除。
3.情感态度价值观目标:–培养学生的团队合作意识和问题解决能力。
–增强学生对数据库技术的重要性和应用前景的认识。
–培养学生对技术的热情和持续学习的动力。
二、教学内容本课程的教学内容主要包括Oracle数据库的基本概念、操作和应用。
具体内容包括:1.Oracle数据库的基本概念和架构。
2.SQL语言的基本操作,包括数据查询、更新、删除和插入。
3.关系数据库的设计原则和范式。
4.Oracle数据库的存储过程和触发器的编写和应用。
5.数据库性能优化和故障排除。
教学内容将按照上述主题进行,每个主题都将通过理论讲解、案例分析和实践操作相结合的方式进行教学。
三、教学方法为了提高学生的学习兴趣和主动性,将采用多种教学方法进行教学。
具体包括:1.讲授法:用于讲解基本概念、原理和理论知识。
2.案例分析法:通过分析实际案例,使学生更好地理解和应用理论知识。
3.实验法:通过实际操作,使学生掌握Oracle数据库的基本操作和应用。
4.小组讨论法:通过小组讨论,培养学生的团队合作意识和问题解决能力。
四、教学资源为了支持教学内容和教学方法的实施,将选择和准备以下教学资源:1.教材:选用权威、实用的Oracle数据库教材。
2.参考书:提供相关的Oracle数据库参考书籍,供学生深入学习。
c#课程设计学生选课系统设计

c#课程设计学生选课系统设计一、课程目标知识目标:1. 学生能掌握C#编程语言的基础知识,包括数据类型、控制结构、类与对象等;2. 学生能理解数据库的基本原理,掌握SQL语句的编写和数据库操作;3. 学生能了解学生选课系统的业务需求,掌握系统设计的基本方法和步骤。
技能目标:1. 学生能运用C#语言编写学生选课系统的功能模块,如登录、选课、退课等;2. 学生能通过数据库技术实现对学生选课信息的管理,包括数据存储、查询和更新;3. 学生能运用面向对象的设计思想,设计出结构清晰、易于维护的学生选课系统。
情感态度价值观目标:1. 学生通过课程学习,培养对计算机编程的兴趣和热情,提高信息素养;2. 学生在团队协作中,培养沟通与协作能力,增强团队意识;3. 学生在解决实际问题的过程中,培养勇于探索、积极创新的精神。
课程性质:本课程为实践性较强的课程,结合课本知识,以学生选课系统为案例,使学生掌握C#编程和数据库技术。
学生特点:学生具备一定的C#编程基础和数据库知识,对实际项目开发感兴趣,但可能缺乏项目实践经验。
教学要求:课程应注重理论与实践相结合,强调动手实践,引导学生通过自主学习和团队合作,完成学生选课系统的设计与实现。
同时,关注学生的情感态度价值观的培养,提高学生的综合素质。
二、教学内容1. C#编程基础:- 数据类型与变量- 控制结构(顺序、分支、循环)- 方法与数组- 类与对象- 继承与多态- 异常处理2. 数据库原理与应用:- 数据库基本概念- SQL语句(SELECT、INSERT、UPDATE、DELETE)- 数据库设计(实体关系、E-R图)- 数据库访问技术3. 学生选课系统设计:- 系统需求分析- 系统设计(模块划分、类设计)- 数据库设计(表结构设计、关系建立)- 界面设计(UI设计、用户体验)- 功能实现(登录、选课、退课、查询成绩等)4. 项目实践与团队协作:- 项目开发流程- 团队协作与沟通- 代码版本控制(如Git)- 项目测试与调试教学内容根据课程目标,结合教材章节,进行科学组织和系统安排。
课程设计报告--学生选课管理系统

数据库课程设计报告学生选课管理系统班级:10软件本2成员:常东亚 100913010彭红明 100913028章鑫 100913050目录一、课程设计任务和目的 (2)二、需求描述 (2)三、系统总体设计 (3)1.系统架构设计 (3)2.功能模块设计 (3)3.数据库设计(概要设计) (5)(1)E-R图 (5)(2)关系模式 (5)(3)数据库管理系统 (6)(4)数据库命名 (6)(5)数据库表 (6)四、系统界面设计 (11)1、用户登录账号和密码 (11)2、窗体功能描述 (12)3、页面/窗体关系结构图 (16)五、系统实现技术小结 (16)六、课程设计体会 (19)七、系统主要源程序清单 (20)一、课程设计任务和目的完成学生选课管理系统的开发并掌握SQL数据库的建立和使用。
二、需求描述本系统是一个单机版的小型的学生选课管理系统,在本系统中,开发了一个面向管理员、学生和教师这三个对象的教务平台,对学生提供的服务有登录、选课、、修改登录密码、和查询成绩这几个服务,所选课程总数不能超过3门;对教师提供的服务有登录、修改登录密码和登录成绩;对管理员提供的服务有登录开设学生和教师帐号、删除学生和教师帐号的服务。
三、系统总体设计1.系统架构设计(1)架构:单机(2)运行软件环境: windows XP 、jdk1.6(3)开发环境:硬件平台:CPU:P41.8GHz内存:256MB以上软件平台:windows XP SP3 、jdk1.6操作系统:WindowsXP数据库:SQL Server 2000、SQLServer SP4补丁开发工具:Eclipse 3.3分辨率:1024*7682.功能模块设计各模块功能:● 登录界面:登录界面是有帐号,密码两个JTextField ,管理员帐号一字母A开头,教师帐号一字母T 开头,学生帐号以字母S 开头,登录帐号或密码输入错误会弹出相应的提示对话框。
管理信息系统课程设计--以学生选课系统为例

管理信息系统课程设计--以学生选课系统为例(共26页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--目录1、前言 (3)、系统简介、开发目的、可行性研究、使用环境与开发工具2、系统分析 (4)、系统基本功能描述、系统需求分析 6、组织机构6、管理职能分析 6、业务流程分析 6、数据流程分析 6、数据字典 6现行系统评价 63、新系统设计 (4)1、系统目标设计 52、新系统功能(模块)结构图 63、新系统计算机信息系统流程设计 64、代码设计 65、系统物理配置方案设计 66、数据库设计 67、输出/输入设计 68、程序模块设计说明 6四、设计小结 (1)1、小组总结 22、个人总结 3五、参考文献 (1)六、分工说明 (1)说明:我们小组研究的课题是:学生选修课信息管理系统。
在研究过程中,我们使用的开发工具主要是Windows2003和Visual 。
我们把研究的重点放在在系统分析、系统设计实现过程、方法及内容等方面。
1.前言系统简介管理信息系统是一个以人为主导,利用计算机硬件、软件、网络通信设备以及其他办公设备,进行信息的收集、传输、加工、储存、更新和维护,以企业战略竞优、提高效益和效率为目的,支持企业的高层决策、中层控制、基层运作的集成化的人机系统。
其主要任务是最大限度的利用现代计算机及网络通讯技术加强企业的信息管理,通过对企业拥有的人力、物力、财力、设备、技术等资源的调查了解,建立正确的数据,加工处理并编制成各种信息资料及时提供给管理人员,以便进行正确的决策,不断提高企业的管理水平和经济效益。
随着Internet的飞速发展深刻地影响了人们的日常生活和商业运作方式。
社会的方方面面渗透着互连网的应用,使得一向烦琐的手工程序变得方便,快捷。
学校网上选课系统正是基于这一思想发展起来的。
学生网上选课系统已经在很多高校得到广泛的应用,而且深得广大师生的称赞。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include<iostream.h>#include<string.h>#include<fstream.h>#include <stdlib.h>#include <time.h>//using namespace std;const int count =3;class situaction;class student{ public:int sno;char sname[20];char sex[3];int age;char depart[20];char classno[20];char lianx[40];//public:friend void sselect();friend void supdate();friend void sdelet();friend void saccount();friend void sdisplay();friend istream & operator >> (istream & in,student &stu){in>>stu.sno>>stu.sname>>stu.sex>>stu.age>>stu.depart>>stu.classno>>stu.lianx;return in;}friend ostream & operator<< ( ostream & out,student &stu){out<<stu.sno<<" "<<stu.sname<<" "<<stu.sex<<" "<<stu.age<<" "<<stu.depart<<" "<<stu.classno<<" "<<stu.lianx<<endl;return out;}friend void xkadd();friend void sadd();};void sadd(){ while(1){int flag1=0;student s;cout<<"请输入要添加的学生的学号、姓名、性别、年龄、系别、班级、联系式"<<endl;cin>>s;ifstream in("e:\\studentfile.txt");if(!in){cout<<"打开学生信息文件失败!"<<endl;return ;}student stu;in.read((char*)&stu,sizeof(student));while(!in.eof()){ if(s.sno==stu.sno) {flag1=1; break;}in.read((char*)&stu,sizeof(student));}in.close();if(flag1==1) cout<<"该学生已经在文件中存在不允添加!" <<endl;else{ ofstream out("e:\\studentfile.txt",ios::app);out.write((char*)&s,sizeof(student));out.close();}system("pause");break;}}void sselect(){ while(1){ system("cls");cout<<"***********请选择要查询的类别:*************"<<endl;cout<<"*********** 按学生学号请按1:************* "<<endl;cout<<"*********** 按学生姓名请按2:*************"<<endl;cout<<"*********** 按学生系别请按3:*************"<<endl;cout<<"*********** 按学生班级请按4:*************"<<endl;cout<<"*********** 返回上一级界面请按5:*************"<<endl;int sn;cin>>sn;while(sn>5||sn<1){cout<<"选择的数据无效,请重新输入:"<<endl;cin>>sn;}cout<<endl;ifstream in("e:\\studentfile.txt");if(!in){ cout<<"打开学生信息文件失败!"<<endl;return ;}int flag=0;switch(sn){case 1: {int no;cout<<"请输入要查询的学生的学号"<<endl;cin>>no;student stu;in.read((char*)&stu,sizeof(student));while(!in.eof()){ if(no==stu.sno) {cout<<stu<<endl; flag=1;}in.read((char*)&stu,sizeof(student));}break;}case 2: {char name[20];cout<<"请输入要查询的学生的姓名"<<endl;cin>>name;student stu;in.read((char*)&stu,sizeof(student));while(!in.eof()){ if(strcpy(name,stu.sname)==0) {cout<<stu<<endl; flag=1;}in.read((char*)&stu,sizeof(student));}break;}case 3: {char dep[20];cout<<"请输入要查询的学生的系别"<<endl;cin>>dep;student stu;in.read((char*)&stu,sizeof(student));while(!in.eof()){ if(strcmp(dep,stu.depart)==0) {cout<<stu<<endl; flag=1;}in.read((char*)&stu,sizeof(student));}break;}case 4: {char clno[20];cout<<"请输入要查询的学生的班级"<<endl;cin>>clno;student stu;in.read((char*)&stu,sizeof(student));while(!in.eof()){ if(strcmp(clno,stu.classno)==0) {cout<<stu<<endl; flag=1;}in.read((char*)&stu,sizeof(student));}break;}case 5: return ;}in.close();if(flag==0) cout<<"要查询的学生在文件不存在!" <<endl;system("pause");}}void supdate(){ while(1){ system("cls");cout<<"***********请选择按下列类别查询后修改:*************"<<endl;cout<<"*********** 按学生学号请按1:************* "<<endl;cout<<"*********** 按学生姓名请按2:*************"<<endl;cout<<"*********** 按学生系别请按3:*************"<<endl;cout<<"*********** 按学生班级请按4:*************"<<endl;cout<<"*********** 返回上一级界面请按5:*************"<<endl;int sn;cin>>sn;while(sn>5||sn<1){cout<<"选择的数据无效,请重新输入:"<<endl;cin>>sn;}cout<<endl;fstream in("e:\\studentfile.txt",ios::in|ios::out);if(!in){ cout<<"打开学生信息文件失败!"<<endl;return ;}int flag=0;switch(sn){case 1: {int no;cout<<"请输入要查询的学生的学号"<<endl;cin>>no;student stu;int i=0;in.seekg(i*sizeof(student),ios::beg);in.read((char*)&stu,sizeof(student));while(!in.eof()){ if(no==stu.sno){ cout<<stu<<endl;cout<<"请输入要修改的学生的学号、姓名、性别、年龄、系别、班级、联系式"<<endl;cin>>stu;in.seekp(i*sizeof(student),ios::beg);in.write((char*)&stu,sizeof(student));flag=1;}i++;in.seekg(i*sizeof(student),ios::beg);in.read((char*)&stu,sizeof(student));}break;}case 2:case 3:case 4:case 5: return ;}in.close();if(flag==0) cout<<"要修改的学生在文件不存在!" <<endl;system("pause");}}void sdelet(){ while(1){ system("cls");cout<<"***********请选择按下列类别查询后删除:*************"<<endl;cout<<"*********** 按学生学号请按1:************* "<<endl;cout<<"*********** 按学生姓名请按2:*************"<<endl;cout<<"*********** 按学生系别请按3:*************"<<endl;cout<<"*********** 按学生班级请按4:*************"<<endl;cout<<"*********** 返回上一级界面请按5:*************"<<endl;int sn;cin>>sn;while(sn>5||sn<1){cout<<"选择的数据无效,请重新输入:"<<endl;cin>>sn;}cout<<endl;student stu[20];int flag=0;switch(sn){case 1: { ifstream in("e:\\studentfile.txt");if(!in){ cout<<"打开学生信息文件失败!"<<endl;return ;}int n=0;in.read((char*)&stu[n],sizeof(student));while(!in.eof()){ n++;in.read((char*)&stu[n],sizeof(student));}in.close();int no;cout<<"请输入要删除的学生的学号"<<endl;cin>>no;for(int i=0;i<n;i++){ if(no==stu[i].sno){ cout<<stu[i]<<endl;cout<<"是否要删除该学生的信息!"<<endl;char ch;cin>>ch;if( ch='Y'||ch=='y'){for(int j=i;j<n;j++)stu[j]=stu[j+1];n--;}flag=1;}}if(flag==0) cout<<"要修改的学生在文件不存在!" <<endl;else{ofstream out("e:\\studentfile.txt");if(!out){ cout<<"打开学生信息文件失败!"<<endl;return ;}for(int k=0;k<n;k++){ out.seekp(k*sizeof(student),ios::beg);out.write((char*)&stu[k],sizeof(student));}out.close();}break;}case 2:case 3:case 4:case 5: return ;}system("pause");}}void saccount(){ ifstream ifs("e:\\studentfile.txt");if(!ifs){cout<<"打开文件失败!";system("pause");return ;}int i=0;student s;ifs.read((char*)&s,sizeof(student));while(!ifs.eof()){i++;ifs.read((char*)&s,sizeof(student));}ifs.close();cout<<"学生:"<<i<<"人"<<endl;ifs.close();system("pause");}void sdisplay(){ ifstream in("e:\\studentfile.txt",ios::in);if(!in){cout<<"打开学生信息文件失败!"<<endl;return ;}student stu;in.read((char*)&stu,sizeof(student));while(!in.eof()){ cout<<stu<<endl;in.read((char*)&stu,sizeof(student));}in.close();system("pause");}class course{ public:int cno;char cname[20];char cxz[10];int zxs;int xf;char kcxq[10];int xxrs;//public:friend void cadd();friend void cselect();friend void cupdate();friend void cdelet();friend void caccount();friend void cdisplay();friend istream & operator >> (istream & in, course &cou){in>>o>>ame>>cou.cxz>>cou.zxs>>cou.xf>>cou.kcxq>>cou.xxrs;return in;}friend ostream & operator <<(ostream & out,course &cou){ out<<o<<" "<<ame<<" "<<cou.cxz<<" "<<cou.zxs<<" "<<cou.xf<<" "<<cou.kcxq<<" "<<cou.xxrs<<endl;return out;}friend void xkadd();};void cadd(){ int flag1=0;course c;cout<<"请输入要添加的课程的课程代码、课程名称、课程性质、总学时、学分、开课学期、选修人数"<<endl;cin>>c;ifstream in("e:\\coursefile.txt");if(!in){cout<<"打开课程信息文件失败!"<<endl;return ;}course cou;in.read((char*)&cou,sizeof(course));while(!in.eof()){ if(o==o) {flag1=1; break;}in.read((char*)&cou,sizeof( course));}in.close();if(flag1==1) cout<<"该课程已经在文件中存在不允添加!" <<endl; else{ ofstream out("e:\\coursefile.txt",ios::app);out.write((char*)&c,sizeof(course));out.close();}system("pause");}void cselect(){while(1){ system("cls");cout<<"*********** 请选择要查询的类别:*************"<<endl;cout<<"*********** 按课程编号请按1:************* "<<endl;cout<<"*********** 按课程名称请按2:*************"<<endl;cout<<"*********** 返回上一级界面请按3:*************"<<endl;int sn;cin>>sn;while(sn>3||sn<1){cout<<"选择的数据无效,请重新输入:"<<endl;cin>>sn;}cout<<endl;ifstream in("e:\\coursefile.txt");if(!in){ cout<<"打开课程信息文件失败!"<<endl;return ;}int flag=0;switch(sn){case 1: {int no;cout<<"请输入要查询的课程的编号"<<endl;cin>>no;course ke;in.read((char*)&ke,sizeof(course));while(!in.eof()){ if(no==o) {cout<<ke<<endl; flag=1;} in.read((char*)&ke,sizeof(course));//if(no==ke. char*)&ke,sizeof(course));}break;}case 2: {char name[25];cout<<"请输入要查询的课程的名称"<<endl;cin>>name;course ke;in.read((char*)&ke,sizeof(course));while(!in.eof()){ if(strcpy(name,ame)==0) {cout<<ke<<endl; flag=1;}in.read((char*)&ke,sizeof(course));}break;}case 3: return ;}in.close();if(flag==0) cout<<"要查询的课程在文件不存在!" <<endl;system("pause");}}void cupdate(){ while(1){ system("cls");cout<<"***********请选择按下列类别查询后修改:*************"<<endl;cout<<"*********** 按课程编号请按1:************* "<<endl; cout<<"*********** 按课程名称请按2:*************"<<endl;cout<<"*********** 按课程性质请按3:*************"<<endl;cout<<"*********** 按课程学分请按4:*************"<<endl;cout<<"*********** 返回上一级界面请按5:*************"<<endl;int sn;cin>>sn;while(sn>5||sn<1){cout<<"选择的数据无效,请重新输入:"<<endl;cin>>sn;}cout<<endl;fstream in("e:\\studentfile.txt",ios::in|ios::out);if(!in){ cout<<"打开课程信息文件失败!"<<endl;return ;}int flag=0;switch(sn){case 1: {int no;cout<<"请输入要查询的课程的编号"<<endl;cin>>no;course k;int i=0;in.seekg(i*sizeof(course),ios::beg);in.read((char*)&k,sizeof(course));while(!in.eof()){ if(no==o){ cout<<k<<endl;cout<<"请输入要修改的课程的编号,名称,性质,学分"<<endl;cin>>k;in.seekp(i*sizeof(course),ios::beg);in.write((char*)&k,sizeof(course));flag=1;}i++;in.seekg(i*sizeof(course),ios::beg);in.read((char*)&k,sizeof(course));}break;}case 2: {int no;cout<<"请输入要查询的学生的学号"<<endl;cin>>no;student stu;int i=0;in.seekg(i*sizeof(student),ios::beg);in.read((char*)&stu,sizeof(student));while(!in.eof()){ if(no==stu.sno){ cout<<stu<<endl;cout<<"请输入要修改的的课程的编号,名称,性质,学分"<<endl;cin>>stu;in.seekp(i*sizeof(student),ios::beg);in.write((char*)&stu,sizeof(student));flag=1;}i++;in.seekg(i*sizeof(student),ios::beg);in.read((char*)&stu,sizeof(student));}break;}case 3: return ;}in.close();if(flag==0) cout<<"要修改的选课信息在文件不存在!" <<endl;system("pause");}}void cdelet(){while(1){ system("cls");cout<<"***********请选择按下列类别查询后删除:*************"<<endl;cout<<"*********** 按课程编号请按1:************* "<<endl;cout<<"*********** 按课程名称请按2:*************"<<endl;cout<<"*********** 返回上一级界面请按3:*************"<<endl;int sn;cin>>sn;while(sn>3||sn<1){cout<<"选择的数据无效,请重新输入:"<<endl;cin>>sn;}cout<<endl;course k[20];int flag=0;switch(sn){case 1: { ifstream in("e:\\coursefile.txt");if(!in){ cout<<"打开课程信息文件失败!"<<endl;return ;}int n=0;in.read((char*)&k[n],sizeof(course));while(!in.eof()){ n++;in.read((char*)&k[n],sizeof(course));}in.close();int no;cout<<"请输入要删除的课程的编号"<<endl;cin>>no;for(int i=0;i<n;i++){ if(no==k[i].cno){ cout<<k[i]<<endl;cout<<"是否要删除该课程的信息!"<<endl;char ch;cin>>ch;if( ch='Y'||ch=='y'){for(int j=i;j<n;j++)k[j]=k[j+1];n--;}flag=1;}}if(flag==0) cout<<"要修改的课程在文件不存在!" <<endl;else{ofstream out("e:\\coursefile.txt");if(!out){ cout<<"打开课程信息文件失败!"<<endl;return ;}for(int i=0;i<n;i++){ out.seekp(i*sizeof(course),ios::beg);out.write((char*)&k[i],sizeof(course));}out.close();}break;}case 2:case 3:case 4:case 5: return ;}system("pause");}}void caccount(){ ifstream ifs("d:\\coursetfile.txt");if(!ifs){cout<<"打开文件失败!";system("pause");return ;}int i=0;course ke;ifs.read((char*)&ke,sizeof(course));while(!ifs.eof()){ i++;ifs.read((char*)&ke,sizeof(course));}ifs.close();cout<<"课程:"<<i<<"门"<<endl;ifs.close();system("pause");}void cdisplay(){ ifstream in("e:\\coursefile.txt");if(!in){cout<<"打开课程信息文件失败!"<<endl;return ;}course cou;in.read((char*)&cou,sizeof( course));while(!in.eof()){ cout<<cou;in.read((char*)&cou,sizeof( course));}in.close();system("pause");}class situaction{ public:int sno;int cno;int score;// public:friend void xkadd();friend void xkselect();friend void xkupdate();friend void xkdelet();friend void xkaccount();friend void xkdisplay();friend istream & operator >> (istream & in, situaction &si){ in>>si.sno>>o;si.score=0;return in;}friend ostream & operator <<(ostream & out,situaction &si){ out<<si.sno<<" "<<o<<" "<<si.score<<endl;return out;}};void xkadd(){ situaction xk;cout<<"请输入要选修的学号、课程号"<<endl;cin>>xk;int flag1=0, flag2=0;ifstream in1("e:\\studentfile.txt");if(!in1){cout<<"打开学生信息文件失败!"<<endl;return ;}student stu;in1.read((char*)&stu,sizeof(student));while(!in1.eof()){ if(xk.sno==stu.sno) {flag1=1; break;}in1.read((char*)&stu,sizeof(student));}in1.close();if(flag1==0) cout<<"该学生不存在不允选课!" <<endl; else{ course cou;ifstream in2("e:\\coursefile.txt");if(!in2){cout<<"打开课程文件失败!"<<endl;return ;}in2.read((char*)&cou,sizeof(course));while(!in2.eof()){ if(o==o) {flag2=1; break;}in2.read((char*)&cou,sizeof(course));}in2.close();if(flag2==0) cout<<"该课程不存在不允选课!" <<endl;else{ situaction si;int scount=0,ccount=0;ifstream in3("e:\\situationfile.txt");if(!in3){cout<<"打开选课文件失败!"<<endl;return ;}in3.read((char*)&si,sizeof(situaction));while(!in3.eof()){ if(xk.sno==si.sno) ccount++;if(o==o) scount++;in3.read((char*)&si,sizeof(situaction));}in3.close();if(cou.xxrs<=scount) cout<<"该课程人数已满不允选课!" <<endl;else if(count<=ccount) cout<<"该学生已选满"<<count<<"不允选课!" <<endl;else{ ofstream out("e:\\situactionfile.txt",ios::app);out.write((char*)&xk,sizeof(situaction));out.close();}}}system("pause");void xkselect(){while(1){ system("cls");cout<<"*********** 请选择要查询的类别:*************"<<endl;cout<<"*********** 按学生编号请按1:************* "<<endl;cout<<"*********** 按课程编号请按2:************* "<<endl;cout<<"*********** 返回上一级界面请按3:*************"<<endl;int sn;cin>>sn;while(sn>3||sn<1){cout<<"选择的数据无效,请重新输入:"<<endl;cin>>sn;}cout<<endl;ifstream in("e:\\situactionfile.txt");if(!in){ cout<<"打开选课信息文件失败!"<<endl;return ;}int flag=0;switch(sn){case 1: {int no;cout<<"请输入要查询的学生的学号"<<endl;cin>>no;situaction stu;in.read((char*)&stu,sizeof(situaction));while(!in.eof()){ if(no==stu.sno) {cout<<stu<<endl; flag=1;}in.read((char*)&stu,sizeof(situaction));}break;}case 2: {int no;cout<<"请输入要查询的课程的编号"<<endl;cin>>no;situaction ke;in.read((char*)&ke,sizeof(situaction));while(!in.eof()){ if(no==o) {cout<<ke<<endl; flag=1;}in.read((char*)&ke,sizeof(situaction));// if(no==ke. char*)&ke,sizeof(course));}break;}case 3: return ;}in.close();if(flag==0) cout<<"要查询的选课在文件不存在!" <<endl;system("pause");}}void xkupdate(){while(1){ system("cls");cout<<"***********请选择按下列类别查询后修改:*************"<<endl;cout<<"*********** 按课程编号请按1:************* "<<endl;cout<<"*********** 按学生学号请按2:*************"<<endl;cout<<"*********** 返回上一级界面请按3:*************"<<endl;int sn;cin>>sn;while(sn>3||sn<1){cout<<"选择的数据无效,请重新输入:"<<endl;cin>>sn;}cout<<endl;fstream in("e:\\situactionfile.txt",ios::in|ios::out);if(!in){ cout<<"打开选课信息文件失败!"<<endl;return ;}int flag=0;switch(sn){case 1: {int no;cout<<"请输入要查询的课程的编号"<<endl;cin>>no;situaction si;int i=0;in.seekg(i*sizeof(situaction),ios::beg);in.read((char*)&si,sizeof(situaction));while(!in.eof()){ if(no==o){ cout<<si<<endl;cout<<"请输入要修改的选课信息的学生学号,选课信息,成绩"<<endl;cin>>si;in.seekp(i*sizeof(situaction),ios::beg);in.write((char*)&si,sizeof(situaction));flag=1;}i++;in.seekg(i*sizeof(situaction),ios::beg);in.read((char*)&si,sizeof(situaction));}break;}case 2: {int no;cout<<"请输入要查询的学生的学号"<<endl;cin>>no;student stu;int i=0;in.seekg(i*sizeof(student),ios::beg);in.read((char*)&stu,sizeof(student));while(!in.eof()){ if(no==stu.sno){ cout<<stu<<endl;cout<<"请输入要修改的选课信息的学生学号,选课信息,成绩"<<endl;cin>>stu;in.seekp(i*sizeof(situaction),ios::beg);in.write((char*)&stu,sizeof(situaction));flag=1;}i++;in.seekg(i*sizeof(situaction),ios::beg);in.read((char*)&stu,sizeof(situaction));}break;}case 3: return ;}in.close();if(flag==0) cout<<"要修改的课程在文件不存在!" <<endl;system("pause");}}void xkdelet(){while(1){ system("cls");cout<<"***********请选择按下列类别查询后删除:*************"<<endl;cout<<"*********** 按学生学号请按1:************* "<<endl;cout<<"*********** 按课程编号请按2:*************"<<endl;cout<<"*********** 返回上一级界面请按3:*************"<<endl;int sn;cin>>sn;while(sn>3||sn<1){cout<<"选择的数据无效,请重新输入:"<<endl;cin>>sn;}cout<<endl;student stu[20];course k[20];int flag=0;switch(sn){case 1: { ifstream in("e:\\situactionfile.txt");if(!in){ cout<<"打开学生信息文件失败!"<<endl;return ;}int n=0;in.read((char*)&stu[n],sizeof(student));while(!in.eof()){ n++;in.read((char*)&stu[n],sizeof(student));}in.close();int no;cout<<"请输入要删除的学生的学号"<<endl;cin>>no;for(int i=0;i<n;i++){ if(no==stu[i].sno){ cout<<stu[i]<<endl;cout<<"是否要删除该学生的选课信息!"<<endl;char ch;cin>>ch;if( ch='Y'||ch=='y'){for(int j=i;j<n;j++)stu[j]=stu[j+1];n--;}flag=1;}}if(flag==0) cout<<"要修改的学生在文件不存在!" <<endl;else{ofstream out("e:\\studentfile.txt");if(!out){ cout<<"打开学生信息文件失败!"<<endl;return ;}for(int k=0;k<n;k++){ out.seekp(k*sizeof(student),ios::beg);out.write((char*)&stu[k],sizeof(student));}out.close();}break;}case 2: { ifstream in("e:\\situactionfile.txt");if(!in){ cout<<"打开课程信息文件失败!"<<endl;return ;}int n=0;in.read((char*)&k[n],sizeof(course));while(!in.eof()){ n++;in.read((char*)&k[n],sizeof(course));}in.close();int no;cout<<"请输入要删除的课程的编号"<<endl;cin>>no;for(int i=0;i<n;i++){ if(no==k[i].cno){ cout<<k[i]<<endl;cout<<"是否要删除该课程的信息!"<<endl;char ch;cin>>ch;if( ch='Y'||ch=='y'){for(int j=i;j<n;j++)k[j]=k[j+1];n--;}flag=1;}}if(flag==0) cout<<"要修改的课程在文件不存在!" <<endl;else{ofstream out("e:\\coursefile.txt");if(!out){ cout<<"打开课程信息文件失败!"<<endl;return ;}for(int i=0;i<n;i++){ out.seekp(i*sizeof(course),ios::beg);out.write((char*)&k[i],sizeof(course));}out.close();}break;}system("pause");}}}void xkaccount(){ ifstream ofs("e:\\situactionfile.txt");if(!ofs){ cout<<"打开文件失败!";system("pause");return ;}int i=0;int sn=0,sscore=0;int =0,cscore=0;int sno;cout<<"输入要统计的学生编号"<<endl;cin>>sno;int cno;cout<<"输入要统计的课程编号"<<endl;cin>>cno;situaction si;ofs.read((char*)&si,sizeof(situaction));while(!ofs.eof()){ if(si.sno ==sno){ sn++; sscore+=si.score;}if(o ==cno){ ++; cscore+=si.score;}ofs.read((char*)&si,sizeof(situaction));}ofs.close();cout<<sno<<"同学已经选课:"<<sn<<"门"<<"其平均成绩:"<<(float)sscore/sn<<endl;cout<<cno<<"门课程已经选课:"<<<<"人"<<"该课程的平均成绩:"<<(float)cscore/<<endl;ofs.close();system("pause");}void xkdisplay(){ifstream in("e:\\situactionfile.txt");if(!in){cout<<"打开课程信息文件失败!"<<endl;return ;}situaction si;in.read((char*)&si,sizeof(situaction));while(!in.eof()){ cout<<si;in.read((char*)&si,sizeof( situaction));}in.close();system("pause");}void addmenu(){while(1){ system("cls");cout<<"***********请选修要添加信息的类别:*************"<<endl;cout<<"*********** 学生信息添加请按1:************* "<<endl;cout<<"*********** 课程信息添加请按2:*************"<<endl;cout<<"*********** 选课信息添加请按3:*************"<<endl;cout<<"*********** 返回主界面请按4:*************"<<endl;int sn;cin>>sn;while(sn>4||sn<1){cout<<"选择的数据无效,请重新输入:"<<endl;cin>>sn;}cout<<endl;switch(sn){case 1: sadd(); break;case 2: cadd(); break;case 3: xkadd(); break;case 4: return ;}}system("pause");}void selectmenu(){while(1){ system("cls");cout<<"***********请选修要查询信息的类别:*************"<<endl;cout<<"*********** 学生信息查询请按1:************* "<<endl;cout<<"*********** 课程信息查询请按2:*************"<<endl;cout<<"*********** 选课信息查询请按3:*************"<<endl;cout<<"*********** 返回主界面请按4:*************"<<endl;int sn;cin>>sn;while(sn>4||sn<1){cout<<"选择的数据无效,请重新输入:"<<endl;cin>>sn;}cout<<endl;switch(sn){case 1: sselect(); break;case 2: cselect(); break;case 3: xkselect(); break;case 4: return ;}}system("pause");}void deletmenu(){while(1){ system("cls");cout<<"***********请选修要删除信息的类别:*************"<<endl;cout<<"*********** 学生信息删除请按1:************* "<<endl;cout<<"*********** 课程信息删除请按2:*************"<<endl;cout<<"*********** 选课信息删除请按3:*************"<<endl;cout<<"*********** 返回主界面请按4:*************"<<endl;int sn;cin>>sn;while(sn>4||sn<1){cout<<"选择的数据无效,请重新输入:"<<endl;cin>>sn;}cout<<endl;switch(sn){case 1: sdelet(); break;case 2: cdelet(); break;case 3: xkdelet(); break;case 4: return ;}}system("pause");。