77范文网 - 专业文章范例文档资料分享平台

c++学生选修课程系统课程设计(3)

来源:网络收集 时间:2019-08-28 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

{ return root; } //利用键表将所有的课程保存起来 int retmaxcourse() { return 5; } //得到最多可学的课程数目 void clrroot() //清零 { root = NULL; factcourse = 0;}

private: char sname[20]; //学生的姓名 int maxcourse; //学生最多可以学五门课程 int factcourse; //学生实际所学的课程数目 course *root; //课程的根结点指针 };

void student::readname (char N[])//读入学生的姓名 { strcpy(sname,N); }

void student::getname(char N[])//得到学生的姓名 { strcpy(N,sname); }

void student::wrecourse(char N[],float score)//要据课程名写入学生课程的成绩 { course *p = root; if(p==NULL) return; if(p!=NULL) p = p->Next; while(p) { if(strcmp(p->cname,N)==0) p->grade = score; p = p->Next;} }

float student::average()//学生课程的平均成绩 { float aver=0.0; course *p = root; while (p) { aver = aver+p->grade; } aver = aver/factcourse; return aver; }

void student::addcourse (char N[],float g)//给学生增加一门课 { course *s = new course; s->Next=NULL; if(root == NULL) root = s; course *p = root; course *newcourse = new course; newcourse->Next = p->Next; p->Next=newcourse; strcpy(newcourse->cname,N); newcourse->grade = g;

10

factcourse++;}

int student::findcourse (char N[])//查找是否已有此课程,如果有返回,如果没有返回 { course *p = root; if(root==NULL) return 0; p = p->Next; while(p) { if(strcmp(p->cname,N)==0) return 1; p = p->Next;} return 0; } class studentdb {public: student stu; studentdb *Next; }; struct studentname

{ char tname[20]; //学生的名字 float result; //学生所得的该课程分数 studentname *Next; }; //课程类 class subject {public: subject() { first = NULL; maxstudent=30; activestudnet=0; } float readcredit(); //得到课程的学分 void getcredit(float a); //设置学分 float getaverage(); //得到学生的平均成绩 float getresult(char N[]); //查找某个学生的成绩 void getkname(char N[]); //读出课程的名称 void setkname(char N[]); //读入课程的名称 studentname *retfirst() { return first; } //返回根结点 void findstudent(studentdb *P); //根据该课程的名称,寻找选这课程的学生 int retactivestudent() { return activestudnet; } //返回实际学生数 int retmaxstudent() { return 30; } //返回最多学生数 void clractivestudnet() { activestudnet = 0; } //从文件中读出来后将实际学生数清零 private: int maxstudent; //最多学生数 int activestudnet; //实际学生数

11

studentname *first; //学生名单 float credit; //该课程的学分 float averagerusult; //该课程的平均成绩 char kname[20]; //该课程的名称 };

float subject::readcredit ()//得到课程的学分 { return credit; }

void subject::getcredit (float a)//设置学分 { credit=a; }

float subject::getaverage()//得到学生的平均成绩 { float k = 0.0; studentname *p; p=first->Next; if(p==NULL) return 0; while(p) { k = k + p->result; p = p->Next ; } return k/activestudnet; }

float subject::getresult (char N[]) //查找某个学生的成绩 { studentname *p; p = first; while(p) { if(strcpy(p->tname ,N)==0) return p->result; p = p->Next ; } return -1; }

void subject::getkname (char N[]) //读出课程的名称 { strcpy(N,kname); }

void subject::setkname (char N[]) //读入课程的名称 { strcpy(kname,N); }

void subject::findstudent(studentdb *P) //根据该课程的名称,寻找选这课程的学生 { studentname *newcode = new studentname; newcode->Next=NULL; first = newcode; studentname *T = first; studentdb *K = P->Next; while(K) { course *Y = K->stu.retroot(); if(Y ==NULL) { K = K->Next; continue; } if(Y!=NULL) Y = Y->Next;

12

while(Y) { if(strcmp(Y->cname,kname)==0) { studentname *Acode = new studentname; char Name[20]; K->stu.getname(Name); strcpy(Acode->tname,Name); Acode->result = Y->grade; Acode->Next = T->Next; T->Next = Acode; activestudnet = activestudnet + 1; break; } Y = Y->Next; } K = K->Next; } return ; } void tuichu()

{ system(\ cout<<\谢谢你使用选修课系统\\n\\n\ cout<<\ you're welcome ! \\n\ getch(); exit(-1); } //总菜单 char menu() { int k=0; char a[3],c,i; system(\ cout<>a; if(strlen(a)==1) { for(i='1';i<='2';i++) { c=i; if(c==a[0])

13

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<<\按任意键继续\ getch(); tuichu(); }

14

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库c++学生选修课程系统课程设计(3)在线全文阅读。

c++学生选修课程系统课程设计(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/688649.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: