[C程序设计实验报告有关一个完整学籍管理系统]

  C程序设计实验报告 关于一个完整的学籍

 管理系统

 实验报告

 实验题目:使用 C编程实现一个学籍管理系统 班级:

 姓名:

 1.程序设计与分析

 要求程序能实现以下基本功能:

 .提供基本的菜单选项,能根据不同的选项执行不同操

 作;.对学生信息进行录入,修改,删除、查询等操作; . 对学生信息进行统计、排序等操作。

 .采用数据类型:整型,浮点型,字符型,指针类型,

 结构体类型.核心算法:#define MAX 10 //MAX 代表学籍

 管理系统所能处理的最大学生数虽,宏定义后,依据实际情 况对程序的对应修改更易进行 //实际代码中是将子函数的定义写在了 main函数的前面,但此处为了程序结构清晰将 main函数写在了前面,因此 main函数中没有子函数声明的 语句int main ( 进行各种类型的变H定义以及初始化,

 以供后续程序使用定义一个结构体类型,并定义一个该类 型的结构体变虽用于存储将要录入的学生信息数据:

 struct Student ( char Id[MAX];// 学号 char name[50];// 姓名int clas;// 班级float score[4];// 三科成绩以及总

 爱心—用心—怛心

 成绩} student[MAX];

 指导老师:

 定义若干指针变H用于将 main函数中的变H地址传递

  TOC \o "1-5" \h \z 给各子函数,使子函数能够改变 main函数中的变虽的值 定

 义各种所需变H 定义整型变H mingling 定义一个变H num 来记录总人数的变化并将其初始化为零 for(;;) { 输出主

 菜单选项 输入数字命令并赋值给整型变H mingling 判断

 若mingling=1,执行函数input进行学生信息输入操作 若

 mingling=2,执行函数 del进行学生信息删除操作 若

 mingling=3,执行函数selet进行学生信息选择输出操作 若

 mingling=4,执行函数order进行学生信息整体排序操作 若

 mingling=5,执行函数output进行学生信息全体输出操作 若 mingling=6,执行 break 语句跳出 for 循环} return 0; } void input( 通过指针引用学生信息、当前学生总人数等数

 据)//我的源代码中每个子函数都是用了许多指针将结构体 中的元素一一引用,此处可以改为利用指向结构体变虽的指 针,代码会简洁许多 {利用指针来引用主函数中的学生信

 息变H定义整型变Hl i用作循环定义字符数组panduan[10] 用作判断整个学生数据的录入操作是否结束 for(i=0;;i++)

 {输出 输入学号 输出 输入班级 输出 输入姓名 输出 输 入成绩1输出输入成绩2输出输入成绩3将存储总成绩 数据的变虽赋值为成绩 1,成绩2,成绩3的和 利用指针使

 main函数中记录学生人数的变H num自增1输出输入命令

 并赋值给字符数组 panduan判断字符串panduan与是否相 等 若相等则执行 break语句跳出循环} } void del( 通过

 指针引用学生信息、当前学生总人数等数据 )(定义字符数

 组panduan[10]用于在已有学生信息中查找需要删除的对应 学生信息 定义整型变虽 h用于判断是否找到了所需删除的 学生信息 定义字符数组jueding[10]用于判断用户的删除 操作是否全部结束定义整型变虽i用于进行循环查找所需 删除的学生//以下使用num的语句均指通过指针引用 main

 函数中的num变虽,为了书写简便,省略了指针引用的过程 for(;;) ( h=0;输入所需删除学生的信息关键字

 for(i=0;i*ban[i+1]) { } for(k=1;k<=*renshu-1;k++)

 for(i=0;i<=*renshu-1-k;i++) if(*ban[k]==*ban[k+1])

 q=*ban[i];*ban[i]=*ban[i+1];*ban[i+1]=q;

 strcpy(c,hao[i]);strcpy(hao[i],hao[i+1]);strcpy(hao [i+1],c);

 strcpy(c,ming[i]);strcpy(ming[i],ming[i+1]);strcpy( ming[i+1],c); for(m=0;m<=3;m++) { }

 f=*fen[i][m];*fen[i][m]=*fen[i+1][m];*fen[i+1][m]=f; if(*fen[k][3]<*fen[k+1][3]) { q=*ban[i];*ban[i]=*ban[i+1];*ban[i+1]=q;

 strcpy(c,hao[i]);strcpy(hao[i],hao[i+1]);strcpy(hao 爱心—用心—怛心

 strcpy(c,ming[i]);strcpy(ming[i],ming[i+1]);strcpy(

 ming[i+1],c); } for(i=0;i<=*renshu-1;i++)

 ( for(m=0;m<=3;m++) ( } f=*fen[i][m];*fen[i][m]=*fen[i+1][m];*fen[i+1][m]=f;

 printf(\i][1],*fen[i][2],*fen[i][3]); } void

 output(int *ban[MAX],char *ming[MAX],char

 *hao[MAX],float *fen[MAX][4],int *renshu) ( int i;

 for(i=0;i<=*renshu-1;i++) ( }

 printf(\i][1],*fen[i][2],*fen[i][3]); } } int main()

 ( int *banji[MAX],*number,i,num,mingling; char

 *xingming[MAX],*xuehao[MAX]; float *chengji[MAX][4];

 struct Student ( char Id[10]; char name[50]; int

 clas; float score[4]; } student[MAX]; num=0;

 for(i=0;i<=MAX-1;i++) ( } number=&num;

 banji[i]=&student[i].clas;

 xingming[i]=&student[i].name[0];

 xuehao[i]=&student[i].Id[0];

 chengji[i][0]=&student[i].score[0];

 chengji[i][1]=&student[i].score[1];

 chengji[i][2]=&student[i].score[2];

 chengji[i][3]=&student[i].score[3]; for(;;)

 ( printf(\your option\\n\ }

 } return 0; scanf(\if(mingling==1)

 input(banji,xingming,xuehao,chengji,number);

 if(mingling==2)

 del(banji,xingming,xuehao,chengji,number);

 if(mingling==3)

 selet(banji,xingming,xuehao,chengji,number);

 if(mingling==4)

 order(banji,xingming,xuehao,chengji,number);

 if(mingling==5)

 output(banji,xingming,xuehao,chengji,number);

 if(mingling==6) break;

 for(;;) ( printf(\your option\\n\ }

 } return 0; scanf(\if(mingling==1)

 input(banji,xingming,xuehao,chengji,number);

 if(mingling==2)

 del(banji,xingming,xuehao,chengji,number);

 if(mingling==3)

 selet(banji,xingming,xuehao,chengji,number);

 if(mingling==4)

 order(banji,xingming,xuehao,chengji,number);

 if(mingling==5)

 output(banji,xingming,xuehao,chengji,number);

 if(mingling==6) break;

推荐访问:管理系统 学籍 程序设计 完整 实验