c语言课程设计报告+学生成绩信息管理系统+源代码

合集下载

C语言课程设计 学生成绩管理系统 源代码

C语言课程设计 学生成绩管理系统 源代码

//学生成绩管理系统//用户名:xdxy 密码:700619#include<stdio.h>#include<conio.h> /*清屏*/#include <stdlib.h> /*显示目录*/#include<string.h>#define MAX 1000void menu();void input(); /*输入数据函数*/ void sort(); /*排序数据函数*/ void display(); /*显示数据函数*/ void display1(); /*显示各科成绩函数*/ void insert(); /*插入数据函数*/ void del(); /*删除数据函数*/ void average(); /*平均值函数*/void find(); /*查找数据函数*/ void save(); /*保存数据函数*/ void read(); /*读出数据函数*/ void del_file(); /*删除文件函数*/void modify(); /*修改文件函数*/int now_no=0;struct student //定义学生信息{int no; // 学号char name[20]; //姓名char sex[4]; //性别float score1; //成绩1float score2; //成绩2float score3; //成绩3float sort; //排序成绩float ave; //平均分float sum; //总分};void main(){int h,flag1,flag2;char name[20]="xdxy",password[10]="700619";char person[20],password1[10];printf ("\t\t ******** 欢迎进入学生成绩管理系统!********\n\n");printf ("\t\t\t 用户登录\n\n");for(h=0;h!=5;){printf("\t\t\t\t 用户名:");gets(person);flag1=strcmp(person,name);printf("\t\t\t\t 密码:");gets(password1);flag2=strcmp(password,password1);if(flag1==0 && flag2==0){printf("\t\t\t\t 登陆成功!\n\n");menu();break;}else{printf ("\t\t\t 用户名或密码错误!\n\n");printf ("\t\t\t 请注意:您还剩%d次机会!\n\n",4-h);h++;}}if (h=5)printf ("对不起,您输入的用户名或密码有误,已被强制退出。

C语言学生成绩管理系统源代码

C语言学生成绩管理系统源代码

C语言学生成绩管理系统源代码程序代码:#include;#include;#include;#define SIZE 3 /*定义常量SIZE便于以后的修改*/ struct student /*定义一个结构体数组存放学生的信息*/{int number; /*学号*/char name[20];/*名字*/char xueyuan[20];/*学院*/int cla;/*班级*/int score[3];/*分数*/int sum;/*总分*/int average;/*平均分*/}stu[SIZE];void menu();/*调用菜单函数*/void write();/*读入信息*/void save(int x);/*保存stud.dat文件函数*/void SaveOneStudent(int i);/*保存一个学生信息*/ void SaveAllStudent(int n);/*保存全部学生信息*/ void inturn (struct student c[]);/*用于对学生的信息按学号排序的函数*/void save2();/*将排序后的信息存入student.dat文件中*/int AddStudent(int n);/*增加学生信息*/void InputOnestudent(int i);/*输入一个同学信息*/ int DelStudent(int n);/*删除学生信息*/void ModifyStudent(int n);/*修改学生信息*/void OutputOneStudent(int i);/*查询一个学生信息*/ void SearchMenu(int n);/*查询学生信息操作*/void SearchNumber(int n);/*按学号查询学生信息*/ void SearchName(int n);/*按姓名查询学生信息*/ void SearchXueyuan(int n);/*按所在学院查询学生信息*/void SearchCla(int n);/*按所在班级查询学生信息*/ void tongji();/*学生信息统计操作*/void tongji2();/*统计不及格率操作*/void zfsc();/*总分排序操作*/void avecz();/*按平均分统计人数操作*/void avecz();/*按平均分统计人数操作*/void search();/*查找最高成绩操作*/void tongji2();/*统计不及格率操作*/void read();/*读取student.dat文件文件中学生的信息*//*主函数************************************************* ***********************************/void main(){int n=SIZE;int choice;/*用户选择变量*/printf(&quot;************************************ *******************************************\n&quo t;);printf(&quot;* *\n&quot;);printf(&quot;* Hwadee &学生成绩文件管理& Hwadee *\n&quot;);printf(&quot;* *\n&quot;);printf(&quot;*******************************************************************************\n\n\n&quot;);printf(&quot;******************************●●欢迎使用●●*********************************&quot;);while (1){menu();/*调用菜单函数形成操作界面*/printf(&quot;请选择:&quot;);scanf(&quot;%d&quot;, &choice);if ( choice==0 ){printf(&quot;\t\t\t\t谢谢使用!!!&quot;);break;}switch(choice) /*多重选择实现功能不同的功能*/ {case 1:write();inturn(stu);save(SIZE);break;case 2:AddStudent(n);break;case 3:DelStudent(n);break;case 4:ModifyStudent(n);break;case 5:SearchMenu(n);break;case 6:tongji();break;case 0:printf(&quot;\n谢谢使用!再见!\n&quot;);default:printf(&quot;\n按键错误!请重新选择!\n&quot;); }/*结束switch*/}/*结束while*/}部分程序清单/*菜单函数************************************************* ************************************/void menu(){printf(&quot;************请输入所需操作***********\n&quot;);/*选择功能菜单*/printf(&quot;************************************ *\n&quot;);printf(&quot;1.学生成绩写入及排序\n&quot;); printf(&quot;2.增加学生信息\n&quot;);printf(&quot;3.删除学生信息\n&quot;);printf(&quot;4.修改学生信息\n&quot;);printf(&quot;5.查询学生信息\n&quot;);printf(&quot;6.学生成绩统计操作\n&quot;); printf(&quot;0.退出系统\n&quot;);printf(&quot;**************************************\n&quot;);}/*写入函数*************************************************************************************/void write(){int i;/*计数变量*/for(i=0;i;m[j].number){temp=m[i];m[i]=m[j];m[j]=temp;}}printf(&quot;\n排序后的学生信息:\n\n&quot;); for(i=0;i;0&&x;59&&stu[i].average;69&&stu[i].average;79&&stu[i].average;89&&stu[i].average;stu[k].score[0])i=k;}printf(&quot;高数成绩最高学生信息如下:\n&quot;);OutputOneStudent(k);printf(&quot; 输出结束\n&quot;);printf(&quot;************************************************* *********&quot;);}if(x==2){for(i=0;i;stu[k].score[1])i=k;}printf(&quot;英语成绩最高学生信息如下:\n&quot;);OutputOneStudent(k);printf(&quot; 输出结束\n&quot;);printf(&quot;************************************************* *********&quot;);}if(x==3){for(i=0;i;stu[k].score[2])i=k;}printf(&quot;C语言成绩最高学生信息如下:\n&quot;);OutputOneStudent(k);printf(&quot; 输出结束\n&quot;);printf(&quot;************************************************* *********&quot;);}}/*统计不及格率操作************************************************* ****************************/void tongji2(){int x,i,k;printf(&quot;********************输入统计选项**********************\n&quot;); /*选择功能菜单*/ printf(&quot;统计高数成绩不及格率请按:1\n&quot;);printf(&quot;统计英语成绩不及格率请按:2\n&quot;);printf(&quot;统计C语言成绩不及格率请按:3\n&quot;);scanf(&quot;%d&quot;,&x);/*用户选择变量 */ if(x==1){for(i=0;i。

学生成绩管理系统c语言代码(供参考)

学生成绩管理系统c语言代码(供参考)

C程序学生管理系统以下是用C语言编写的学生成绩管理系统的简单代码,可以用vc运行(供参考)#include"stdio.h"#include”stdlib。

h"#include"string。

h”typedefstruct student//定义学生{char name[10];int number;char sex[2];int math;int eglish;int clanguge;int average;}student;typedefstruct unit//定义接点{studentdate;struct unit*next;}unit;unit大build()//建立链表并返回指针{unit*p;if((p=(unit*)malloc(sizeof(unit)))==NULL){printf("二>初始化失败!”);return0;}else{p—>next=NULL;p-〉date.number=O;//头结点存放学生人数printf("初始化成功!\n");return p;}}void add(unit大head)//增加学生{unit*p,*q;int m,n=0;q=head-〉next;p=(unit*)malloc(sizeof(unit));printf(”二〉请输入新生姓名!\n");gets(p—>);fflush(stdin);printf("二〉请输入学号!\n");while(n==0){scanf("%d",&m);fflush(stdin);if(q二二NULL)n二1;while(q){if(q->date.number==m){prinTf("二>你输入的学号与已有同学的学号相同,请重新输入!\n");q=head-〉next;break;}else{q=q->next;if(q==NULL)n=1;}}}p一〉date。

学生绩点计算系统C语言(附完整源代码)

学生绩点计算系统C语言(附完整源代码)

学生绩点计算系统C语言(附完整源代码)本文档提供了一个用于计算学生绩点的C语言程序的完整源代码。

程序简介该程序是一个学生绩点计算系统,它可以读取学生的课程成绩和学分信息,并计算出每门课程的绩点以及整个学期的绩点。

该程序可以帮助学生快速准确地计算自己的绩点,以便了解自己在学业上的表现。

源代码以下是该程序的完整源代码:include <stdio.h>int main() {int numCourses;float totalCredits = 0;float totalGradePoints = 0;printf("请输入您的课程数量:");scanf("%d", &numCourses);for (int i = 0; i < numCourses; i++) {int credits;float grade;printf("请输入第%d门课的学分:", i + 1); scanf("%d", &credits);printf("请输入第%d门课的成绩:", i + 1); scanf("%f", &grade);totalCredits += credits; totalGradePoints += credits * grade;}float gpa = totalGradePoints / totalCredits;printf("\n您的绩点为:%.2f\n", gpa);return 0;}该程序首先会要求用户输入课程数量,然后逐一询问每门课程的学分和成绩。

