学生的选课管理系统的Word下载.docx

上传人:b****6 文档编号:21609070 上传时间:2023-01-31 格式:DOCX 页数:40 大小:118.44KB
下载 相关 举报
学生的选课管理系统的Word下载.docx_第1页
第1页 / 共40页
学生的选课管理系统的Word下载.docx_第2页
第2页 / 共40页
学生的选课管理系统的Word下载.docx_第3页
第3页 / 共40页
学生的选课管理系统的Word下载.docx_第4页
第4页 / 共40页
学生的选课管理系统的Word下载.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

学生的选课管理系统的Word下载.docx

《学生的选课管理系统的Word下载.docx》由会员分享,可在线阅读,更多相关《学生的选课管理系统的Word下载.docx(40页珍藏版)》请在冰豆网上搜索。

学生的选课管理系统的Word下载.docx

—5月30日

同组人

课程设计任务书

1.系统的功能描述(10分)

2.系统的主要功能模块算法设计(30分)

3.系统的各函数设计(20分)

4.系统的编码(20分)

5.系统的运行(10分)

6.系统的主要功能模块算法性能分析(10分)

课程设计报告

一、系统的功能描述

通过此选课系统可以实现如下功能:

  

输入数据:

可以由用户输入学生信息、课程信息、选课信息建立各信息表;

查询各信息表:

可以查询学生信息表内的学生的个人信息,课程表里的课程信息和选课表里的选课信息;

查询学生个人信息、学生单科目成绩、个人总成绩;

删除、修改、添加选课信息;

查询学生个人平均成绩、系内所有学生成绩、某课程平均成绩;

二、系统的主要功能模块算法设计

根据实际情况,对上述要求做以下简化:

1,首先需要客户为系统输入各表信息。

2,查询或删除时只能查询或删除表内存在的信息,若表中不存在则报错。

3,各表信息由线性表实现,各表内信息按用户输入时的顺序存放。

程序中包含4个模块

(1)主程序模块;

(2)学生个人信息结构单元模块----定义各学生个人信息的结构体类型;

(3)课程信息结构单元模块----定义各课程信息的结构体类型;

(4)选课信息结构单元模块----定义各选课信息的结构体类型;

(5)功能模块----------------实现查询、修改、删除、添加信息,查询学生各个课程成绩等功能.

主要功能模块算法详细如下:

1、定义学生对象结构体类型

typedefstructnode

{charSno[10];

charSname[10];

charSsex[3];

charSage[3];

charSdept[4];

structnode*next;

}Student;

2、定义课程对象结构体类型

typedefstructnode2

{charCno[10];

charCname[10];

charCpno[5];

charCcredit[3];

structnode2*next;

}Course;

3、定义选课对象结构体类型

typedefstructnode3

charCno[10];

intGrade;

structnode3*next;

}SC;

4、初始化学生信息表、课程信息表、选课信息表

voidInitlistA(Student*stu)

{stu->

next=NULL;

}

voidInitlistB(Course*C)

