学生成绩管理系统C语言源码.docx
- 文档编号:5276101
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:39
- 大小:22.15KB
学生成绩管理系统C语言源码.docx
《学生成绩管理系统C语言源码.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统C语言源码.docx(39页珍藏版)》请在冰豆网上搜索。
学生成绩管理系统C语言源码
#include
#include
#include
#include
#defineN1000/*链表导入数组的长度,可以说是记录数*/
#defineLENsizeof(structstudent)/*用LEN代替结构体的长度*/
#defineIFORM"%s%s%d%d%d%d%d"/*输入数据的格式*/
#defineIFORM2p1->number,p1->name,&p1->grade[0],&p1->grade[1],&p1->grade[2],&p1->grade[3],&p1->grade[4]/*输入数据存放到链表的格式*/
#defineOFORM"%s%s%d%d%d%d%d"/*将数据输出到文件的格式*/
#defineOFORM1"%-10s%-6s%-4d%-4d%-4d%-4d%-4d"/*将数据打印到屏幕上的格式*/
#defineOFORM2p1->number,p1->name,p1->grade[0],p1->grade[1],p1->grade[2],p1->grade[3],p1->grade[4]/*输出引用结构体得格式*/
#defineSINFO"请输入学号、姓名、大学英语、高等数学、线性代数、政治、计算机导论\n"/*输入数据的提示符*/
#defineSINFO2"学号\t姓名大学英语高等数学线性代数政治计算机导论\n"/*打印在屏幕上的各数据项的属性*/
structstudent
{
charnumber[12];
charname[10];
intgrade[5];
structstudent*next;
};/*定义存放学生基本信息的结构体*/
FILE*fp;/*定义文件的指针*/
intopen=0;/*用于表示是否有文件处于打开状态*/
structstudent*head;/*定义链表的头*/
structstudent*p1,*p2;/*定义用于链表输入输出的两个变量*/
charname[100],ch;/*name用于存放打开的文件名,ch用于销毁回车符。
*/
structtm*ptr;/*定义时间的结构体变量*/
time_tt;/*定义时间的变量*/
intmain()
{
intsnew(void);
intsquery(void);
intsinsert(void);
intsdelete(void);
intsinput(void);
intsoutput(void);
intsclear(void);
intsalter(void);
intsorder(void);
intchoose;
inti;
printf("\n\n--------------------------------------------------------------------------------\n\n");
printf("欢迎使用学生成绩管理系统!
");
printf("\n\n--------------------------------------------------------------------------------\n\n");
printf("\n\t\t正在加载程序,请稍等……\n");
printf("\t\t--------------------------------------------------\n\t\t");
for(i=0;i<2000000000;i++)
if(i%40000000==0)printf(">");
system("cls");
printf("\n\n--------------------------------------------------------------------------------\n\n");
printf("欢迎使用学生成绩管理系统!
");
printf("\n\n--------------------------------------------------------------------------------\n\n");
printf("\n\t\t程序加载完成!
\n");
printf("\t\t--------------------------------------------------\n");
printf("\t\t>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n\n");
system("pause");
system("cls");
printf("\n\n\t\t\t学生成绩管理系统\n\n");
if(open==1)printf("当前被打开的文件为:
%s",name);
elseprintf("暂无文件被打开");
t=time(NULL);
ptr=gmtime(&t);
printf(ctime(&t));
printf("--------------------------------------------------------------------------------\n");
printf("1、新建\t2、查询\t3、插入\t4、删除\t5、修改\n\n");
printf("6、导入\t7、导出\t8、清空\t9、排序\t10、退出\n\n");
printf("--------------------------------------------------------------------------------\n");
printf("请选择相应操作:
");
while(scanf("%d",&choose)!
=EOF)
{
switch(choose)
{
case1:
snew();
break;
case2:
squery();
break;
case3:
sinsert();
break;
case4:
sdelete();
break;
case5:
salter();
break;
case6:
sinput();
break;
case7:
soutput();
break;
case8:
sclear();
break;
case9:
sorder();
break;
case10:
system("cls");
printf("\n\n--------------------------------------------------------------------------------\n\n");
printf("谢谢使用!
");
printf("\n\n--------------------------------------------------------------------------------\n\n");
system("pause");
exit(0);
default:
ch=getchar();
}
system("cls");
printf("\n\n\t\t\t学生成绩管理系统\n\n");
if(open==1)printf("当前被打开的文件为:
%-35s",name);
elseprintf("暂无文件被打开");
t=time(NULL);
ptr=gmtime(&t);
printf(ctime(&t));
printf("--------------------------------------------------------------------------------\n");
printf("1、新建\t2、查询\t3、插入\t4、删除\t5、修改\n\n");
printf("6、导入\t7、导出\t8、清空\t9、排序\t10、退出\n\n");
printf("--------------------------------------------------------------------------------\n");
printf("请选择相应操作:
");
choose=12;
}
return0;
}
intsnew()
{
intn=0,exit=1;
chartemp;
system("cls");
printf("\n学生成绩查询系统——新建\n-----------------------------------------------------------------------\n\n");
if(open==1)
{
printf("是否关闭当前文件(%s)?
(Y/N)\n",name);
ch=getchar();
scanf("%c",&temp);
while(temp!
='Y'&&temp!
='N'&&temp!
='y'&&temp!
='n')
{
system("cls");
printf("\n学生成绩查询系统——新建\n-----------------------------------------------------------------------\n\n");
printf("输入错误!
请重新输入……\n");
printf("是否关闭当前文件(%s)?
(Y/N)\n",name);
ch=getchar();
scanf("%c",&temp);
}
if(temp=='Y'||temp=='y'){fclose(fp);open=0;}
if(temp=='N'||temp=='n')return1;
}
if(open==0)
{
system("cls");
while((ch=getchar())!
='\n'&&ch!
=EOF);
printf("\n学生成绩查询系统——新建\n-----------------------------------------------------------------------\n\n");
printf("请输入新建文件的名称及路径(如D:
\\abc.txt):
\n");
while(scanf("%s",name)!
=EOF)
{
fp=fopen(name,"w+");
open=1;
system("cls");
printf("\n学生成绩查询系统——新建——录入数据\n-----------------------------------------------------------------------\n\n");
head=NULL;
printf("是否录入数据?
是
(1)、否(0)\n");
scanf("%d",&exit);
while(exit==1)
{
n++;
if(n==1){p1=p2=(structstudent*)malloc(LEN);head=p1;}
else{p1=(structstudent*)malloc(LEN);p2->next=p1;p2=p1;}
system("cls");
printf("\n学生成绩查询系统——新建——录入数据\n-----------------------------------------------------------------------\n\n");
printf(SINFO);
while(scanf(IFORM,IFORM2)!
=7)
{
system("cls");
printf("\n学生成绩查询系统——新建——录入数据\n-----------------------------------------------------------------------\n\n");
printf("输入错误!
,请重新输入\n");
printf(SINFO);
}
printf("录入的数据为:
\n");
printf(OFORM,OFORM2);
while((ch=getchar())!
='\n'&&ch!
=EOF);
printf("\n是否继续录入数据?
是
(1)、否(0)\n");
scanf("%d",&exit);
system("cls");
printf("\n学生成绩查询系统——新建——录入数据\n-----------------------------------------------------------------------\n\n");
}
if(n>0)p2->next=NULL;
n=0;
p1=head;
while(p1!
=NULL)
{
n++;
if(n>1)fprintf(fp,"\n");
fprintf(fp,OFORM,OFORM2);
p1=p1->next;
}
fclose(fp);
fp=fopen(name,"r+");
system("cls");
printf("\n学生成绩查询系统——新建\n-----------------------------------------------------------------------\n\n");
printf("新建文件成功!
\n\n");
printf("文件名为:
%s\n",name);
system("pause");break;
}
}
}
intsquery()
{
intchoose,back=1,exit=0,success=0;
intchoose2,choose3,yes;
charnum[12];
system("cls");
printf("\n学生成绩查询系统——查询\n-----------------------------------------------------------------------\n\n");
if(open==0)
{
printf("没有打开的文件!
请先导入或新建一个文件……\n");
system("pause");
return1;
}
if(open==1)
{
printf("请选择查询条件:
\n");
printf("1、浏览文件\t2、学号查询\t3、姓名查询\n");
printf("4、成绩查询\t5、退出查询\n");
while((ch=getchar())!
='\n'&&ch!
=EOF);
while(scanf("%d",&choose)!
=EOF)
{
switch(choose)
{
case1:
system("cls");
printf("\n学生成绩查询系统——查询——浏览文件\n-----------------------------------------------------------------------\n\n");
fclose(fp);
fp=fopen(name,"r+");
p1=head;
printf(SINFO2);
while(p1!
=NULL)
{
printf(OFORM1,OFORM2);
printf("\n");
p1=p1->next;
}
system("pause");break;
case2:
system("cls");
printf("\n学生成绩查询系统——查询——学号查询\n-----------------------------------------------------------------------\n\n");
printf("请输入需要查询的学号:
\n");
if(scanf("%s",num)==EOF)strcpy(num,"fdsafga");
system("cls");
printf("\n学生成绩查询系统——查询——学号查询——查询结果\n-----------------------------------------------------------------------\n\n");
fclose(fp);
fp=fopen(name,"r+");
p1=head;
printf(SINFO2);
while(p1!
=NULL)
{
if(strcmp(num,p1->number)==0)
{
printf(OFORM1,OFORM2);
printf("\n");
success=1;
}
p1=p1->next;
}
if(success==0)printf("无记录!
\n");
success=0;
system("pause");break;
case3:
system("cls");
printf("\n学生成绩查询系统——查询——姓名查询\n-----------------------------------------------------------------------\n\n");
printf("请输入需要查询的姓名:
\n");
if(scanf("%s",num)==EOF)strcpy(num,"fdsafga");
system("cls");
printf("\n学生成绩查询系统——查询——姓名查询——查询结果\n-----------------------------------------------------------------------\n\n");
fclose(fp);
fp=fopen(name,"r+");
p1=head;
printf(SINFO2);
while(p1!
=NULL)
{
if(strcmp(num,p1->name)==0)
{
printf(OFORM1,OFORM2);
printf("\n");
success=1;
}
p1=p1->next;
}
if(success==0)printf("无记录!
\n");
success=0;
system("pause");break;
case4:
system("cls");
printf("\n学生成绩查询系统——查询——成绩查询——科目选择\n-----------------------------------------------------------------------\n\n");
printf("请选择查询的科目:
\n");
printf("1、大学英语\t2、高等数学\t3、线性代数\n");
printf("4、政治\t5、计算机导论\n");
while((ch=getchar())!
='\n'&&ch!
=EOF);
while(scanf("%d",&choose2)==EOF)
{
system("cls");
printf("\n学生成绩查询系统——查询——成绩查询——科目选择\n-----------------------------------------------------------------------\n\n");
printf("选择错误!
请重新选择……\n");
printf("1、大学英语\t2、高等数学\t3、线性代数\n");
printf("4、政治\t5、计算机导论\n");
}
system("cls");
printf("\n学生成绩查询系统——查询——成绩查询——分数选择\n-----------------------------------------------------------------------\n\n");
printf("请选择查询条件:
\n");
printf("1、<60分\t2、60~70分\t3、70~80分\n");
printf("4、80~90分\t5、90~100分\n");
while(scanf("%d",&choose3)==EOF)
{
system("cls");
printf("\n学生成绩查询系统——查询——成绩查询——分数选择\n-----------------------------------------------------------------------\n\n");
printf("选择错误!
请重新选择……\n");
printf("1、<60分\t2、60~70分\t3、70~80分\n");
printf("4、80~90分\t5、90~100分\n");
}
if(choose2>=1&&choose2<=5&&choose3>=1&&choose3<=5){
system("cls");
printf("\n学生成绩查询系统——查询——成绩查询——查询结果\n-----------------------------------------------------------------------\n\n");
p1=head;
printf(SINFO2);
while(p1!
=NULL)
{
switch(choose3)
{
case1:
yes=(p1->grade[choose2-1]<60);break;
case2:
yes=(p1->grade[choose2-1]>=60&&p1->grade[choose2-1]<70);break;
case3:
yes=(p1->grade[choose2-1]>=70&&p1->grade[choose2-1]<80);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 语言 源码