学生课程管理查询系统C++课程设计.docx
- 文档编号:7669880
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:31
- 大小:126.85KB
学生课程管理查询系统C++课程设计.docx
《学生课程管理查询系统C++课程设计.docx》由会员分享,可在线阅读,更多相关《学生课程管理查询系统C++课程设计.docx(31页珍藏版)》请在冰点文库上搜索。
学生课程管理查询系统C++课程设计
C++课程设计
学生课程管理查询系统
指导老师:
****
组长:
张媛媛
组员:
李灿
设计时间:
2010年12月
一、系统的软硬件环境:
1.软件环境:
WindowsXP、VisualC++6.0
2.硬件环境:
CPU(pentium42.4Hz)、内存(256MB)、硬盘(80G)
二、需求分析:
本系统适用于本专科院校教务处的学生课程信息管理工作。
系统存储的课程信息包括:
学生基础信息、课程信息、教师信息、学生选课信息等.系统可实现学生对课程的选择、查询,教务处对学生信息的录入、删除、更改、查询等管理工作。
本系统作为学校对学生课程的计算机管理系统,坚持简洁、灵活、准确、迅速、易操作等原则,简化学校教务处与学生选课之间的复杂而且繁多的信息处理,实现实用又好用的特点。
三、系统总体框架图:
学生课程管理查询系统
四、模块功能实现:
1.该系统存储了某所学校所有学生的基础信息以及全部课程信息。
对每个学生存储:
学籍编号、姓名、性别、专业、班级等基础数据。
存储课程信息:
课程名称、课程编号、授课教师、授课范围、课程简介等数据。
2.课程系统学生端:
该入口为学生开放,可以通过端口进行课程选定、课程查询等操作。
3.课程系统管理端:
该端口为教务处对学生基础信息以及课程信息进行管理的入口。
可实现一下功能:
1).学生信息管理:
生基础信息录入、更改等。
2).课程信息管理:
课程信息录入、更改,授课教师信息管理、课程信息
录入、更改管理。
3).学生课程管理:
增加课程、删除课程、更改课程、课程排序等课程信息数据。
4.系统在进行以上功能操作时创建相应文件夹,并实现相关数据的存储、修改、保存。
五、程序使用说明:
在运行此程序时会出现如下主界面:
此时就可以按照不同类别来进行操作了,如学生则选择1,如果是学校管理则选择2.
在主界面下选择了操作1,则会出现“课程系统学生端”操作菜单:
在该界面下学生可进行课程查询和课程选择操作。
如若选择操作2,并且输入管理密码,则出现“课程体系管理端”操作菜单:
在该界面下学校相关部门可以进行学生、课程、教师等信息的管理。
六、部分代码解释:
包含类xuanke的预处理命令
#include"xuanke.h"
选择语句
switch(a)
创建xuanke类
structxuanke
成员函数的实现
xuanke*putin();//读取
voidsave(xuanke*);//保存
voidprintln(xuanke*);//输出
xuanke*midle(xuanke*);//在中间插入
xuanke*out(xuanke*);//删除
voidFind(xuanke*);//查找信息
xuanke*replace(xuanke*a);//替换
voidxuan(xuanke*);//选课
voidmohu(xuanke*);//模糊查询
voidzuhe(xuanke*);//组合查询
文件读取
file.open("xuanke.txt",ios:
:
out|ios:
:
in);
七、成员分工:
闫永龙:
负责需求分析,创建intmain(),xuanke.h,structxuanke,编辑xuanke*putin(),
voidsave(xuanke*),voidpassword(),程序调试;
代兴利:
负责系统结构分析,负责编辑voidprintln(xuanke*),xuanke*midle(xuanke*),
xuanke*out(xuanke*),voidFind(xuanke*);
张春明:
负责程序修改,编辑xuanke*replace(xuanke*a),voidxuan(xuanke*),voidmohu(xuanke*),voidzuhe(xuanke*);
八、程序源代码:
//optionals.cpp:
Definestheentrypointfortheconsoleapplication.
//
#include"stdafx.h"
#include
#include
#include
#include"xuanke.h"
usingnamespacestd;
intmain()
{system("colorf5");
chara,b,c;
xuanke*head=putin();
cout<<"\t\t※※※※※※※※※※※※※※※※※※※※※※※\n"
<<"\t\t**\n"
<<"\t\t**学生课程管理查询系统**\n"
<<"\t\t******\n"
<<"\t\t********\n"
<<"\t\t****操作方式:
****\n"
<<"\t\t****1.课程系统学生端****\n"
<<"\t\t******\n"
<<"\t\t**2.课程系统管理端**\n"
<<"\t\t**\n"
<<"\t\t※※※※※※※※※※※※※※※※※※※※※※※\n"< cout<<"请选择你要进行的操作: "; cin>>a; switch(a) { case'1': system("cls"); do {cout<<"\n\n\n" <<"\t\t※※※※※※※※※※※※※※※※※※※※※※※※※※※\n" <<"\t\t※课程系统学生端※\n" <<"\t\t※※\n" <<"\t\t※*操作方式: .※\n" <<"\t\t※※\n" <<"\t\t※1.学生选课.※\n" <<"\t\t※2.课程查询.※\n" <<"\t\t※3.退出系统.※\n" <<"\t\t※※\n" <<"\t\t※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"< cout<<"请选择你要进行的操作: "; cin>>b; switch(b) { case'1': system("cls"); xuan(hed); cout<<"\t*****按任意键继续*****"< getch();break; case'2': system("cls"); cout<<"\t\t***********************************************"< <<"\t\t**"< <<"\t\t*1.精确查询.*"< <<"\t\t*2.模糊查询.*"< <<"\t\t*3.组合查询.*"< <<"\t\t**"< <<"\t\t***********************************************"< cout<<"请选择你要进行的操作: "; cin>>c; switch(c) {case'1': system("cls");Find(head); cout<<"\t*****按任意键继续*****"< getch(); break; case'2': system("cls");mu(head); cout<<"\t*****按任意键继续*****"< getch();break; case'3': system("cls");zuhe(head); cout<<"\t*****按任意键继续*****"< getch(); break; default: cout<<"输入错误! "< cout<<"\t*****按任意键继续*****"< getch(); break; }break; case'3': exit (1);break; default: cout<<"\t\t*输入错误! "< cout<<"\t*****按任意键继续*****"< getch();break; } }while(b! ='3');break; case'2': cout<<"请输入管理员密码: "< password(); do {system("cls"); cout<<"\n\n\n" <<"\t\t※※※※※※※※※※※※※※※※※※※※※※※※※※※\n" <<"\t\t※※\n" <<"\t\t※课程系统管理端※\n" <<"\t\t※※\n" <<"\t\t※.操作方式: ※\n" <<"\t\t※1.课程查询.※\n" <<"\t\t※2.增加课程.※\n" <<"\t\t※3.删除课程.※\n" <<"\t\t※4.更改课程.※\n" <<"\t\t※5.课程排序.※\n" <<"\t\t※6.退出系统.※\n" <<"\t\t※※\n" <<"\t\t※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"< cout<<"请选择你要进行的操作: "; cin>>b; switch(b) {case'1': system("cls"); cout<<"\t\t***********************************************"< <<"\t\t**"< <<"\t\t*1.精确查询.*"< <<"\t\t*2.模糊查询.*"< <<"\t\t*3.组合查询.*"< <<"\t\t**"< <<"\t\t***********************************************"< cout<<"请选择你要进行的操作: "; cin>>c; switch(c) {case'1': system("cls");Find(head); cout<<"\t*****按任意键继续*****"< getch(); break; case'2': system("cls");mohu(head); cout<<"\t*****按任意键继续*****"< getch();break; case'3': system("cls");zuhe(head); cout<<"\t*****按任意键继续*****"< getch(); break; default: cout<<"输入错误! "< cout<<"\t*****按任意键继续*****"< getch(); break; }break; case'2': system("cls");head=midle(head); cout<<"\t*****按任意键继续*****"< getch();break; case'3': system("cls");head=out(head); cout<<"\t*****按任意键继续*****"< getch();break; case'4': system("cls");head=replace(head); head=putin(); cout<<"\t*****按任意键继续*****"< getch();beak; case'5': head=paixu(head);break; case'6': exit (1);break; default: cout<<"\t\t*输入错误! "< cout<<"\t*****按任意键继续*****"< getch();break; } }while(b! ='6'); default: cout<<"\t\t*输入错误! "< cout<<"\t*****按任意键继续*****"< getch();break; } return0; } #include #include #include #include usingnamespacestd; structxuanke {intnum; stringname; stringteer; doublexuefen; stringadd; xuanke*next; }; xuanke*putin();//读取 voidsave(xuanke*);//保存 voidprintln(xuanke*);//输出 xuanke*midle(xuanke*);//在中间插入 xuanke*out(xuanke*);//删除 voidFind(xuanke*);//查找信息 xuanke*replace(xuanke*a);//替换 voidxuan(xuanke*);//选课 voidmohu(xuanke*);//模糊查询 voidzuhe(xuanke*);//组合查询 ////////////////////////////////////////////////////////////////////////////////////////////// xuanke*putin()////读取 { xuanke*head,*p1,*p2; fstreamfile; file.open("xuanke.txt",ios: : out|ios: : in); if(! file) { cout<<"\t\t**文件打开失败! 请检查文件是否正常! "; exit(0); } intn=0; file>>n; p1=p2=newxuanke; head=p1; file>>p1->num>>p1->name>>p1->teacher>>p1->xuefen>>p1->add; for(inti=1;i { p1=newxuanke; p2->next=p1; p2=p1; file>>p1->num>name>>p1->teacher>>p1->xuefen>>p1->add; } p2->next=NULL; returnhead; } ////////////////////////////////////////////////////////////////////////////////////////////// voidprintln(xuanke*p)////输出 { cout< } //////////////////////////////////////////////////////////////////////////////////////////// voidsave(xuanke*head) {xuanke*p; inti=0; p=head; ofstreamofile; ofile.open("data.txt",ios: : out); if(! ofile) { cout<<"\t\t**文件存储失败! 请检查文件路径是否正常! "; exit(0); } while(p! =NULL) { i++; p=p->next; } ofile< p=head; while(p! =NULL) { ofile< p=p->next; } } /////////////////////////////////////////////////////////////////////////////////////////////// xuanke*midle(xuanke*a)//插入信息 {inti=0; xuanke*n,*p1=newxuanke; cout<<"请输入你要增加的新信息: "< cout<<"课程号: "; cin>>p1->num; cout<<"课程名: "; cin>>p1->name; cout<<"开课教师: "; cin>>p1->teacher; cout<<"课程学分: "; cin>>p1->xuefen; cout<<"开课地点: "; cin>>p1->add; for(n=a;n->next! =NULL;n=n->next) if(n->num==p1->num) { cout<<"\t\t**课程增加失败! 该课程号已存在,请确认后再输入。 "< i++; } if(i==0) {p1->next=a->next; a->next=p1; cout<<"课程增加成功! ! "< save(a); } returna; } ////////////////////////////////////////////////////////////////////////////////////////// xuanke*outhead(xuanke*a)////////////删除头链表 {xuanke*p; p=a->next; deletea; cout<<"\t\t**课程已成功删除! "< returnp; } xuanke*outmidle(xuanke*a,intn)/////////删除其他链表 { xuanke*p,*b; inti=0; for(p=a;p->next! =NULL;p=p->next) { if(p->next->num==n) { b=p->next; p->next=p->next->next; deleteb; i++; } } if(i==0)cout<<"\t\t**抱歉! 无您要删除的课程的有关信息! "< elsecout<<"\t\t**课程已成功删除! "< returna; } xuanke*out(xuanke*head) {intn; xuanke*p,*q; p=q=head; cout<<"请输入您要删除课程的课程号: "; cin>>n; if(q->num==n) p=outhead(q); else p=outmidle(q,n); save(p); returnp; } ////////////////////////////////////////////////////////////////////////////////// voidFindnum(xuanke*a) { xuanke*b; intn; inti=0; cin>>n; b=a; do{ if(b->num==n) { cout< i++; } b=b->next; }while(b! =NULL); if(i==0)cout<<"\t\t**抱歉! 无此课程信息。 "< } voidFindname(xuanke*a) { xuanke*b; stringn; inti=0; cin>>n; b=a; do{ if(b->name==n) { cout< i++; } b=b->next; }while(b! =NULL); if(i==0)cout<<"\t\t**抱歉! 无此课程信息。 "< } voidFindteacher(xuanke*a) { xuanke*b; stringn; inti=0; cin>>n; b=a; do{ if(b->teacher==n) { cout< i++; } b=b->next; }while(b! =NULL); if(i==0)cout<<"\t\t**抱歉! 无此课程信息。 "< } voidFind(xuanke*head) { cout<<"\t\t*************************************************"< <<"\t\t**"< <<"\t\t*1.课程号查询.*"< <<"\t\t*2.课程名查询.*"< <<"\t\t*3.开课教师查询.*"< <<"\t\t**"< <<"\t\t*************************************************"< chari; cin>>i; switch(i) { case'1': cout<<"请输入您所查找的课程号: "; Findnum(head);break; case'2': cout<<"请输入您所查找的课程名: "; Findname(head);break; case'3': cout
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 课程 管理 查询 系统 C+ 课程设计