c学生成绩管理系统分析Word格式.docx

上传人:b****5 文档编号:20259618 上传时间:2023-01-21 格式:DOCX 页数:29 大小:1.08MB
下载 相关 举报
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

《c学生成绩管理系统分析Word格式.docx》由会员分享,可在线阅读,更多相关《c学生成绩管理系统分析Word格式.docx(29页珍藏版)》请在冰豆网上搜索。

c学生成绩管理系统分析Word格式.docx

2.3 删除函数

此函数实现的功能主要是,删除一个学生的信息。

在此函数中,先以读的方式打开文件,读出文件里的信息在显示在屏幕上,用户再根据提示信息输入想要删除第几个人的信息,关闭文件。

再以写的方式打开文件,以一个if条件语句控制,再重新将学生信息写入文件(除了打算删除的那个学生的信息),由于是以写的方式打开的文件,所以文件里原有的输入就都没有了,存入的新的数据。

2.4 修改函数

此函数实现的功能主要是,修改一个学生的信息。

此函数的设计方法和删除函数的设计思想相类似,应用的思想都是将学生信息重新写入文件的方法,将原有数据覆盖。

2.5 查询函数

在查询功能中,可以按多条件查询,本系统分为两个查询条件,即按学号查询和按姓名查询。

使用if语句来选择查询条件。

2.5.1 按学号查询

根据提示信息输入学号后,然后使用一个for循环语句,从第一个学生开始检索,如果该学生的学号和输入的学号相等,则输出该学生的信息,由于学生的学号是唯一固定的,所以并使用break语句跳出循环。

当无查询结果时,会输出一条提示信息“无此人信息!

”。

2.5.2 按姓名查询

根据提示信息输入姓名后,然后使用一个for循环语句,从第一个学生开始检索,如果该学生的姓名和输入的姓名一样,则输出该学生的信息,由于学生的姓名有可能重复出现,所以不能使用break语句跳出循环,应该从第一个学生开始检索直到最后一名学生。

2.6 显示函数

 此函数实现的功能主要是,显示所有学生的信息。

先是从文件中读取学生信息,然后在输出到显示窗口中。

用一个for循环语句,来把所有学生的信息都输出。

2.7 退出系统

当输入“0”时,就能退出系统,这是通过while语句来控制实现的。

3  调试及运行结果

3.1主菜单

3.2 创建或录入学生信息

3.3 修改学生信息

3.4 删除学生信息

3.5 浏览学生信息

3.6 查找学生信息

3.7 登记成绩

3.8 修改成绩

3.9 查看成绩单

3.10 查看某个学生成绩

4  总结

4.1 遇到的问题及解决方法

首先,是对文件的处理不够熟练,通过看书和搜集一些资料解决了这个问题;

其次,是在编写程序的过程中出现了一些语法错误,后通过调试逐一解决。

4.2 收获和体会

此次c++面向对象课程设计,在指导教师的精心教导下,我们学会了如何用C++编写一个简单的应用程序。

首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试。

程序实现上,设计了简单的菜单界面,将各个功能集中出现在主菜单中,便于调用。

根据C++课程所学的概念、理论和方法,按照C++程序设计的基本步骤,设计出一个适当规模的程序;

进一步加深对C++语言的理解和掌握。

理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。

我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在编程,就必须不断改进,才能更好提高编程能力。

参考文献

[1]  元芳,王亮编著《c++程序设计》,北京,清华大学出版社,2013年。

附录

#include"

iostream"

iomanip"

//它是I/O流控制头文

stdio.h"

stdlib.h"

//包含了C语言的一些函数

string.h"

#defineSPACE"

"

usingnamespacestd;

structstudentRecord

{

charstuNo[20];

charname[20];

intage;

floatMath;

floatEnglish;

floatPhysics;

floattotal;

}*p;

voidshujucharu();

//数据插入

voidshujuxiugai();

//数据修改

voidshujushanchu();

//数据删除

voidshujuliulan();

//数据浏览(按学号排序)

voidchengjidengji();

//学生成绩登记

voidchengjixiugai();

//学生成绩修改

voidviewTable();

//学生成绩查看(按成绩排名)

voidinquiry();

//成绩查询

voidwrite();

//文件写入

voidread();

//文件读取

intline();

//文件中记录学生的数目

inti,n;

booly;

voidmain()

inta,b;

cout<

<

SPACE<

"

