c语言课程设计论文Word文档下载推荐.docx
《c语言课程设计论文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《c语言课程设计论文Word文档下载推荐.docx(22页珍藏版)》请在冰豆网上搜索。
voidprintall()
显示所有已经存入学生的成绩等信息
4
voidsearch()
根据姓名或者学号查询学生分数
5
voidjgsearch()
根据成绩查询对应的同学
6
voiddel()
删除学生信息
7
voidmodify()
修改学生信息
8
system(“cls”);
清屏
部分功能设计
1.删除学生的信息,输入学生的学号进行删除操作,如果没有此人,系统将会提示无此人,如果找到,系统将会确认你是否需要删除,流程图如1-2所示。
图1-2删除学生信息流程图
2.输入学号进行查询对应同学的成绩,流程图如图1-3所示。
图1-3查询功能流程图
3系统实现源程序
主函数设计
voidmain()
{
intx;
system("
cls"
);
/*清屏*/
do
{
printf("
\n欢迎使用学生成绩信息管理系统\n\n\n\n\n"
1---------添加学生信息\n\n"
2---------显示所有学生成绩信息\n\n"
3---------学号或姓名查询\n\n"
4---------成绩查询\n\n"
5---------删除学生成绩信息\n\n"
6---------修改学生成绩信息\n\n"
0---------退出"
请您选择:
"
choice:
scanf("
%d"
&
x);
switch(x)
{
case1:
add();
break;
case2:
printall();
case3:
search();
case4:
jgsearch();
case5:
del();
case6:
modify();
case0:
default:
printf("
\n错误的选择,请重新选择:
gotochoice;
}
}
while(x!
=0);
printf("
\n\n欢迎再次使用学生成绩管理系统\n"
}
添加学生信息
/*学生成绩信息管理系统*/
#include<
>
intc,j,t;
structstu/*定义结构体类型*/
charname[10];
charnum[10];
charscore[10];
student[100],
newstudent[100];
/*添加学生个人信息*/
voidaddnew()
{inta,b,k;
FILE*fp,*fp1,*fp2;
/*FILE类型指针变量的定义形式*/
for(a=0;
a<
200;
a++)
欢迎使用学生成绩管理系统\n\n\n"
录入学生信息\n\n"
输入学生姓名:
scanf("
%s"
student[a].name);
输入学生学号:
student[a].num);
输入学生成绩:
student[a].score);
输入‘1’继续,‘0’结束\n"
/*判断输入是否结束*/
b);
if(b==0)
c=a;
system("
break;
if((fp1=fopen("
"
w"
))==NULL)/*文件名,使用文件方式*/
{printf("
信息写入失败"
exit(0);
if((fp2=fopen("
))==NULL)
if((fp=fopen("
j=sizeof(structstu);
=c;
{if(fwrite(&
student[a],j,1,fp)!
=1)
存入失败!
{if(strcmp(student[a].score,"
80"
)==0)
{fwrite(&
student[a],j,1,fp1);
else
student[a],j,1,fp2);
添加成功!
\n\n"
请输入'
0'
返回\n"
scanf("
k);
fclose(fp1);
fclose(fp2);
fclose(fp);
if(k==0)
system("
/*继续添加成员*/
inta,b,k,p,q;
charwjm[20];
FILE*fp;
j=sizeof(structstu);
欢迎使用学生成绩信息管理系统\n\n\n"
\n\n存储文件名有\n\n"
请输入想继续添加的文件名:
wjm);
for(a=0;
newstudent[a].name);
newstudent[a].num);
newstudent[a].score);
ame,newstudent[q].name);
strcpy(student[p].num,newstudent[q].num);
strcpy(student[p].score,newstudent[q].score);
if((fp=fopen(wjm,"
文件打开失败!
exit(0);
=t+c;
{if(fwrite(&
fclose(fp);
if(k==0)
voidadd()
{intx;
添加学生信息\n\n"
1重新添加信息\n"
2继续添加信息\n"
0返回\n\n\n"
请选择:
switch(x)
case1:
addnew();
case2:
addold();
case0:
default:
/*显示所有学生的成绩*/
voidprintall()
inta,b;
FILE*fp,*fp1,*fp2;
全部已录入学生信息\n\n"
%-10s%-20s%-50s\n"
姓名"
学号"
成绩"
if((fp=fopen("
r"
))==NULL)
{printf("
\n打开失败"
exit(0);
if((fp1=fopen("
if((fp2=fopen("
a=0;
while(!
feof(fp))
{if(fread(&
student[a],j,1,fp)==1)
student[a].name,student[a].num,student[a].score);
a++;
feof(fp1))
student[a],j,1,fp1)==1)
feof(fp2))
student[a],j,1,fp2)==1)
fclose(fp1);
fclose(fp2);
返回上级请输入‘0’!
\n:
if(b==0)
姓名学号查询
intk,b,a;
charcx[20];
查找已录入学生成绩信息\n\n"
k=0;
if((fp=fopen("
))==NULL)
printf("
\n打开失败!
exit(0);
}
请输入学号或姓名:
\n"
cx);
if((cx[0]<
'
)||(cx[0]>
9'
))
{a=0;
while(!
{fread(&
student[a],j,1,fp);
if(strcmp(student[a].name,cx)==0)
\n\n已查到,该记录为:
k=1;
a++;
if('
<
=cx[0]<
='
)
if(strcmp(student[a].num,cx)==0)
if(!
k)
\n文件中无此人的记录。
fclose(fp);
\n输入“1”继续查找,“0”结束\n"
while(b!
成绩查询
{intb,a;
charcx[20];
FILE*fp;
do
查找学生成绩信息\n\n"
请输入学生成绩:
fread(&
if(strcmp(cx,student[a].score)==0)
{printf("
while(b!
删除学生成绩信息
intm=0,k=0,b,a,q,p;
charxh[20],wjm[20];
删除学生成绩信息\n\n"
\n请输入学号:
xh);
\n请输入欲删除的文件名:
if((fp=fopen(wjm,"
\n文件打开失败!
a=0;
fread(&
um)==0)
{k=1;
break;
}
if(a==t)
printf("
\n\n文件中无此人的记录。
if(k==1)
%-10s%-20s%-50s"
\n确实要删除记录,请按1;
不删除记录,请按0:
scanf("
m);
if(m)
{
for(p=a,q=a+1;
p<
t,q<
=t;
q++,p++)
{
strcpy(student[p].name,student[q].name);
strcpy(student[p].num,student[q].num);
strcpy(student[p].score,student[q].score);
}
for(a=0;
t;
fwrite(&
if(m)
\n删除成功!
\n输入“1”继续,“0”结束\n"
修改学生成绩信息
intk=0,b,a;
修改学生成绩信息\n\n"
\n请输入欲修改文件名:
r+"
t=a-1;
if(strcmp(xh,student[a].num)==0)
k=1;
break;
\n请输入新的姓名:
student[a].name);
\n请输入新的学号:
student[a].num);
\n请输入新的成绩:
student[a].score);
if((fp=fopen(wjm,"
exit(0);
for(a=0;
fwrite(&
\n修改成功!
fclose(fp);
4功能测试
菜单测试
学生成绩管理系统运行后的主菜单界面如图4-1所示。
图4-1系统主界面
系统功能测试
1.添加学生信息
在主菜单按1后,会显示图4-2,再按2添加学生的信息如图4-3所示,如果按1的话那么所有以前的保存的信息都将被清除,接着再重新输入数据。
图4-2学生信息输入界面
图4-3学生信息输入界面
2.显示所有学生成绩信息
在系统菜单上面按2,则所有的学生成绩都会显示如图4-4所示。
图4-4学生成绩浏览
3.学号或姓名查询
在主菜单上输入3,然后在根据姓名或者学号,可以查到该同学的分数,如图4-5和4-6图所示。
图4-5根据学号查询分数
图4-6根据姓名查询分数
4.成绩查询
在主菜单上输入4,可以得到图4-7所示,这是根据分数来确定学生。
图4-7根据分数来确定学生
5.删除学生成绩信息
在主菜单上按5,选择需要删除的对应文档里的该学生的成绩信息,可以得到图4-8所示。
图4-8删除学生信息
6.修改学生的信息
在主菜