学生成绩管理系统数据流程图 学生成绩管理系统数据流程分析
2025-04-04 03:10 - 立有生活网
您好,今天小周来为大家解答以上的问题。学生成绩管理系统数据流程图相信很多小伙伴还不知道,现在让我们一起来看看吧!
学生成绩管理系统数据流程图 学生成绩管理系统数据流程分析
学生成绩管理系统数据流程图 学生成绩管理系统数据流程分析
学生成绩管理系统数据流程图 学生成绩管理系统数据流程分析
1、又是这个,下面是大三时做 RESOURCE Peng G. #include "stdio.h" #include "stdlib.h" #include "string.h" int shoudse=0; / / struct student { char num[10];/ 学号 / char name[20]; char [4]; int cgrade; int mgrade; int egrade; int totle; int e; char neartime[10];/ 近更新时间 / }; typedef struct node { struct student data; struct node next; }Node,Link; void menu() { printf(""); printf("t1登记ttttt2删除n"); printf("t3查询ttttt4修改n"); printf("t5保存ttttt0退出系统n"); printf("n"); } void printstart() { printf("-----------------------------------------------------------------------n"); } void Wrong() { printf("n=====>提示:输入错误!n"); } void Nofind() { printf("n=====>提示:没有找到该学生!n"); } void printc() / 本函数用于输出中文 / { printf(" 学号t 姓名 性别 英语成绩 数学成绩 C语言成绩 总分 平均分n"); } void printe(Node p)/ 本函数用于输出英文 / { printf("%-12s%st%st%dt%dt%dt %dt %dn",p->data.num,p->data.name,p->data.,p->data.egrade,p->data.mgrade,p->data.cgrade,p->data.totle,p->data.e); } Node Locate(Link l,char findmess[],char nameornum[]) / 该函数用于定位连表中符合要求接点,并返回该指针 / { Node r; if(strcmp(nameornum,"num")==0) / 按学号查询 / { r=l->next; while(r!=NULL) { if(strcmp(r->data.num,findmess)==0) return r; r=r->next; } } else if(strcmp(nameornum,"name")==0) / 按姓名查询 / { r=l->next; while(r!=NULL) { if(strcmp(r->data.name,findmess)==0) return r; r=r->next; } } return 0; } void Add(Link l) / 增加学生 / { Node p,r,s; char num[10]; r=l; s=l->next; while(r->next!=NULL) r=r->next; / 将指针置于末尾 / while(1) { printf("请你输入学号(以'0'返回上一级菜单:)"); scanf("%s",num); if(strcmp(num,"0")==0) break; while(s) { if(strcmp(s->data.num,num)==0) { printf("=====>提示:学号为'%s'学生已经存在,若要修改请你选择'4 修改'!n",num); printstart(); printc(); printe(s); printstart(); printf("n"); return; } s=s->next; } p=(Node )malloc(sizeof(Node)); strcpy(p->data.num,num); printf("请你输入姓名:"); scanf("%s",p->data.name); getchar(); printf("请你输入性别:"); scanf("%s",p->data.); getchar(); printf("请你输入c语言成绩:"); scanf("%d",&p->data.cgrade); getchar(); printf("请你输入数学成绩:"); scanf("%d",&p->data.mgrade); getchar(); printf("请你输入英语成绩:"); scanf("%d",&p->data.egrade); getchar(); p->data.totle=p->data.egrade+p->data.cgrade+p->data.mgrade; p->data.e=p->data.totle / 3; / 信息输入已经完成 / p->next=NULL; r->next=p; r=p; shoudse=1; } } void Qur(Link l) / 查询学生 / { int sel; char findmess[20]; Node p; if(!l->next) { printf("n=====>提示:没有资料可以查询!n"); return; } printf("n=====>1按学号查找n=====>2按姓名查找n"); scanf("%d",&sel); if(sel==1)/ 学号 / { printf("请你输入要查找学号:"); scanf("%s",findmess); p=Locate(l,findmess,"num"); if(p) { printf("tttt查找结果n"); printstart(); printc(); printe(p); printstart(); } else Nofind(); } else if(sel==2) / 姓名 / { printf("请你输入要查找姓名:"); scanf("%s",findmess); p=Locate(l,findmess,"name"); if(p) { printf("tttt查找结果n"); printstart(); printc(); printe(p); printstart(); } else Nofind(); } else Wrong(); } void Del(Link l) / 删除 / { int sel; Node p,r; char findmess[20]; if(!l->next) { printf("n=====>提示:没有资料可以删除!n"); return; } printf("n=====>1按学号删除n=====>2按姓名删除n"); scanf("%d",&sel); if(sel==1) { printf("请你输入要删除学号:"); scanf("%s",findmess); p=Locate(l,findmess,"num"); if(p) { r=l; while(r->next!=p) r=r->next; r->next=p->next; free(p); printf("n=====>提示:该学生已经成功删除!n"); shoudse=1; } else Nofind(); } else if(sel==2) { printf("请你输入要删除姓名:"); scanf("%s",findmess); p=Locate(l,findmess,"name"); if(p) { r=l; while(r->next!=p) r=r->next; r->next=p->next; free(p); printf("n=====>提示:该学生已经成功删除!n"); shoudse=1; } else Nofind(); } else Wrong(); } void Modify(Link l) { Node p; char findmess[20]; if(!l->next) { printf("n=====>提示:没有资料可以修改!n"); return; } printf("请你输入要修改学生学号:"); scanf("%s",findmess); p=Locate(l,findmess,"num"); if(p) { printf("请你输入新学号(原来是%s):",p->data.num); scanf("%s",p->data.num); printf("请你输入新姓名(原来是%s):",p->data.name); scanf("%s",p->data.name); getchar(); printf("请你输入新性别(原来是%s):",p->data.); scanf("%s",p->data.); printf("请你输入新c语言成绩(原来是%d分):",p->data.cgrade); scanf("%d",&p->data.cgrade); getchar(); printf("请你输入新数学成绩(原来是%d分):",p->data.mgrade); scanf("%d",&p->data.mgrade); getchar(); printf("请你输入新英语成绩(原来是%d分):",p->data.egrade); scanf("%d",&p->data.egrade); p->data.totle=p->data.egrade+p->data.cgrade+p->data.mgrade; p->data.e=p->data.totle/3; printf("n=====>提示:资料修改成功!n"); shoudse=1; } else Nofind(); } void Disp(Link l) { int count=0; Node p; p=l->next; if(!p) { printf("n=====>提示:没有资料可以显示!n"); return; } printf("tttt显示结果n"); printstart(); printc(); printf("n"); while(p) { printe(p); p=p->next; } printstart(); printf("n"); } void Tongji(Link l) { Node pm,pe,pc,pt,pa; / 用于指向分数接点 / Node r=l->next; if(!r) { printf("n=====>提示:没有资料可以统计!n"); return ; } pm=pe=pc=pt=pa=r; while(r!=NULL) { if(r->data.cgrade>=pc->data.cgrade) pc=r; if(r->data.mgrade>=pm->data.mgrade) pm=r; if(r->data.egrade>=pe->data.egrade) pe=r; if(r->data.totle>=pt->data.totle) pt=r; if(r->data.e>=pa->data.e) pa=r; r=r->next; } printf("------------------------------统计结果--------------------------------n"); printf("总分者:t%s %d分n",pt->data.name,pt->data.totle); printf("平均分者:t%s %d分n",pa->data.name,pa->data.e); printf("英语者:t%s %d分n",pe->data.name,pe->data.egrade); printf("数学者:t%s %d分n",pm->data.name,pm->data.mgrade); printf("c语言者:t%s %d分n",pc->data.name,pc->data.cgrade); printstart(); } void Sort(Link l) { Link ll; Node p,rr,s; ll=(Link)malloc(sizeof(Node)); / 用于做新连表 / ll->next=NULL; if(l->next==NULL) { printf("n=====>提示:没有资料可以排序!n"); return ; } p=l->next; while(p) { s=(Node)malloc(sizeof(Node)); / 新建接点用于保存信息 / s->data=p->data; s->next=NULL; rr=ll; while(rr->next!=NULL && rr->next->data.totle>=p->data.totle) rr=rr->next; if(rr->next==NULL) rr->next=s; else { s->next=rr->next; rr->next=s; } p=p->next; } free(l); l->next=ll->next; printf("n=====>提示:排序已经完成!n"); } void Se(Link l) { FILE fp; Node p; int flag=1,count=0; fp=fopen("c:student","wb"); if(fp==NULL) { printf("n=====>提示:重新打开文件时发生错误!n"); exit(1); } p=l->next; while(p) { if(fwrite(p,sizeof(Node),1,fp)==1) { p=p->next; count++; } else { flag=0; break; } } if(flag) { printf("n=====>提示:文件保存成功.(有%d条记录已经保存.)n",count); shoudse=0; } fclose(fp); } void main() { Link l;/ 连表 / FILE fp; / 文件指针 / int sel; char ch; char jian; int count=0; Node p,r; printf("tttt学生成绩管理系统ntttt-------福建农业职业学院计应0501 黄欢(32号)n"); l=(Node)malloc(sizeof(Node)); l->next=NULL; r=l; fp=fopen("C:student","rb"); if(fp==NULL) { printf("n=====>提示:文件还不存在,是否创建?(y/n)n"); scanf("%c",&jian); if(jian=='y'||jian=='Y') fp=fopen("C:student","wb"); else exit(0); } printf("n=====>提示:文件已经打开,正在导入记录......n"); while(!feof(fp)) { p=(Node)malloc(sizeof(Node)); if(fread(p,sizeof(Node),1,fp)) / 将文件内容放入接点中 / { p->next=NULL; r->next=p; r=p; / 将该接点挂入连中 / count++; } } fclose(fp); / 关闭文件 / printf("n=====>提示:记录导入完毕,共导入%d条记录.n",count); while(1) { menu(); printf("请你选择作:"); scanf("%d",&sel); if(sel==0) { if(shoudse==1) { getchar(); printf("n=====>提示:资料已经改动,是否将改动保存到文件中(y/n)?n"); scanf("%c",&ch); if(ch=='y'||ch=='Y') Se(l); } printf("n=====>提示:你已经退出系统,再见!n"); break; } switch(sel) { case 1:Add(l);break; / 增加学生 / case 2:Del(l);break;/ 删除学生 / case 3:Qur(l);break;/ 查询学生 / case 4:Modify(l);break;/ 修改学生 / case 5:Se(l);break;/ 保存学生 / case 9:printf("ttt==========帮助信息==========n");break; default: Wrong();getchar();break; } } } / /我主要设计一个能实现学生信息管理系统,让它来运行和管理学生信息。
2、它在现实生活中运用方便的、管理方便。
3、它能输入学生学号、年龄、性别、出生年月、地址电话E-mail。
4、系统以菜单的方式进行工作,进入子菜单后,还可以返回主菜单。
5、在子菜单中的各种作都有中文说明,作简单、易懂。
6、只要我们正确的作系统,系统就无异常现在,当然系统也能对一些基本的错误做出提示,并能让使用者重新进行作。
7、对各个作的成功,如:添加学生信息、修改学生信息、删除学生信息,系统都输出“…….的成功”的字样。
8、系统对删除和修改前,还进行“确定”和“取消”。
9、系统对不存在的学号和姓名系统能判断是否存在。
10、对已存在的学号,作者不能添加和这个学号一样的学生信息,同时系统还提示已有此学号。
11、对于修改、删除和查询,系统遇到不存在的学生能提示没有这个信息。
本文到这结束,希望上面文章对大家有所帮助。
可行性研究报告怎么编写 可行性研究报告怎么

新农村改造可行性研究报告怎么编写 5.现有的工作基础及优势分析(此点针对项目类型而言,可写可不写) 章 新农村建设项目总论 可行性研究报告怎么编写 可行性研究报告怎么编写范本 可行性研···
天津大学仁爱学院图书馆(天津大学仁爱学院图

关于天津大学仁爱学院图书馆,天津大学仁爱学院图书馆藏书量这个很多人还不知道,今天天天来为大家解答以上的问题,现在让我们一起来看看吧! 天津大学仁爱学院图书馆(天津大学仁爱学院图···
联想g50自带一键重装系统 联想g510一键重装系

今天小深来给大家分享一些关于联想g510一键重装系统方面的知识吧,希望大家会喜欢哦 联想g50自带一键重装系统 联想g510一键重装系统 联想g50自带一键重装系统 联想g510一键重装系统 1、步,查看···