首页 > 运维 > 知识 > 用c 写学生信息管理系统,怎样用c语言编写一个学生信息管理系统

用c 写学生信息管理系统,怎样用c语言编写一个学生信息管理系统

来源:整理 时间:2024-12-22 08:59:12 编辑:黑码技术 手机版

本文目录一览

1,怎样用c语言编写一个学生信息管理系统

不知道你要做这个用来干什么,如果是只是练习,你最好不要用C做,因为C更适合做系统级开发,像这种应用软件的开发最好还是使用JAVA,.NET等等,

怎样用c语言编写一个学生信息管理系统

2,C语言设计学生管理系统

http://wenwen.sogou.com/z/q705807766.htm
有点困难,你可以用Excel 2003这个还可以

C语言设计学生管理系统

3,C语言编写一个学生信息管理系统求原代码谢谢

#include <iostream> #include "conio.h" #include "malloc.h" #include "windows.h" using namespace std; typedef struct class StuList void Detele(int t) } bool Empty() } StuElem st1; st1.stunum=0; return st1; } void display() void input(StuElem *pElem); StuList Stul; int main() int num=0; cout<<"请输入要获得成绩学生学号的信息"<<endl; cin >>num; sElem=Stul.GetItem(num); cout<<sElem.name<<" "<<sElem.stunum<<" "<<sElem.score<<endl; Sleep(2000); Stul.display(); cout<<"请输入要删除成绩学生学号的信息"<<endl; cin >>num; Stul.Detele(num); Sleep(2000); Stul.display(); return 0; } void input(StuElem *pElem)

C语言编写一个学生信息管理系统求原代码谢谢

4,编程如何用C语言编写一个学生成绩管理系统程序

