C++学生成绩管理系统Word文件下载.docx
- 文档编号:6146574
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:23
- 大小:580.70KB
C++学生成绩管理系统Word文件下载.docx
《C++学生成绩管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《C++学生成绩管理系统Word文件下载.docx(23页珍藏版)》请在冰点文库上搜索。
(3)按学生姓名进行排列模块:
主要功能是用来对学生的资料按姓名进行排序。
在系统保存学生资料,成绩的前提下,使用此功能可以对学生的资料按姓名进行排序,这样就方便查找姓氏相同或是相近的同学的资料。
(4)添加学生资料模块:
主要功能是用来添加学生资料,成绩。
如果系统有保存学生资料的情况下,想录入学生成绩的话,就不用添加学生资料这模块。
如果系统没有保存该学生信息的话,就要使用此模块,在成功添加学生资料后,就可以对该学生进行其他的操作。
(5)按姓名查找,删除该学生资料模块:
主要功能是用来删除学生资料。
在系统保存学生资料的前提下,想删除某学生的资料,可以输入学生姓名,系统查找该学生资料后,就可以删除了。
由于学生辍学,毕业等原因,及时对系统进行更新,删除一些没用的信息,可以使系统更加优化。
(6)查找并显示学生资料模块:
主要功能是用来查找学生资料。
在系统保存了某学生资料的前提下,想要查找该学生资料,可以输入该学生姓名,这样系统就会显示该学生资料和各科成绩等信息。
(7)按姓名查找,修改学生资料模块:
主要功能是用来修改学生资料。
在系统保存了某学生资料的前提下,想要查找该学生资料,可以输入该学生姓名,系统就会显示该学生资料和各科成绩等信息,这样就可以修改该学生的资料,成绩等信息。
(8)从文件中读入数据模块:
主要功能是用来从文件中读入学生数据。
由于一些资料可以用Word文档或Excel表格输入,故在此模块中增加了导入数据的功能。
这样就方便很多,不用把学生资料一个一个添加,节省了很多时间精力。
(9)储存学生资料并退出系统模块:
主要功能是用来储存学生资料。
在对系统进行一系列操作,比如添加、删除、修改学生资料后,对系统的最新操作进行保存,及时更新系统,方便下一次的操作。
Student类类图如下
typedefclass
{public:
charnum[10];
charcla[10];
charname[20];
charbyyl[10];
charjsjzc[20];
charsjk[10];
charjsjyy[20];
charjsdl[20];
}Student;
student类说明表如下
名称
属性
说明
num
数据成员
说明学生学号
cla
说明学生班级
name
说明学生名字
byyl
说明学生数据结构成绩
jsjzc
说明学生离散数学成绩
sjk
说明学生大学物理成绩
jsjyy
说明学生大学英语成绩
Jssl
说明学生模拟电路成绩
功能:
定义菜单函数,通过输出函数显示系统功能。
利用switch语句实现多分支选择结构。
算法思路:
switch语句的执行流程是:
首先计算switch后面圆括号中表达式的值,然后用此值依次与各个case的常量表达式比较,若圆括号中表达式的值与某个case后面的常量表达式的值相等,就执行此case后面的语句,执行后遇break语句就退出switch语句。
代码:
voidmain()//主函数调用。
{intn=0;
for(;
;
)
{switch(menu())
{case1:
cout<
<
setw(15)<
"
"
输入学生资料"
endl;
n=Input(stu,n);
break;
case2:
输出所有学生资料"
Display(stu,n);
case3:
按姓名排序"
Sort(stu,n);
system("
pause"
);
case4:
插入学生资料"
n=Insert(stu,n);
case5:
删除学生资料"
输入他(她)的姓名:
n=Delete(stu,n);
case6:
查找学生"
Query(stu,n);
case7:
修改学生资料"
输入你要修改的学生的姓名:
n=Xiugai(stu,n);
case8:
从文件中读入数据"
n=AddfromText(stu,n);
case0:
将所有资料写入文件"
WritetoText(stu,n);
}}}
六、功能测试
学生成绩管理系统主菜单页面
输入学生资料模块页面
输出学生资料模块页面
按学生姓名进行排列模块页面
添加学生资料模块页面
按姓名查找,删除该学生资料模块页面
查找并显示学生资料模块情况页面
按姓名查找,修改学生资料模块页面
从文件中读入数据模块页面
储存学生资料并退出系统模块页面
七、源程序代码
#include<
iostream>
stdio.h>
ctype.h>
stdlib.h>
string.h>
iomanip>
usingnamespacestd;
}
Student;
Studentstu[80];
intmenu()
{charc;
c<
'
0'
||c>
8'
{system("
cls"
欢迎使用本学生成绩管理系统!
!
******************************学生成绩管理系统******************************"
setw(32)<
1.输入学生资料"
2.输出学生资料"
3.按学生姓名进行排列"
4.添加学生资料"
5.按姓名查找,删除该学生资料"
6.查找并显示学生资料"
7.按姓名查找,修改该学生资料"
8.从文件中读入数据"
0.储存学生资料并退出系统"
setfill('
='
)<
setw(48)<
="
请选择(0-8):
c=getchar();
return(c-'
intInput(Studentstud[],intn)//输入数据。
{inti=0;
charsign,x[10];
sign!
='
n'
&
&
sign!
N'
{cout<
班级:
cin>
>
stud[n+i].cla;
学号:
stud[n+i].num;
姓名:
stud[n+i].name;
数据结构:
stud[n+i].byyl;
离散数学:
stud[n+i].jsjzc;
大学物理:
stud[n+i].sjk;
大学英语:
stud[n+i].jsjyy;
模拟电路:
stud[n+i].jsdl;
gets(x);
setw(10)<
还有要输入的信息吗?
(y/n)"
sign;
i++;
return(n+i);
voidDisplay(Studentstud[],intn)//输出数据。
{inti;
-'
setw(65)<
-"
班级学号姓名数据结构离散数学大学物理大学英语模拟电路"
for(i=1;
i<
n+1;
i++)
{printf("
\t\t%-9s%-9s%-9s%-9s%-9s%-9s%-9s\n"
stud[i-1].cla,stud[i-1].num,stud[i-1].name,stud[i-1].byyl,stud[i-1].jsjzc,stud[i-1].sjk,stud[i-1].jsjyy);
if(i>
1&
i%10==0)
setw(35)<
}}
voidSort(Studentstud[],intn)//按名字排序。
{inti,j;
chart[20];
for(i=0;
n-1;
for(j=0;
j<
n-1-i;
j++)
if(strcmp(stud[j].num,stud[j+1].num)>
0)
{strcpy(t,stud[j+1].cla);
strcpy(stud[j+1].cla,stud[j].cla);
strcpy(stud[j].cla,t);
strcpy(t,stud[j+1].num);
strcpy(stud[j+1].num,stud[j].num);
strcpy(stud[j].num,t);
strcpy(t,stud[j+1].name);
strcpy(stud[j+1].name,stud[j].name);
strcpy(stud[j].name,t);
strcpy(t,stud[j+1].byyl);
strcpy(stud[j+1].name,stud[j].byyl);
strcpy(stud[j].byyl,t);
strcpy(t,stud[j+1].jsjzc);
strcpy(stud[j+1].name,stud[j].jsjzc);
strcpy(stud[j].jsjzc,t);
strcpy(t,stud[j+1].sjk);
strcpy(stud[j+1].name,stud[j].sjk);
strcpy(stud[j].sjk,t);
strcpy(t,stud[j+1].jsjyy);
strcpy(stud[j+1].name,stud[j].jsjyy);
strcpy(stud[j].jsjyy,t);
strcpy(t,stud[j+1].jsdl);
strcpy(stud[j+1].name,stud[j].jsdl);
strcpy(stud[j].jsdl,t);
排序成功!
intInsert(Studentstud[],intn)//插入一条学生信息。
{charx[10];
stud[n].cla;
stud[n].num;
stud[n].name;
stud[n].byyl;
stud[n].jsjzc;
stud[n].sjk;
stud[n].jsjyy;
stud[n].jsdl;
n++;
插入成功!
return(n);
intDelete(Studentstud[],intn)//按名字查找信息,删除信息。
{chars[20];
inti=0,j;
s;
while(strcmp(stud[i].name,s)!
=0&
n)i++;
/*查找判断*/
if(i==n)
\t\t\t没有发现该学生资料!
\n"
/*返回失败信息*/
for(j=i;
j++)/*删除操作*/
{strcpy(stud[j].num,stud[j+1].num);
strcpy(stud[j].name,stud[j+1].name);
strcpy(stud[j].cla,stud[j+1].cla);
strcpy(stud[j].byyl,stud[j+1].byyl);
strcpy(stud[j].jsjzc,stud[j+1].jsjzc);
strcpy(stud[j].sjk,stud[j+1].sjk);
strcpy(stud[j].jsjyy,stud[j+1].jsjyy);
strcpy(stud[j].jsdl,stud[j+1].jsdl);
当前信息已删除成功!
/*返回成功信息*/
return(n-1);
voidQuery(Studentstud[],intn)//按名字查找信息
inti=0;
n)
/*输入失败信息*/
return;
stud[i].num<
stud[i].byyl<
stud[i].jsjzc<
stud[i].sjk<
stud[i].jsjyy<
stud[i].jsdl<
intXiugai(Studentstud[],intn)//修改信息。
{n=Delete(stud,n);
输入你要修改的学生资料"
n=Insert(stud,n);
修改完成"
intAddfromText(Studentstud[],intn)//从文件中读入数据。
{inti=0,num;
FILE*fp;
charfilename[20];
输入文件名:
filename;
if((fp=fopen(filename,"
rb"
))==NULL)
无法打开文件"
fscanf(fp,"
%d"
&
num);
num;
{fscanf(fp,"
%s%s%s%s%s%s%s"
stud[n+i].cla,stud[n+i].num,stud[n+i].name,stud[n+i].byyl,stud[n+i].jsjzc,stud[n+i].sjk,stud[n+i].jsjyy,stud[n+i].jsdl);
n+=num;
fclose(fp);
读入成功!
voidWritetoText(Studentstud[],intn)//将所有记录写入文件。
将资料输入文件"
w"
fprintf(fp,"
%d\n"
n);
n;
{fprintf(fp,"
%-6s%-5s%-5s%-5s%-5s%-5s%-5s\n"
stud[i].cla,stud[i].num,stud[i].name,stud[i].byyl,stud[i].jsjzc,stud[i].sjk,stud[i].jsjyy);
输入成功!
intb;
请确定是否退出系统:
0.退出系统"
1.返回"
b;
if(b==0)
谢谢使用!
exit(0);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 学生 成绩管理系统