《学生课程管理查询系统--C++课程设计.doc》由会员分享,可在线阅读,更多相关《学生课程管理查询系统--C++课程设计.doc(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C+课程设计学生课程管理查询系统指导教师: *组 长: 张媛媛组 员: 李灿设计时间: 2021年12月一、系统的软硬件环境:2.硬件环境:CPU(pentium4 2.4Hz)、内存256MB、硬盘(80G)二、需求分析: 本系统适用于本专科院校教务处的学生课程信息管理工作。系统存储的课程信息包括:学生根底信息、课程信息、教师信息、 学生选课信息等.系统可实现学生对课程的选择、查询,教务处对学生信息的录入、删除、更改、查询等管理工作。 本系统作为学校对学生课程的计算机管理系统,坚持简洁、灵活、准确、迅速、易操作等原那么,简化学校教务处与学生选课之间的复杂而且繁多的信息处理,实现实用又好用的特
2、点。三、系统总体框架图: 课程排序更改课程删除课程增加课程课程查询学生选课 学生课程管理查询系统 课程系统学生端课程系统管理端学生课程管理查询系统四、模块功能实现:1. 该系统存储了某所学校所有学生的根底信息以及全部课程信息。对每个学生存储:学籍编号、姓名、性别、专业、班级等根底数据。存储课程信息:课程名称、课程编号、授课教师、授课范围、课程简介等数据。2. 课程系统学生端:该入口为学生开放,可以通过端口进展课程选定、课程查询等操作。3. 课程系统管理端:该端口为教务处对学生根底信息以及课程信息进展管理的入口。可实现一下功能:1).学生信息管理:生根底信息录入、更改等。2).课程信息管理:课程
3、信息录入、更改,授课教师信息管理、课程信息 录入、更改管理。3).学生课程管理:增加课程、删除课程、更改课程、课程排序等课程信息数据。4. 系统在进展以上功能操作时创立相应文件夹,并实现相关数据的存储、修改、保存。五、程序使用说明:在运行此程序时会出现如下主界面:此时就可以按照不同类别来进展操作了,如学生那么选择1,如果是学校管理那么选择2.在主界面下选择了操作1,那么会出现“课程系统学生端操作菜单:在该界面下学生可进展课程查询和课程选择操作。如假设选择操作2,并且输入管理密码,那么出现“课程体系管理端操作菜单:在该界面下学校相关部门可以进展学生、课程、教师等信息的管理。六、局部代码解释: 包
4、含类xuanke的预处理命令 #include xuanke.h 选择语句switch(a) 创立xuanke 类struct xuanke 成员函数的实现 xuanke * putin(); /读取void save(xuanke * ); /保存void println(xuanke *); /输出xuanke * midle(xuanke *); /在中间插入xuanke * out(xuanke *); /删除void Find(xuanke *); /查找信息xuanke * replace(xuanke *a); /替换void xuan(xuanke *); /选课void mo
5、hu(xuanke *); / 模糊查询void zuhe(xuanke *); /组合查询文件读取(xuanke.txt,ios:out|ios:in);七、成员分工: 闫永龙:负责需求分析,创立,struct xuanke ,编辑xuanke * putin(), void save(xuanke * ),void password(),程序调试 ; 代兴利:负责系统构造分析,负责编辑 void println(xuanke *),xuanke * midle(xuanke *), xuanke * out(xuanke *),void Find(xuanke *); 张春明:负责程序修改
6、,编辑xuanke * replace(xuanke *a), void xuan(xuanke *),void mohu(xuanke *),void zuhe(xuanke *); 八、程序源代码: / optionals.cpp : Defines the entry point for the console application.#include stdafx.h#include #include #include #include xuanke.husing namespace std;int main() system(color f5); char a,b,c; xuanke
7、 *head=putin(); coutttn tt* *n tt* 学生课程管理查询系统 *n tt* *n tt* *n tt* 操作方式: *n tt* 1.课程系统学生端 *n tt* *n tt* 2.课程系统管理端 *n tt* *n ttnendl; couta;switch(a) case 1: system(cls); do coutnnn ttn tt 课程系统学生端 n tt n tt * 操作方式:. n tt n tt 1.学生选课. n tt 2.课程查询. n tt 3.退出系统. n tt n ttnendl; coutb; switch(b) case 1:
8、system(cls); xuan(hed); coutt*按任意键继续*endl; getch();break; case 2: system(cls); couttt*endl tt* *endl tt* 1.准确查询. *endl tt* 2.模糊查询. *endl tt* 3.组合查询. *endl tt* *endl tt*endl; coutc; switch(c) case 1: system(cls);Find(head); coutt*按任意键继续*endl; getch(); break; case 2: system(cls);mu(head); coutt*按任意键继续
9、*endl; getch();break; case 3: system(cls);zuhe(head); coutt*按任意键继续*endl; getch(); break; default: cout输入错误!endl; coutt*按任意键继续*endl; getch(); break; break; case 3: exit(1); break; default:couttt*输入错误!endl; coutt*按任意键继续*endl; getch();break; while(b!=3);break; case 2: cout请输入管理员密码:endl; password(); do
10、system(cls); coutnnn ttn tt n tt 课程系统管理端 n tt n tt .操作方式: n tt 1.课程查询. n tt 2.增加课程. n tt 3.删除课程. n tt 4.更改课程. n tt 5.课程排序. n tt 6.退出系统. n tt n ttnendl; coutb; switch(b) case 1: system(cls); couttt*endl tt* *endl tt* 1.准确查询. *endl tt* 2.模糊查询. *endl tt* 3.组合查询. *endl tt* *endl tt*endl; coutc; switch(c
11、) case 1: system(cls);Find(head); coutt*按任意键继续*endl; getch(); break; case 2: system(cls);mohu(head); coutt*按任意键继续*endl; getch();break; case 3: system(cls);zuhe(head); coutt*按任意键继续*endl; getch(); break; default: cout输入错误!endl; coutt*按任意键继续*endl; getch(); break; break; case 2: system(cls);head=midle(h
12、ead); coutt*按任意键继续*endl; getch();break; case 3: system(cls);head=out(head); coutt*按任意键继续*endl; getch(); break; case 4: system(cls);head=replace(head); head=putin(); coutt*按任意键继续*endl; getch();beak; case 5: head=paixu(head); break; case 6: exit(1);break; default:couttt*输入错误!endl; coutt*按任意键继续*endl; g
13、etch();break; while(b!=6); default :couttt*输入错误!endl; coutt*按任意键继续*endl; getch();break; return 0;#include #include #include #include using namespace std;struct xuanke int num;string name;string teer;double xuefen;string add;xuanke *next;xuanke * putin(); /读取void save(xuanke * ); /保存void println(xuan
14、ke *); /输出xuanke * midle(xuanke *); /在中间插入xuanke * out(xuanke *); /删除void Find(xuanke *); /查找信息xuanke * replace(xuanke *a); /替换void xuan(xuanke *); /选课void mohu(xuanke *); / 模糊查询void zuhe(xuanke *); /组合查询 xuanke *putin()/读取 xuanke *head,*p1,*p2; fstream file; (xuanke.txt,ios:out|ios:in); if(!file) c
15、outn; p1=p2=new xuanke; head=p1; filep1-nump1-namep1-teacherp1-xuefenp1-add; for(int i=1;inext=p1; p2=p1; filep1-numnamep1-teacherp1-xuefenp1-add; p2-next=NULL; return head;void println(xuanke *p) /输出 coutnum setw(8)name setw(8)teacher setw(4)xuefen setw(6)addendl;void save(xuanke * head) xuanke *p;
16、 int i=0; p=head; ofstream ofile; o(data.txt,ios:out); if(!ofile) coutnext; ofileiendl; p=head; while(p!=NULL) ofilenum name teacher xuefen addnext;xuanke * midle(xuanke *a) /插入信息 int i=0; xuanke *n,*p1=new xuanke; cout请输入你要增加的新信息:endl; coutp1-num; coutp1-name; coutp1-teacher; coutp1-xuefen; coutp1-
17、add; for(n=a;n-next!=NULL;n=n-next) if(n-num=p1-num) couttt*课程增加失败!该课程号已存在,请确认后再输入。next=a-next; a-next=p1; cout课程增加成功!next;delete a;couttt*课程已成功删除!next!=NULL;p=p-next) if(p-next-num=n) b=p-next; p-next=p-next-next; delete b; i+; if(i=0) couttt*抱歉!无您要删除的课程的有关信息!endl; else couttt*课程已成功删除!endl; return
18、a;xuanke * out(xuanke *head) int n; xuanke *p,*q; p=q=head; coutn; if(q-num=n) p=outhead(q); else p=outmidle(q,n); save(p); return p;void Findnum(xuanke *a) xuanke *b; int n; int i=0; cinn; b=a; do if(b-num=n) coutnum name teacher xuefen addnext; while(b!=NULL); if(i=0) couttt*抱歉!无此课程信息。n; b=a; do i
19、f(b-name=n) coutnum name teacher xuefen addnext; while(b!=NULL); if(i=0) couttt*抱歉!无此课程信息。n; b=a; do if(b-teacher=n) coutnum name teacher xuefen addnext; while(b!=NULL); if(i=0) couttt*抱歉!无此课程信息。endl;void Find(xuanke *head) couttt*endl tt* *endl tt* 1.课程号查询. *endl tt* 2.课程名查询. *endl tt* 3.开课教师查询. *e
20、ndl tt* *endl tt*i; switch(i) case 1: cout请输入您所查找的课程号:; Findnum(head); break; case 2: cout请输入您所查找的课程名:; Findname(head); break; case 3: cout请输入您所查找的课程开课教师姓名:; Findteacher(head); break; default:couttt*输入错误!endl;xuanke * replace(xuanke *a) couttt*endl tt endl tt 1.通过课程号修改. endl tt 2.通过课程名修改. endl tt 3.
21、通过开课教师修改. endl tt endl tt*i; switch(i) case 1: coutn; do if(p1-num=n) cout请输入新信息:endl; coutm; for(p2=a;p2!=NULL;p2=p2-next) if(p2-num=m) couttt*修改失败!该课程号已存在,请确认后再输入。num=m; coutp1-name; coutp1-teacher; coutp1-xuefen; coutp1-add; b+; c+; p1=p1-next; while(p1!=NULL); break; case 2: coutn; do if(p1-name=n) cout请输入新信息:endl; coutm; for(p2=a;p2!=NULL;p2=p2-next) if(p2-num=m) couttt*修改失败!该课程号已存在,请确认后再输入。num=m; coutp1-name; coutp1-teacher; coutp1-xuefen; coutp1-add; b+; c+; p1=p1-next; while(p1!=NULL); break; case 3: coutn; do if(p1-teacher=n) cout请输入新信息:endl; cout课程号:;