我们才做了这个作业。。。#include <malloc.h>#include <stdio.h>#include <stdlib.h>#define LEN sizeof(struct scorenode)#define DEBUG#include <string.h>struct scorenodeint number;/*学号*/char name[8];/*姓名*/float cj1;/*成绩1*/float cj2;/*成绩2*/float cj3;/*成绩3 */struct scorenode *next;};typedef struct scorenode score;int n,k;/*n,k为全局变量,本程序中的函数均可以使用它*//*==============================================================================================*/score *creat(void)/*函数creat,功能:创建链表,此函数带回一个指向链表头的指针*/score*head;score *p1,*p2,*p3,*max;int i,j;float fen; char t[10];n=0; p1=p2=p3=(score *)malloc(LEN);head=p3; /*申请一个新单元*/ printf("请输入学生资料,输0退出!\n");repeat1: printf("请输入学生学号(学号应大于0):");/*输入大于0的学号*/ scanf("%d",&p1->number); while(p1->number<0) getchar(); printf("输入错误,请重新输入学生学号:"); scanf("%d",&p1->number); } /*输入学号为字符或小于0时,程序报错,提示重新输入学号*/if(p1->number==0) goto end;/*当输入的学号为0时,转到末尾,结束创建链表*/else p3=head; if(n>0) for(i=0;i<n;i++) if(p1->number!=p3->number) p3=p3->next; else printf("学号重复,请重输!\n"); goto repeat1; /*当输入的学号已经存在,程序报错,返回前面重新输入*/ } } } } printf("请输入学生姓名:"); scanf("%s",&p1->name); /*输入学生姓名*/ printf("请输入cj1(0~100):"); /*输入cj1,成绩应在0-100*/ scanf("%f",&p1->cj1); while(p1->cj1<0||p1->cj1>100) getchar();printf("输入错误,请重新输入cj1"); /*输入错误,重新输入成绩1*/ scanf("%f",&p1->cj1);} printf("请输入cj2(0~100):"); /*输入cj2,成绩应在0-100*/ scanf("%f",&p1->cj2); while(p1->cj2<0||p1->cj2>100)getchar();printf("输入错误,请重新输入cj2"); /*输入错误,重新输入cj2直到正确为止*/ scanf("%f",&p1->cj2);} printf("请输入cj3(0~100):");/*输入cj3,成绩应在0-100*/ scanf("%f",&p1->cj3); while(p1->cj3<0||p1->cj3>100)getchar();printf("输入错误,请重新输入cj3"); scanf("%f",&p1->cj3);} /*输入错误,重新输入cj3直到正确为止*/ head=NULL;while(p1->number!=0) n=n+1;if(n==1) head=p1;else p2->next=p1; p2=p1; p1=(score *)malloc(LEN); printf("请输入学生资料,输0退出!\n");repeat2:printf("请输入学生学号(学号应大于0):"); scanf("%d",&p1->number); /*输入学号,学号应大于0*/ while(p1->number<0) getchar(); printf("输入错误,请重新输入学生学号:"); scanf("%d",&p1->number); } /*输入学号为字符或小于0时,程序报错,提示重新输入学号*/if(p1->number==0) goto end; /*当输入的学号为0时,转到末尾,结束创建链表*/elsep3=head;if(n>0) for(i=0;i<n;i++) if(p1->number!=p3->number) p3=p3->next; else printf("学号重复,请重输!\n"); goto repeat2; /*当输入的学号已经存在,程序报错,返回前面重新输入*/ } } } }printf("请输入学生姓名:"); scanf("%s",&p1->name);/*输入学生姓名*/ printf("请输入cj1(0~100):"); scanf("%f",&p1->cj1);/*输入cj1,成绩应在0-100*/ while(p1->cj1<0||p1->cj1>100) getchar(); printf("输入错误,请重新输入cj1"); scanf("%f",&p1->cj1);}/*输入错误,重新输入cj1直到正确为止*/ printf("请输入cj2(0~100):"); scanf("%f",&p1->cj2);/*输入cj2,成绩应在0-100*/ while(p1->cj2<0||p1->cj2>100) getchar(); printf("输入错误,请重新输入cj2"); scanf("%f",&p1->cj2);} /*输入错误,重新输入cj2绩直到正确为止*/ printf("请输入cj3(0~100):"); scanf("%f",&p1->cj3);/*输入cj3,成绩应在0-100*/ while(p1->cj3<0||p1->cj3>100) getchar(); printf("输入错误,请重新输入cj3"); scanf("%f",&p1->cj3);} /*输入错误,重新输入cj3直到正确为止*/ }end: p1=head; p3=p1;for(i=1;i<n;i++) for(j=i+1;j<=n;j++) max=p1; p1=p1->next; if(max->number>p1->number) k=max->number; max->number=p1->number; p1->number=k; /*交换前后结点中的学号值,使得学号大者移到后面的结点中*/ strcpy(t,max->name); strcpy(max->name,p1->name); strcpy(p1->name,t); /*交换前后结点中的姓名,使之与学号相匹配*/ fen=max->cj1; max->cj1=p1->cj1; p1->cj1=fen; /*交换前后结点中的cj1,使之与学号相匹配*/ fen=max->cj2; max->cj2=p1->cj2; p1->cj2=fen; /*交换前后结点中的cj2,使之与学号相匹配*/ fen=max->cj3; max->cj3=p1->cj3; p1->cj3=fen; /*交换前后结点中的cj3,使之与学号相匹配*/ } } max=head;p1=head;/*重新使max,p指向链表头*/} p2->next=NULL;/*链表结尾*/ printf("输入的学生数为:%d个!\n",n); return(head);}score *add(score *head,score *stu)/*函数add,功能:追加学生资料,并且将所有学生资料按学号排序*/score *p0,*p1,*p2,*p3,*max; int i,j;float fen; char t[10];p3=stu=(score *)malloc(LEN);/*开辟一个新单元*/ printf("\n输入要增加的学生的资料!");repeat4: printf("请输入学生学号(学号应大于0):");scanf("%d",&stu->number); /*输入学号,学号应大于0*/ while(stu->number<0) getchar(); printf("输入错误,请重新输入学生学号:"); scanf("%d",&stu->number);} /*输入错误,重新输入学号*/ /******************************************************/ if(stu->number==0) goto end2;/*当输入的学号为0时,转到末尾,结束追加*/else p3=head;if(n>0) p3=p3->next; else printf("学号重复,请重输!\n"); goto repeat4; /*当输入的学号已经存在,程序报错,返回前面重新输入*/ } } } } /******************************************************/ printf("输入学生姓名:"); scanf("%s",stu->name); /*输入学生姓名*/ printf("请输入cj1(0~100):"); scanf("%f",&stu->cj1); /*输入cj1,成绩应在0-100*/ while(stu->cj1<0||stu->cj1>100) printf("输入错误,请重新输入cj1"); scanf("%f",&stu->cj1);} /*输入错误,重新输入cj1直到正确为止*/ printf("请输入cj2(0~100):"); scanf("%f",&stu->cj2);/*输入cj2,成绩应在0-100*/ while(stu->cj2<0||stu->cj2>100)getchar(); printf("输入错误,请重新输入cj2"); scanf("%f",&stu->cj2);}/*输入错误,重新输入cj2直到正确为止*/ printf("请输入cj3(0~100):"); scanf("%f",&stu->cj3);/*输入cj3,成绩应在0-100*/ while(stu->cj3<0||stu->cj3>100) getchar(); printf("输入错误,请重新输入cj3"); scanf("%f",&stu->cj3);}/*输入错误,重新输入cj3直到正确为止*/p1=head;p0=stu;if(head==NULL)else/*原来链表不为空*/if(p1->next==NULL)/*找到原来链表的末尾*/ p1->next=p0; p0->next=NULL;/*将它与新开单元相连接*/} else while(p1->next!=NULL)/*还没找到末尾,继续找*/ p2=p1;p1=p1->next; } p1->next=p0; p0->next=NULL;}}n=n+1;p1=head;p0=stu;for(i=1;i<n;i++) for(j=i+1;j<=n;j++) max=p1; p1=p1->next; if(max->number>p1->number) k=max->number; max->number=p1->number; p1->number=k; /*交换前后结点中的学号值,使得学号大者移到后面的结点中*/ strcpy(t,max->name); strcpy(max->name,p1->name); strcpy(p1->name,t); /*交换前后结点中的姓名,使之与学号相匹配*/ fen=max->cj1; max->cj1=p1->cj1; p1->cj1=fen; /*交换前后结点中的cj1,使之与学号相匹配*/ fen=max->cj2; max->cj2=p1->cj2; p1->cj2=fen; /*交换前后结点中的cj2绩,使之与学号相匹配*/ fen=max->cj3; max->cj3=p1->cj3; p1->cj3=fen; /*交换前后结点中的cj3,使之与学号相匹配*/ } } max=head;p1=head;/*重新使max,p指向链表头*/} end2:printf("现在的学生数为:%d个!\n",n);return(head);}/*==============================================================================================*/score *search(score *head)/*函数search,功能:查询学生成绩*/score *p1,*p2;printf("输入要查询的学生的学号,");scanf("%d",&number);while(number!=0) if(head==NULL) printf("-----------------------------------------\n"); printf("|学号\t|姓名\t|cj1\t|cj2\t|cj3\t|\n"); printf("-----------------------------------------\n");/*打印表格域*/ p1=head; while(number!=p1->number&&p1->next!=NULL) if(number==p1->number) printf("-----------------------------------------\n");}/*打印表格域*/ else printf("%d不存在此学生!\n",number); printf("输入要查询的学生的学号,"); scanf("%d",&number);}printf("已经退出了!\n");return(head);}/*==============================================================================================*/score *del(score *head)/*函数del,功能:删除学生资料*/score *p1,*p2;int number;printf("输入要删除的学生的学号(输入0时退出):");scanf("%d",&number);getchar();while(number!=0)/*输入学号为0时退出*/if(head==NULL) printf("\n没有任何学生资料!\n"); return(head);}p1=head;while(number!=p1->number&&p1->next!=NULL) /*p1指向的不是所要找的首结点,并且后面还有结点*/ p2=p1;p1=p1->next;} /*p1后移一个结点*/if(number==p1->number) /*找到了*/ if(p1==head) head=p1->next; /*若p1指向的是首结点,把地二个结点地址赋予head*/ else p2->next=p1->next; /*否则将下一个结点地址 赋给前一结点地址*/ printf("已经删除:%d\n",number);n=n-1;}else printf("%d不存在此学生!\n",number);/*找不到该结点*/printf("输入要删除的学生的学号:");scanf("%d",&number);getchar();}#ifdef DEBUG printf("已经退出了!\n");#endifprintf("现在的学生数为:%d个!\n",n);return(head);} /*==============================================================================================*/score *statistics(score *head)/*函数statistics,功能:统计学生成绩*/float sum1=0,sum2=0,sum3=0,ave1=0,ave2=0,ave3=0,max=0,min;score *p;int x,y=0,i=0; p=head; printf("1个人总分和平均分\t2单科平均分\t3总分最高分\t4总分最低分\n"); scanf("%d",&x); getchar();switch(x)/*用switch语句实现功能选择*/case 1: if(head==NULL) else printf("---------------------------------------------------------\n"); printf("|学号\t|姓名\t|cj1\t|cj2\t|cj3\t|总分\t|平均分\t|\n"); printf("---------------------------------------------------------\n");/*打印表格域*/ while(p!=NULL) sum1=p->cj1+p->cj2+p->cj3; /*计算个人总分*/ ave1=sum1/3;/*计算个人平均分*/ printf("|%d\t|%s\t|%.1f\t|%.1f\t|%.1f\t|%.1f\t|%.1f\t|\n",p->number,p->name,p->cj1,p->cj2,p->cj3,sum1,ave1); /*打印结果*/ printf("---------------------------------------------------------\n");/*打印表格域*/ p=p->next;} }return(head); break;case 2: if(head==NULL) while(p!=NULL) sum1=sum1+p->cj1; sum2=sum2+p->cj2; sum3=sum3+p->cj3;/*计算总分*/ y=y+1; ave1=sum1/y; ave2=sum2/y; ave3=sum3/y;/*计算平均分*/ p=p->next;/*使p指向下一个结点*/ } printf("cj1平均分是%.1f\n",ave1); printf("cj2平均分是%.1f\n",ave2); printf("cj3平均分是%.1f\n",ave3);/*打印结果*/ return(head); break;case 3: if(head==NULL) max=p->cj1+p->cj2+p->cj3; while(i<n) i=i+1; sum1=p->cj1+p->cj2+p->cj3; /*计算个人总分*/ if(max<sum1)max=sum1;p=p->next;} printf("总分最高分:%.1f",max); printf("\n"); return(head); break;case 4: if(head==NULL) while(p!=NULL) min=p->cj1+p->cj2+p->cj3; while(p!=NULL) if(min>sum2) min=sum2; p=p->next; } } printf("总分最低分:%.1f",min); printf("\n"); return(head); break;default :printf("输入错误,请重试!\n");}return(head);}/*==============================================================================================*/int save(score *p1) /*函数save,功能:保存学生的资料*/FILE *fp;char filepn[20];/*用来存放文件保存路径以及文件名*/printf("请输入文件路径及文件名:");scanf("%s",filepn);if((fp=fopen(filepn,"w+"))==NULL)printf("不能打开文件!\n");return 0;} fprintf(fp," 学生成绩管理系统 \n"); fprintf(fp,"-------------------------------------------------------\n");fprintf(fp,"| 学号\t| 姓名\t| cj1\t| cj2\t| cj3\t|\n"); fprintf(fp,"-------------------------------------------------------\n");/*打印表格域*/while(p1!=NULL)fprintf(fp,"%d\t%s\t%.1f\t%.1f\t%.1f\t\n",p1->number,p1->name,p1->cj1,p1->cj2,p1->cj3);p1=p1->next;/*下移一个结点*/}fclose(fp);printf("文件已经保存!\n");return 0;}int menu()/*函数menu,功能:菜单选择界面*/int i,k;printf("\t\t\t\t学生成绩管理系统\n"); for(i=0;i<80;i++) printf("*");printf("\t\t1创建资料\t\t\t2查询成绩\t\t\n");printf("\t\t3删除资料\t\t\t4追加资料\t\t\n"); printf("\t\t5统计成绩\t\t\t6保存资料\t\t\n");/*菜单选择界面*/ for(i=0;i<80;i++) printf("*");printf("请选择您所要的操作(选择(0)退出):");scanf("%d",&k);/*选择操作*/ getchar();return (k);}/*==============================================================================================*/main() /*主函数main,功能:通过调用creat,search,del,add,print,ststistics,save,taxis等函数,实现学生成绩查询系统功能*/score *head=0,*stu=0;while(1)k=menu();switch(k)/*用switch语句实现功能选择*/case 1: head=creat();break;/*调用创建链表函数*/case 2: head=search(head);break;/*调用查询函数*/case 3: head=del(head); break;/*调用删除函数*/case 4: head=add(head,stu);break;/*调用追加函数*/case 5: statistics(head); break;/*调用统计函数*/case 6: save(head);break;/*调用保存函数*/case 0: exit(0);/*退出系统,返回主界面*/default: printf("输入错误,请重试!\n"); }}}
文章TAG:用c写学生信息管理系统怎样用c语言编写一个学生信息管理系统

