C语言课程设计—学生成绩管理系统

上传人:细水****9 文档编号:57451816 上传时间:2022-02-24 格式:DOCX 页数:15 大小:13.79KB
返回 下载 相关 举报
C语言课程设计—学生成绩管理系统_第1页
第1页 / 共15页
C语言课程设计—学生成绩管理系统_第2页
第2页 / 共15页
C语言课程设计—学生成绩管理系统_第3页
第3页 / 共15页
点击查看更多>>
资源描述
#include stdio.h#include string.h#include stdlib.h#include conio.h#include string.h#include fcntl.htypedef struct student int num; char grade10; char classroom10; char name10; float score_math; float score_chinese; float score_english; float average; float sum;STU;typedef struct Node STU data; struct Node *next;*linklist;void menu();char *loginpassword(char password,int n);/登录验证密码函数声明/linklist createstulist(linklist head); /创建学生链表即学生信息录入函数声明/void printstulist(linklist head); /学生信息输出函数声明/void searchstu_namelist(linklist head); /学生信息查询函数声明(按姓名)/void searchstu_numlist(linklist head); /学生信息查询函数声明(按学号)linklist modifystulist(linklist head); /学生信息修改函数声明/linklist delatestulist(linklist head); /学生信息删除函数声明/void savestulist(linklist head); /学生信息保存到文件函数声明/linklist loadstulist(); /从文件中读取学生信息函数声明/void sortstulist(linklist head); /成绩排名函数(按年级)声明/void sort(STU stu,int flag); /学生分班函数声明/void sortstuclass(linklist head); /成绩排名函数(按班级)声明/*/void main() char admin=zhangqiong; char password=123456; char person20; char password110; int i; int j=0; printf(*n); printf(tt *欢迎来到学生成绩管理系统*nn); printf(*nn); printf(tttt用 户 登 录nnnn); for(i=0;i3;i+) printf(用 户 名: ); gets(person); fflush(stdin); printf(nnn); loginpassword(password1,10); printf(nnn); if(strcmp(admin,person)=0&strcmp(password,password1)=0) printf(tttt成功登录,亲!n); printf(nn); printf(按任意键继续!); getch(); menu(); break;elseprintf(t用户名或者密码输入错误n); if(i=3)printf(t对不起,您今天输入次数太多,已被强制退出!n);/*/*/ char *loginpassword(char password,int n) /登录密码函数,隐藏密码可见/ int i=0; int m=0; char ch; printf(用户密码:); while(ch=getch()!=r&mnext=NULL; int ch; do printf(t -*-*-*-nn); printf(ttt*学生成绩管理系统*nn); printf(t -*-*-*-nnnnn); printf(t1.录入学生成绩信息nt2.输出学生成绩信息nt3.按学号查找学生信息nt4.按姓名查找学生信息nt5.修改学生信息nt6.删除学生信息nt7.保存学生信息到文件nt8.从文件中读取学生信息nt9.年级总成绩排序nt10.班级总成绩排序nt11.退出n); printf(nn); printf(请输入您要查询的项目:n); scanf(%d,&ch); switch(ch) case 1:system(cls); createstulist(L); break; case 2:system(cls); printstulist(L); break; case 3: system(cls); searchstu_numlist(L); break; case 4: system(cls); searchstu_namelist(L); break; case 5: system(cls); modifystulist(L); break; case 6: system(cls); delatestulist( L); break; case 7: system(cls); savestulist(L); break; case 8: system(cls); L=loadstulist(); break; case 9: system(cls); sortstulist(L); break; case 10: system(cls); sortstuclass(L); break; case 11:system(cls); exit(0); while(1);/*/linklist createstulist(linklist L) /录入信息函数/ linklist p,q; char ch; q=L; printf(*请输入学生信息*nnn); do p=(linklist)malloc(sizeof(Node); if(!p) printf(没有多余内存空间n); return L; printf(请输入学号:n); scanf(%d,&p-data.num); printf(请输入姓名:n); scanf(%s,&p-data.name); printf(请输入年级:n); scanf(%s,&p-data.grade); printf(请输入班级:n); scanf(%s,&p-data.classroom); printf(请输入数学成绩:n); scanf(%f,&p-data.score_math); while(p-data.score_math100) printf(成绩超过100了,你是猪吗?n); printf(给老子重新输入:n); scanf(%f,&p-data.score_math); printf(请输入语文成绩:n); scanf(%f,&p-data.score_chinese); while(p-data.score_chinese100) printf(成绩超过100了,你是猪吗?n); printf(给老子重新输入:n); scanf(%f,&p-data.score_chinese); printf(请输入英语成绩:n); scanf(%f,&p-data.score_english); while(p-data.score_english100) printf(成绩超过100了,你是猪吗?n); printf(给老子重新输入:n); scanf(%f,&p-data.score_english); p-data.sum=p-data.score_math+p-data.score_chinese+p-data.score_english; p-data.average=p-data.sum/3; q-next=p; q=p; q-next=NULL; printf(是否要输入下一个学生的信息(Y/N)!); fflush(stdin); ch=getchar(); system(cls); while(ch=Y|ch=y); return(L);/*/void printstulist(linklist L) /输出信息函数/ linklist p; p=L-next; if(p=NULL) printf(请先录入学生信息,亲!n); else while(p!=NULL) printf(学号 姓名 年级 班级 数学成绩 语文成绩 英语成绩 总分 平均成绩n); printf(%6d %3s %2s %2s %4.1f %4.1f %4.1f %4.1f %4.1fn,p-data.num,p-data.name,p-data.grade,p-data.classroom,p-data.score_math,p-data.score_chinese,p-data.score_english,p-data.sum,p-data.average); p=p-next; printf(按任意键继续n); getch(); system(cls);/*/void searchstu_namelist(linklist L) /按姓名查询函数/ linklist p; char str10; printf(请输入要查询的学生姓名:n); scanf(%s,str); p=L-next; if(p=NULL) printf(请先录入学生信息n); while(p!=NULL) if(strcmp(p-data.name,str)=0) printf(学号 姓名 年级 班级 数学成绩 语文成绩 英语成绩 总分 平均成绩n); printf(%6d %3s %2s %2s %4.1f %4.1f %4.1f %4.1f %4.1fn,p-data.num,p-data.name,p-data.grade,p-data.classroom,p-data.score_math,p-data.score_chinese,p-data.score_english,p-data.sum,p-data.average); p=p-next; printf(按任意键继续n); getch(); system(cls);/*/void searchstu_numlist(linklist L) /按学号查询函数/ linklist p; int number; printf(请输入要查询的学生学号:n); scanf(%d,&number); p=L-next; if(p=NULL) printf(请先录入学生信息n); while(p!=NULL) if(p-data.num=number) printf(学号 姓名 年级 班级 数学成绩 语文成绩 英语成绩 总分 平均成绩n); printf(%6d %3s %2s %2s %4.1f %4.1f %4.1f %4.1f %4.1fn,p-data.num,p-data.name,p-data.grade,p-data.classroom,p-data.score_math,p-data.score_chinese,p-data.score_english,p-data.sum,p-data.average); p=p-next; printf(按任意键继续n); getch(); system(cls); /*/ linklist delatestulist(linklist L) /删除信息函数/ linklist p,q; int number; char ch; printf(请输入要删除的学生学号:n); scanf(%d,&number); p=L-next; if(p=NULL) printf(请先录入学生信息n); return NULL; while(p!=NULL) if(p-data.num=number) printf(学号 姓名 年级 班级 数学成绩 语文成绩 英语成绩 总分 平均成绩n); printf(%6d %3s %2s %2s %4.1f %4.1f %4.1f %4.1f %4.1fn,p-data.num,p-data.name,p-data.grade,p-data.classroom,p-data.score_math,p-data.score_chinese,p-data.score_english,p-data.sum,p-data.average); printf(确定要删除该学生的信息吗?(Y/N)n); fflush(stdin); ch=getchar(); if(ch=Y|ch=y) q=L; while(q-next!=p) q=q-next; if(q-next=p) if(p-next=NULL) q-next=NULL; else q-next=p-next; free(p); printf(已删除该学生的相关信息!n); return(L); else return NULL; else p=p-next; printf(按任意键继续n); getch(); system(cls); /*/ void savestulist(linklist L) /存盘函数/ FILE *fp; linklist p; char outfile20; printf(请输入你要保存信息的文件名:(例如:D:学生管理系统student.text)n); scanf(%s,outfile); if(fp=fopen(outfile,w)=NULL) printf(文件打开失败n); exit(1); p=L; while(p!=NULL) fwrite(p,sizeof(Node),1,fp); p=p-next; fclose(fp); printf(信息保存成功!n); printf(请按任意键继续n); getch(); system(cls); /*/ linklist loadstulist() /读盘函数/ linklist q,p,L; L=NULL; FILE *fp; char infile20; printf(请输入要打开的文件名:n); scanf(%s,infile); if(fp=fopen(infile,rb)=NULL) printf(文件打开失败!n); exit(1); printf(正在打开文件.n);p=(linklist)malloc(sizeof(Node);if(!p) printf(无法申请到内存空间); return L; L=p;while(!feof(fp) if(fread(p,sizeof(Node),1,fp)!=1) printf(读取信息失败!n); break; p-next=(linklist)malloc(sizeof(Node); if(!p-next) printf(无法申请到内存空间); return L; q=p; p=p-next; q-next=NULL; fclose(fp); printf(读取成功!n); return L; /*/ void sortstulist(linklist L) /年级排序函数/ STU stu1000; int i=0; int flag=0; linklist p; p=L-next; if(p=NULL) printf(请先录入学生信息,亲!n); while(p!=NULL&idata; i+; p=p-next; flag+; printf(正在排序.n); sort(stu, flag); /*/ void sort(STU stu,int flag) int i,j; STU temp; for(i=1;iflag;i+)for(j=0;jstuj+1.sum) temp=stuj; stuj=stuj+1; stuj+1=temp; printf(学号 姓名 年级 班级 数学成绩 语文成绩 英语成绩 总分 平均成绩n); for(i=flag-1;i=0;i-) printf(%6d %3s %2s %2s %4.1f %4.1f %4.1f %4.1f %4.1fn,stui.num,stui.name,stui.grade,stui.classroom,stui.score_math,stui.score_chinese,stui.score_english,stui.sum,stui.average); printf(按任意键继续!n); getch(); system(cls); /*/void sortstuclass(linklist L) /班级排序函数/ STU stu1000; int i=0; STU c1100,c2100,c3100,c4100,c5100,c6100,c7100,c8100; int flag=0,flag1=0,flag2=0,flag3=0,flag4=0,flag5=0,flag6=0,flag7=0,flag8=0; int j1=0,j2=0,j3=0,j4=0,j5=0,j6=0,j7=0,j8=0; int ch; linklist p; p=L-next; if(p=NULL) printf(请先录入学生信息,亲!n); while(p!=NULL&idata; i+; p=p-next; flag+; printf(t1.一班成绩nt2.二班成绩nt3.三班成绩nt4.四班成绩nt5.五班成绩nt6.六班成绩nt7.七班成绩nt8.八班成绩n); printf(请选择你要查询的班级:n); scanf(%d,&ch); for(i=0;inext; printf(请输入要修改的学生学号:n); scanf(%d,&n);while(p!=NULL) if(p-data.num!=n) p=p-next; else printf(学号 姓名 年级 班级 数学成绩 语文成绩 英语成绩 总分 平均成绩n); printf(%6d %3s %2s %2s %4.1f %4.1f %4.1f %4.1f %4.1fn,p-data.num,p-data.name,p-data.grade,p-data.classroom,p-data.score_math,p-data.score_chinese,p-data.score_english,p-data.sum,p-data.average); printf(是否要修改该学生的信息?(Y/N)n); fflush(stdin); ch=getchar(); if(ch=Y|ch=y) printf(请输入该生新的学号:n); scanf(%d,&m); printf(请输入该生新的姓名:n); scanf(%s,name); printf(请输入该生新的年级:n); scanf(%s,grade); printf(请输入该生新的班级:n); scanf(%s,classroom); printf(请输入该生新的数学成绩:n); scanf(%f,&math); printf(请输入该生新的语文成绩:n); scanf(%f,&chinese); printf(请输入该生新的英语成绩:n); scanf(%f,&english); p-data.num=m; strcpy(p-data.name,name); strcpy(p-data.grade,grade); strcpy(p-data.classroom,classroom); p-data.score_math=math; p-data.score_chinese=chinese; p-data.score_english=english; p-data.sum=p-data.score_math+p-data.score_chinese+p-data.score_english; p-data.average=p-data.sum/3; printf(修改完成!n); printf(按任意键继续); getch(); /return(L); system(cls); return L; if(p=NULL) printf(没有找到要修改的学生信息,亲!n); printf(按任意键继续); getch(); */
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 演讲稿件


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!