程序会根据用户输入的数据计算出总学分和总绩点,并最终计算出绩点(GPA),并将结果输出。

使用方法1. 运行该程序;2. 按照提示输入课程数量;3. 按照提示逐一输入每门课程的学分和成绩;4. 程序将会输出您的绩点(GPA)。

C语言学生成绩管理系统源代码

C语言学生成绩管理系统源代码

C语⾔学⽣成绩管理系统源代码⼤学C语⾔实训课,C语⾔学⽣成绩管理系统,供⼤家参考,具体内容如下1234567 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56#include<stdio.h>#include<string.h>#include<math.h>struct student{int num;char name[20];float pingshi;float shiyan;float kaoshi;double zongping;}stu[4];void main(){void a();void b();void c();void d();void e();int n;while(n!=6){ printf("\t⼤学计算机基础成绩管理系统\n");printf("1:输⼊⼀个班学⽣⼤学计算机基础成绩记录\n");printf("2:显⽰所有成绩记录\n");printf("3:计算并输出平均成绩,均⽅差\n");printf("4:输出成绩与排名\n");printf("5:结果存⼊⽂件chengji.txt\n");printf("6:退出系统\n");printf("输⼊选项代码:");scanf("%d",&n);switch(n){case1:a();break;case2:b();break;case3:c();break;case4:d();break;case5:e();break;case6:printf("\n*******************谢谢使⽤!*******************\n");break; break;}}getchar();}/* ⼦函数*/void a() /* 输⼊⼀个班的学⽣记录*/{int i;for(i=0;i<4;i++){printf("请输⼊学号姓名平时成绩实验成绩考试成绩:");57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 scanf("%d%s%f%f%f",&stu[i].num,stu[i].name,&stu[i].pingshi,&stu[i].shiyan,&stu[i].kaoshi);}for(i=0;i<4;i++)stu[i].zongping=0.1*stu[i].pingshi+0.3*stu[i].shiyan+0.6*stu[i].kaoshi;}void b()/* 显⽰所有记录*/{int i;printf("学号姓名平时成绩实验成绩考试成绩总评成绩\n");for(i=0;i<4;i++)printf("%d%14.2s%14.2f%14.2f%14.2f%14.2f\n",stu[i].num,stu[i].name,stu[i].pingshi,stu[i].shiyan,stu[i].kaoshi,stu[i].zongping); }void c()/* 求出全班平均成绩,显⽰均⽅差*/{int a[4]={0,1,2,3};int i,j;double total=0,pfc=0,bzc=0;double ave;for(i=0;i<4;i++){total=total+stu[i].zongping;}ave=total/4.0;printf("总评平均成绩是%f\n",ave);for(i=0;i<4;i++){pfc=pow((stu[i].zongping-ave),2)/4;}bzc=sqrt(pfc);printf("\n平⽅差是%f\n",pfc);printf("\n标准差是%f\n",bzc);}void d(){int a[4]={0,1,2,3};int i,j,temp;for(j=0;j<3;j++){for(i=0;i<3-j;i++)if(stu[a[i]].zongping>stu[a[i+1]].zongping){temp=a[i];a[i]=a[i+1];a[i+1]=temp;}}printf("顺序为:\n");printf("学号姓名总评成绩\n");for(i=0;i<4;i++)printf("%d%10.2s%15.2f\n",stu[a[i]].num,stu[a[i]].name,stu[a[i]].zongping);printf("\n");}void e(){int i;FILE*fp;fp=fopen("chengji.txt","w");119120121122123124125126127128129130131132133fprintf(fp,"学号 姓名 平时成绩 实验成绩 考试成绩 总评成绩\n");for(i=0;i<4;i++)fprintf(fp,"%d%14.2s%14.2f%14.2f%14.2f%14.2f\n",stu[i].num,stu[i].name,stu[i].pingshi,stu[i].shiyan,stu[i].kaoshi,stu[i].zongping); printf("\n\n*******************恭喜,保存完成!*******************\n\n");}简单记录。

C语言程序设计-学生成绩管理系统源码

C语言程序设计-学生成绩管理系统源码

#include〈stdio.h>#include<conio。

h>#include<malloc.h>#include<string.h>struct STUDENT{char studentNumber[10];/*学生学号*/char studentName[20];/*学生姓名*/char className[20];/*班级名称*/float mark1;/*第1门成绩*/float mark2;/*第2门成绩*/float mark3;/*第3门成绩*/struct STUDENT *next;};struct STUDENT *headLink;/*链表表头指针*//*以下是函数声明*/void ReadInfoFormFile(void);/*读入信息形成文件*/void DisplayMenu(void);void CreateHeadLink(void);struct STUDENT *MallocNode(void);void GetInformation(struct STUDENT *t);void OutputInformation(void);void DisplayInfoBystudentName(void);void DisplayInfoBystudentNumber(void);void DisplayOneNode(struct STUDENT *t);void InsertOneNode(struct STUDENT *t);void DeleteNodeBystudentNumber(void);void ChangeMarkByName(void);void ChangeMarkByNumber(void);void SaveLinkToFile(void);void DisplayMarkSegment(void);/*显示各分数段的学生成绩*/ void CompositorByTotalMark(void);/*按总成绩排序*/int choose;/*用于接受用户的选择*//*主函数*/int main(){CreateHeadLink();ReadInfoFormFile();DisplayMenu();return 0;}/************************************函数功能:从文件中读学生信息到链表中************************************/void ReadInfoFormFile(void){FILE *fp;STUDENT *p;fp=fopen(”student。

c语言学生成绩管理系统代码

c语言学生成绩管理系统代码

