c语言课程设计学生信息管理系统

时间:2025-05-06

题目名称: 学生信息管理系统

算法分析:

1用结构体标出信息系统的成员:学生学号,学生姓名,班级,

成绩,排名

2 利用c语言的文件知识将系统的信息存放在c盘下的“zuoye.txt”的文件夹下

3 定义各个子函数(1)定义输入信息函数,将学生信息按一定格式用scanf函数输入(统计M个学生的信息);

(2)定义输出函数,每两个表一页直到最后一个;

(3)定义信息查询函数。a,定义按学号查询函数,如果输入的学号等于学生学号则输出要查询的信息;b,定义按姓名查询函数,如果输入的姓名字符串等于其中一个学生的姓名字符串则输出信息;c,定义按班级查找函数,如果输入的数字等于其中学生的班级数,则输出该信息;d,定义按成绩查找函数,如果输入的数字等于其中学生的成绩数,则输出该信息;e,定义查找总函数,输入一个数选择查找方式,1-4分别对应调用abcd四个函数。

(4)定义删除信息函数。输入的数字作为要删除的学生学号,输出要删除的学生信息后选择是否删除,删除后将第g+1个的信息赋给第g个,输出删除后的信息表。

(5)定义信息修改函数。输入的数字等于要修改的学生学号,输出要修改的学生信息后选择是否修改,用switch,case语句选择要修改的项目,输入n,y决定是否继续直到不继续修改,输出学生信息。

(6)定义信息统计函数。输入一个数字作为成绩,比较M个学生成绩是否等于输入的数字,统计相等的个数n输出。

(7)定义成绩排序函数。用冒泡排序法将M个学生的成绩按从大到小的顺序排列后输出。

4 定义主函数。调用读取文件函数,输入数字1-5分别对应调用修改学生信息函数,删除学生信息函数,查找学生信息函数,统计学

生信息函数,学生成绩排行信息函数,0表示退出系统。最后调用保存文件函数。结束程序。

流程设计:

代码设计:

#include<stdio.h> #include<stdlib.h> #include<string.h> #define M 2 #define PAGE 2 /*学生信息结构体类型*/ typedef struct

{int num; /*学号*/ char name[20]; /*姓名*/ int banji; /*班级*/ int chengji; /*成绩*/ int paiming; /*排名*/ }STUDENTS;

int read_file(STUDENTS students[])/*文件的读取*/ { FILE *fp;/*定义一个文件指针变量*/ int i=0;

if((fp=fopen("zuoye.txt","r"))==NULL)/*文件空判断,fopen打开一个文件*/

{ printf("\n\n*****库存文件不存在!请创建"); return 0; }

while(feof(fp)!=1)/*文件是否结束*/

{ fread(&students[i],sizeof(STUDENTS),1,fp);/*读取文件*/

if(students[i].num==0)/*学号是否为零*/ break; else i++; }

fclose(fp);/*关闭文件*/ return i; }

void save_file(STUDENTS students[],int sum)/*保存文件*/ { FILE *fp; int i;

if((fp=fopen("zuoye.txt","wb"))==NULL)/*判断文件是否为空*/ { printf("读文件错误!\n"); return; }

for(i=0;i<sum;i++)

if(fwrite(&students[i],sizeof(STUDENTS),1,fp)!=1)/*向文件写入的数据块不等于1*/

printf("写文件错误!\n"); fclose(fp); }

/*输入模块*/

int input(STUDENTS students[]) { int i=0;

printf("\n\n 录入学生信息 (最多%d人)\n",M); printf("----------------------------------------------------\n"); do

{ printf("\n 第%d人",i+1); printf("\n 学生学号:");

scanf("%d",&students[i].num); if(students[i].num==0) break;

printf("\n 学生姓名:"); scanf("%s",students[i].name); printf("\n 班级:"); scanf("%d",&students[i].banji); printf("\n 成绩:"); scanf("%d",&students[i].chengji); printf("\n 排名:"); scanf("%d",&students[i].paiming); i++; }while(i<M);

printf("\n --%d个学生信息输入完毕!--\n",i); printf("\n 按任意键返回主菜单!"); getchar(); return i; }

/*输出模块*/

void output(STUDENTS students[]) {int i=0,j=0,page=1;

printf("\n\n --学生信息表-- 第%d页

\n\n",page);/*每两个一页*/

printf("学生学号----姓名-----班级----- 成绩-----排名\n"); printf("-------------------------------------------------------\n"); do

{ if(students[i].num!=0) { j++;

if(j%PAGE!=0) {

printf("%12d

%10s

%2d

%3d

%4d

\n",students[i].num,students[i].name,

students[i].banji, students[i].chengji,students[i].paiming); printf("------------------------------------------------------\n"); }

}

else

{ printf("按任意键继续!"); getchar();

printf("\n\n --学生信息表-- 第%d页\n\n",++page);

printf("学生学号----姓名-----班级----- 成绩-----排名\n"); printf("------------------------------------------\n"); {

printf("%12d

%10s

…… 此处隐藏:7510字,全部文档内容请下载后查看。喜欢就下载吧 ……
c语言课程设计学生信息管理系统.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219