学生信息管理系统
来源:互联网 发布:基本降序算法 编辑:程序博客网 时间:2024/05/22 02:18
主文件:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include "create.h"#include "duqu.h"#include "search.h"#include "xiugai.h" #include "delete.h"#include "paixu.h"int print(){system("cls");printf(" ★★★首页★★★\n\n");printf(" ◎东北林业大学◆信息学院¢苗光辉 \n\n"); printf("★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n");printf("★ ╔════════════════════════════════╗ ★\n");printf("★ ║ ║ ★\n");printf("★ ║ ☆1.增加学生信息 ☆5.删除学生信息 ║ ★\n"); printf("★ ║ ║ ★\n"); printf("★ ║ ☆2.修改学生信息 ☆6.学生信息排序 ║ ★\n"); printf("★ ║ ║ ★\n"); printf("★ ║ ☆3.显示学生信息 ☆7.运行结束 ║ ★\n"); printf("★ ║ ║ ★\n"); printf("★ ║ ☆4.查询学生信息 ║ ★\n"); printf("★ ║ ║ ★\n"); printf("★ ╚════════════════════════════════╝ ★\n");printf("★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n");printf("\n");return 0; }int main(int argc, char *argv[]){ int da; while(print()!=EOF&&printf("请输入相应执行代码:")) {do {scanf("%d",&da); if(da!=1&&da!=2&&da!=3&&da!=4&&da!=5&&da!=6&&da!=7) printf("输入错误,请重新输入!\n"); } while(da!=1&&da!=2&&da!=3&&da!=4&&da!=5&&da!=6&&da!=7); if(da==1) {system("cls");main1();}if(da==3) {system("cls");main2();} if(da==4) {system("cls");main3();} if(da==2) {system("cls");main4();} if(da==5) {system("cls");main5();}if(da==6) {system("cls");main6();} if(da==7&&!ppq) {printf("程序结束! Loading.......\n");break;} if(da==7&&ppq) {printf("您已经进行删除操作,是否覆盖信息至文件?(y/n)"); char gg[20];scanf("%s",gg); if(strcmp("y",gg)==0) {FILE *f=fopen("d:/student.txt","w"); pp=head; luru(f,pp); fclose(f); printf("信息已覆盖,程序结束!Loading.......\n");} else if(strcmp("n",gg)==0) printf("信息未覆盖,程序结束!Loading.......\n"); else printf("输入错误! 信息未覆盖,程序结束!Loading.......\n"); break;} getchar();getchar();} system("PAUSE"); return 0;}
创建链表:
#ifndef FILE2_H_#define FILE2_H_int ppq=0;FILE *fpp=NULL;struct student *pp=NULL;struct student *head=NULL;void jiaohuan(struct student *aa,struct student *bb); //排序的声明 void paixu(struct student *head1,int a,int b); struct student *cha(); //3.录入链表声明 struct student { long num,position; char sex[5];char name[20];double score_math,score_chinese,score_english,score_c,score_wuli,score_ping,score;struct student *next;};double su(struct student *p){return p->score_math+p->score_chinese+p->score_english+p->score_c+p->score_wuli;}int luru(FILE *f,struct student *p){double sum; while(p!=NULL) { sum=su(p); p->score_ping=sum/5;p->score=sum; fwrite(p,sizeof(struct student),1,f); p=p->next; } return 0;} struct student *create(int n){struct student *p,*q,*h; int t=0,d;q=(struct student *)malloc(sizeof(struct student));printf("请输入学生姓名:");scanf("%s",q->name);printf("请输入学生学号:");scanf("%ld",&q->num);printf("请输入学生性别(男生1,女生0):");{do{ scanf("%d",&d); if(d!=1&&d!=0) printf("输入错误,请重新输入!\n"); }while(d!=1&&d!=0); if(d==1) strcpy(q->sex,"男"); else if(d==0) strcpy(q->sex,"女"); } printf("请依次输入学生成绩(数学,语文,英语,c++,物理):"); scanf("%lf%lf%lf%lf%lf",&q->score_math,&q->score_chinese,&q->score_english,&q->score_c,&q->score_wuli); if(n!=1) printf("\n *********************录入成功!***********************\n\n"); t++;h=NULL;while(t<=n){if(t==1) {h=q;p=q;}else {q=(struct student *)malloc(sizeof(struct student));p->next=q;p=q; printf("请输入学生姓名:"); scanf("%s",q->name); printf("请输入学生学号:"); scanf("%ld",&q->num); printf("请输入学生性别(男生1,女生0):"); {do{ scanf("%d",&d); if(d!=1&&d!=0) printf("输入错误,请重新输入!\n"); }while(d!=1&&d!=0); if(d==1) strcpy(q->sex,"男"); if(d==0) strcpy(q->sex,"女"); } printf("请依次输入学生成绩(数学,语文,英语,c++,物理):"); scanf("%lf%lf%lf%lf%lf",&q->score_math,&q->score_chinese,&q->score_english,&q->score_c,&q->score_wuli); if(t!=n) printf("\n *********************录入成功!***********************\n\n");}t++;}p->position=1;p->next=NULL;printf("\n *********************输入完成!**********************\n\n");return h;};int main1() { // main1主程序声明 struct student *p; int n; printf("\n 1.增加学生信息\n\n"); printf("请输入学生的数目:"); scanf("%d",&n); if(n>=1) {p=create(n); char tutu[10];printf("您确定录入信息至文件?(y/n)"); scanf("%s",tutu); if(strcmp(tutu,"y")==0) { if(ppq) {ppq=0; printf("您已经进行删除操作,是否覆盖信息至文件?(y/n)"); char gg[20];scanf("%s",gg); if(strcmp("y",gg)==0) {FILE *f=fopen("d:/student.txt","w"); pp=head; luru(f,pp); fclose(f); printf("信息已覆盖!Loading.......\n");} else if(strcmp("n",gg)==0) printf("信息未覆盖!Loading.......\n"); else printf("输入错误! 信息未覆盖!Loading.......\n"); }FILE *fp=fopen("d:/student.txt","a+"); luru(fp,p); printf("\n *********************录入成功!***********************\n\n"); fclose(fp);head=pp=cha(); } else if(strcmp(tutu,"n")==0) printf("信息未保存! "); else printf("输入错误!\n"); } else {printf(" 输入错误!程序结束!\n");getchar();getchar();exit(0);} printf("按任意键继续......"); return 0; } #endif
读取信息:
#ifndef FILE3_H_#define EILE3_H_struct student *cha(){ fpp=fopen("d:/student.txt","a+"); if(!fpp) {printf("打开失败!");} else {struct student *h,*p1,*p2; int i=0; fseek(fpp,0,SEEK_END); long len = ftell(fpp); len /= sizeof(struct student); if(len == 0) return NULL; rewind(fpp); p1=p2=(struct student *)malloc(sizeof(struct student)); fread(p1,sizeof(struct student),1,fpp); h= p1; for(i=1;i<len; i++) { p1=(struct student *)malloc(sizeof(struct student)); fread(p1,sizeof(struct student),1,fpp); p2->next=p1; p2=p1; } paixu(h,3,1); p1=h;int buf=1; while(p1!=NULL) {p1->position=buf++; p1=p1->next; } fclose(fpp); return (h); }}void shuchu(struct student *ppw){ printf("----------------------------------------------------------------------------\n");printf(" 学号 姓名 性别 名次\n");printf(" %ld %s %s %ld\n\n",ppw->num,ppw->name,ppw->sex,ppw->position); printf(" 语文 数学 英语 c++ 物理 \n"); printf("%8.2lf %8.2lf %8.2lf %8.2lf %8.2lf\n\n 平均分 总分\n", ppw->score_chinese,ppw->score_math,ppw->score_english,ppw->score_c,ppw->score_wuli); printf("%8.2lf %8.2lf \n",ppw->score_ping,ppw->score);printf("----------------------------------------------------------------------------\n\n");}int main2(){ if(pp==NULL) {head=pp=cha(); } else pp=head; printf(" 3.显示学生信息\n\n\n"); int nu=0; if(pp==NULL) {printf(" 文件中未存储任何信息!\n");nu=1;} int ggu=1; while(pp!=NULL) {printf("学生(%d)\n",ggu++); shuchu(pp); pp=pp->next; } pp=head; if(nu==0) printf(" *************************输出完成*************************** \n");}#endif
查找信息:
#ifndef FILE4_H_#define FILE4_H_void print2(){ printf(" ☆☆☆查找选项☆☆☆\n\n"); printf(" ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n"); printf(" ☆ ☆\n"); printf(" ☆ 1.按学号查找 ☆\n"); printf(" ☆ 2.按姓名查找 ☆\n"); printf(" ☆ 3.按名次查找 ☆\n"); printf(" ☆ ☆\n"); printf(" ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n\n"); printf("请输入相应代码:"); }int main3(){print2(); if(pp==NULL) head=pp=cha(); else pp=head; int dd; do {scanf("%d",&dd); if(dd!=1&&dd!=2&&dd!=3) printf("输入错误!请重新输入......\n"); }while(dd!=1&&dd!=2&&dd!=3); if(dd==1) {printf("请输入学生学号:"); long num; scanf("%ld",&num); while(pp!=NULL&&pp->num!=num) {pp=pp->next;}} if(dd==2) {printf("请输入学生姓名:"); char name[20]; scanf("%s",name); while(pp!=NULL&&strcmp(pp->name,name)!=0) {pp=pp->next;} } if(dd==3) {printf("请输入学生名次:"); long num; scanf("%ld",&num); while(pp!=NULL&&pp->position!=num) {pp=pp->next;}} if((dd==2||dd==1||dd==3)&&pp==NULL) {printf("未找到该学生.......\n");} else if(dd==1||dd==2||dd==3) {shuchu(pp); } pp=head; }#endif
修改信息:
#ifndef FILE5_H_#define FILE5_H_int print3(){ printf(" ☆☆☆修改选项☆☆☆\n\n"); printf(" ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n"); printf(" ☆ ☆\n"); printf(" ☆ 1.按学号查找修改 ☆\n"); printf(" ☆ 2.按姓名查找修改 ☆\n"); printf(" ☆ 3.按名次查找修改 ☆\n"); printf(" ☆ ☆\n"); printf(" ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n\n"); printf("请输入相应代码:"); return 0; }int print4(){ printf(" ☆☆☆修改☆☆☆\n\n"); printf(" ☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n"); printf(" ☆ ☆\n"); printf(" ☆ 1.修改学号 ☆\n"); printf(" ☆ 2.修改姓名 ☆\n"); printf(" ☆ 3.修改语文 ☆\n"); printf(" ☆ 4.修改数学 ☆\n"); printf(" ☆ 5.修改英语 ☆\n"); printf(" ☆ 6.修改c++ ☆\n"); printf(" ☆ 7.修改物理 ☆\n"); printf(" ☆ ☆\n"); printf(" ☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n\n"); printf("请输入相应代码:"); }int main4(){ if(pp==NULL) head=pp=cha(); else pp=head; int num=0; print3(); int nn; long mm; double ppt; char xx[20]; do {scanf("%d",&nn); if(nn!=1&&nn!=2&&nn!=3) printf("输入错误!请重新输入......\n"); }while(nn!=1&&nn!=2&&nn!=3); if(nn==1){printf("请输入学号:");scanf("%ld",&mm); while(pp!=NULL&&pp->num!=mm) {pp=pp->next;} } if(nn==2) {printf("请输入名字:");scanf("%s",xx); while(pp!=NULL&&strcmp(pp->name,xx)!=0) {pp=pp->next;} } if(nn==3){printf("请输入名次:");scanf("%ld",&mm); while(pp!=NULL&&pp->position!=mm) {pp=pp->next;} } if(pp==NULL) printf("未找到该学生.......\n"); else {shuchu(pp); print4();int pnn=0; do {scanf("%d",&pnn); if(pnn!=1&&pnn!=2&&pnn!=3&&pnn!=4&&pnn!=5&&pnn!=6&&pnn!=7) printf("输入错误!请重新输入......\n"); }while(pnn!=1&&pnn!=2&&pnn!=3&&pnn!=4&&pnn!=5&&pnn!=6&&pnn!=7); printf("请输入修改后的信息:"); //已经添加排序 if(pnn==1) {scanf("%ld",&mm);pp->num=mm;} if(pnn==2) {scanf("%s",xx);strcpy(pp->name,xx);} if(pnn==3) {scanf("%lf",&ppt);pp->score_chinese=ppt;ppt=su(pp);pp->score=ppt;pp->score_ping=ppt/5;} if(pnn==4) {scanf("%lf",&ppt);pp->score_math=ppt;ppt=su(pp);pp->score=ppt;pp->score_ping=ppt/5;} if(pnn==5) {scanf("%lf",&ppt);pp->score_english=ppt;ppt=su(pp);pp->score=ppt;pp->score_ping=ppt/5;} if(pnn==6) {scanf("%lf",&ppt);pp->score_c=ppt;ppt=su(pp);pp->score=ppt;pp->score_ping=ppt/5;} if(pnn==7) {scanf("%lf",&ppt);pp->score_wuli=ppt;ppt=su(pp);pp->score=ppt;pp->score_ping=ppt/5;} printf("\n 修改成功!\n"); if(pnn>=3&&pnn<=7) {paixu(head,3,1); pp=head;int buf=1; //排序 while(pp!=NULL) {pp->position=buf++; pp=pp->next;} } FILE *f=fopen("d:/student.txt","w"); pp=head; luru(f,pp); fclose(f); } pp=head; return 0; }#endif
删除信息:
#ifndef FILE6_H_#define FILE6_H_int print5(){ printf(" ☆☆☆删除选项☆☆☆\n\n"); printf(" ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n"); printf(" ☆ ☆\n"); printf(" ☆ 1.按学号查找删除 ☆\n"); printf(" ☆ 2.按姓名查找删除 ☆\n"); printf(" ☆ 3.按名次查找删除 ☆\n"); printf(" ☆ ☆\n"); printf(" ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n\n"); printf("请输入相应代码:"); return 0; }int main5(){struct student *mn1,*mn2; if(pp==NULL) head=pp=cha(); else pp=head; long mm; char xx[20]; mn1=pp; int nn,kl=0; print5(); do {scanf("%d",&nn); if(nn!=1&&nn!=2&&nn!=3) printf("输入错误!请重新输入......\n"); }while(nn!=1&&nn!=2&&nn!=3); if(nn==1){printf("请输入学号:");scanf("%ld",&mm); while(pp!=NULL&&pp->num!=mm) {mn1=pp;pp=pp->next;kl=1;} } if(nn==2) {printf("请输入名字:");scanf("%s",xx); while(pp!=NULL&&strcmp(pp->name,xx)!=0) {mn1=pp;pp=pp->next;kl=1;} } if(nn==3){printf("请输入名次:");scanf("%ld",&mm); while(pp!=NULL&&pp->position!=mm) {mn1=pp;pp=pp->next;kl=1;} } if((nn==1||nn==2||nn==3)&&pp==NULL) printf("未找到该学生.......\n"); else if(nn==1||nn==2||nn==3) {shuchu(pp); printf("您是否确认删除该学生信息?(y/n)"); do {scanf("%s",xx); if(!(strcmp("y",xx)==0)&&!(strcmp("n",xx)==0)) printf("输入错误!请重新输入......\n"); }while(!(strcmp("y",xx)==0)&&!(strcmp("n",xx)==0)); if(strcmp("y",xx)==0) { if(!kl) {head=head->next;ppq=1;} else{ppq=1;mn2=pp->next;mn1->next=mn2;pp=head;} pp=head;int buf=1; //排序 while(pp!=NULL) {pp->position=buf++; pp=pp->next;} printf(" 删除成功! 按任意键继续......\n");} else if(strcmp("n",xx)==0) printf(" 信息未删除! 按任意键继续......\n"); else printf(" 输入错误!! 按任意键继续...... \n"); } pp=head; }#endif
信息排序:
#ifndef FILE7_H_#define FILE7_H_int print6(){printf(" ☆☆☆排序选项☆☆☆\n\n"); printf(" ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n"); printf(" ☆ ☆\n"); printf(" ☆ 1.按学号排序 ☆\n"); printf(" ☆ 2.按姓名排序 ☆\n"); printf(" ☆ 3.按名次排序 ☆\n"); printf(" ☆ ☆\n"); printf(" ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n\n"); printf("请输入相应代码:"); return 0;}int print7(){ printf(" ☆☆☆选项☆☆☆\n\n"); printf(" ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n"); printf(" ☆ ☆\n"); printf(" ☆ 1.按升序排序 ☆\n"); printf(" ☆ 2.按降序排序 ☆\n"); printf(" ☆ ☆\n"); printf(" ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n\n"); printf("请输入相应代码:"); return 0;} void jiaohuan(struct student *aa,struct student *bb){ long num;double co;char cco[20];strcpy(cco,aa->name); // 姓名 strcpy(aa->name,bb->name);strcpy(bb->name,cco);strcpy(cco,aa->sex); //性别 strcpy(aa->sex,bb->sex);strcpy(bb->sex,cco);num=aa->num; //学号 aa->num=bb->num;bb->num=num;co=aa->score_chinese; //语文aa->score_chinese=bb->score_chinese;bb->score_chinese=co; co=aa->score_math; //数学 aa->score_math=bb->score_math;bb->score_math=co; co=aa->score_english; //英语 aa->score_english=bb->score_english;bb->score_english=co; co=aa->score_c; //c++aa->score_c=bb->score_c;bb->score_c=co; co=aa->score_wuli; //物理 aa->score_wuli=bb->score_wuli;bb->score_wuli=co; co=aa->score_ping; //平均 aa->score_ping=bb->score_ping;bb->score_ping=co;co=aa->score; //总分 aa->score=bb->score;bb->score=co;num=aa->position; //学号 aa->position=bb->position;bb->position=num; }void paixu(struct student *head1,int a,int b){struct student *p,*q; if(a==1){ if(b==1) for(p=head1;p->next!=NULL;p=p->next) for(q=p->next;q!=NULL;q=q->next) if(p->num>q->num)jiaohuan(p,q); if(b==2) for(p=head1;p->next!=NULL;p=p->next) for(q=p->next;q!=NULL;q=q->next) if(p->num<q->num)jiaohuan(p,q);}if(a==3) { if(b==1) for(p=head1;p->next!=NULL;p=p->next) for(q=p->next;q!=NULL;q=q->next) if(p->score<q->score)jiaohuan(p,q); if(b==2) for(p=head1;p->next!=NULL;p=p->next) for(q=p->next;q!=NULL;q=q->next) if(p->score>q->score)jiaohuan(p,q);}if(a==2){ if(b==1) for(p=head1;p->next!=NULL;p=p->next) for(q=p->next;q!=NULL;q=q->next) if(strcmp(p->name,q->name)>0)jiaohuan(p,q); if(b==2) for(p=head1;p->next!=NULL;p=p->next) for(q=p->next;q!=NULL;q=q->next) if(strcmp(p->name,q->name)<0)jiaohuan(p,q);}}int main6(){ if(pp==NULL) head=pp=cha(); else pp=head; if(head==NULL) printf("\n 文件中未存储任何信息!\n");else { int oo,ee; print6(); do {scanf("%d",&oo); if(oo!=1&&oo!=2&&oo!=3) printf("输入错误!请重新输入......\n"); }while(oo!=1&&oo!=2&&oo!=3); print7(); do{ scanf("%d",&ee); if(ee!=1&&ee!=2) printf("输入错误!请重新输入......\n"); }while(ee!=1&&ee!=2); paixu(head,oo,ee); printf("\n\n 排序完成!\n\n输出如下:\n\n"); int ggu=1; while(pp!=NULL) {printf("学生(%d)\n",ggu++); shuchu(pp); pp=pp->next; } pp=head; if(pp) printf(" *************************输出完成*************************** \n"); }}#endif
- 学生信息管理系统
- 学生学籍信息管理系统
- 学生信息管理系统
- 学生信息管理系统
- 学生成绩信息管理系统
- 学生信息管理系统
- 【学生信息管理系统 总结】
- 学生信息管理系统--毕业论文
- 学生信息管理系统
- 学生信息管理系统
- 学生信息管理系统~~~~~
- 学生信息管理系统
- 学生信息管理系统总结
- 学生信息管理系统
- 学生信息管理系统
- 学生信息管理系统
- netbeans 学生信息管理系统
- 学生信息管理系统
- Linux上文件的特殊权限SUID,SGID,SBIT详解
- 远程操作linux网络设置(六)- VNC安装配置Ubuntu(vnc4server )和CentOS(tigerVNC)
- 第12期中国智能家居主题沙龙将于8月28日在京举行
- jadclipse Myeclipse8.5反编译插件安装 eclipse的也类似
- android 创建图片的拷贝
- 学生信息管理系统
- REST四种请求(get,delete,put,post) 收集整理 之一
- hdu-1556 线段树
- JAVAEE菜鸟学习之路(三)-------快餐文化
- 离开了工作近5年的国企!
- 软件开发之殇
- 小记
- CSS实例(九):多种菜单效果
- java 大数 操作