c语言课程设计论文Word下载.docx
《c语言课程设计论文Word下载.docx》由会员分享,可在线阅读,更多相关《c语言课程设计论文Word下载.docx(27页珍藏版)》请在冰豆网上搜索。
charname[10];
//姓名
charnum[10];
//学号
charscore[10];
//成绩
}
if((fp1=fopen("
Ca1.txt"
"
w"
))==NULL)//文件名,使用文件方式
{printf("
信息写入失败"
);
exit(0);
charwjm[20];
//文件名
2.2函数设计
表1函数列表
序号
函数原型
功能说明
1
voidaddnew()
新增学生姓名,学号,成绩信息
2
voidaddold()
在原有基础上继续增加其他同学的信息
3
voidprintall()
显示所有已经存入学生的成绩等信息
4
voidsearch()
根据姓名或者学号查询学生分数
5
voidjgsearch()
根据成绩查询对应的同学
6
voiddel()
删除学生信息
7
voidmodify()
修改学生信息
8
system(“cls”);
清屏
2.3部分功能设计
1.删除学生的信息,输入学生的学号进行删除操作,如果没有此人,系统将会提示无此人,如果找到,系统将会确认你是否需要删除,流程图如1-2所示。
Yes
输出删除成功
结束
开始
输入学号
在文件里查找
输出文件无此人
确认删除
输入1
输入0
是否找到
No
图1-2删除学生信息流程图
2.输入学号进行查询对应同学的成绩,流程图如图1-3所示。
输入学号或姓名
在文件中查找
输出姓名,学号,成绩
输出文件无此人记录
图1-3查询功能流程图
3系统实现源程序
3.1主函数设计
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"
3.2添加学生信息
/*学生成绩信息管理系统*/
#include<
stdio.h>
stdlib.h>
string.h>
intc,j,t;
structstu/*定义结构体类型*/
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;
))==NULL)/*文件名,使用文件方式*/
if((fp2=fopen("
Ca2.txt"
))==NULL)
if((fp=fopen("
Ca3.txt"
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存储文件名有Ca1.txtCa2.txtCa3.txt\n\n"
请输入想继续添加的文件名:
wjm);
for(a=0;
newstudent[a].name);
newstudent[a].num);
newstudent[a].score);
//判断输入是否结束
if(b==0)
c=a;
system("
break;
}
if((fp=fopen(wjm,"
r"
文件打开失败!
exit(0);
a=0;
while(!
feof(fp))
{fread(&
student[a],j,1,fp);
a++;
fclose(fp);
t=a-1;
for(q=0,p=t;
q<
=c,p<
=t+c;
q++,p++)
strcpy(student[p].name,newstudent[q].name);
strcpy(student[p].num,newstudent[q].num);
strcpy(student[p].score,newstudent[q].score);
{if(fwrite(&
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("
))==NULL)
{printf("
\n打开失败"
exit(0);
if((fp1=fopen("
if((fp2=fopen("
{if(fread(&
student[a],j,1,fp)==1)
student[a].name,student[a].num,student[a].score);
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)
3.3姓名学号查询
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(&
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!
3.4成绩查询
{intb,a;
charcx[20];
FILE*fp;
do
查找学生成绩信息\n\n"
请输入学生成绩:
fread(&
if(strcmp(cx,student[a].score)==0)
{printf("
while(b!
3.5删除学生成绩信息
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(&
//将文件内容输入到数组中
a++;
t=a-1;
for(a=0;
=t;
if(strcmp(xh,student[a].num)==0)
{k=1;
}
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<
{
strcpy(student[p].name,student[q].name);
strcpy(student[p].num,student[q].num);
strcpy(student[p].score,student[q].score);
}
t;
fwrite(&
if(m)
\n删除成功!
\n输入“1”继续,“0”结束\n"
3.6修改学生成绩信息
intk=0,b,a;
修改学生成绩信息\n\n"
\n请输入欲修改文件名:
r+"
k=1;
break;
if