1、图1-1 系统功能模块图2 系统设计2.1 数据结构设计struct stu /定义结构体类型 char name10; /姓名 char num10; /学号 char score10; /成绩if(fp1=fopen(Ca1.txt,w)=NULL) /文件名,使用文件方式printf(信息写入失败);exit(0);char wjm20; /文件名2.2 函数设计表1 函数列表序号函 数 原 型功 能 说 明1void addnew()新增学生姓名,学号,成绩信息2void addold()在原有基础上继续增加其他同学的信息3void printall()显示所有已经存入学生的成绩等信息
2、4void search()根据姓名或者学号查询学生分数5void jgsearch()根据成绩查询对应的同学6void del()删除学生信息7void modify()修改学生信息8system(“cls”);清屏2.3部分功能设计1.删除学生的信息,输入学生的学号进行删除操作,如果没有此人,系统将会提示无此人,如果找到,系统将会确认你是否需要删除,流程图如1-2所示。YesNo图1-2 删除学生信息流程图2.输入学号进行查询对应同学的成绩,流程图如图1-3所示。图1-3 查询功能流程图3 系统实现源程序3.1 主函数设计void main() int x; system(cls /*清屏
3、*/ do printf(n 欢迎使用学生成绩信息管理系统nnnnn 1 -添加学生信息nn 2 -显示所有学生成绩信息nn 3 -学号或姓名查询nn 4 -成绩查询nn 5 -删除学生成绩信息nn 6 -修改学生成绩信息nn 0 -退出 请您选择:choice: scanf(%d,&x); switch(x) case 1:add();break; case 2:printall(); case 3:search(); case 4:jgsearch(); case 5:del(); case 6:modify(); case 0: default:printf(n 错误的选择,请重新选择:
4、goto choice; while(x!=0); printf(nn 欢迎再次使用学生成绩管理系统n3.2 添加学生信息/*学生成绩信息管理系统*/#include stdlib.hstring.hint c,j,t;struct stu /*定义结构体类型*/ student100,newstudent100;/*添加学生个人信息*/ void addnew() int a,b,k;FILE *fp,*fp1,*fp2; /*FILE类型指针变量的定义形式*/ for(a=0;a200;a+) 欢迎使用学生成绩管理系统nnn 录入学生信息nn输入学生姓名: scanf(%sstudenta
5、.name);输入学生学号:studenta.num);输入学生成绩:studenta.score);输入1继续,0结束n /*判断输入是否结束*/ b); if(b=0) c=a; system( break;)=NULL) /*文件名,使用文件方式*/ if(fp2=fopen(Ca2.txt)=NULL) if(fp=fopen(Ca3.txtj=sizeof(struct stu);=c;if(fwrite(&studenta,j,1,fp)!=1)存入失败!if(strcmp(studenta.score,80)=0)fwrite(&studenta,j,1,fp1);elsestu
6、denta,j,1,fp2);添加成功!nn请输入0返回nscanf(k);fclose(fp1);fclose(fp2);fclose(fp);if(k=0)system(/*继续添加成员*/ int a,b,k,p,q; char wjm20; FILE *fp; j=sizeof(struct stu); 欢迎使用学生成绩信息管理系统nnnnn 存储文件名有 Ca1.txt Ca2.txt Ca3.txt nn请输入想继续添加的文件名:,wjm); for(a=0;newstudenta.name);newstudenta.num);newstudenta.score); /判断输入是否
7、结束 if(b=0) c=a; system( break; if(fp=fopen(wjm,r文件打开失败! exit(0); a=0; while(!feof(fp) fread(&studenta,j,1,fp); a+; fclose(fp); t=a-1; for(q=0,p=t;q=c,p=t+c;q+,p+) strcpy(studentp.name,newstudentq.name); strcpy(studentp.num,newstudentq.num); strcpy(studentp.score,newstudentq.score); if(fwrite(& if(k=0)void add()int x; 添加学生信息nn 1 重新添加信息n 2 继续添加信息n 0 返回nnn 请选择:switch(x)case 1:addnew();case 2:addold();case 0:default:/*显示所有学生的成绩*/ void printall() int a,b; FILE *fp,*fp1,*fp2; 全部已录入学生信
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1