C语言课程设计—学生成绩管理系统_第1页
C语言课程设计—学生成绩管理系统_第2页
C语言课程设计—学生成绩管理系统_第3页
C语言课程设计—学生成绩管理系统_第4页
C语言课程设计—学生成绩管理系统_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、#include "stdio.h"#include "string.h"#include "stdlib.h"#include "conio.h"#include "string.h"#include "fcntl.h"typedef struct student int num; char grade10; char classroom10; char name10; float score_math; float score_chinese; float score_e

2、nglish; 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 hea

3、d); /学生信息查询函数声明(按姓名)/void searchstu_numlist(linklist head); /学生信息查询函数声明(按学号)linklist modifystulist(linklist head); /学生信息修改函数声明/linklist delatestulist(linklist head); /学生信息删除函数声明/void savestulist(linklist head); /学生信息保存到文件函数声明/linklist loadstulist(); /从文件中读取学生信息函数声明/void sortstulist(linklist head); /

4、成绩排名函数(按年级)声明/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"); pri

5、ntf("*nn"); printf("tttt用 户 登 录nnnn"); for(i=0;i<3;i+) printf("用 户 名: "); gets(person); fflush(stdin); printf("nnn"); loginpassword(password1,10); printf("nnn"); if(strcmp(admin,person)=0&&strcmp(password,password1)=0) printf("tttt成功登

6、录,亲!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("用户密码:"); whi

7、le(ch=getch()!='r'&&m<n) passwordi+=ch; printf("*"); m+; passwordi='0' return password;/*/void menu() /主界面函数/ system("cls"); linklist L; L=(linklist)malloc(sizeof(Node); L->next=NULL; int ch; do printf("t -*-*-*-nn"); printf("ttt*学生成绩管

8、理系统*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)

9、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

10、 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(&qu

11、ot;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); pr

12、intf("请输入姓名:n"); scanf("%s",&p->); printf("请输入年级:n"); scanf("%s",&p->data.grade); printf("请输入班级:n"); scanf("%s",&p->data.classroom); printf("请输入数学成绩:n"); scanf("%f",&p->data.score_mat

13、h); while(p->data.score_math>100) printf("成绩超过100了,你是猪吗?n"); printf("给老子重新输入:n"); scanf("%f",&p->data.score_math); printf("请输入语文成绩:n"); scanf("%f",&p->data.score_chinese); while(p->data.score_chinese>100) printf("成绩超过10

14、0了,你是猪吗?n"); printf("给老子重新输入:n"); scanf("%f",&p->data.score_chinese); printf("请输入英语成绩:n"); scanf("%f",&p->data.score_english); while(p->data.score_english>100) printf("成绩超过100了,你是猪吗?n"); printf("给老子重新输入:n"); scanf(&

15、quot;%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")

16、; 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&

17、quot;,p->data.num,p->,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) /按

18、姓名查询函数/ linklist p; char str10; printf("请输入要查询的学生姓名:n"); scanf("%s",str); p=L->next; if(p=NULL) printf("请先录入学生信息n"); while(p!=NULL) if(strcmp(p->,str)=0) printf("学号 姓名 年级 班级 数学成绩 语文成绩 英语成绩 总分 平均成绩n"); printf("%6d %3s %2s %2s %4.1f %4.1f %4.

19、1f %4.1f %4.1fn",p->data.num,p->,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

20、(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

21、%4.1f %4.1f %4.1f %4.1f %4.1fn",p->data.num,p->,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"); /*/ linkl

22、ist 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("学号 姓名 年级 班级 数学成绩 语文成绩 英语成绩 总分 平均成

23、绩n"); printf("%6d %3s %2s %2s %4.1f %4.1f %4.1f %4.1f %4.1fn",p->data.num,p->,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"); fflus

24、h(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");

25、 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!=N

26、ULL) 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);

27、 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=(linklis

28、t)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("请先录入学生信息

29、,亲!n"); while(p!=NULL&&i<1000) stui=p->data; i+; p=p->next; flag+; printf("正在排序.n"); sort(stu, flag); /*/ void sort(STU stu,int flag) int i,j; STU temp; for(i=1;i<flag;i+)for(j=0;j<flag-i;j+) if(stuj.sum>stuj+1.sum) temp=stuj; stuj=stuj+1; stuj+1=temp; printf

30、("学号 姓名 年级 班级 数学成绩 语文成绩 英语成绩 总分 平均成绩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.grade,stui.classroom,stui.score_math,stui.score_chinese,stui.score_english,stui.sum,stui.average); printf("按任意键继续!n"); getch

31、(); 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;

32、 if(p=NULL) printf("请先录入学生信息,亲!n"); while(p!=NULL&&i<1000) stui=p->data; i+; p=p->next; flag+; printf("t1.一班成绩nt2.二班成绩nt3.三班成绩nt4.四班成绩nt5.五班成绩nt6.六班成绩nt7.七班成绩nt8.八班成绩n"); printf("请选择你要查询的班级:n"); scanf("%d",&ch); for(i=0;i<flag;i+) if(st

33、rcmp(stui.classroom,"一班")=0) c1j1=stui; j1+;flag1+; else if(strcmp(stui.classroom,"二班")=0) c2j2=stui; j2+;flag2+; else if(strcmp(stui.classroom,"三班")=0) c3j3=stui; j3+;flag3+; else if(strcmp(stui.classroom,"四班")=0) c4j4=stui; j4+;flag4+; else if(strcmp(stui.cl

34、assroom,"五班")=0) c5j5=stui; j5+;flag5+; else if(strcmp(stui.classroom,"六班")=0) c6j6=stui; j6+;flag6+; else if(strcmp(stui.classroom,"七班")=0) c7j7=stui; j7+;flag7+; else c8j8=stui; j8+;flag8+; switch(ch) case 1: sort(c1,flag1); break; case 2: sort(c2,flag2); break; case

35、3: sort(c3,flag3); break; case 4: sort(c4,flag4); break; case 5: sort(c5,flag5); break; case 6: sort(c6,flag6); break; case 7: sort(c7,flag7); break; case 8: sort(c8,flag8); break; /*/linklist modifystulist(linklist L) /修改信息函数/ linklist p; int n,m; float math,chinese,english; char name10,grade10,cla

36、ssroom10; char ch; p=L->next; 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->,p->data.grade,p->data.classroom,p->dat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论