基于C语言的学生信息管理系统实现教程

创始人
2025-01-10 04:56:29
0 次浏览
0 评论

学生信息管理系统C语言编程

\n");getchar();if(p==h)h=p->next;elseq->next=p->next;free(p);printf("\n编号为%s的学生已被删除\n",s);printf("不要忘记保存数据\n");}returnh;}voidsearch1(STUDENT*h){STUDENT*p;chars[11];printf("请输入您要查找的学生的学号\n");scanf("%s",s);p=h;while(strcmp(p->no,s)&&p!=NULL)p=p->next;if(p==NULL)printf("'n该学号没有学生%s\n",s);else{printf("\n\n\n********************************找到****************************\n");printf("|学号|姓名|语文|英语|数学|总分|平均分|排名|\n");printf("|---------|------------|----|--------|----|------|------|---|\n");printf("|%-10s|%-8s|%4d|%4d|%4d|%4.2f|%4.2f|%3d|\n",p->否,p->名称,p->分数[0],p->分数[1],p->分数[2],p->总和,p->平均值,p->顺序);printf("******************************end************\n");}}voidsearch2(STUDENT*h){STUDENT*p;chars[11];printf("请输入姓名您要找的同学\n");scanf("%s",s);p=h;while(strcmp(p->名称,s)&&p!=NULL)p=p->下一个;if(p==NULL)printf("\n没有名为%s\n",s);else{printf("\n\n\n**********************************找到*********************\n");printf("|数字学生姓名|姓名|语文|英语|数学|总分|​​平均分|排名|\n");printf("|----------|-----------|----|----|----|------|--------|---|\n");printf("|%-10s|%-8s|%4d|%4d|%4d|%4.2f|%4.2f|%3d|\n",p->否,p->名称,p->分数[0],p->分数[1],p->分数[2],p->总和,p->平均,p->顺序);printf("************************结束*************************\n");}}学生*插入(学生*h){学生*p,*q,*info;chars[11];ints1,i;printf("请输入插入点的学号\n");scanf("%s",s);printf("\n请输入新学生信息\n");info=(STUDENT*)malloc(sizeof(STUDENT));if(!info){printf("\n内存不足!");returnNULL;}inputs("请输入学号:",info->no,11);inputs("请输入姓名:",info->name,15);printf("请输入%d课程成绩\n",N);s1=0;for(i=0;iscore[i]);if(info->score[i]>100||info->score[i]<0>score[i]>100||info->score[i]<0 s1=s1+info->score[i];}info->sum=s1;信息->平均值=(浮点)s1/N;信息->顺序=0;信息->下一个=NULL;p=h;q=h;while(strcmp(p->no,s)&&p!=NULL){q=p;p=p->next;}if(p==NULL)if(p==h)h=info;elseq->next=info;elseif(p==h){info->next=p;h=info;}else{info->next=p;q->next=famo;}printf("\n学生%s已被插入\n",info->name);printf("----不要忘记保存--\n");return(h);voidsave(STUDENT*h){FILE*fp;STUDENT*p;charoutfile[10];printf("请输入保存文件的文件名,如c:\\f1\\te.txt:\n");scanf("%s",outfile);if((fp=fopen(outfile,"wb"))==NULL){printf("无法打开文件文件\n");exit(1);}printf("\n录音...\n");p=h;while(p!=NULL){fwrite(p,sizeof(STUDENT),1,fp);p=p->next;}fclose(fp);printf("--------保存成功!!!------\n");}voidsort(STUDENT*h){inti=0,j;STUDENT*p,*q,*t,*h1;printf("请输入课程编号排序依据:(0.语文1.数学2.英语)\n");scanf("%d",&j);h1=h->next;h->next=NULL;while(h1!=NULL){t=h1;h1=h1->下一个;p=h;q=h;while(t->score[j]

