C++ 课程设计 课程管理系统

假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。试设计学生选修课程系统,使之能提供以下功能:
1、课程信息录入功能(课程信息用文件保存)
2、课程信息浏览功能
3、排序:按课程编号排序
4、查询功能:
按课程性质查询
5、课程修改、删除(可选项)

第1个回答  2013-07-28
天哪!!整个设计要一两个月完成啊。。。。建议先自己思考一下 遇到实现那个功能困难时具体提问 这样别人也好帮忙~@~ 希望遇到有设计好的 那就省劲了!
第2个回答  2013-07-28
#include <iostream.h>#include <fstream.h> //程序中用到了文件流#include <string.h>#include <stdlib.h> //程序用到了exit函数#define A 100class course //建立课程类 ------陈鹏{public:int num;char name[20];char xingzhi[10];int xueshi;int shouke;int shiyan;int score;int xueqi;}c[A];int m;void output(); //输出函数void save();void read(); void input(); //输入课程信息函数void xiugai(); //修改函数//*************************************************void output() ------连志强 {int i;cout<<"编号\t名称\t性质\t学时\t学时\t实验\t学分\t学期"<<endl;for(i=0;i<m;i++){cout<<c[i].num<<"\t"<<c[i].name<<"\t"<<c[i].xingzhi<<"\t"<<c[i].xueshi<<"\t"<<c[i].shouke<<"\t"<<c[i].shiyan<<"\t"<<c[i].score<<"\t"<<c[i].xueqi<<endl;}}//**************************************************void save() -------连志强{int i;ofstream outfile("abc.dat"); //定义输出文件流对象outfile,以输出方式打开磁盘文件"abc.dat"if(! outfile) //如果原来无此文件{ cout<<"cannot open file \n";exit(0);//退出程序}outfile.write((char*)&m,sizeof(m));for(i=0;i<m;i++)outfile.write((char*)&c[i],sizeof(c[i]));outfile.close(); //关闭磁盘文件}//**************************************************void read() ------------连志强{int i;ifstream infile("abc.dat"); //定义输入文件流infile,if(! infile){ cout<<"cannot open file \n";exit(0);//退出函数}infile.read((char*)&m,sizeof(m));for(i=0;i<m;i++)infile.read((char*)&c[i],sizeof(c[i])); //将制定数目的字节读入内存,依次存放在以地址&c[i]开始的存储空间中infile.close();}//*************************************************void input() //输入函数 ------陈鹏 {int i;cout<<"输入课程的总数:";cin>>m;cout<<"请一次性输入"<<m<<"门课程编号,名称,性质,学时,授课,实验,学分,学期"<<endl;for(i=0;i<m;i++){cin>>c[i].num;cin>>c[i].name;cin>>c[i].xingzhi;cin>>c[i].xueshi;cin>>c[i].shouke;cin>>c[i].shiyan;cin>>c[i].score;cin>>c[i].xueqi;}output();save();}//**********************************************void paixu() //排序函数 -----连志强{int i,j,t;class course g;read();system("cls"); //清屏for(i=0;i<m-1;i++){t=i;for(j=i+1;j<m;j++) //课程编号由低到高进行排序if(c[j].num<c[t].num)t=j;if(t!=i){g=c[t];c[t]=c[i];c[i]=g;}}output();save();}//************************************************void xingzhichaxun() //课程性质查询 ------陈鹏{int i;char j[20]; read();system("cls"); //清屏cout<<"请输入要查询课程的性质:";cin>>j;if(for(i=0;i<m;i++){if(strcmp(c[i].xingzhi,j)==0)){cout<<"查询到课程为:"<<endl<<c[i].num<<"\t"<<c[i].name<<"\t"<<c[i].xingzhi<<"\t"<<c[i].xueshi<<"\t"<<c[i].shouke<<"\t"<<c[i].shiyan<<"\t"<<c[i].score<<"\t"<<c[i].xueqi;cout<<endl;cout<<"*****************************************"<<endl;} }else cout<<"没有此课程!"<<endl;}//***************************************************void bianhaochaxun() //课程编号查询 ----陈鹏 {int i,j;read();system("cls"); //清屏cout<<"请输入要查询课程的编号:";cin>>j;for(i=0;i<m;i++){if(c[i].num==j){cout<<c[i].num<<"\t"<<c[i].name<<"\t"<<c[i].xingzhi<<"\t"<<c[i].xueshi<<"\t"<<c[i].shouke<<"\t"<<c[i].shiyan<<"\t"<<c[i].score<<"\t"<<c[i].xueqi;cout<<endl;} else cout<<"没有此课程!"<<endl;}}//***************************************************void xuefenchaxun() //课程学分查询 ------陈鹏{int i,j;read();system("cls"); //清屏cout<<"请输入要查询课程的学分:";cin>>j;for(i=0;i<m;i++){if(c[i].score==j){cout<<c[i].num<<"\t"<<c[i].name<<"\t"<<c[i].xingzhi<<"\t"<<c[i].xueshi<<"\t"<<c[i].shouke<<"\t"<<c[i].shiyan<<"\t"<<c[i].score<<"\t"<<c[i].xueqi;cout<<endl;} else cout<<"没有此课程!"<<endl;}}//**************************************************void mingchengchaxun() //课程名称查询 ----陈鹏{int i;char j[20];read();system("cls"); //清屏cout<<"请输入要查询的课程名称:";cin>>j;for(i=0;i<m;i++){if(strcmp(c[i].name,j)==0){cout<<c[i].num<<"\t"<<c[i].name<<"\t"<<c[i].xingzhi<<"\t"<<c[i].xueshi<<"\t"<<c[i].shouke<<"\t"<<c[i].shiyan<<"\t"<<c[i].score<<"\t"<<c[i].xueqi;cout<<endl;} else cout<<"没有此课程!"<<endl;}}//***************************************************void del() //删除函数 -----连志强{int i,j;char no[10];read();system("cls"); //清屏cout<<"输入要删除课程的名称:";cin>>no;for(i=0;i<m;i++)if(strcmp(no,c[i].name)==0)break;for(j=i+1;j<m;j++)c[j-1]=c[j];m--;output();save();}//***********************************************void xiugai() //修改函数 ---------连志强{int k,i;char j[20];int bianhao;char xinxingzhi[10];int zongxueshi;int xinshouke;int xinxuefen;int xinxueqi;char xinmingcheng[20];int shiyanshangji;read();system("cls"); //清屏cout<<"请输入要修改课程的名称:";cin>>j;for(i=0;i<m;i++){ if(strcmp(c[i].name,j)==0){cout<<c[i].num<<"\t"<<c[i].name<<"\t"<<c[i].xingzhi<<"\t"<<c[i].xueshi<<"\t"<<c[i].shouke<<"\t"<<c[i].shiyan<<"\t"<<c[i].score<<"\t"<<c[i].xueqi;cout<<endl;}cout<<" 课程修改"<<endl;cout<<"******************************"<<endl;cout<<"----1.修改课程编号"<<endl;cout<<"----2.修改课程名称"<<endl;cout<<"----3.修改课程性质"<<endl;cout<<"----4.修改总学时"<<endl;cout<<"----5.修改授课学时"<<endl;cout<<"----6.修改实验或上机学识"<<endl;cout<<"----7.修改学分"<<endl;cout<<"----8.修改开课学期"<<endl;cout<<"----9.返回主系统"<<endl;cout<<"******************************"<<endl;cout<<"----请输入你要的操作:";cin>>k;switch(k) //switch语句,实现多分支选择{case 1:{cout<<"输入新的课程编号:";cin>>bianhao;c[i].num=bianhao;save();cout<<bianhao<<"\t"<<c[i].name<<"\t"<<c[i].xingzhi<<"\t"<<c[i].xueshi<<"\t"<<c[i].shouke<<"\t"<<c[i].shiyan<<"\t"<<c[i].score<<"\t"<<c[i].xueqi<<endl;}break;case 2:{cout<<"输入新的课程名称:";cin>>xinmingcheng;strcpy(c[i].name,xinmingcheng);save();cout<<c[i].num<<"\t"<<c[i].name<<"\t"<<c[i].xingzhi<<"\t"<<c[i].xueshi<<"\t"<<c[i].shouke<<"\t"<<c[i].shiyan<<"\t"<<c[i].score<<"\t"<<c[i].xueqi<<endl;}break;case 3:{cout<<"输入新的课程性质:";cin>>xinxingzhi;strcpy(c[i].xingzhi,xinxingzhi);save();cout<<c[i].num<<"\t"<<c[i].name<<"\t"<<c[i].xingzhi<<"\t"<<c[i].xueshi<<"\t"<<c[i].shouke<<"\t"<<c[i].shiyan<<"\t"<<c[i].score<<"\t"<<c[i].xueqi<<endl;}break;case 4:{cout<<"输入新的总学时:";cin>>zongxueshi;c[i].xueshi=zongxueshi;save();cout<<c[i].num<<"\t"<<c[i].name<<"\t"<<c[i].xingzhi<<"\t"<<c[i].xueshi<<"\t"<<c[i].shouke<<"\t"<<c[i].shiyan<<"\t"<<c[i].score<<"\t"<<c[i].xueqi<<endl;}break;case 5: --------陈鹏{cout<<"输入新的授课学时:";cin>>xinshouke;c[i].shouke=xinshouke;save();cout<<c[i].num<<"\t"<<c[i].name<<"\t"<<c[i].xingzhi<<"\t"<<c[i].xueshi<<"\t"<<c[i].shouke<<"\t"<<c[i].shiyan<<"\t"<<c[i].score<<"\t"<<c[i].xueqi<<endl;}break;case 6:{cout<<"输入新的实验或上机学时:";cin>>shiyanshangji;c[i].shiyan=shiyanshangji;save();cout<<c[i].num<<"\t"<<c[i].name<<"\t"<<c[i].xingzhi<<"\t"<<c[i].xueshi<<"\t"<<c[i].shouke<<"\t"<<c[i].shiyan<<"\t"<<c[i].score<<"\t"<<c[i].xueqi<<endl;}break;case 7:{cout<<"输入新的学分:";cin>>xinxuefen;c[i].score=xinxuefen;save();cout<<c[i].num<<"\t"<<c[i].name<<"\t"<<c[i].xingzhi<<"\t"<<c[i].xueshi<<"\t"<<c[i].shouke<<"\t"<<c[i].shiyan<<"\t"<<c[i].score<<"\t"<<c[i].xueqi<<endl;}break;case 8:{cout<<"输入新的开课学期:";cin>>xinxueqi;c[i].xueqi=xinxueqi;save();cout<<c[i].num<<"\t"<<c[i].name<<"\t"<<c[i].xingzhi<<"\t"<<c[i].xueshi<<"\t"<<c[i].shouke<<"\t"<<c[i].shiyan<<"\t"<<c[i].score<<"\t"<<c[i].xueqi<<endl;}break;}}}//*********************************************int main() --------连志强{system("color 17");char i=1,j;read();a:while(i!=0){cout<<"-----------------------------------------------"<<endl;cout<<"----------------课程管理系统-------------------"<<endl;cout<<"***********************************************"<<endl;cout<<"----1.输入课程数据"<<endl;cout<<"----2.查询和修改课程"<<endl;cout<<"----3.课程编号排序"<<endl;cout<<"----4.删除课程数据"<<endl;cout<<"----5.退出系统"<<endl;cout<<"***********************************************"<<endl;cout<<"----------------------------请选择你想要的操作:"<<endl;cin>>i;switch(i){case '1':input();break;case '2':system("cls"); //清屏 cout<<" 课程查询和修改"<<endl; cout<<"**************************"<<endl; cout<<"----1.按课程性质查询"<<endl; cout<<"----2.按课程编号查询"<<endl; cout<<"----3.按课程名称查询"<<endl; cout<<"----4.按课程学分查询"<<endl; cout<<"----5.修改课程数据"<<endl; cout<<"----6.返回到主系统"<<endl; cout<<"**************************"<<endl; cout<<"----请选择要查询或者修改:"; cin>>j;switch (j) {case '1':xingzhichaxun();break;case '2':bianhaochaxun();break;case '3':mingchengchaxun();break; case '4':xuefenchaxun();break;case '5':xiugai();goto a;break;default:cout<<"此输入有错!"<<endl;}break;case '3':paixu();break;case '4':del();break;case '5':exit(1);break;default:cout<<"此输入有错!"<<endl;}}return 0;}
第3个回答  2013-07-28
有个类似的系统 但是具体功能不太一样
第4个回答  2013-07-28
总之蛮难学的
相似回答