include<stdio.h>include<string.h>include<stdlib.h>define MAXN 100 //一个班最多的人数define MAXM 2 //成绩的课程门数int R;void input; //1.学生成绩新建void sort; //2.学生成绩插入void load; //3.学生成绩修改void print; //4.学生成绩删除void total; //5.学生成绩统计void search; //6.学生成绩查询void save; //7.学生成绩保存void end; //8.结束struct student{char name20; //保存全班姓名char num12; //保存全班学号float scoreMAXM; //保存全班所有课程成绩float sum; //保存全班每个人的总成绩float avg; //保存每个人的平均成绩};struct student sMAXN;struct http{char subject20; //保存全班所有课程};struct http cMAXM;void main //欢迎首界面{int select;l;system"color fC";printf"\n";printf"\n";printf"\n";printf"\n";printf" ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥\n";printf" \n";printf" \n";printf" 欢迎进入终极一班学生管理系统\n";printf" \n";printf" ︻┳═一 cf ... \n";printf" ┈━═☆甘总管的多塔生活∝╬══→ \n";printf" \n";printf" 凸^-^凸凸^-^凸凸^-^凸凸^-^凸凸^-^凸凸^-^凸凸^-^凸 \n";printf" ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥\n";printf" ╭v╮ ╔══╗╔╗ ╔╗╔╗╭'''╮\n";printf" ^o^╚╗╔╝║║╔═╦╦╦═╗║╚╝╠═╦╦╗~ : ~\n";printf" ~ : ~╔╝╚╗║╚╣║║║║╠╣╚╗╔╣║║║║~v ~\n";printf" ╚══╝╚═╩═╩═╩═╝╚╝╚═╩═╝ \n";printf"\n";printf"\n";printf" 请按任意键进入下一界面\n";printf"------------------------------------------------------------------\n";system"pause";system"color f2";system"color f1";system"color f3";system"color fE";system"color fB";system"color f5";system"color f9";system"color f6";system"color f1";system"color f3";system"color fE";system"color fB";system"color f5";system"color f9";system"color f6";system"color f1";system"color f3";system"color f5";system"color f9";system"color f6";system"color fD";system"pause";system"color fC";system"cls"; //上面是第一个界面while1{system"cls";printf" 欢迎进入终极一班学生管理系统\n";printf" \n";printf" ∝╬══→ 1.学生成绩新建囧rz 欢\n";printf" ::======>> 2.学生成绩插入迎\n";printf" ┈━═☆ 3.学生成绩修改来\n";printf" ∝╬══→ 4.学生成绩删除到\n";printf" ∝╬══→ 5.学生成绩统计英\n";printf" ∝╬══→ 6.学生成绩查询雄\n";printf" ▄︻┻═┳ 7.学生成绩保存联\n";printf" ∝╬══→ 8.退出/撒拉嘿盟\n";printf" ⊙_⊙⊙_⊙⊙_⊙⊙_⊙⊙_⊙⊙_⊙ \n"; printf" \n";printf"\n"; printf"\n 请输入您的选择编号;回车键继续:\n";printf" ---------------------------------------------------------------------------\n";scanf"%d";&select;do{ifselect<1||select>8{printf" 您输入有误;请重新输入;谢谢\n";scanf"%d";&select;}l=select;}whilel<1||l>8;switchselect{case 1:input;break; //1.学生成绩新建case 2:sort; break; //2.学生成绩插入case 3:load; break; //3.学生成绩修改case 4:print; break; //4.学生成绩删除case 5:total;break; //5.学生成绩统计case 6:search;break; //6.学生成绩查询case 7:save;break; //7.学生成绩保存case 8: end;break; //8.结束default:printf" 请按相应数学选择系统功能:";}}}void input //1学生成绩输入成绩模块{int i;j;b;float a=0;printf" 请输入该班同学的人数:\n";printf" 班同学的人数在1~%d之间:\n";MAXN;scanf"%d";&R;do{ifR<1||R>100{printf" 您输入有误;请重新输入;谢谢\n";scanf"%d";&R;}b=R;}whileb<1||b>100;fori=0;i<MAXM;i++{printf" 请输入该班同学的第%d门课程名称为:\n";i+1;scanf"%s"; &ci.subject;}fori=0;i<R;i++{printf" 请输入第%d个同学的姓名:\n";i+1;scanf"%s";&;printf" 请输入第%d个同学的学号:\n";i+1;scanf"%s";&si.num;printf" 请依次输入%d门学科的成绩:\n";MAXM;forj=0;j<MAXM;j++{printf" 请输入课程%s的成绩为:\n";cj.subject;scanf"%f";&si.scorej;a=a+si.scorej;}si.sum=a;si.avg=si.sum/MAXM;a=0;}}void sort //2学生成绩插入成绩模块{int i;j;k;b;float a=0;printf" 请输入要插入的学生的位置1~%d号:\n";R;printf" 第几个学生的位置之后:\n";scanf"%d";&k;do{ifk<1||k>R{printf" 您输入有误;请重新输入;谢谢\n";scanf"%d";&k;}b=k;}whileb<1||b>R;R=R+1;fori=R;i>k;i--{;;strcpysi.num;si-1.num;si.sum=si-1.sum;si.avg=si-1.avg;forj=0;j<MAXM;j++{si.scorej=si-1.scorej;}}printf" 请输入第%d个同学的姓名:\n";k+1;scanf"%s";&;printf" 请输入第%d个同学的学号:\n";k+1;scanf"%s";&sk.num;printf" 请依次输入%d门学科的成绩:\n";MAXM;forj=0;j<MAXM;j++printf" 请输入课程%s的成绩为:\n";&cj.subject;scanf"%f"; &sk.scorej;a=a+sk.scorej;}sk.sum=a;sk.avg=sk.sum/MAXM;}void load //3学生成绩修改{float a=0;hMAXM;int i;j;b;printf" 请输入修改学生的位置1~%d 号: \n";R;scanf"%d";&i;do{ifi<1||i>R{printf" 您输入有误;请重新输入;谢谢\n";scanf"%d";&i;}b=i;}whileb<1||b>R;printf" 请输入%d号的新学号: \n";i;scanf"%s";&;printf" 请输入%d号的新姓名: \n";i;scanf"%s";&si-1.num;forj=0;j<MAXM;j++{printf" 请输入课程%s的成绩为:\n";&cj.subject;scanf"%f";&hj;si-1.scorej =hj;a=a+si-1.scorej;si-1.sum=a;si-1.avg=si-1.sum/MAXM;}void print //4学生成绩删除{int i;j;k;b;printf" 请输入删除学生的位置1~%d 号:\n";R;scanf"%d";&k;do{ifk<1||k>R{printf" 您输入有误;请重新输入;谢谢\n";scanf"%d";&k;}b=k;}whileb<1||b>R;i=k-1;fori;i<R;i++{;si+;strcpysi.num;si+1.num;si.sum=si+1.sum;si.avg=si+1.avg;forj=0;j<MAXM;j++{si.scorej=si+1.scorej;}}R=R-1;printf"删除成功 \n";}void total //5.学生成绩统计{int i;j;float aMAXM;b=0;printf"学号:姓名:课程%s的分数:课程%s的分数: 总成绩:平均成绩:\n";c0.subject;c1.subject;fori=0;i<R;i++{printf"%s%10.2s%16.2f%16.2f%16.2f%16.2f\n";si.num;;si.score0 ;si.score1;si.sum;si.avg;}fori=0;i<MAXM;i++{forj=0;j<R;j++{b=b+sj.scorei;}ai=b/R;b=0;}fori=0;i<MAXM;i++{printf" 全班课程%s的平均分为:%f\n";ci.subject;ai;}printf"排序完毕.\n";system"pause";}void search //6查询成绩模块{int search1;int search2;int select;index;b;while1{printf" \n";printf" 1.按学号查询\n";printf" 2.按姓名查询\n";printf" 0.返回\n";printf" 请输入您的选择编号:\n";printf" \n";scanf"%d";&select;do{ifselect<0||select>2{printf" 您输入有误;请重新输入;谢谢\n";scanf"%d";&select;}b=select;}whileb<0||b>2;switchselect{case 1:index=search1; break;case 2:index=search2;break;case 0:return;}ifindex=-1{int i;printf" \n";printf" 学号:%s \n"; sindex.num;printf" 姓名:%s \n"; ;printf" 总成绩:%f \n"; sindex.sum;printf" 平均成绩:%f \n"; sindex.avg;fori=0;i<MAXM;i++printf" 课程%s的成绩为:%f \n"; ci.subject;sindex.scorei;printf" \n";}else printf"没有这个同学..\n";}}int search1 //按学号查询模块{int i;char s_num12;printf" 请输入要查询的学号:";scanf"%s";&s_num;fori=0;i<MAXN;i++ifstrcmpsi.num;s_num==0break;ifi<MAXNreturn i;else return -1;}int search2 //按姓名查询模块{int i;char s_name10;printf" 请输入要查询的姓名:";scanf"%s";&s_name;fori=0;i<MAXN;i++;s_name==0break;ifi<MAXNreturn i;else return -1;}void save//7保存成绩模块{FILE fp;int i;j;k=0;char filename20;printf"请输入文件名请以 .txt 结束: ";scanf"%s";filename;iffp=fopenfilename; "w"==NULL{printf"打开文件失败.\n";return;}fprintffp; "该班学生数和所修课程数分别为:%d;%d\n\n";R;MAXM; fprintffp; "该班所修的课程有:\n";forj=0;j<MAXM;j++fprintffp; "课程%d:%s\n";1+j;cj.subject;fprintffp; "下面是该班学生信息:\n\n";fori=0;i<R;i++{fprintffp; "学号:%s 姓名:%s\n";si.num;;forj=0;j<MAXM;j++{fprintffp; "%s:%5.2f\n";cj.subject;sk.scorej;}fprintffp; "学生总成绩:%5.2f\n学生平均成绩:%5.2f\n\n";si.sum;si.avg;k++;}fclosefp;printf"\n\n 保存成功\n\n\n\n";fclosefp;printf"保存完毕.\n";}void end //8.结束{system"cls";system"color f4";printf"\n";printf"\n";printf"\n";printf" █◣◢█◣◢█◣◢█▁▁\n";printf"█████████████\\//\n";printf"\n";printf"◢█████████████◣//\\\n";printf"\n";printf"◢███████████████◣ ̄▌ ̄\n";printf"\n";printf" ██●███●██▌ \n";printf"\n";printf" ██◣◢███◣◢██▌\n";printf"\n";printf" ◥█████◤^◥█████◤▌\n";printf"\n";printf" ◥████◣/\◢████◤◢██\n";printf"\n";printf"◢█████████████◢██◤\n";printf"\n";printf"◢████████████████ \n";printf"\n";printf" ██◤◢███◤◥███◣\n";printf"\n";printf" ◢███◤◥███◣\n";printf"\n";printf" ████████ \n";printf"\n";printf"\n";printf"\n\n 谢谢您的使用..BYE\n\n\n\n\n\n\n\n";system"color f2";system"color f1";system"color f3";system"color fE";system"color fB";system"color f5";system"color f9";system"color f6";system"color f1";system"color f3";system"color fE";system"color fB";system"color f5";system"color f9";system"color f6";system"color f1";system"color f3";system"color f5";system"color f9";system"color f6";exit0;}。

c语言学生成绩信息管理系统源代码

c语言学生成绩信息管理系统源代码

C语言学生成绩信息管理系统源代码一、概述在学校教学管理工作中,学生成绩信息管理是一个至关重要的环节。

为了方便高效地进行学生成绩信息的录入、查询和管理,我们可以利用C语言编写一个学生成绩信息管理系统。

本文将介绍该系统的源代码,并对其进行详细的解释和讲解。