score[j]&&p!=NULL){q=p;p=p->下一个;}if(p==q){t->下一个=p;h=t;}else{t->下一个=p;q->下一个=t;}}p=h;while(p!=NULL){i++;p->order=i;p=p->next;}print(h);printf("排序通过!!!\n");}voidtongji(STUDENT*h){STUDENT*p;inta,b,i;printf("请输入课程编号\n");scanf("%d",&i);printf("请输入分数段:\n");scanf("%d,%d",&a,&b)

用C语言设计一个学生信息查询系统程序

1.首先创建一个C语言的工程,然后右键头文件,创建一个Stu头文件。

2.编写头文件代码。
然后将数据结构的增删改查和结构写入头文件中。

3.在源文件中创建主源文件和Stu源文件。
在主文件中写入intmian()代码。

4.然后,在mian的main函数中,写一条while语句,无限循环。
接下来,编写Init函数。

5.使用Stu源文件的Init函数中的printf语句来显示学生管理系统。
然后创建链表的头节点。

6.然后利用切换功能来判断运行情况。
然后执行数据结构的增、删、改、查功能。
这样,一个学生管理系统的基本框架就完成了。

c语言做学生信息管理系统。学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。

#ifndefH_STUDENT_HH#defineH_STUDENT_HH#include"stdio.h"#include"string.h"#include"malloc.h"#defineLENsizeof(structmessage_student)/*结构体数组元素的长度*/#definenumsubs5/*科目数量*/typedefstructmessage_student/*定义结构体*/{charnumber[6];charname[20];charsex[4];floatsubject[numsubs];floatscore;floataverage;intindex;}student;externintnumstus;/*学生人数*/externstudent*pointer;/*指针到结构体数组*/externintlens;intmenu_select();/*声明函数*/intopenfile(studentstu[]);intfindrecord(studentstud[]);intwritetotext(studentstud[]);voidwelcome();voiddisplay1();voidshowtable();voidsort(studentstu[]);voiddeleterecord(studentstu[],inti);voidaddrecord(studentstud[]);voiddisplay(studentstud[],intn1,intn2);voidamendrecord(studentstud[]);voidcount(studentstud[]);voidsortnum(studentstud[]);voidsortnum2(studentstud[]);voidsortname(studentstud[]);voidsortname2(studentstud[]);voidsortcount(studentstud[]);voidsortcount2(studentstud[]);voidstatistic(studentstud[]);voiddisplay1();#endif//#include"head.h"intmenu_select(){charc;printf("\n\n");printf("|1.添加学生记录5.统计信息|\n");printf("|2.查询学生记录6.打开file|\n");printf("|3.编辑学生记录7.保存文件|\n");printf("|4.学习对记录进行排序8.查看记录|\n");printf("|0.退出系统|\n");printf("\n\n");printf("选择(0-8):");c=getchar();getchar();return(c-'0');}//#include"head.h"intfindrecord(studentstud[])/*查找信息*/{charstr[2];inti,num;if(numstus==0){printf("没有可查找的记录\n");return-1;}else{printf("如何查找?\n1.NumberStudent\t2.Name\t3.Ranking\n");gets(str);if(str[0]=='1')/*按学号查找*/{printf("请输入学号号:");获取(str);for(i=0;i<=numstus;i++)if(strcmp(str,stud[i].number)==0){display(stud,i,i);break;}elsecontinue;}elseif(str[0]=='2')/*按姓名搜索*/{printf("输入您的姓名名称:");gets(str);for(i=0;i<=numstus;i++)if(strcmp(str,stud[i].name)==0){ofsplay(stud,i,i);break;}elsecontinue;}elseif(str[0]=='3')/*按排名搜索*/{printf("输入排名:");scanf("%d",&num);getchar();for(i=0;i<=numstus;i++)if(num==stud[i].index){display(stud,i,i);break;}elseContinue;}if(i>numstus){printf("未找到所请求的信息。
\n");return-1;}returns;}}//#include"head.h"intopenfile(studentstu[]){inti=0,j;FILE*fp;charfilename[20],str[2];if(numstus!=0){printf("一条记录已存在,是否保存?(y/n)");gets(str);if(str[0]=='y'||str[0]=='Y')writetotext(stu);}printf("请输入文件名:");gets(文件名);numstus=0;if((fp=fopen(文件名,"rb+"))==NULL){printf("无法打开文件文件\n");return(-1);}fscanf(fp,"%d",&numstus);fgetc(fp);while(i0){temp=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=temp;}}}voidsortnum2(studentstud[]){inti,j;studenttemp;student*p;p=stud;for(i=0;i0){temp=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=temp;}}}voidsortname(studentstud[]){inti,j;studenttemp;student*p;p=stud;for(i=0;i0){temp=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=temp;}}}voidsortname2(studentstud[]){inti,j;studenttemp;student*p;p=stud;for(i=0;i0){temp=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=temp;}}}voidsortcount(studentstud[]){inti,j;studenttemp;学生*p;p=螺柱;for(i=0;istud[j].index){temp=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=temp;}}}voidsortcount2(studentstud[]){inti,j;studenttemp;student*p;p=stud;for(i=0;istud[j+1].index){温度=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=temp;}}}//#include"head.h"voidstatistic(studentstud[])/*新函数,统计信息输出信息*/{inti,j=0,k=0;charc1,str[2];floataverage[numsubs],sum=0;if(numstus==0)printf("未找到记录\n");else{while(1){printf("下面将计入考试成绩\n");printf("选择要计分的科目1.A\t2.B\t3.C\t4.D\t5.E\n");c1=getchar();printf("\t共有%d条记录\n",numstus);/*总条数record*/switch(c1){case'1':for(i=0;istud[i].subject[0])k=i;if(stud[j].subject[0]stud[i].subject[1])k=i;if(stud[j].subject[1]stud[i].subject[2])k=i;if(stud[j].subject[2]stud[i].subject[3])k=i;if(stud[j].subject[3]stud[i].object[4])k=i;if(stud[j].object[4]voidamendrecord(studentstud[]){charstr[5];/*用于输入user*/inti=-1,j;if(numstus==0)/*没有返回记录*/printf("没有可编辑的记录!");while(i<0 i=findrecord(stud);if(i>=0){printf("删除该学生的信息?(s/n)");gets(str);if(str[0]=='y'||str[0]=='Y'){deleterecord(stud,i);count(stud);}else{printf("您确定要编辑该学生的信息吗?(y/n)");gets(str);if(str[0]=='y'||str[0]=='Y'){printf("在下面重新输入学生信息:\n");printf("请输入学号:");gets(stud[i].number);printf("请输入姓名:");gets(stud[i].name);printf("请输入性别(男/女1/0):");gets(str);if(str[0]=='0')strcpy(stud[i].sex,"女");和lsestrcpy(stud[i].sex,"男");stud[i].score=0;printf("按顺序输入分数:");for(j=0;j=0){for(j=i;jstud[i].score)stud[i].index++;}}voidaddrecord(studentstud[]){inti=0,j,num;charstr[5];if(numstus!=0){printf("是否要覆盖现有记录?(y/n)\n");gets(str);if(str[0]=='Y'||str[0]=='y')i=0;elsei=numstus;}printf("输入要添加的信息条目数学生:");scanf("%d",&num);if(i==0)numstus=num;elsenumstus+=num;if(numstus>lens){lens+=50;指针=(学生*)realloc(指针,lens*LEN);}printf("请输入学生数据:\n");for(;i0){i=menu_select();/*控制菜单*/switch(i){case1:addrecord(pointer);break;/*添加学生信息*/case2:findrecord(pointer);break;/*请求学生信息*/case3:amendrecord(pointer);break;/*编辑学生信息*/case4:sort(pointer);break;/*排序信息关于学生*/case5:statistic(pointer);break;/*统计信息*/case6:openfile(pointer);break;/*打开文件*/case7:writetotext(pointer);break;/*保存文件*/case8:display(pointer,0,numstus-1);break;/*显示记录*/case0:if(numstus!=0)printf("是否保存当前记录?(y/n)");gets(str);if(str[0]=='y'||str[0]=='Y')writetotext(指针);i=-1;break;/*退出系统*/默认:printf("请输入0~8之间的数字:\n");i=1;/*输入错误*/}}printf("\t\t欢迎您再次使用本系统。
\n\n");display1();}
热门文章
1
JSF架构解析与Java学习资源分享:J... JavaServerFacesJSF体系结构JavaServerFaces(JS...

2
数据结构C语言版深度解析与C语言入门很简... 《数据结构(C语言版)》.严蔚敏吴伟民著.pdf在《数据结构(C语言版)》一书中...

3
C语言字符串常量解析:区别、用途及存储方... 什么是字符串常量字符串常量是C语言中的一种数据类型,它是由一对双引号括起来的字符...

4
C语言printf函数:格式字符串与输出... printf函数中的格式与输出项有什么关系?在C语言中,printf函数中的格式...

5
Excel技巧:计算字符串起始位置与合并... 如何计算字符串在特定文本中的起始位置,怎么计算字符串在特定文本中的起始位置您可以...

6
Python发音全解:掌握正确的发音方法... python怎么读我的很多学习编程的朋友可能都知道Python这个词,但是他们中...

7
字符与字符串:编程中的基础文本类型解析 字符串什么意思字符串是由数字、字母和下划线组成的字符串,表示为s=“a1a2…a...

8
Python编程语言:多领域应用与开发优... Python的作用是什么?Python是一种跨平台计算机编程语言,是ABC语言的...

9
深度解析:C语言编程特点与应用领域 什么叫c语言C语言是一种编程语言。C编程语言应用广泛,具有以下特点和特点:1.语...

10
Java全解析:跨平台编程语言的魅力与多... java是什么Java是一种功能强大的编程语言,被称为“一次编写,随处运行”模型...