{C->

voidInitlistC(SC*S)

{S->

5、求选课表长度

intGetlength(SC*S)

{inti=0;

SC*p;

p=S->

next;

while(p!

=NULL)

{p=p->

i++;

}return(i);

6、用户输入数据建立学生信息表(尾插法)

voidCreatelistA(Student*stu)

{Student*s,*r;

intm,i;

r=stu;

cout<

<

"

现在输入学生信息"

endl;

cout<

请输入学生个数:

;

cin>

>

m;

|学号|姓名|性别|年龄|所在系|"

for(i=0;

i<

i++)

{s=(Student*)malloc(sizeof(Student));

cin>

s->

Sno;

Sname;

Ssex;

Sage;

Sdept;

r->

next=s;

r=s;

r->

7、由用户输入数据建立课程信息列表

voidCreatelistB(Course*C)

{Course*s,*r;

r=C;

现在输入课程信息"

请输入课程数量:

|课程号|课程名|先行课|学分|"

{s=(Course*)malloc(sizeof(Course));

Cno;

Cname;

Cpno;

Ccredit;

8、由用户输入数据建立选课信息列表

voidCreatelistC(SC*S)

{SC*q,*r;

r=S;

现在输入选课信息"

请输入选课信息条数:

|学号|课程号|成绩|"

{q=(SC*)malloc(sizeof(SC));

q->

Grade;

next=q;

r=q;

9、输出学生信息表

voidDisplistA(Student*stu)

{Student*p=stu->

学生信息表"

|Sno|Sname|Ssex|Sage|Sdept|"

{printf("

|%10s|%9s|%8s|%8s|%10s|\n"

p->

Sno,p->

Sname,p->

Ssex,p->

Sage,p->

Sdept);

p=p->

10、输出选课信息表

voidDisplistC(SC*S)

{if(Getlength(S)==0)

{cout<

对不起!

选课信息表已为空!

}

else

{SC*p=S->

cout<

选课信息表"

|Sno|Cno|Grade|"

while(p!

{printf("

|%13s|%17s|%13d|\n"

Cno,p->

Grade);

p=p->

}}

11、查询学生个人基本信息,以姓名或学号为参数

voidQueryStudent(Student*stu)

charsn[20];

Student*p;

p=stu->

请输入所要查询的学生的学号或姓名"

请输入:

sn;

do

{if(strcmp(p->

Sname,sn)==0||strcmp(p->

Sno,sn)==0)

{

cout<

printf("

break;

//注意指针要往后走

}while(p!

=NULL);

if(p==NULL)cout<

无此学生的信息!

12、查询学生单科目的成绩

voidQuerySC(Student*stu,Course*C,SC*S)

{charsn[20];

charcn[20];

Course*q;

SC*r;

请输入所要查询的学生的学号和课程号"

学号或姓名:

//将姓名计算转化成为学号

{strcpy(sn,p->

Sno);

break;

if(p==NULL)

无该名学生的信息!

return;

课程号或课程名:

cn;

q=C->

//将课程名计算转化成为课程号

{if(strcmp(q->

Cno,cn)==0||strcmp(q->

Cname,cn)==0)

{strcpy(cn,q->

Cno);

q=q->

}while(q!

if(q==NULL)

您输入的课程信息有误!

}r=S->

{if(strcmp(r->

Sno,sn)==0&

&

strcmp(r->

Cno,cn)==0)

{cout<

|Sno|Cno|Grade"

r->

Sno,r->

Cno,r->

Grade);

r=r->

}while(r!

if(r==NULL)

该学生没有参加这门课程的考试!

13、查询学生个人总成绩

voidQuerySUM(Student*stu,SC*S)

{Student*p;

SC*q;

floatn=0;

inti=0;

请输入要查询的学生的信息!

学号或姓名:

Sno,sn)==0||strcmp(p->

Sname,sn)==0)

{q=S->

do

{if(strcmp(q->

{n=n+q->

q=q->

}while(q!

if(n==0)cout<

该名学生没有参加考试!

else

该名学生的总成绩为:

n<

}

14、删除选课信息

voidDeleteSC(Student*stu,Course*C,SC*S)

SC*t;

请输入要删除的信息中学生学号或姓名和课程号或课程名!

cin>

//检查是否存在这名学生

{if(strcmp(p->

//检查课程号是否合法

Cname,cn)==0||strcmp(q->

Cno);

t=S;

r=S->

{if(strcmp(r->

{t->

next=r->

free(r);

删除成功!

t=t->

r=r->

原表中没有您要删除的选课信息!

15、修改选课信息

voidRevalue(Student*stu,Course*C,SC*S)

{charsn[20],cn[20];

请输入您所要修改的学生或姓名和课程号或课程名!

学生或姓名:

p=stu->

//检查是否存在这名学生,若存在则将姓名转换为对应的学号

//检查是否存在这门课程,若存在则将课程名转换为对应的课程号

{if(strcmp(q->

}q=q->

if(q==NULL)

}r=S->

该名学生的当前选课信息为:

}r=r->

没有您要修改的选课信息!

请您重置该名学生的选课信息!

p=stu->

//检查学生信息表中是否存在这名学生

break;

您的输入有误!

return;

{cout<

strcpy(r->

Sno,sn);

strcpy(r->

Cno,cn);

成绩:

r->

修改成功!

16、添加选课信息

voidAddSC(Student*stu,Course*C,SC*S)

Student*p;

SC*r,*s;

请输入信息:

不存在该名学生,您不能添加其选课信息!

q=C->

{if(strcmp(cn,q->

Cname)==0||strcmp(cn,q->

Cno)==0)

{cout<

s=(SC*)malloc(sizeof(SC));

strcpy(s->

strcpy(s->

Grade=Grade;

while(r->

next!

{r=r->

s->

next;

添加成功!

17、查询个人平均成绩

voidQueryAva(Student*stu,SC*S)

{floatm=0;

inti=0;

Sno,sn)==0||strcmp(p->

{n=n+q->

i++;

该名学生的平均成绩为:

n/i<

18、查询某个系所有学生的成绩

voidQueryDepart(Student*stu,SC*S)

{charSdept[4];

请输入系名:

Sdept,Sdept)==0)

{q=S->

do

{if(strcmp(q->

Sno)==0)

{

cout<

|姓名|学号|课程号|成绩|"

|Sname|Sno|Cno|Grade|"

|"

p->

Sname<

|"

Sno<

Cno<

Grade<

|"

i=1;

}q=q->

}while(q!

}p=p->

if(i==0)

没有您需要的信息!

19、查询某课程的平均成绩

voidQuerySCL(Course*C,SC*S)

{charcn[20],cn1[20];

floatm=0;

floati=0;

请输入您所要查询的课程号或课程名!

Cno,cn)==0||st

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 判决书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1