二、系统功能需求1. 录入学生成绩信息2. 查询学生成绩信息3. 修改学生成绩信息4. 删除学生成绩信息5. 显示所有学生成绩信息三、系统源代码实现```c#include <stdio.h>#include <stdlib.h>#include <string.h>// 定义学生结构体typedef struct student {int id; // 学号char name[20]; // 尊称float score; // 成绩} Student;// 全局变量int count = 0; // 记录学生数量Student students[100]; // 学生数组// 录入学生成绩信息void inputStudentInfo() {printf("请输入学生学号:");scanf("d", students[count].id);printf("请输入学生尊称:");scanf("s", students[count].name); printf("请输入学生成绩:");scanf("f", students[count].score); count++;}// 查询学生成绩信息void queryStudentInfo(int id) {for (int i = 0; i < count; i++) {if (students[i].id == id) {printf("学生信息如下:\n");printf("学号:d\n", students[i].id);printf("尊称:s\n", students[i].name);printf("成绩:.2f\n", students[i].score);return;}}printf("未找到该学生信息!\n");}// 修改学生成绩信息void modifyStudentInfo(int id, char *name, float score) { for (int i = 0; i < count; i++) {if (students[i].id == id) {strcpy(students[i].name, name);students[i].score = score;printf("修改成功!\n");return;}}printf("未找到该学生信息!\n");}// 删除学生成绩信息void deleteStudentInfo(int id) {for (int i = 0; i < count; i++) {if (students[i].id == id) {for (int j = i; j < count - 1; j++) { students[j] = students[j + 1]; }count--;printf("删除成功!\n");return;}}printf("未找到该学生信息!\n");}// 显示所有学生成绩信息void displayAllStudentInfo() {if (count == 0) {printf("暂无学生信息!\n");return;}printf("学生成绩信息如下:\n");for (int i = 0; i < count; i++) {printf("学号:d,尊称:s,成绩:.2f\n", students[i].id, students[i].name, students[i].score);}}int m本人n() {int choice, id;char name[20];float score;while (1) {printf("欢迎使用学生成绩信息管理系统!\n");printf("1. 录入学生成绩信息\n");printf("2. 查询学生成绩信息\n");printf("3. 修改学生成绩信息\n");printf("4. 删除学生成绩信息\n");printf("5. 显示所有学生成绩信息\n");printf("6. 退出系统\n");printf("请选择操作:");scanf("d", choice);switch (choice) {case 1: // 录入学生成绩信息inputStudentInfo();break;case 2: // 查询学生成绩信息printf("请输入要查询的学生学号:"); scanf("d", id);queryStudentInfo(id);break;case 3: // 修改学生成绩信息printf("请输入要修改的学生学号:"); scanf("d", id);printf("请输入修改后的尊称:");scanf("s", name);printf("请输入修改后的成绩:");scanf("f", score);modifyStudentInfo(id, name, score); break;case 4: // 删除学生成绩信息printf("请输入要删除的学生学号:"); scanf("d", id);deleteStudentInfo(id);break;case 5: // 显示所有学生成绩信息displayAllStudentInfo();break;case 6: // 退出系统printf("感谢使用学生成绩信息管理系统!\n");exit(0);default:printf("请输入正确的操作!\n");}}return 0;}```四、系统运行效果1. 运行系统后,会出现一个菜单,根据需求选择相应的操作。

学生成绩管理系统C语言课程设计源代码

学生成绩管理系统C语言课程设计源代码

#include<stdio.h>#include<string.h>#include<math.h>#include<conio.h>#include<stdlib.h>struct chengji /* 成绩结构体*/ {int point;char subject[20];};struct student /* 学生结构体*/ { int w;char name[20];int number;struct chengji cheng[30];float sum;float average;}stu[40];void pjun(); /*按平均分排序*/void pfen(); /*按总分排序*/ void addnew(); /*录入学生成绩*/void pall(); /*显示所有成绩*/ void check(); /*查询菜单*/ void pnum(); /*按学号排序*/ void pjing(); /*精确查找*//****************************************************************************** *************************//*主菜单*/main(){char choose;while(1){printf("\n\t\t**************************************");printf("\n\t\t* 欢迎使用成绩管理系统*");printf("\n\t\t* *");printf("\n\t\t* 请选择*");printf("\n\t\t* 1. 录入学生成绩*");printf("\n\t\t* 2. 查询学生成绩*");printf("\n\t\t* 3. 清屏*");printf("\n\t\t* 0. 退出程序*");printf("\n\t\t* *");printf("\n\t\t**************************************");printf("\n\n");printf("请选择:");scanf("%c",&choose);getchar();switch(choose){ case '1': addnew(); break;case '2': check(); break;case '3': system("cls"); break;case '0': exit(0); break;default: printf("输入错误,请从新输入!\n\n");}}}/****************************************************************************** **********************//*录入学生成绩*/void addnew(){int n,m,i,p;float sum;float average;FILE *file;sum=0.00000;average=0.00000;if((file=fopen("c:\\student.dat","rb"))==NULL){file = fopen("c:\\student.dat", "wb+"); /* 创建一个文件*/}printf("请输入需要录入的学生人数: ");scanf("%d",&n);for(i=0;i<n;i++){printf("输入第%d个同学信息:\n",i+1);printf("姓名:");scanf("%s",&stu[i].name);printf("学号:");scanf("%d",&stu[i].number);printf("输入科目个数:");scanf("%d",&m);stu[i].w=m;printf("按科目(回车)成绩(回车)……的顺序输入:\n"); /* 录入成绩*/for(p=0;p<m;p++){scanf("%s",&stu[i].cheng[p].subject);scanf("%d",&stu[i].cheng[p].point);stu[i].sum=stu[i].sum+stu[i].cheng[p].point;stu[i].average=stu[i].sum/m;}/* printf("总分%f , 平均分%f\n ",stu[i].sum,stu[i].average);*/fwrite(&stu[i],sizeof(stu),1,file); /* 把stu写入文件*/}fclose(file); /* 关闭文件*/fflush(stdin);system("cls");}/****************************************************************************** **********************//*查询菜单*/void check(){while(1){ char choose;printf("\n\t\t**************************************");printf("\n\t\t* 查询菜单*");printf("\n\t\t* *");printf("\n\t\t* 请选择*");printf("\n\t\t* 1. 按学号排列*");printf("\n\t\t* 2. 按总分排列*");printf("\n\t\t* 3. 按平均分排列*");printf("\n\t\t* 4. 精确查询*");printf("\n\t\t* 5. 显示所有学生成绩*");printf("\n\t\t* 6. 清屏*");printf("\n\t\t* 0. 返回*");printf("\n\t\t**************************************");printf("\n\n");printf("请选择:");scanf("%c",&choose);getchar();switch(choose){ case '1': pnum(); break;case '2': pfen(); break;case '3': pjun(); break;case '4': pjing(); break;case '5': pall(); break;case '6': system("cls"); break;case '0': main(); break;}}}/****************************************************************************** **********************//*显示所有成绩*/void pall(){int i=0,m;FILE *file;if((file=fopen("c:\\student.dat","rb"))==NULL){ printf("Open error!!\n");getch();exit(0);}fread(&stu[i],sizeof(stu),1,file);while(feof(file)==0)/* 循环整个文件*/{ printf("姓名----学号----总分----平均分\n");printf("%s %5d %10.1f %8.1f\n",stu[i].name,stu[i].number,stu[i].sum,stu[i].average);printf(" 科目------成绩\n");for(m=0;m<stu[i].w;m++)/*显示各科成绩*/{printf("%40s %d \n",stu[i].cheng[m].subject,stu[i].cheng[m].point);}i++;fread(&stu[i],sizeof(stu),1,file);}fclose(file);}/****************************************************************************** *************************//*按学号排序*/void pnum(){ FILE *file;int j;int i=0;int n=0;int m=0;struct student bm; /*创建一个‘中间’结构体,用于交换*/if((file=fopen("c:\\student.dat","rb"))==NULL) /* 打开文件*/ { printf("Open error");getch();exit(0);}fread(&stu[i],sizeof(stu),1,file);while(feof(file)==0){i++;fread(&stu[i],sizeof(stu),1,file);}n=i;for(j=n-1;j>0;j--){ for(i=0;i<j;i++){ if(stu[i].number>stu[i+1].number) /*对比学号,对换stu*/{ bm=stu[i]; /*交换位置*/stu[i]=stu[i+1];stu[i+1]=bm;}}}for(i=0;i<n;i++)/* 交换后从新排序*/{ printf("姓名----学号----总分----平均分\n");printf("%s %5d %10.1f %8.1f\n",stu[i].name,stu[i].number,stu[i].sum,stu[i].average);printf(" 科目------成绩\n");for(m=0;m<stu[i].w;m++){printf("%40s %d \n",stu[i].cheng[m].subject,stu[i].cheng[m].point);}}fclose(file);fflush(stdin);}/****************************************************************************** *************************//*按总分排序*/void pfen(){ FILE *file;int j;int i=0;int n=0;int m;struct student bm;if((file=fopen("c:\\student.dat","rb"))==NULL){ printf("Open error");getch();exit(0);}fread(&stu[i],sizeof(stu),1,file);while(feof(file)==0){i++;fread(&stu[i],sizeof(stu),1,file);}n=i;for(j=n-1;j>0;j--){ for(i=0;i<j;i++){ if(stu[i].sum<stu[i+1].sum){ bm=stu[i];stu[i]=stu[i+1];stu[i+1]=bm;}}}for(i=0;i<n;i++){ printf("姓名----学号----总分----平均分\n"); /*显示到屏幕*/printf("%s %5d %10.1f %8.1f\n",stu[i].name,stu[i].number,stu[i].sum,stu[i].average);printf(" 科目------成绩\n");for(m=0;m<stu[i].w;m++){printf("%40s %d \n",stu[i].cheng[m].subject,stu[i].cheng[m].point);}}fclose(file);fflush(stdin);}/*******************************************************************************************************//*按平均分排序*/void pjun(){ FILE *file;int j;struct student bm;int i=0;int n=0;int m;if((file=fopen("c:\\student.dat","rb"))==NULL){ printf("Open error");getch();exit(0);}fread(&stu[i],sizeof(stu),1,file);while(feof(file)==0){i++;fread(&stu[i],sizeof(stu),1,file);}n=i;for(j=n-1;j>0;j--){ for(i=0;i<j;i++){ if(stu[i].average<stu[i+1].average){ bm=stu[i];stu[i]=stu[i+1];stu[i+1]=bm;}}}for(i=0;i<n;i++){ printf("姓名----学号----总分----平均分\n");printf("%s %5d %10.1f %8.1f\n",stu[i].name,stu[i].number,stu[i].sum,stu[i].average);printf(" 科目------成绩\n");for(m=0;m<stu[i].w;m++){printf("%40s %d \n",stu[i].cheng[m].subject,stu[i].cheng[m].point);}}fclose(file);fflush(stdin);}/****************************************************************************** *************************//*精确查找*/void pjing(){int n;int i=0;int m;FILE *file;if((file=fopen("c:\\student.dat","rb"))==NULL){ printf("Open error");getch();exit(0);}printf("请输入要查询的学生的学号:");scanf("%d",&n);getchar();fread(&stu[i],sizeof(stu),1,file);while(feof(file)==0){ if(n==stu[i].number) /*输出对应的学号的学生成绩*/{printf("姓名----学号----总分----平均分\n");printf("%s %5d %10.1f %8.1f\n",stu[i].name,stu[i].number,stu[i].sum,stu[i].average);printf(" 科目------成绩\n");for(m=0;m<stu[i].w;m++){printf("%40s %d \n",stu[i].cheng[m].subject,stu[i].cheng[m].point);}break;}i++;fread(&stu[i],sizeof(stu),1,file);}fclose(file);fflush(stdin);}/******************************************结束*******************************************************/。

