院系:信息工程学院专业:物联网专业 张艳灵 20137670754 张艳莎 20137670854 朱芳芳 20137670859 指导老师:刘玉怀刘占卫 一.总体框图 二.详细设计 1.运行环境:V-C++ 2. 界面设计 操作"/>
教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 求职职场 >

学生选课管理系统

来源:网络收集 时间:2026-09-13
导读: bd336x280(); iw=327-0-1378-327.jpg" alt="学生选课管理系统" /> 院系:信息工程学院专业:物联网专业 张艳灵 20137670754 张艳莎 20137670854 朱芳芳 20137670859 指导老师:刘玉怀刘占卫 一.总体框图 二.详细设计 1.运行环境:V-C++ 2. 界面设计 操作

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字,全部文档内容请下载后查看。喜欢就下载吧 ……

学生选课管理系统.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1700353.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)