最近更新

  • ios什么浏览器有插件ios什么浏览器有插件

    什么浏览器Support插件Thisios来自封闭系统。您无权修改ios系统,因此您不能安装任何第三方app和插件,有哪些手机浏览器支持FLASH的手机插件-2/FLASH插件只有手机Firefox浏览器,而且只有安.....

    知识 日期:2024-12-22

  • 在线图片编辑程序,ABPLC如何在线编辑程序在线图片编辑程序,ABPLC如何在线编辑程序

    使用工具:Xunjie在线Picture编辑Device。先在百度盒子搜索“在线PS图片编辑设备”,2、ps在线图片/设备,3.ps在线图片编辑设备,找到相同的在线图片编辑设备、在线照片编辑设备在线制作flas.....

    知识 日期:2024-12-22

  • 宽带批量激活自动拨号程序宽带批量激活自动拨号程序

    Boot自动拨号如何连接网络什么是自动拨号连接?求一批boot自动connection宽带如果你家里没有路由器,你一直在用拨号CatAccess宽带老实说,你在用xp自带的-1。而如果你真的想在自动拨号上上.....

    知识 日期:2024-12-22

  • 其他外文数据库有哪些,免费的外文数据库有哪些啊最好是可以下载下来文献的其他外文数据库有哪些,免费的外文数据库有哪些啊最好是可以下载下来文献的

    免费的外文数据库有哪些啊最好是可以下载下来文献的2,请问土木工程常用英文数据库有哪些3,国外知名光盘数据库有哪些国内知名的事实型光盘数据库有哪些1,免费的外文数据库有哪些啊最好是.....

    知识 日期:2024-12-22

  • 绩效管理的程序,简述外资企业成功绩效管理的程序绩效管理的程序,简述外资企业成功绩效管理的程序

    绩效管理咨询步骤?绩效管理具体实施过程:1。绩效规划与指标体系的构建2,绩效管理过程控制:(1)连续,提供绩效目标实现过程中的反馈(4)提供指导和支持(5)调整目标3、绩效评估和评价4、绩效.....

    知识 日期:2024-12-22

  • js图表插件highchartsjs图表插件highcharts

    fusionchartssamchartsshichchartsjsCharts,哪个更好用,先调用highCharts.chartstructure图表,以及ASP如何。网络呼叫排行榜,jsDisplay图表,比较好的图表插件包括HighCharts和FusionCharts.....

    知识 日期:2024-12-22

  • 如何在sap自动运行程序,sap 由于另一个程序正在运行中如何在sap自动运行程序,sap 由于另一个程序正在运行中

    如何在SAP中制作程序only运行一个自己开发的实例?如何使局域网中的计算机运行a程序accessC$作为另一个c盘,把你的程序复制到这里,然后CMD:atC$yours程序ABAP在报表输出方面的功能比较弱(.....

    知识 日期:2024-12-21

  • .swf视频播放js插件.swf视频播放js插件

    哪个视频播放设备可以播放swf文件?如何播放swf档!?视频。jsHowto播放mpg格式视频,jsMPG格式可支持播放,使用视频,js-3/MPG格式视频需要导入lib/video,jsfile,lib/videojs.MPG.-2/.MPG.swffile,.....

    知识 日期:2024-12-21