------欢迎登陆学生成绩管理系统------"

endl<

endl;

请选择功能模块:

==================================<

菜单>

=============================="

cout<

1创建或录入学生信息"

cout<

2修改学生信息"

3删除学生信息"

4浏览学生信息"

5查找学生信息"

6登记成绩"

7修改成绩"

8查看成绩单"

9查看某个学生成绩"

0退出"

-----------------------------------------------------------------------"

请输入您的选择:

;

cin>

>

a;

system("

cls"

);

if(a==1||a==0)y=1;

if(y==0){cout<

请先录入学生信息,才能进行下面的操作!

a=1;

y=1;

}

while(a)

{

switch(a)

{

case1:

shujucharu();

break;

case2:

shujuxiugai();

case3:

shujushanchu();

case4:

{

==============================<

浏览学生信息>

1、按学号排序浏览"

2、按成绩排序浏览"

3、退出"

---------------------------------------------------------------------------"

cin>

b;

system("

while(b!

=3)

{

switch(b)

{

case1:

shujuliulan();

case2:

viewTable();

default:

请输入1-3之内的数!

}

cout<

按任意数字键返回浏览界面..."

intk;

cin>

k;

cin>

}

};

break;

case5:

inquiry();

case6:

chengjidengji();

case7:

chengjixiugai();

case8:

查看成绩单>

break;

case9:

default:

输入无效,请输入0-9之内的数!

}

按任意数字键返回菜单界面..."

cin>

}

//1.文件写入

voidwrite()

{FILE*fp;

if((fp=fopen("

stu.txt"

"

w"

))!

=NULL)

{for(i=0;

i<

n;

i++)

fprintf(fp,"

%s%s%d%f%f%f%f\n"

p[i].stuNo,p[i].name,p[i].age,p[i].Math,p[i].English,p[i].Physics,p[i].total);

fclose(fp);

else

printf("

文件打开或创建发生错误。

\n"

//2.文件读取

voidread()

r"

=NULL)

n=line();

p=newstructstudentRecord[n];

for(i=0;

fscanf(fp,"

%s%s%d%f%f%f%f"

p[i].stuNo,p[i].name,&

p[i].age,&

p[i].Math,&

p[i].English,&

p[i].Physics,&

p[i].total);

文件打开或创建发生错误!

//3.文件中记录学生的数目

intline()

{charc;

inth=0;

FILE*fp;

{while((c=fgetc(fp))!

=EOF)

if(c=='

\n'

h++;

文件打开或创建发生错误\n"

returnh;

//4.成绩查询

voidinquiry()

{read();

charb[20];

intm;

请选择查询方式"

1.学号查询"

2.姓名查询"

m;

if(m==1||m==2)

if(m==1)

cout<

请输入学号:

cin>

for(i=0;

{

if(strcmp(p[i].stuNo,b)==0)

{cout<

学号:

p[i].stuNo<

<

姓名:

p[i].name<

年龄:

p[i].age<

数学:

p[i].Math<

英语:

p[i].English<

物理:

p[i].Physics<

总分:

p[i].total<

break;

}

}

if(m==2)

请输入姓名进行查询:

{

if(strcmp(p[i].name,b)==0)

{cout<

<

输入错误,请输入1或2"

//5.数据插入

voidshujucharu()

a+"

=NULL)//以追加方式打开stu.txt文档

{intn;

请输入需要插入的学生数目:

//建立新节点

if(n==0)

没有进行数据插入"

for(inti=0;

{cout<

请输入插入的第"

i+1<

个学生的学号:

//输入

p[i].stuNo;

p[i].name;

p[i].age;

p[i].Math=0;

p[i].English=0;

p[i].Physics=0;

p[i].total=0;

i++)//输出

p[i].stuNo,p[i].name,p[i].age,

p[i].Math,p[i].English,p[i].Physics,p[i].total);

delete[]p;

//程序用delete[]删除数组并释放内存

文件打开或创建时发生错误.\n"

//6.数据修改

voidshujuxiugai()

请输入需要修改信息学生的学号:

//按学号查找进行修改

for(i=0;

{if(strcmp(p[i].stuNo,b)==0)//判断字符串b和字符串p[i].stuNo是否相等

该学生原始信息如下:

\t"

姓名:

数学成绩:

英语成绩:

p[i].English

<

物理成绩:

总分:

请重新输入该学生的信息:

修改

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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