C课程设计报告学生成绩管理系统Word格式.docx

上传人:b****1 文档编号:3469066 上传时间:2023-05-01 格式:DOCX 页数:29 大小:53.50KB
下载 相关 举报
C课程设计报告学生成绩管理系统Word格式.docx_第1页
第1页 / 共29页
C课程设计报告学生成绩管理系统Word格式.docx_第2页
第2页 / 共29页
C课程设计报告学生成绩管理系统Word格式.docx_第3页
第3页 / 共29页
C课程设计报告学生成绩管理系统Word格式.docx_第4页
第4页 / 共29页
C课程设计报告学生成绩管理系统Word格式.docx_第5页
第5页 / 共29页
C课程设计报告学生成绩管理系统Word格式.docx_第6页
第6页 / 共29页
C课程设计报告学生成绩管理系统Word格式.docx_第7页
第7页 / 共29页
C课程设计报告学生成绩管理系统Word格式.docx_第8页
第8页 / 共29页
C课程设计报告学生成绩管理系统Word格式.docx_第9页
第9页 / 共29页
C课程设计报告学生成绩管理系统Word格式.docx_第10页
第10页 / 共29页
C课程设计报告学生成绩管理系统Word格式.docx_第11页
第11页 / 共29页
C课程设计报告学生成绩管理系统Word格式.docx_第12页
第12页 / 共29页
C课程设计报告学生成绩管理系统Word格式.docx_第13页
第13页 / 共29页
C课程设计报告学生成绩管理系统Word格式.docx_第14页
第14页 / 共29页
C课程设计报告学生成绩管理系统Word格式.docx_第15页
第15页 / 共29页
C课程设计报告学生成绩管理系统Word格式.docx_第16页
第16页 / 共29页
C课程设计报告学生成绩管理系统Word格式.docx_第17页
第17页 / 共29页
C课程设计报告学生成绩管理系统Word格式.docx_第18页
第18页 / 共29页
C课程设计报告学生成绩管理系统Word格式.docx_第19页
第19页 / 共29页
C课程设计报告学生成绩管理系统Word格式.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C课程设计报告学生成绩管理系统Word格式.docx

《C课程设计报告学生成绩管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《C课程设计报告学生成绩管理系统Word格式.docx(29页珍藏版)》请在冰点文库上搜索。

C课程设计报告学生成绩管理系统Word格式.docx

45?

77

陈东明?

05?

38?

47

请用C/C++编写一系统,实现学生信息管理,软件的入口界面应包括如下几个方面:

功能要求:

(1)?

信息维护:

要求:

学生信息数据要以文件的形式保存,能实现学生信息数据的维护。

此模块包括子模块有:

增加学生信息、删除学生信息、修改学生信息

(2)?

信息查询:

查询时可实现按姓名查询、按学号查询

(3)?

成绩统计:

A输入任意的一个课程名(如数学)和一个分数段(如60--70),统计出在此分数段的学生情况。

(4)?

排序:

能对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果(使用表格的形式显示排序后的输出结果)

其它要求:

(1)只能使用C/C++语言,源程序要有适当的注释,使程序容易阅读

(2)至少采用文本菜单界面(如果能采用图形菜单界面更好)

(3)学生可自动增加新功能模块(视情况可另外加分)

(4)写出课程设计报告,具体要求见相关说明文档

2、设计分析

(1)需求分析:

该程序要能实现对学生成绩信息的增加、删除、修改,实现对学生按姓名查询,按学号查询显示,对任意一个课程名和分数段的学生人数进行输出并统计人数,最好还要根据用户的需求对学生成绩排序。

(2)系统性能要求:

a.系统安全、可靠;

b.功能齐全;

c.操作方便、界面友好;

d.易于维护和扩充。

(3)系统功能模块:

学生成绩管理系统包括:

增加、删除、修改、显示、信息查询、成绩统计、排序几个部分构成。

(4)模块框架图

3、调试说明

运行程序后,现出来一个简洁的主界面。

若没有学生信息,显示“这是一个新系统,无学生信息,请先输入。

”若已存在学生信息,显示“读取学生信息成功!

一秒钟后,自动切入主菜单界面。

首先选择1,增加学生信息。

录入学生信息后选择4,显示学生信息。

选择2,删除学生信息,输入要删除的学生姓名,这里我输入的是王露,显示剩下几位同学的信息。

选择3,修改学生信息,输入要修改的学生姓名,然后输入新的学生信息,这里我修改的是张明明,显示修改后的学生信息。

将张明明和王露的信息重新输入。

输入5,信息查询,出来选择界面,“1、按学生姓名查找”、“2、按学生学号查找”,输入1,运行结果如下:

输入2,运行结果如下:

输入6,排序,显示选择界面,用户可根据需求选择科目和升降序,这里我是按语文成绩降序排序。

输入7,成绩统计,用户自行输入要统计的科目和分数段进行统计。

这里我统计的是英语成绩在60—90的学生。

4、源程序代码

#include<

iostream>

fstream>

iomanip>

stdlib.h>

Windows.h>

conio.h>

usingnamespacestd;

#defineHEADER1"

-----------------------------学生成绩----------------------------\n"

#defineHEADER2"

|姓名|学号|数学|语文|英语|总分|\n"

#defineHEADER3"

|----------|----------|----------|----------|----------|----------|\n"

classStudent//定义学生类

{

public:

charname[20];

charid[20];

intmath;

intchinese;

intenglish;

intsum;

Student*next;

voidinput();

voidReadFile(istream&

in);

voidshow();

};

voidStudent:

:

input()//输入学生信息函数

cout<

<

"

\n\t\t请输入:

endl<

endl;

\t\t姓名:

;

cin>

>

name;

\t\t学号:

id;

\t\t数学成绩:

math;

\t\t语文成绩:

chinese;

\t\t英语成绩:

english;

sum=math+chinese+english;

}

ReadFile(istream&

in)//读取文件

in>

name>

id>

math>

chinese>

english>

sum;

show()//输出学生信息

|"

setw(8)<

name<

setw(6)<

id<

math<

chinese<

english<

setw(7)<

sum<

classStudentMassage//定义学生信息类,包含各项处理功能

StudentMassage();

~StudentMassage();

voidShowMenu();

voidDisplay();

voidAddItem();

voidFind();

voidsave();

voidModifyItem();

voidRemoveItem();

voidSwap(Student*p1,Student*p2);

voidSort();

intListCount();

intCount();

private:

Student*Head,*End;

ifstreamin;

ofstreamout;

Student*FindItem(char*name);

Student*FindId(char*id);

Student*StudentMassage:

FindItem(char*name)

Student*p;

for(p=Head;

p->

next!

=End;

p=p->

next)

if(!

strcmp(p->

next->

name,name))

returnp;

returnNULL;

FindId(char*id)

id,id))

StudentMassage:

StudentMassage()//构造函数

Head=newStudent;

Head->

next=newStudent;

End=Head->

next;

in.open("

sort.txt"

);

if(!

in)

cout<

\n\t\t这是一个新系统,无学生信息,请先输入。

else

{

while(!

in.eof())

{

End->

ReadFile(in);

if(End->

name[0]=='

\0'

break;

End=End->

}

in.close();

\n\t\t读取学生信息成功!

}

~StudentMassage()//析构函数

Student*temp;

save();

for(temp;

Head->

temp=Head->

Head->

next=Head->

deletetemp;

deleteHead,End;

voidStudentMassage:

ShowMenu()//显示菜单

\n\n\t\t\t\t主菜单"

\t\t****************************************"

\t\t1、增加学生信息2、删除学生信息"

\t\t3、修改学生信息4、显示学生信息"

\t\t5、信息查询6、排序"

\t\t7、成绩统计0、安全退出"

\t\t请选择:

Display()//显示学生信息

HEADER1<

HEADER2<

HEADER3;

for(p=Head->

p!

p->

show();

\n\n输入任意字符,继续......"

getch();

AddItem()//添加学生信息

End->

input();

End=End->

\n\t\t添加成功!

\n输入任意字符,继续......"

Find()//查找函数

charname[20],id[20];

intx;

Student*p=NULL;

\n\t\t****************************************\n"

\t\t\t1、按学生姓名查找"

\t\t\t2、按学生学号查找"

\n\t\t****************************************\n\n\t\t请选择:

x;

switch(x)

case1:

//按姓名查找

cout<

\n\t\t请输入要查找的学生的姓名:

cin>

if(p=FindItem(name))

{

cout<

p->

\n请输入任意字符,继续......"

getch();

}

else

\t\t没有找到该姓名的学生!

请输入任意字符,继续......"

}break;

case2:

//按学号查找

\n\t\t请输入要查找的学生的学号:

if(p=FindId(id))

\n\t\t没有找到该学号的学生!

ModifyItem()//修改学生信息

\n\t\t请输入要修改的学生的姓名:

if(p=FindItem(name))

\n\t\t已找到该学生,请输入新的信息!

\n\t\t修改成功!

Display();

\n\t\t没有找到!

\n输入任意字符!

继续......."

getch();

RemoveItem()//删除学生信息

Student*p=NULL,*temp=NULL;

\n\t\t请输入要删除的学生的姓名:

temp=p->

next=p->

\n\t\t删除成功!

\t\t没有找到!

输入任意字符!

继续......"

intStudentMassage:

ListCount()//返回记录的学生总数

intn=0;

Head)

return0;

n++;

returnn;

Count()//成绩统计

intx,m,n,count=0;

\n\t\t没有资料可以统计!

\t\t\t1、统计数学成绩"

\t\t\t2、统计语文成绩"

\t\t\t3、统计英语成绩"

\n\t\t请输入分数段的起始分数和终止分数:

m;

n;

for(p=Head;

if(p->

=m&

&

=n)

{

count++;

if(count==1)

cout<

p->

}

\n\t\t数学成绩在"

m<

--"

n<

的学生共有"

count<

人!

\n"

输入任意字符,继续......."

getch();

};

break;

\n\t\t语文成绩在"

case3:

\n\t\t英语成绩在"

Swap(Student*p1,Student*p2)//交p1,p2学生信息

Student*temp=newStudent;

strcpy(temp->

name,p1->

name);

id,p1->

id);

temp->

math=p1->

chinese=p1->

english=p1->

sum=p1->

strcpy(p1->

name,p2->

id,p2->

p1->

math=p2->

chinese=p2->

english=p2->

sum=p2->

strcpy(p2->

name,temp->

id,temp->

p2->

math=temp->

chinese=temp->

english=temp->

sum=temp->

Sort()//排序

Student*p=NULL,*p1=NULL,*k=NULL;

intn=StudentMassage:

ListCount(),x,y;

if(n<

2)

数据较少,无法排序!

return;

\n\t\t**************************************\n"

\t\t\t1、按数学成绩排序"

\t\t\t2、按语文成绩排序"

\t\t\t3、按英语成绩排序"

\t\t\t4、按总分排序"

\n\t\t**************************************\n\n\t请选择:

\t\t\t1、按降序排序\n\t\t\t2、按升序排序"

y;

if(y==1)

for(p=Head->

for(k=p->

k!

k=k->

{

if(p->

k->

math)

StudentMassage:

Swap(p,k);

}

cout<

\n\t\t排序完成!

StudentMassage:

Display();

getch();

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

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2