学生选课系统1
更新时间:2024-07-11 11:45:01 阅读量: 综合文库 文档下载
目 录
一.实验要求·······································3 二.总体设计·······································3 1.总体框图·······································3 2.程序功能·······································3 3.模块关系·······································4 三.详细设计·······································4 1.运行环境·······································4 2.界面设计·······································4 3.课程信息设计···································5 4.学生信息设计···································6 5.选课设计·······································7 6.运行程序·······································8 四.测试与调试····································34
一.实验要求
选课管理
学生信息管理,学生选课管理(学生选课学分总数有一定范围),学生可以对课程进行查询、浏览,选完课后可以退选、重选,并可以按学号、姓名、课程名进行查询、统计。 (要求:1.源文件采用多文件的工程结构2.数据存储采用文件形式3.标准的C输入输出4.功能完善,适当的注释,5.关于文件的内容需要自学)
二.总体设计 1.总体框图
主模模块 显示课程信息模块 查询模块 增加模块 删除模块 修改模块 选课模块 显示选课情况模块
2.程序功能
1)输入密码进入系统。 2)查看所有课程的信息
3)输入一门课程的课程编号,从当前课程中进行查找,如果找到则显示该课 程的相关信息,如果没有找到则给出提示信息
4)添加一门课程的基本信息,通过输入课程编号,首先查找是否存在该课程 编号的课程,如果存在则提示重新输入,否则将该课程按照顺序插入到相应位置 5)删除一门课程的基本信息,通过输入课程编号,首先查找是否存在该课程编号的课程,如果存在则将该课程删除,否则给出提示信息,提示该课程不存在 6)对课程信息进行修改。
7)选修一门课程,需要给出学号和课程编号,如果课程编号不存在则重新输 入,直到输入正确为止,并将学号和相应的课程编号存入 8)查看所选课程 3.模块关系
根据提示输入学号和密码进入系统。通过主函数模块进入各个其它函数的模块,然后达到对课程信息的查看、增加、删除、修改和选课的功能,在这些模块中又调用其它小模块(如:排序模块)。本程序主要有:主函数模块、显示课程信息模块、查询模块、 增加模块、删除模块、修改模块、选课模块、显示选课情况模块等八个模块组成。 三.详细设计
1.运行环境:V-C++ 2.界面设计 菜单选择:
选1:进入课程信息界面
选2:进入学生信息界面 选3:进入选课界面
选4:退出,并保存相关记录到文件里 3.课程信息 菜单选择:
选1:进入课程信息浏览,先看是否有记录,无则退出到课程信息界面,有则显示出来.
选2:进入课程信息录入,录入课程编号,先看是否重复,若有重复,则提示错误,进行下次输入,无则输出一条记录,并添加记录到表.
选3:进入课程信息修改,录入课程编号,看是否在表中有这条记录,无则提示错误,有则提示修改记录的相关信息.
选4:进入课程信息删除,录入要删除的课程编号,看是否在表中有这条记录,无则提示错误,有则提示显示记录的相关信息,再提示是否确实要删除记录,要则删除.
选5:进入课程信息查询,进行选择是按学号查询或学分查询,不管哪种方式,都查询一下表中有相关的记录,没有则重新选择,有刚显示相关记录. 选6: 退出课程信息界面.
4.学生信息 菜单选择:
选1:进入学生信息浏览,先看是否有记录,无则退出到学生信息界面,有则显示出来.
选2:进入学生信息录入,录入学生编号,先看是否重复,若有重复,则提示错误,进行下次输入,无则输出一条记录,并添加记录到表.
选3:进入学生信息修改,录入学生编号,看是否在表中有这条记录,无则提示错误,有则提示修改记录的相关信息.
选4:进入学生信息删除,录入要删除的学生编号,看是否在表中有这条记录,无则提示错误,有则 提示显示记录的相关信息,再提示是否确实要删除记录,要则删除.
选5:进入学生信息查询,进行选择是按学号查询或学分查询,不管哪种方式,都查询一下表中有相关的记录,没有则重新选择,有刚显示相关记录. 选6: 退出学生信息界面. 5.选课 菜单选择:
选1:进入选课信息浏览,先看是否有记录,无则退出到选课信息界面,有则显示出来.
选2:进入学生选课,录入学生编号,先看是否重复,若有重复,则提示错误,进行下次输入,无则进行选课提示,输入选课的编号,再看是否输入的编号是否存在,无则重新输入,有则看是否选了这门课,没有就选上,进行重复选择.
选3: 进入学生退选,录入学生编号,先看是否重复,若有重复,则提示错误,进行下次输入,无则进行选课提示,输入退选课程的编号,再看是否输入的编号是否存在,无则重新输入,有则看是否选了这门课,没有就提示错误信息,若有就进行退选.再进行重复选择。 选6: 退出选课界面 6.运行程序 //头文件 //头文件
#include
#include
#include
struct course //某个学生所学的课程中的某一个 {
char cname[20]; //课程名称 float grade; //课程成绩
course *Next; //指向下一个课程的指针 }; //学生类 class student {
public: student()
{ }
root = NULL;
const maxcourse = 5; factcourse = 0;
void readname(char N[] ); //读入学生的姓名 void getname(char N[]); //得到学生的姓名
void wrecourse(char N[],float score); //要据课程名写入学生课程的成绩 float average(); //学生课程的平均成绩
void addcourse(char N[],float g); //给学生增加一门课 int findcourse(char N[]); //查找是否已有此课程,如果有返回1,如果没有返回0 int retfactcourse()
{ return factcourse;
} //得到所学的课程数目 course *retroot() { }
return root; //利用键表将所有的课程保存起来
int retmaxcourse() {
return 5; //得到最多可学的课程数目 }
void clrroot() //清零 {
root = NULL;
factcourse = 0; } private:
cout<<\课程设计课题\\n\\n\
cout<<\ <<\ <<\选课小系统 *\\n\ <<\
<<\<<\操作方式: *\\n\<<\选课系统学生端 *\\n\<<\<<\选课系统管理端 *\\n\<<\<<\
while(1) {
cout<<\请选择登入方式: \cin>>a;
if(strlen(a)==1) { for(i='1';i<='2';i++) }
{ }
c=i;
if(c==a[0]) return c;
cerr<<\输入有误!\\n\
k++;
if(k>2) { system(\
cerr<<\提示~~:错误输入次数超过三次,你将被强制退
出!!\\n\\n\
}
}
cout<<\按任意键继续\getch(); tuichu();
}
char custom() {
char A[10]; char b; char i; int k = 0;
system(\
cout<<\ <<\※※※※※※※※※※※※※※※※※※※※※※※※※※※\\n\ <<\※选修课系统学生端 ※\\n\ <<\※ ※\\n\
<<\※ 操作方式:. ※\\n\<<\※1.学生选课. ※\\n\<<\※2.学生情况. ※\\n\<<\※3.选课情况. ※\\n\<<\※4.退出系统. ※\\n\<<\※ ※\\n\<<\※※※※※※※※※※※※※※※※※※※※※※※※※※※\\n\
while(1) {
cout<<\请选择操作方式: \cin>>A;
if(strlen(A)==1) { for(i='1';i<='4';i++)
{
b=i;
if(b==A[0]) return b; } }
cerr<<\输入有误!\\n\k++; if(k>2) {
system(\
cerr<<\提示~~:错误输入超过三次!你将被强制退
出!!\\n\ cout<<\按任意键继续\ }
char server() {
char A[10]; char b; char i; int k = 0;
system(\ }
}
getch(); tuichu();
cout<<\
<<\※※※※※※※※※※※※※※※※※※※※※※※※※※※\\n\<<\※ ※\\n\<<\※ 选修课系统管理端 ※\\n\<<\※ ※\\n\<<\※ .操作方式: ※\\n\<<\※ 1.增加学生 2.增加课程 ※\\n\<<\※ 3.删除学生 4.删除课程 ※\\n\<<\※ 5.填写成绩 6.更改学分 ※\\n\<<\※ 7.学生情况 8.选课情况 ※\\n\<<\※ 9.保存数据 0.退出系统 ※\\n\<<\※ ※\\n\
<<\※※※※※※※※※※※※※※※※※※※※※※※※※※※\\n\while(1) { }
cout<<\请选择操作方式: \cin>>A;
if(strlen(A)==1) {
for(i='0';i<='9';i++) { }
b=i;
if(b==A[0]) return b;
}
cerr<<\输入有误!\\n\k++; if(k>2) { }
cerr<<\错误输入超过三次!\\n\exit(-1);
}
//密码检查 void password() {
int k=0,i; char A[]=\char B[10]; char a;
system(\for(i=0;i<8;i++)
cout< while(k<=2) { printf(\请输入管理员密码:\ i=0; } while(1) { } a=getch(); if(a==13) break; B[i]=a; i++; printf(\ B[i]='\\0'; if(strcmp(A,B)==0) return; else { k++; cerr<<\密码输入错误!请重新输入!\\n\ } if(k>=3) { system(\ } cerr<<\输入错误密码超过三次!请按任意键退出..\getch(); tuichu(); } struct subjectdb { subject sub; subjectdb *Next; }; int menu_2_7(studentdb *P); int menu_2_9(studentdb *Y,subjectdb *P); int menu_2_8(subjectdb *P); //学生端功能函数 int menu_1_1(studentdb *P,subjectdb *X) //学生选课 { system(\ cout<<\学生选课操作\// studentdb *q=P->Next; int i; char N[20],M[20]; if(q!=NULL) cout<<\所有学生名单如下:\\n\else { } while(q) { } q->stu.getname(N); cout<<\cout< cerr<<\对不起,暂时没有学生名单!请按任意键继续..\return 1; q = P->Next; if(q==NULL) return 1; cout<<\请输入学生姓名:\cin>>N; i=0; q=P->Next; while(q) { q->stu.getname(M); if(strcmp(N,M)==0) i++; q = q->Next; } int j=0,k=1; if(i==0) { } cout<<\没有这个学生!! 请按任意键返回..\return 1; else if(i>1) { cout<<\共找到\个姓名为\的学生\cout<<\选择第几个:\cin>>k; } if(k>i||k<=0) { cerr<<\输入有误!按任意键继续\ return 1; } q = P->Next; j=0; while(q) { q->stu.getname(M); if(strcmp(N,M)==0) j++; if(j==k) { if(q->stu.retfactcourse()>=q->stu.retmaxcourse()) { cout<<\所选课程已满!按任意键继续\return 1; } else { subjectdb *t=X->Next; char N1[20]; system(\if(t!=NULL) { } cout<<\所有课程如下:\ cout<<\课程名称\\t\\t 学分\ else { cerr<<\对不起,暂时没有课程\return 1; } while(t) { t->sub.getkname(N1); cout<<\ \ t = t->Next ; } char N2[20]; cout<<\输入你所要选的课程 : \ cin>>N2; t = X->Next; while(t) { t->sub.getkname(N1); if(strcmp(N1,N2)==0) { if(q->stu.findcourse(N2)==1) { cout<<\此课程你已选过了,不能再选.按任意键继return 1; 续\ } t=X->Next; char NA[20]; while(t) { t->sub.getkname(NA); if(strcmp(NA,N2)==0) { if(t->sub.retactivestudent()>=t->sub.retmaxstudent ()) { cout<<\此课程已选满,不能选.按任意键继续\ } } } } } return 1; } t = t->Next; q->stu.addcourse(N2,0.0); cout<<\选课成功!按任意键继续\return 1; t = t->Next; cerr<<\没有此课程!按任意键继续\ } return 1; } q = q->Next; } return 1; int menu_1_2(studentdb *P,subjectdb *X) //学生情况 { studentdb *q=P->Next; char N[20]; system(\ cout<<\学生情况操作\ int i; if(q!=NULL) { cout<<\所有学生选课信息如下:\\n\ cout<<\姓名\\t\\t\\t选课情况\\n\ } else { cerr<<\对不起,暂时没有学生名单!!请按任意键继续..\ return 1; } while(q) { q->stu.getname(N); cout<<\ \ 已 \门课 \ q = q->Next ; } char M[20]; cout<<\输入要查看的学生姓名:\ cin>>M; i=0; q=P->Next; while(q) { q->stu.getname(N); if(strcmp(N,M)==0) i++; q = q->Next; } int j=0,k=1; if(i==0) { cout<<\没找到这个学生!!请按任意键继续..\ return 1; } else if(i>1) { 选 cout<<\共找到\个姓名为\的学生\ cout<<\选择第几个:\ cin>>k; } if(k>i||k<=0) { } cerr<<\输入有误!按任意键继续..\return 1; q = P->Next; j=0; q=P->Next; while(q) { q->stu.getname(N); if(strcmp(N,M)==0) j++; if(j==k) { system(\ course *T=q->stu.retroot(); if(T==NULL) { cout<<\同学你还未选课! 请按任意键继续..\ } return 1; if (T!=NULL) T = T->Next; cout<<\同学你已选\门课, 具体如下\\n\\n\ cout<<\课程名称\\t\\t成绩\\n\ while(T) { cout<<\ \ T = T->Next; } j=0; } q = q->Next; } cout<<\请按任意键继续...\return 1; } int menu_1_3(subjectdb *P) //选课情况 { subjectdb *q=P->Next; char N[20]; system(\ cout<<\选课情况操作\if(q!=NULL) { } else { cerr<<\对不起,暂时没有课程!!请按任意键继续..\return 1; cout<<\所有选课情况如下:\\n\cout<<\课程名称\\t\\t选课人数\\n\ } while(q) { q->sub.getkname(N); cout<<\ q = q->Next ; } cout<<\请按任意键继续..\return 1; } int menu_1_4(studentdb *X,subjectdb *P) //退出系统 { } menu_2_9(X,P); tuichu(); return 0; //管理端功能函数 int menu_2_1(studentdb *P) //增加学生 { char N[20]; system(\ cout<<\增加学生操作\\n\cout<<\请输入学生姓名:\ cin>>N; cout< P->Next = newnode ; return 1; } int menu_2_2(subjectdb *P) //增加课程 { float k; char N[20],M[20]; system(\ cout<<\增加课程操作\\n\cout<<\请输入课程名称:\cin>>N; cout< subjectdb *q = P->Next; while(q) { q->sub.getkname(M); if(strcmp(N,M)==0) { cout<<\此课程已经存在,按任意键继续\ } return 1; q = q->Next; } cout<<\输入此课程的学分:\cin>>k; cout<<\增加课程操作成功,按任意键继续\subjectdb *newnode = new subjectdb; newnode->Next = P->Next ; newnode->sub.setkname(N); newnode->sub.getcredit(k); P->Next = newnode ; return 1; } int menu_2_3(studentdb *P) //删除学生 { system(\ cout<<\删除学生操作\menu_2_7(P); studentdb *q = P->Next; if(q==NULL) return 1; int i; char N[20],M[20]; cout<<\请输入要删除的学生姓名 :\ cin>>N; i=0; while(q) { q->stu.getname(M); } if(strcmp(N,M)==0) i++; q = q->Next; int j=0,k=1; if(i==0) { cerr<<\没有这个学生!!请按任意键继续..\return 1; } else if(i>1) { } cout<<\共找到\个姓名为\的学生\cout<<\要删除第几个:\cin>>k; if(k>i||k<=0) return 1; q = P->Next; studentdb *R = P; j=0; while(q) { } q->stu.getname(M); if(strcmp(N,M)==0) j++; if(j==k) { R->Next = q->Next; free(q); cout<<\删除学生操作成功,按任意键继续..\return 1; } q = q->Next; R = R->Next; return 1; } int menu_2_4(subjectdb *P) //删除课程 { } subjectdb *q=P->Next; char N[20]; system(\ cout<<\删除课程操作\if(q!=NULL) cout<<\所有课程如下:\\n\else { } while(q) { q->sub.getkname(N); cout<<\ cerr<<\对不起,暂时没有课程!!请按任意键继续..\return 1; q = q->Next ; } q = P->Next; subjectdb *R = P; if(q==NULL) return 1; char M[20]; cout<<\请输入要删除的课程 :\cin>>M; while(q) { q->sub.getkname(N); if(strcmp(N,M)==0) { R->Next = q->Next; free(q); cout<<\删除课程操作成功,按任意键继续\return 1; } q = q->Next; R = R->Next; } cerr<<\没有此课程!!\\t请按任意键继续..\return 1; int menu_2_5(studentdb *X,subjectdb *P) //填写成绩 { subjectdb *q=P->Next; char M[20],N[20],NA[20]; float score; system(\ cout<<\填写成绩操作\\n\if(q!=NULL) cout<<\课程名称\\t\\t选课人数\\n\else { } while(q) { q->sub.getkname(N); cout<<\q = q->Next ; cout<<\对不起,暂时没有任何选修课程。请按任意键继续..\return 1; } q = P->Next; cout<<\请输入课程名称 :\cin>>M; while(q) { q->sub.getkname(N); studentname *K = q->sub.retfirst(); if(K!=NULL) K = K->Next; if(strcmp(N,M)==0) { system(\if(K!=NULL) { } cout<<\请填写选修\的学生成绩\\n\cout<<\姓名\\t\\t成绩\ if(K==NULL) cerr<<\无任何信息!!请按任意键继续..\while(K) { cout<<\cin>>score; studentdb *XX = X->Next; while(XX) { XX->stu.getname(NA); } } if(strcmp(NA,K->tname)==0) XX->stu.wrecourse(M,score); XX = XX->Next; } K = K->Next; } if(K==NULL) cout<<\填写成绩完毕!!请按任意键继续..\return 1; q = q->Next; cerr<<\没有此课程!!请按任意键继续..\return 1; } int menu_2_6(subjectdb *P) //更改学分 { float k; system(\ cout<<\更改学分操作\\n\subjectdb *q = P->Next; char N[20],M[20]; if(q!=NULL) cout<<\所有课程如下:\\n\else { cerr<<\对不起,暂时没有任何可选课程。请按任意键继续..\ return 1; } while(q) { q->sub.getkname(N); cout<<\q = q->Next ; } q = P->Next; cout<<\请输入要改的课程 :\cin>>M; while(q) { q->sub.getkname(N); if(strcmp(N,M)==0) { cout<<\原来学分为 :\ } cout<<\现要更改为 :\ cin>>k; q->sub.getcredit(k); cout<<\更改课程学分成功,按任意键继续\return 1; } q = q->Next; } cerr<<\无此课程!!请按任意键继续..\return 1; int menu_2_7(studentdb *P) //学生情况 { } studentdb *q=P->Next; char N[20]; system(\ cout<<\学生情况操作\\n\if(q!=NULL) cout<<\所有学生名单如下:\\n\else { cerr<<\对不起,暂时没有学生名单!请按任意键继续..\ return 1; } while(q) { q->stu.getname(N); cout<<\cout< } cout<<\按任意键继续..\return 1; int menu_2_8(subjectdb *P) //选课情况 { subjectdb *q = P->Next; char M[20],N[20]; system(\ cout<<\选课情况操作\if(q!=NULL) { cout<<\所有选课情况如下:\\n\cout<<\课程名称\\t\\t选课人数\\n\ } else { cerr<<\对不起,暂时没有课程!!请按任意键继续..\ return 1; } while(q) { } q = P->Next; cout<<\请输入课程名称 :\cin>>M; while(q) { q->sub.getkname(N); studentname *K = q->sub.retfirst(); if(K!=NULL) K = K->Next; if(strcmp(N,M)==0) { system(\ if(K==NULL) { cerr<<\无任何选课信息!!\\t请按任意键继续..\ q->sub.getkname(N); cout<<\q = q->Next ; return 1; } cout<<\选修\课的学生名单如下:\\n\cout<<\姓名\\t\\t 成绩\while(K) { cout<<\ K = K->Next; } cout<<\请按任意键继续..\return 1; } q = q->Next; } cerr<<\无此课程!!\\t请按任意键继续..\return 1; } int menu_2_9(studentdb *Y,subjectdb *P) //保存数据 { studentdb *Z = Y->Next; subjectdb *X = P->Next; system(\ fstream file(\while(X) { } file.close(); fstream file1(\fstream file2(\while(Z) { } file1.write ((char *)&(Z->stu),sizeof(Z->stu)); int time = Z->stu.retfactcourse(); course *co = Z->stu.retroot(),*co1; if(co!=NULL) co1 = co->Next; while(time) { file2.write((char *)(co1),sizeof(*co1)); co1 = co1->Next; time = time - 1; file.write ((char *)&(X->sub),sizeof(X->sub)); X = X->Next; } Z = Z->Next; file2.close (); file1.close(); cout<<\保存数据成功!按任意键继续..\return 1; } int menu_2_0() //退出系统 { tuichu(); return 0; } int main() { subjectdb *P = new subjectdb,*Q=P; P->Next = NULL; subject M; fstream file(\while(1) { file.read((char *)&M,sizeof(M)); } file.close (); studentdb *Y = new studentdb,*X=Y; Y->Next=NULL; student N; course O; fstream file1(\fstream file2(\while(1) { } file1.read((char *)&N,sizeof(N)); if(!file1) break; Y->Next = new studentdb; Y->Next ->Next = NULL; Y->Next ->stu = N; int time = N.retfactcourse(); Y->Next->stu.clrroot (); while(time) { file2.read ((char *)&O,sizeof(course)); } if(!file2) break; Y->Next->stu.addcourse(O.cname ,O.grade); time--; if(!file) break; Q->Next = new subjectdb; Q->Next ->Next = NULL; Q->Next ->sub = M; Q = Q->Next; Y=Y->Next; file2.close (); file1.close (); Q=P->Next; while(Q) { Q->sub.clractivestudnet(); Q->sub.findstudent(X); Q = Q->Next; } char c; char b; int br=1; b = menu(); if(b=='1') { while(1) { c = custom(); switch(c) { case '1':br = menu_1_1(X,P);getch();break; // case '2':br = menu_1_2(X,P);getch();break; // case '3':br = menu_1_3(P);getch(); break; // case '4':br = menu_1_4(X,P); break; // } if (br == 0) break; } } if(b=='2') { password(); while(1) { c = server(); switch(c) { case '1':br = menu_2_1(X);getch(); break; // case '2':br = menu_2_2(P);getch(); break; // case '4':br = menu_2_4(P);getch(); break; // case '3':br = menu_2_3(X);getch(); break; // case '5':br = menu_2_5(X,P);getch();break; // case '6':br = menu_2_6(P);getch(); break; // case '7':br = menu_2_7(X);getch(); break; // case '8':br = menu_2_8(P);getch(); break; // case '9':br = menu_2_9(X,P);getch();break; // case '0':br = menu_2_0();break; // } if (br == 0) break; } } 学生选课 学生情况 选课情况 退出系统 增加学生增加课程删除课程删除学生填写成绩更改学分学生情况选课情况保存数据退出系统 } return 0; 四.测试与调试 程序中出现的问题: 1.从文件读入记录到程序里,一条记录有不同字段,分别要录入不同的变量里,最后用switch分别进行输出判断。 2.程序结束时,自动调用析构函数,没具体弄清析构函数其它用法,就把读出到文件的操作放在析构函数里面,导致文件里的数据在退出程序时被清空。清楚问题所在后,我就把读入文件的操作单独放在一个函数里,退出再调用。 3.在主函数调用菜单,先用的void类型,后来调用时发现不行,要输入的操作不能执行,就改成了char返回类型,判断其选择的什么。 4.用struct建立一条记录所需要的变量,再建立一个类,在类内建立一个结构成员数组,这样就可建立N条记录,但实际过程中,有时输入不到这么多条记录,所以建立了一个成员变量来保存建立多少条记录。 } return 0; 四.测试与调试 程序中出现的问题: 1.从文件读入记录到程序里,一条记录有不同字段,分别要录入不同的变量里,最后用switch分别进行输出判断。 2.程序结束时,自动调用析构函数,没具体弄清析构函数其它用法,就把读出到文件的操作放在析构函数里面,导致文件里的数据在退出程序时被清空。清楚问题所在后,我就把读入文件的操作单独放在一个函数里,退出再调用。 3.在主函数调用菜单,先用的void类型,后来调用时发现不行,要输入的操作不能执行,就改成了char返回类型,判断其选择的什么。 4.用struct建立一条记录所需要的变量,再建立一个类,在类内建立一个结构成员数组,这样就可建立N条记录,但实际过程中,有时输入不到这么多条记录,所以建立了一个成员变量来保存建立多少条记录。
正在阅读:
学生选课系统107-11
2012三生教育实施方案08-09
军事理论试题解答07-27
英国文学James_Joyce (1)09-02
2015年厦门市申报高级教师(小学幼儿园)专业考评工作的通知01-13
三道堰旅游调研报告10-16
技术管理检查评价表05-14
2011齐河县政府工作报告05-26
工程材料复习题01-07
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 选课
- 学生
- 系统