学生成绩管理系统源代码

学生成绩管理系统源代码

学生成绩管理系统源代码#include<stdio.h>#include<stdlib.h>int main(){typedef struct LNode{char name[6];int no;int yw;int sx;int yy;struct LNode *next;}LinkList;struct NameNo{int no;int yw;int sx;int total;char name[6];}st[10];FILE *fp,*fp1;char ch,sname[6];int x,i,j;NameNo tmp;LinkList *p,*s;printf("\n");printf("-------------------------------");printf("学生成绩管理系统");printf("--------------------------------");printf("\n\n");printf("在您的C盘根目录下是否有cj1.txt和cj2.txt文件?如果有请输入,1");printf("否则输入0;如果没有,那么程序将终止!1 or 0?");scanf("%d",&i);if(i==0) return 0;printf("\n\n");printf("对cj1.txt和cj2.txt进行合成请按‘1’");scanf("%d",&i);if(i!=1) return 0;printf("正在把cj1.txt和cj2.txt中的数据进行合并\n");printf("......\n.....\n....\n...\n..\n.\n");if((fp=fopen("c:\\cj1.txt","rt"))==NULL){printf("无cj1.txt文本文件,程序结束。

学生信息管理系统c语言版源代码

学生信息管理系统c语言版源代码

学生信息管理系统c语言版源代码#include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> #define N 1000typedef struct student {int number;char name[20];int grade;int gaoshu;int yingyu;int jisuanji;int sum;}STUDENT;STUDENT student[N]; int shuliang=0;void menu();void fhzjm(){char biaozhi[20];printf("\n");printf("还需要操作么,如果需要操作请输入:yes,否则请输入:no\n");scanf("%s",biaozhi);if(strcmp(biaozhi,"yes")==0){menu();}else if(strcmp(biaozhi,"no")==0)exit(0);else{printf("请输入正确的字符,谢谢~\n"); fhzjm();}}void DengJi(){int rs;int i,k=1;system("CLS");printf("请输入需要输入几个学生信息:"); scanf("%d",&rs);for(i=shuliang;i<shuliang+rs;i++,k++) {printf("请输入第%d个学生的学号:",k); scanf("%d",&student[i].number);printf("请输入学生的姓名:");scanf("%s",student[i].name);printf("请输入学生3门课的成绩:"); printf("请输入第1门课的成绩:");scanf("%d",&student[i].gaoshu);printf("请输入第2门课的成绩:");scanf("%d",&student[i].yingyu);printf("请输入第3门课的成绩:");scanf("%d",&student[i].jisuanji);}shuliang=shuliang+rs;fhzjm();}void ShanChu(){char shanchuinfo[10];system("CLS");printf("删除全部学生信息请输入\"all\",删除指定学号的学生信息请输入\"one\"\n");scanf("%s",shanchuinfo);if(strcmp(shanchuinfo,"all")==0){int j;printf("你删除的学生信息如下:\n");printf("-----------学号-------------姓名-------------高数--------------英语--------------计算机\t\n");for(j=0;j<shuliang;j++)printf("----%d-------%s-------%d-------%d-------%d\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].jisuanji);shuliang=0;printf("删除成功\n\n");}else if(strcmp(shanchuinfo,"one")==0){struct student *p=NULL;int choice;int i,j,k=0;printf("请输入你要删除的人的学号:");scanf("%d",&choice);for(i=0;i<shuliang;i++){if(choice==student[i].number){k=1;j=i;break;}}if(k){if(shuliang==1){p=&student[0];free(p);shuliang=0;}else{for(i=j;i<shuliang;i++) {student[i]=student[i+1];}shuliang=shuliang-1;}printf("删除成功\n\n");}else{printf("输入数据错误~\n"); }}fhzjm();}void LiuLan(){int i;system("CLS");if(shuliang==0){printf("系统里面没有任何学生的信息~\n");}else{for(i=0;i<shuliang;i++){printf("第%d个学生的学号为:%d\n",i+1,student[i].number);printf("第%d个学生的姓名为:%s\n",i+1,student[i].name);printf("第%d个学生的第一门课的成绩为:%d\n",i+1,student[i].gaoshu);printf("第%d个学生的第二门课的成绩为:%d\n",i+1,student[i].yingyu);printf("第%d个学生的第三门课的成绩为:%d\n",i+1,student[i].jisuanji);student[i].sum=student[i].gaoshu+student[i].yingyu+student[i].jisuan ji;printf("第%d个学生的总成绩为:%d\n",i+1,student[i].sum);}}fhzjm();}void ChaZhao(){int xx;char choice,yy[20];int i,j,k=0;system("CLS");if(shuliang==0){printf("系统里面没有任何学生的信息~\n");fhzjm();}printf("三种查找方式:学号,姓名,成绩\n");printf("如果按学号查找请输1,如果按姓名查找请输2,如果按成绩查找请输3\n");printf("请输入您查找的方式:");scanf("%s",&choice);if(choice=='1'){printf("请输入需要查找学生的学号:");scanf("%d",&xx);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数成绩----英语成绩----计算机成绩----\t\n");for(i=0;i<shuliang;i++){if(xx==student[i].number){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[i].jis uanji);}}if(k==0)printf("输入信息有误:\n");}else if(choice=='2'){printf("请输入需要查找学生的姓名:\n");scanf("%s",yy);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数成绩----英语成绩----计算机成绩----\t\n");for(i=0;i<shuliang;i++){if(strcmp(yy,student[i].name)==0){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[j].jis uanji);}}if(k==0)printf("输入信息有误:\n");}else if(choice=='3'){printf("请输入需要查找学生的成绩:\n");scanf("%d",&xx);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数----英语----计算机----\t\n");for(i=0;i<shuliang;i++){if(xx==student[i].grade){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[i].jis uanji);}}if(k==0)printf("输入信息有误:\n");}fhzjm();}void PaiXu(){struct student *p1[N],**p2,*temp;int i,j;system("CLS");p2=p1;for( i=0;i<shuliang;i++){p1[i]=student+i;}for( i=0;i<shuliang;i++){for( j=i+1;j<shuliang;j++){if((*(p2+i))->sum<(*(p2+j))->sum){temp=*(p2+i);*(p2+i)=*(p2+j);*(p2+j)=temp;} }}printf("按照总成绩排序之后的信息为:\n");printf("----学号----姓名----总成绩----\t\n");for( i=0;i<shuliang;i++){student[i].sum=student[i].gaoshu+student[i].yingyu+student[i].jisuan ji;printf("----%d-----%s----%d-----\n",(*(p2+i))->number,(*(p2+i))->name,(*(p2+i))->sum);}fhzjm();}void CunChu(){int i;FILE *rs;if((rs=fopen("student.txt","w"))==NULL){printf("not open");exit(0);}for(i=0;i<shuliang;i++){fwrite(&student[i], sizeof(student[i]), 1, rs); }if(ferror(rs)){fclose(rs);perror("写文件失败~\n");return;}printf("存储文件成功~\n");fclose(rs);fhzjm();}void DaoChu(){struct student t;int i=0;FILE* fp = fopen("student.txt", "r");shuliang=0;if(NULL==fp){perror("读取文件打开失败~\n");return;}memset(student,0x0,sizeof(student));while(1){fread(&t,sizeof(t),1,fp);if(ferror(fp)){fclose(fp);perror("读文件过程失败~\n");return;}if(feof(fp)){break;}student[i]=t;i++;}fclose(fp);shuliang=i; printf("导出文件成功~\n"); fhzjm();}void menu(){int n=0;system("CLS");printf(" 学生信息管理系统\n");printf(" 作者:陈椿\n");printf("-------------------MENU-----------------\n"); printf(" 1.登记学生信息\n");printf(" 2.删除学生信息\n");printf(" 3.浏览所有已经登记的学生\n");printf(" 4.查找\n");printf(" 4.1按学号查找\n");printf(" 4.2按姓名查找\n");printf(" 4.3按成绩查找\n");printf(" 5.根据总成绩排序\n");printf(" 6.存储到文件\n");printf(" 7.从文件导出\n");printf(" 8.退出系统\n");a: printf(" 请选择:");scanf("%d",&n);switch (n){case 1:DengJi();break;case 2:ShanChu();break;case 3:LiuLan();break;case 4:ChaZhao();break;case 5:PaiXu();break;case 6:CunChu();break;case 7:DaoChu();break;case 8:exit(0);break;default:{printf("请输入1-8之间的数字,谢谢~\n"); goto a;}}}main() {menu();}。

