学生成绩管理系统C语言版.docx
- 文档编号:347869
- 上传时间:2022-10-09
- 格式:DOCX
- 页数:18
- 大小:14.95KB
学生成绩管理系统C语言版.docx
《学生成绩管理系统C语言版.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统C语言版.docx(18页珍藏版)》请在冰豆网上搜索。
学生成绩管理系统C语言版
#include
#include
#include
#include
#include
#include
#include
#defineN100/*最多的学生人数*/
structstudent/*学生结构体定义*/
{
charclas[15];/*班级*/
charno[13];/*学号,最多为12位*/
charname[20];/*姓名*/
charsex[8];/*性别*/
charaddr[30];/*地址*/
charphone[15];/*电话*/
floatscore[5];/*存储五门课成绩*/
floatave;/*平均分*/
}stu[N];
intnum;
voidinit();
voidweihu();
voidtongji();
voidtongji1();
voidtongji2();
voidsort1();
voidfind1();
voidsave();
voidnewfile();
voidread1();
voidnewfile();
voidnew1();
voiddelete1();
voidmodify();
voidsortscore();
intfindname(charcname[]);
voidmain()
{
intchoice=1;
system("COLOR2f");
printf("~~~~~~~~~~~~~~~~~学生信息管理系统~~~~~~~~~~~~~~~~\n");
printf("********\n");
printf("***欢迎进入***\n");
printf("**\n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
init();
while(choice!
=5)
{
system("COLOR1F");
printf("*******************************\n");
printf("****\n");
printf("**主菜单**\n");
printf("**1:
学生成绩维护**\n");
printf("**2:
学生成绩统计**\n");
printf("**3:
学生成绩排序**\n");
printf("**4:
学生成绩查询**\n");
printf("**5:
退出**\n");
printf("****\n");
printf("*******************************\n");
printf("请选择:
");
scanf("%d",&choice);
switch(choice)
{
case1:
weihu();
break;
case2:
tongji();
break;
case3:
sort1();
break;
case4:
find1();
break;
case5:
save();
printf("谢谢使用本系统!
!
\n");
break;
default:
printf("选择错误,请重新选择!
");
}
}
}
//1)输出学生成绩(公共函数)
voidoutput()/*输出学生数据*/
{
inti,j;
for(i=0;i { printf("班级姓名学号性别地址电话\n"); printf("%s%s%s%s%s%s\n",stu[i].clas,stu[i].name,stu[i].no,stu[i].sex,stu[i].addr,stu[i].phone); printf("\n"); printf("C语言大学物理网页设计高数英语\n"); for(j=0;j<5;j++) printf("%-12.f",stu[i].score[j]); printf("\n"); printf("\n"); } } //2)系统初始化代码 voidinit() { if(access("stu[i].dat",0))/*判断文件是否存在*/ newfile();/*不存在创建新的数据文件*/ else read1();/*若存在,从文件中读取数据*/ } //3)创立新的数据文件 voidnewfile()/*从键盘输入学生成绩并保存到文件中*/ { inti; FILE*fp; if((fp=fopen("F: \\stu.dat","wb"))==NULL)/*创建二进制文件*/ { printf("文件创建失败! 请重新运行程序。 \n"); exit(0);/*终止程序运行*/ } printf("请输入学生人数: "); scanf("%d",&num); for(i=0;i { printf("班级: "); getchar(); gets(stu[i].clas); printf("姓名: "); gets(stu[i].name); printf("请输入第%d位学生的学号: ",i+1); gets(stu[i].no);printf("性别: "); gets(stu[i].sex); printf("地址: "); gets(stu[i].addr); printf("电话: "); gets(stu[i].phone); printf("C语言: "); scanf("%f",&stu[i].score[0]); printf("大学物理: "); scanf("%f",&stu[i].score[1]); printf("网页设计: "); scanf("%f",&stu[i].score[2]); printf("高数: "); scanf("%f",&stu[i].score[3]); printf("英语: "); scanf("%f",&stu[i].score[4]); fwrite(&stu,sizeof(stu),1,fp); printf("请输入下一条学生信息\n");/*把第i+1名学生成绩写入文件 */ } fclose(fp); printf("你刚刚输入的数据共有%d个学生成绩。 详细数据为: \n",num); output(); } //4)从数据文件中读取成绩 voidread1() { FILE*fp; num=0;/*num为数据文件实际存储成绩人数*/ fp=fopen("stu.dat","r"); if(fp==NULL)/*文件不存在*/ { printf("文件打开失败! 请重新运行程序。 \n"); exit(0);/*终止程序运行*/ } while(! feof(fp)) { fread(&stu[num],1,sizeof(structstudent),fp); num++; } num--; fclose(fp); printf("现在共有%d个学生成绩,初始数据为: \n",num); output();/*输出读取结果*/ } //5)学生成绩维护 voidweihu() { intchoice1; system("COLOR2F"); printf("*******************************************\n"); printf("****\n"); printf("**学生成绩维护子菜单**\n"); printf("**1.新增**\n"); printf("**2.删除(按学号)**\n"); printf("**3.修改**\n"); printf("****\n"); printf("********************************************\n"); printf("请选择"); scanf("%d",&choice1); switch(choice1) { case1: new1(); break; case2: delete1(); break; case3: modify(); break; default: printf("选择错误,请重新选择! \n"); } } //6)新增一个学生成绩 voidnew1() { printf("请输入班级: "); getchar(); gets(stu[num].clas); printf("请输入学号: "); gets(stu[num].no); printf("姓名: "); gets(stu[num].name); printf("性别: "); gets(stu[num].sex); printf("地址: "); gets(stu[num].addr); printf("电话: "); gets(stu[num].phone); printf("C语言: "); scanf("%f",&stu[num].score[0]); printf("大学物理: "); scanf("%f",&stu[num].score[1]); printf("网页设计: "); scanf("%f",&stu[num].score[2]); printf("高数: "); scanf("%f",&stu[num].score[3]); printf("英语: "); scanf("%f",&stu[num].score[4]); num++; printf("现在共有%d个学生成绩,数据为: \n",num); output(); } //7)按学号查找 intfind(charsno[]) { inti; for(i=0;i if(strcmp(stu[i].no,sno)==0)/*判断两个字符串相等*/ returni;/*查找成功*/ return-1;/*查找失败*/ } //删除学生信息 voiddelete1() { charcno[13]; inti,j; printf("请输入要删除的学号: \n"); ge
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 语言版