学生选课管理系统
bd336x280();iw=327-0-1378-327.jpg" alt="学生选课管理系统" />
院系:信息工程学院专业:物联网专业
张艳灵 20137670754
张艳莎 20137670854
朱芳芳 20137670859
指导老师:刘玉怀刘占卫
一.总体框图
二.详细设计
1.运行环境:V-C++ 2. 界面设计
操作选择:
选1:进入学生系统界面
选2:进入管理系统界面3.学生端口
操作选择:选1:进入选课系统
操作选择:
选1:进入课程信息界面
选2:进入学生信息界面
选3:进入选课界面
选4:退出,并保存相关记录到文件里4.管理系统
操作:输入密码:admin
操作选择:
选1:增加学生
选2:增加课程
选5:填写成绩
选7:学生信息
选8: 选课情况
选0:退出系统
三. 程序运行
#include <string.h>
#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>
#include <iomanip.h>
#include <fstream.h>
#include <conio.h>
//定义课程
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[]);
int retfactcourse()
{
return factcourse;
} //得到所学的课程数目
course *retroot()
{
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;
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;
}
struct studentdb
{
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; //返回最多学生数30
}
void clractivestudnet()
{
activestudnet = 0;
}
private:
int maxstudent; //最多学生数
int activestudnet; //实际学生数
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;
while(Y)
{
if(strcmp(Y->cname,kname …… 此处隐藏:4326字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [求职职场]加法运算定律的运用练习题
- [求职职场]大型石油化工工业过程节能新技术
- [求职职场]2015-2020年中国箱纸板行业分析与投资
- [求职职场]NADEX-IWC5A点焊机故障代码
- [求职职场]英语阅读 非常有用
- [求职职场]鲁卫疾控发〔2012〕2号(联合,印发山东
- [求职职场]2014年莆田公务员行测技巧:数字推理的
- [求职职场]基于最近发展区理论的高中数学课堂有效
- [求职职场]与贸易有关的知识产权协议
- [求职职场]【王风范】微演说·职场演说三
- [求职职场]新时代国珍健康大课堂
- [求职职场]群论期末考试复习题
- [求职职场]施工现场消防安全专项施工方案(范本)-
- [求职职场]初中物理光学知识点归纳完美版
- [求职职场]毕业设计总结与体会范文
- [求职职场]江南大学2018年上半年展示设计第1阶段
- [求职职场]景尚乡民兵参战支前保障方案
- [求职职场]【优质】2019年工会职工之家建设工作总
- [求职职场]数据库技术与应用—SQL Server 2008(第
- [求职职场]汽车变速箱构造与工作原理
- 首钢工业区工业遗产资源保护与再利用研
- 第4课 《大学》节选
- 2016程序文件——检验检测结果发布程序
- 2011年高考试题文言文阅读全解释__2011
- 化学是一门基础的自然科学
- 海外做市商制度的借鉴意义
- 外国建筑史复习资料(
- 七年级下思想品德期末综合测试(二)
- 思政课部2013年上学期教学工作总结
- 电大国际公法任务3 0004
- 《圆的认识》教学设计
- 中国轨道交通牵引变流器行业市场发展调
- 中泰证券#定期报告:坚守时代硬科技和
- 浅论企业财务管理与企业经营投资风险的
- 大功率半导体激光器光纤耦合技术调研报
- 中国传统家具的现状与发展探讨
- Broadcom数字电视芯片助海尔扩展高清电
- 新HSK4词汇练习 超全(五)
- 2013届高考数学单元考点复习12
- 雨霖铃精品课件