学生成绩管理系统c语言源代码

学生成绩管理系统c语言源代码

学生成绩管理系统c语言源代码一、引言学生成绩管理系统是一个用于管理学生信息和成绩的软件,可以方便地查询、修改和统计学生成绩。

本文将介绍一个基于C语言的学生成绩管理系统的源代码。

二、需求分析1. 功能需求(1)学生信息管理:包括添加、删除、修改和查询学生信息;(2)成绩录入:可以录入每个学生的各科成绩;(3)成绩查询:可以按照不同的条件查询学生成绩,如按照班级、科目等;(4)成绩统计:可以对所有学生的成绩进行统计分析。

2. 性能需求(1)系统响应速度快,界面友好;(2)数据存储安全可靠,数据备份方便。

三、设计思路本系统采用C语言编写,主要采用结构体和文件读写方式实现数据存储。

具体实现过程如下:1. 定义结构体类型student存储每个学生的信息,包括姓名、性别、年龄、班级和各科成绩等。

2. 采用文件读写方式将每个学生的信息存储到文件中,并在程序启动时读取文件中的数据。

3. 实现各种功能模块,包括添加/删除/修改/查询学生信息、录入学生成绩、查询成绩和统计成绩等。

4. 对查询结果进行排序和格式化输出,方便用户查看。

四、源代码以下是基于C语言的学生成绩管理系统的源代码,包括结构体定义、文件读写、各种功能模块的实现等。

为了更好地展示代码,本文将代码分为多个模块,并加入了注释说明。

1. 结构体定义/* 定义结构体类型student,用于存储每个学生的信息 */ typedef struct student{char name[20]; // 姓名char sex[10]; // 性别int age; // 年龄char class[20]; // 班级float score[3]; // 各科成绩(数学、语文、英语)}STUDENT;2. 文件读写/* 将一个学生的信息写入文件中 */void write_student(STUDENT stu){FILE *fp;fp = fopen("student.dat", "ab");fwrite(&stu, sizeof(STUDENT), 1, fp);fclose(fp);}/* 从文件中读取所有学生的信息 */int read_student(STUDENT *stu){FILE *fp;int count = 0;fp = fopen("student.dat", "rb");if (fp == NULL) return 0;while (fread(stu, sizeof(STUDENT), 1, fp) != 0) count++;fclose(fp);return count;}3. 添加/删除/修改/查询学生信息/* 添加一个学生的信息 */void add_student(){STUDENT stu;printf("请输入学生姓名:");scanf("%s", );printf("请输入学生性别:");scanf("%s", stu.sex);printf("请输入学生年龄:");scanf("%d", &stu.age);printf("请输入学生班级:");scanf("%s", stu.class);write_student(stu); // 将该学生的信息写入文件中}/* 删除一个学生的信息 */void delete_student(){STUDENT stu;char name[20];printf("请输入要删除的学生姓名:");scanf("%s", name);FILE *fp1, *fp2;fp1 = fopen("student.dat", "rb");if (fp1 == NULL)return;fp2 = fopen("temp.dat", "wb");while (fread(&stu, sizeof(STUDENT), 1, fp1) != 0)if (strcmp(, name) != 0)fwrite(&stu, sizeof(STUDENT), 1, fp2);fclose(fp1);fclose(fp2);remove("student.dat"); // 删除原文件rename("temp.dat", "student.dat"); // 将新文件重命名为原文件}/* 修改一个学生的信息 */void modify_student(){STUDENT stu;char name[20];printf("\n请输入要修改的学生姓名:");scanf("%s", name);FILE *fp;fp = fopen("student.dat","rb+");while (fread(&stu,sizeof(STUDENT),1,fp) != 0) {if (strcmp(,name) == 0){printf("请输入修改后的学生姓名:");scanf("%s", );printf("请输入修改后的学生性别:");scanf("%s", stu.sex);printf("请输入修改后的学生年龄:");scanf("%d", &stu.age);printf("请输入修改后的学生班级:");scanf("%s", stu.class);fseek(fp,-sizeof(STUDENT),SEEK_CUR); // 将文件指针回到该记录开头fwrite(&stu, sizeof(STUDENT), 1, fp); // 写入新记录break;}}fclose(fp);}/* 查询一个学生的信息 */void query_student(){STUDENT stu;char name[20];printf("\n请输入要查询的学生姓名:");scanf("%s", name);FILE *fp;fp = fopen("student.dat","rb");while (fread(&stu,sizeof(STUDENT),1,fp) != 0)if (strcmp(,name) == 0){printf("\n姓名\t性别\t年龄\t班级\t数学成绩\t语文成绩\t 英语成绩\n");printf("%s\t%s\t%d\t%s\t%.2f\t%.2f\t%.2f\n", , stu.sex, stu.age, stu.class, stu.score[0], stu.score[1],stu.score[2]); break;}fclose(fp);}4. 录入/查询/统计成绩/* 录入学生成绩 */void input_score(){STUDENT stu;char name[20];printf("\n请输入要录入成绩的学生姓名:");scanf("%s", name);FILE *fp;fp = fopen("student.dat","rb+");while (fread(&stu,sizeof(STUDENT),1,fp) != 0)if (strcmp(,name) == 0){printf("\n请输入数学成绩:");scanf("%f", &stu.score[0]);printf("请输入语文成绩:");scanf("%f", &stu.score[1]);printf("请输入英语成绩:");scanf("%f", &stu.score[2]);fseek(fp,-sizeof(STUDENT),SEEK_CUR); // 将文件指针回到该记录开头fwrite(&stu, sizeof(STUDENT), 1, fp); // 写入新记录break;}fclose(fp);}/* 按照班级查询所有学生的成绩 */void query_score_by_class(){STUDENT stu[100];int count = read_student(stu);char class_name[20];printf("\n请输入要查询的班级名称:");scanf("%s", class_name);int i;printf("\n姓名\t性别\t年龄\t班级\t数学成绩\t语文成绩\t英语成绩\n");for (i = 0; i < count; i++)if (strcmp(stu[i].class,class_name) == 0)printf("%s\t%s\t%d\t%s\t%.2f\t%.2f\t%.2f\n", stu[i].name, stu[i].sex, stu[i].age, stu[i].class, stu[i].score[0],stu[i].score[1],stu[i].score[2]);}/* 统计所有学生的成绩 */void statistics_score(){STUDENT stu[100];int count = read_student(stu);float math_sum = 0, chinese_sum = 0, english_sum = 0;int i;for (i = 0; i < count; i++){math_sum += stu[i].score[0];chinese_sum += stu[i].score[1];english_sum += stu[i].score[2];}printf("\n数学平均分:%.2f", math_sum / count);printf("\n语文平均分:%.2f", chinese_sum / count);printf("\n英语平均分:%.2f", english_sum / count);}五、总结本文介绍了一个基于C语言的学生成绩管理系统的源代码,包括结构体定义、文件读写、各种功能模块的实现等。

c课程设计学生成绩管理系统源代码

c课程设计学生成绩管理系统源代码

#include <stdio.h>#include <stdlib.h>#include <string.h>int n=5;/*全局变量*/ struct student /*定义结构体数组*/ { char num[10];char name[10];int score;}stu[3];int menu_select() /*菜单选择函数*/ { char a;do{system("cls");printf("\t************学生成绩管理系统****************\n");printf("\t\t1.输入学生成绩\n");printf("\t\t2.显示学生成绩\n");printf("\t\t3.学生成绩排序\n");printf("\t\t4.插入学生记录\n");printf("\t\t5.删除学生记录\n");printf("\t\t6.查询学生成绩\n");printf("\t\t7.修改学生成绩\n");printf("\t\t0.退出\n");printf("\t*********************************************\n");printf("\n");printf("给出你的选择(0-7):");a=getchar();}while(a<'0'||a>'7');return(a);}void input() /*定义输入函数*/char c;void menu();FILE *fp;if((fp=fopen("student message","w"))==NULL){printf("cannot open the file\n");exit(0);}printf("学号姓名分数(需要终止输入时请在该行结尾输入n)\n");for(i=0;;i++){ scanf("%s %s %d",stu[i].num,stu[i].name,&stu[i].score);fwrite(&stu[i],sizeof(struct student),1,fp);c=getchar();if(c=='n')break;}n=i+1;fclose(fp);system("pause");menu();}void display() /*定义显示函数*/ { int i;void menu();FILE *fp;if((fp=fopen("student message","r"))==NULL){printf("cannot open the file\n");exit(0);}printf("\t学号\t姓名\t分数\n");for(i=0;i<n;i++){ fread(&stu[i],sizeof(struct student),1,fp);printf("\t%s\t%s\t%d\n",stu[i].num,stu[i].name,stu[i].score); }fclose(fp);system("pause");}void sort() /*定义排序函数*/ { int i,j;struct student temp;void menu();FILE *fp;if((fp=fopen("student message","r"))==NULL){ printf("cannot open the file:\n");exit(0);}for(i=0;i<n;i++)fread(&stu[i],sizeof(struct student),1,fp);for(j=0;j<n-1;j++)for(i=0;i<n-1-j;i++)if(stu[i].score<stu[i+1].score){temp=stu[i];stu[i]=stu[i+1];stu[i+1]=temp;}for(i=0;i<n;i++)printf("\t%s\t%s\t%d\n",stu[i].num,stu[i].name,stu[i].score);fclose(fp);system("pause");menu();}void insert() /*定义插入函数*/ { int i;struct student st;void menu();FILE *fp;if((fp=fopen("student message","a"))==NULL){ printf("cannot open the file:\n");exit(0);}for(i=0;i<n;i++)fread(&stu[i],sizeof(struct student),1,fp);printf("输入要插入学生的信息:\n");printf("学号:");scanf("%s",st.num);printf("姓名:");scanf("%s",);printf("分数:");scanf("%d",&st.score);n++;fwrite(&st,sizeof(struct student),1,fp);fclose(fp);system("pause");menu();}void delet() /*定义删除函数*/ { int i,t;char name[10];void menu();FILE *fp,*fp1;if ((fp=fopen("student message","r"))==NULL){ printf("can not open file!\n");exit(0); }for(i=0;i<n;i++)fread(&stu[i],sizeof(struct student),1,fp);if ((fp1=fopen("student message","w"))==NULL){ printf("can not open file!\n");exit(0); }printf("请输入要删除学生的姓名:");scanf("%s",name);for(i=0;i<n;i++)if(strcmp(stu[i].name,name)==0)for(i=0;i<t;i++)fwrite(&stu[i],sizeof(struct student),1,fp1);for(i=t+1;i<n;i++)fwrite(&stu[i],sizeof(struct student),1,fp1);printf("该学生信息已删除!\n\n");fclose(fp);fclose(fp1);system("pause");menu();}void query() /*定义查询函数*/ { int i;char a[10];void menu();FILE *fp;if((fp=fopen("student message","r"))==NULL){ printf("cannot open file\n");exit(0); }for(i=0;i<n;i++)fread(&stu[i],sizeof(struct student),1,fp);printf("输入要查询学生的姓名:");scanf("%s",a);for(i=0;i<n;i++)if(strcmp(stu[i].name,a)==0)printf("\t%s\t%s\t%d\n",stu[i].num,stu[i].name,stu[i].score);fclose(fp);system("pause");menu();}void revise() /*定义修改函数*/char name[10];void menu();FILE *fp,*fp1;if((fp=fopen("student message","r"))==NULL){ printf("cannot open file\n");exit(0); }for(i=0;i<n;i++)fread(&stu[i],sizeof(struct student),1,fp);if ((fp1=fopen("student message","w"))==NULL){ printf("can not open file!\n");exit(0); }printf("请输入要修改学生的姓名:");scanf("%s",name);for(i=0;i<n;i++)if(strcmp(stu[i].name,name)==0)t=i;printf("依次输入要修改学生的学号、姓名、分数:");scanf("%s %s %d",stu[t].num,stu[t].name,&stu[t].score);for(i=0;i<n;i++)fwrite(&stu[i],sizeof(struct student),1,fp1);printf("该学生信息已修改成功!");fclose(fp);fclose(fp1);system("pause");menu();}void quite() /*退出*/ {printf("再见!!!\n\n");}void menu() /*定义菜单函数*/{ switch(menu_select()){ case '1': input();break;case '2': display();break;case '3': sort();break;case '4': insert();break;case '5': delet();break;case '6': query();break;case '7': revise();break;case '0': quite();break;}}void main() /*主函数*/ {menu();}。

学生成绩管理系统C语言(附完整源代码)

学生成绩管理系统C语言(附完整源代码)

学生成绩管理系统C语言(附完整源代码)学生成绩管理系统C语言(附完整源代码)课程设计报告学生成绩管理系统院系:专业:班级:完成日期: 2009年1月03日设计题目:学生成绩管理系统目录1、题目描述2、算法设计/设计思想3、结构框图、各模块的功能描述4、主体思想:5、程序的,,,流程图6、源代码1.题目描述设计一个简单的学生成绩管理系统,要求有简单的界面,程序段要分清模块,该程序应该:(1)输入学生成绩,求总分,平均分,以及排序。

(2)查询学生单科成绩,总分和平均成绩;(3)添加、修改学生成绩具有下列功能:(4)实现保存与查看功能2.算法设计/设计思想利用二维数组——定义stu[][]存储学生学号、各科成绩,总分,平均分,名次,利用文件来存储,读取数据。

详细合作是::负责inputx(),print1(),input();:卖力文件的储备和读取,main(),System(),Idea()和各挪用函数之间的连;:卖力find1(),find2(),find3(),find31(),Find();:负责del(),add(),change1(),Change();前期调试由小组配合卖力。

3.结构框图、各模块的功能描述3.1建立成就表3.1.1 input()功用是输退学生的信息,便于当前的查询、欣赏。

3.2增加3.2.1 add( )功用是向inputy()增加新的内容。

3.3.2 chance( )对单科成绩进行修改。

3.3查询3.3.1可根据学号,科目,名次,进行查询。

3.3.2查询内容包孕:该学生的各课成就、、均匀分。

3.4删除3.4.1能够输退学号删除一逻辑学生的一课成就。

3.5浏览成绩单3.5.1通过此print1()可以查看所有学生的各课成绩、总分、平均分和名次。

3.6文件()3.6.1保存以上所输入的信息以达到既是关闭窗口信息也不会丢失信息的目的。

3.6.2随时打开,修改文件。

3.7.退出功用是退出主菜单退出系意见评述功能菜单统输入增加及改查找功用退出功用菜单成就功用查输排查找学学添修某某生生加改XXX某成成就绩科绩绩绩成就按按按名学科次号目查查查找找找四、主体思想:1、斟酌到此步伐量大代码多,以是用函数挪用,分几小我去完成。

学生录入成绩C语言代码,学生成绩管理系统C语言源代码.doc

学生录入成绩C语言代码,学生成绩管理系统C语言源代码.doc

学⽣录⼊成绩C语⾔代码,学⽣成绩管理系统C语⾔源代码.doc 学⽣成绩管理系统C语⾔源代码#include"stdio.h"#include#include#include"process.h"#include"ctype.h"typedef struct{char num[10];char name[10];int c;int math;int English;double aver;}Student;Student stu[99];int shuru(Student stud[],int n)/*输⼊若⼲条记录*/{int i=0;char sign,x[10];double a=0.0;while(sign!='n'&&sign!='N'){printf("输⼊学⽣学号:");scanf("%s",stu[n+i].num);printf("输⼊学⽣姓名:");scanf("%s",stu[n+i].name);printf("输⼊学⽣的C、数学、英语");scanf("%d%d%d",&stu[n+i].c,&stu[n+i].math,&stu[n+i].English);a=1.0*(stu[n+i].c+stu[n+i].math+stu[n+i].English/3);stu[n+i].aver=a;gets(x); /*清除多余的输⼊*/printf("是否继续输⼊?(Y/N):\n");scanf("%c",&sign);i++;}return(n+i);}void xianshi(Student stud[],int n) /*显⽰所有记录*/{int i ;printf("----------------------------------------------------------\n"); /*格式头*/printf("学号 姓名 C 数学 英语 平均成绩 \n");printf("----------------------------------------------------------\n");for(i=0;i{printf("%-10s%-10s%-10d%-10d%-10d%-10.2lf\n",stu[i].num,stu[i].name,stu[i].c,stu[i].math,stu[i].English,stu[i].aver); }}void xiugai(Student stud[],int n) /*修改*/{int i=0,choice=1;char x[10];while(choice!=0){printf("请输⼊您要修改的学⽣的学号:\n");scanf("%s",x);for(i=0;;i++){if(strcmp(stu[i].num,x)==0)break;}printf("请选择您要修改的内容:\n");printf(" ---------------------- \n");printf("| 姓名 请按 1 |\n");printf("| c 请按 2 |\n");printf("| 数学分数 请按 3 |\n");printf("| 英语分数 请按 4 |\n"); printf("| 退出 请按 0|\n"); printf("+-----。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告一、问题陈述及其需求分析(一)问题陈述学生信息管理系统是对学生信息的基本管理,其中包括以下及模块:(1)增加一个学生的信息(需输入要增加学生的所有信息);(2)统计本班学生总人数及男女生人数。

(3)分别按照学号查找学生的信息;若找到则输出该学生全部信息,否则输出查找不到的提示信息。

(4)按学号对所有学生信息排序,并输出结果;(5)删除一个学生的信息(需指定要删除学生的学号);同时显示删除后的结果。

( 二) 功能需求分析学生信息管理系统设计学生信息包括:学号,姓名,性别,出生年月,电话使之提供以下功能:1、系统以菜单方式工作2、建立链表并显示3、插入新的学生信息4、删除某学号的学生信息5、查找某学号的学生信息6、对学生信息排序7、统计学生人数8、输出学生信息二总体设计(一)模块依据程序的数据结构,描述该程序的层次结构,如下图:1、建立链表并显示void createlist(struct stucode **r);2、插入新的学生信息void insert(struct stucode **r); 3、删除某学号的学生信息void del(struct stucode **r);4、查找某学号的学生信息void search1(struct stucode *r);5、对学生信息排序void sort(struct stucode **r);6、统计学生人数void search2(struct stucode *r);7、输出学生信息void out(struct stucode *r);(二)程序总体框架模块层次结构,只确定了模块之间的关系和函数原型,不是程序的执行步骤。

程序总体框架是该程序的总体流程图。

改程序不是顺序连续地执行全部功能,而是在某一时刻有选择地执行一种或多种功能。

因此选用菜单方式是较佳的方案,程序总体框架如下图:(三) 运行环境(软,硬件环境)硬件:CPU, 内存,主板,硬盘,显卡,键盘,显示器等等。

软件:Windows XP trubo c应用软件。

(四)开发工具和编程语言开发工具:trubo c编程语言:C 语言三、详细设计(一)数据结构依据给定学生信息和数据格式,数组用结构体实现,结构体层次结构:struct stud{学号整型long int num;姓名字符串name[20];性别字符串sex[2];出生日期字符串birthday[12];联系方式字符串tel[12];};头文件#include<stdio.h>#include<stdlib.h>#include<string.h>/*定义数据结构和链表*/struct stud{long num;char name[20];char sex[2];char birthday[12];char tel[12];};typedef struct stucode{struct stud student ;struct stucode *next;}L;(二)、算法说明1、主函数的算法设计:清屏、显示子菜单及运用选择操作(运用swith语句),调用各个子函数,最后退出程序,主要代码:while(flag){system("cls");menu();choose=getchar();switch(choose){}2、各个子函数的算法设计1、一些显示操作,输入相应的内容即可代码:2、创建链表并显示学生信息申请空间p=(L *)malloc(sizeof(L));学生信息的输入及显示:p->student.num=n;strcpy(p->,a);p->next=NULL;3、学生信息的删除首先查询要删除的学生信息的学号,如果存在删除该学生,如果不存在给予相应的提示。

t=p->next;p->next=p->next->next;free(t);//释放空间4、学生信息的排序新建链接,然后按要求对学生信息进行排序while(z->next&&z->next->student.num>=p->student.num)z=z->next;p->next=z->next;z->next=p;5、学生人数的统计:6、学生信息的显示:直接发调用函数即可。

四、运行结果五、总结1、调试分析(1)刚编译完后有好多错误和警告,运行失败,然后经过修改错误警告慢慢减少,最终可以运行。

(2)该程序中可能还存在一些小问题,比如有的时候它会主动清屏,有的时候不会。

并且我在编译的过程中发现自己存在好多毛病,有粗心了等,不注意细节,其实自己也知道细节决定成败,以后我会注意。

2、设计总结经过一周的课程设计,我学到了很多东西:①巩固和加深了对数据结构的理解,提高综合运用本课程所学知识的能力。

②培养了我选用参考书,查阅手册及文献资料的能力。

培养独立思考,深入研究,分析问题、解决问题的能力。

③过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。

④够按要求编写课程设计报告书,能正确阐述设计和实验结果,正确绘制系统和程序框图。

⑤通过课程设计,培养了我严肃认真的工作作风,逐步建立正确的生产观念、经济观念和全局观念。

课程设计是把我们所学的理论知识进行系统的总结并应用于实践的良好机会,有利于加强我们用知识理论来分析实际问题的能力,进而加强了我们对知识认识的实践度,巩固了我们的理论知识,深化了对知识的认识,并为走向社会打下一个良好的基础。

在这次课程设计中我遇到许多问题和麻烦,得到了老师的帮助和指导,才能够使得这次课程设计顺利的进行下去,另外,在程序调试过程中,也得到很多同学的帮助,给我及时指出错误,提出许多宝贵意见。

在此对老师和同学们表示感谢!六、参考文献书籍:谭浩强《C程序设计》(第三版)北京清华大学出版社谭浩强《C程序设计题解与上机指导》(第三版)北京清华大学出版社王为青刘变红《C语言高级编程及实例剖析》人民邮电出版社张建勋《C语言程序设计教程》清华大学出版社李玲桂玮珍刘莲英《C语言程序设计教程习题解答与实验指导》人民邮电出版社源程序:#include<stdio.h>#include<stdlib.h>#include<string.h>struct stud{long num;char name[20];char sex[2];char birthday[12];char tel[12];};typedef struct stucode{struct stud student ;struct stucode *next;}L;void menu();void createlist(struct stucode **r); void out(struct stucode *r);void search1(struct stucode *r); void search2(struct stucode *r); void del(struct stucode **r);void insert(struct stucode **r); void sort(struct stucode **r);void main(){char choose;int flag=1;struct stucode *r=NULL;while(flag){system("cls");menu();choose=getchar();switch(choose){case '1':createlist(&r);out(r);printf("Testing function 1\nPress any key to continue\n"); getchar();getchar();break;case '2':search1(r);printf("Testing function 1\nPress any key to continue\n"); getchar();getchar();break;case '3':search2(r);printf("Testing function 1\nPress any key to continue\n"); getchar();getchar();break;case '4':del(&r);out(r);printf("Testing function 1\nPress any key to continue\n"); getchar();getchar();break;case '5':insert(&r);out(r);printf("Testing function 1\nPress any key to continue\n"); getchar();getchar();break;case '6':sort(&r);out(r);printf("Testing function 1\nPress any key to continue\n"); getchar();getchar();break;case '7':out(r);printf("Testing function 7\nPress any key to continue\n"); getchar();getchar();break;case '0':flag=0;printf("The end.\n");getchar();getchar();break;default: printf("\nWrong Selection!(选择错误,请重选!)\n");getchar();getchar();}}}void createlist(struct stucode **r){struct stucode *p,*t;long n;char a[20];char s[4];char b[12];char m[12];if(*r) *r=NULL;printf(" \n请输入:\n 学号(请按学号升序排列)姓名性别出生日期电话(若要结束请输入五个为零)\n");scanf("%ld%s%s%s%s",&n,a,s,b,m);if(n==0) return;p=(L *)malloc(sizeof(L));p->student.num=n;strcpy(p->,a);strcpy(p->student.sex,s);strcpy(p->student.birthday,b);strcpy(p->student.tel,m);p->next=NULL;*r=p;scanf("%ld%s%s%s%s",&n,a,s,b,m);while(n){t=p;p=(L *)malloc(sizeof(L));p->student.num=n;strcpy(p->,a);strcpy(p->student.sex,s);strcpy(p->student.birthday,b);strcpy(p->student.tel,m);p->next=NULL;t->next=p;scanf("%ld%s%s%s%s",&n,a,s,b,m);}}void search1(struct stucode *r){long x;if(!r){printf("没有学生信息可查询!\n");return ;}printf(" 请输入要查询的学生信息的学生学号:\n"); scanf("%ld",&x);while(r&&r->student.num!=x)r=r->next;if(r==NULL)printf("Error! No such student !\n");elseprintf("%ld %s %s %s %s\n",r->student.num,r->,r->student.sex,r->stude nt.birthday,r->student.tel);}void search2(struct stucode *r){int a=0,b=0,c=0;if(!r){printf("没有学生信息可统计!\n");return ;}else{while(r){a++;if(strcmp(r->student.sex,"男")=='0'){b++;}if(strcmp(r->student.sex,"女")==0){c++;}r=r->next;}}printf("共有学生%d人,其中男生%d人,女生%d人",a,b,c);}void del(struct stucode **r){long k;struct stucode *p=*r,*t;if(!(*r)){printf("没有学生信息可删除!\n");return ;}printf(" 请输入要删除的学生信息的学生学号:\n"); scanf("%ld",&k);if(p->student.num==k)*r=(*r)->next,free(p);else{while(p->next&&p->next->student.num!=k)p=p->next;if(p->next==NULL)printf("Error! No such student !\n");else{t=p->next;p->next=p->next->next;free(t);}}}void insert(struct stucode **r){long n;char a[20];char s[4];char b[12];char m[12];L *p,*t,*k;printf(" \n请输入:\n 学号(请按学号升序排列)姓名性别出生日期电话(若要结束请输入三个为零)\n");scanf("%ld%s%s%s%s",&n,a,s,b,m);p=(L *)malloc(sizeof(L));p->student.num=n;strcpy(p->,a);strcpy(p->student.sex,s);strcpy(p->student.birthday,b);strcpy(p->student.tel,m);if(!(*r)){*r=p;(*r)->next=NULL;return ;}if(p->student.num<(*r)->student.num)p->next=(*r),(*r)=p;else{t=*r;k=t;while(t->next&&t->next->student.num<=p->student.num)t=t->next;p->next=t->next;t->next=p;*r=k;}}void sort(struct stucode **r)struct stucode *t,*p,*q,*z;if(!r){printf("没有学生信息可排序!\n");return ;}if(!(*r)||!(*r)->next)return;t=*r;p=t->next;t->next=NULL;while(p){q=p->next;if(p->student.num>t->student.num){p->next=t;t=p;}else{z=t;while(z->next&&z->next->student.num>=p->student.num) z=z->next;p->next=z->next;z->next=p;}p=q;}*r=t;}void out(struct stucode *r){printf("\n\n");if(!r){printf("没有学生信息可输出!\n");return ;}while(r){printf("%ld %s %s %s %s\n",r->student.num,r->,r->student.sex,r->stude nt.birthday,r->student.tel);r=r->next;}printf("\n\n");}void menu(){printf("\n 学生信息管理系统\n");printf("\n 菜单\n\n");printf("\n 1建立链表并显示\n");printf("\n 2查找某学号的学生信息\n"); printf("\n 3查找某姓名的学生信息\n"); printf("\n 4删除某学号的学生信息\n"); printf("\n 5插入新的学生信息\n"); printf("\n 6按学号降序排列输出\n"); printf("\n 7输出\n");printf("\n 0退出\n");printf("\n 请选择您要执行的选项:\n"); }。

相关文档
最新文档