C语言学生信息管理标准系统

上传人:公**** 文档编号:544430702 上传时间:2024-02-22 格式:DOCX 页数:13 大小:85.13KB
返回 下载 相关 举报
C语言学生信息管理标准系统_第1页
第1页 / 共13页
C语言学生信息管理标准系统_第2页
第2页 / 共13页
C语言学生信息管理标准系统_第3页
第3页 / 共13页
C语言学生信息管理标准系统_第4页
第4页 / 共13页
C语言学生信息管理标准系统_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《C语言学生信息管理标准系统》由会员分享,可在线阅读,更多相关《C语言学生信息管理标准系统(13页珍藏版)》请在金锄头文库上搜索。

1、学生信息管理系统本题目设计目的是训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和单链表的各种基本操作。本程序中涉及结构体、单链表、文件等方面的知识。 通过本程序的训练,使学生能对C语言的文件操作有一个更深刻的了解,掌握利用单链表存储结构实现对学生成绩管理的原理,为进一步开发出高质量的管理信息系统打下坚实的基础O1、问题定义创建一个学生成绩管理系统。假设系统中每个学生记录只包括学生学号、学生姓名、年龄、性别、出生年月、电话等信息。程序的运行效果如下图所示,选择任意菜单后,实现相 应功能。M: Xe KM:男WXWiJCH ! H月匕卞一1 0951100206斯黄片斯黄苒斯

2、苒耳斯弊时彳琳时置注苒黄麻甘MX苒声餐苒声=苒苒省苒k*黄苒*黄常*苒息息息息数息 信信信信人信 生生生前生一刖统 WW耆系 加%水计新出 查显需退 一 - - * . 12 3 4 5 6 7青选择菜单编号二在问题定义阶段要考虑题目的可行性和需求分析,接下来进入开发阶段, 完成系统设计和系统实现的任务。2、系统设计2. 1总体设计采用模块化的程序设计方法,即将较大的任务按照一定的原则分为一个个较小的任务, 然后分别设计各个小任务。需要注意的是划分出来的模块应该相对独立但又相关,且容易理解。可以用模块化层次结构来分析其任务的划分,一般从上到下进行,最上面一层是主模块,下面各层是其上一层模块的逐

3、步细化描述。本成绩管理系统要求采用数组实现,它由如下六大功能模块组成:输入学生记录。查询学生记录。删除学生记录。显示所有学生记录。统计学生人数。刷新当前信息。2. 2详细设计2.1.1 数据结构设计学生个人信息结构体结构体struct student将用于存储学生的基本信息,它将作为单链表的数据域。 struct record /* 结构体 */(char codeLEN+1;/* 学号 */char nameLEN+1;/* 姓名 */int age; /* 年龄 */char sex3; /* 性别 */char dateLEN+1; /* 出生年月*/char telLEN+1; /*电

4、话号码 */stuN;2.1.2 输入记录模块void readfile()/* 建立彳言息 */(char *p=student.txt;FILE *fp;int i=0;if (fp=fopen(student.txt,r)尸NULL)(printf(Open file %s error! Strike any key to exit!,p);system(pause);exit(0);while(fscanf(fp,%s %s %d %s %s %s,stui.code,stui.name,&stui.age, stui.sex,stui.date,stui.tel)=8)(i+;i=i

5、;fclose(fp);n=i;printf(录入完毕!n);2.1.3 查询记录模块void seek() /* 查找 */(int i,item,flag;char s121;/*以姓名和学号最长长度 +1为准*/printf(n);printf(-1.按学号查询-n);printf(-2.退出本菜单-n);printf(n);while(1)(printf(请选择子菜单编号:);scanf(%d,&item);flag=0;switch(item)(case 1:printf(请输入要查询的学生的学号:n);scanf(%s,s1);for(i=0;in;i+)if(strcmp(stu

6、i.code,s1)=0)(flag=1;printf(学生学号学生姓名年龄 性别 出生年月 电话 n);printf(n);printf(%6s %7s%6d%5s %9s %10sn,stui.code,stui.name,stui.age, stui.sex,stui.date,stui.tel);if(flag=0)printf(该学号不存在!n); break;case 2:return;default:printf(请在 1-2 之间选择 n);2.1.4 删除记录模块void del()(int i,j,flag=0;char s1LEN+1;printf(请输入要删除学生的学号

7、:n);scanf(%s,s1);for(i=0;in;i+)if(strcmp(stui.code,s1)=0)(flag=1;for(j=i;jn-1;j+)stuj=stuj+1;if(flag=0)printf(该学号不存在! n);if(flag=1)(printf(删除成功,显示结果请选择菜单6n);n-;2.1.5 显示所有学生记录模块void display()(int i;n);printf(所有学生的信息为:n);printf(学生学号学生姓名 年龄性别 出生年月电话printf(n);for(i=0;in;i+)(printf(%6s %7s %5d %5s %8s %1

8、0sn,stui.code,stui.name,stui.age, stui.sex,stui.date,stui.tel);3、系统实现3.1.1程序预处理包括加载头文件,定义结构体、常量和变量,并对它们进行初始化工作#include /*I/O 函数 */#include /* 其它说明 */#include#include /* 字符串函数 */# define BUFLEN 100 /* 缓冲区最大字符数*/# define LEN 15 /*学号和姓名最大字符数,实际请更改*/# define N 100 /*最大学生人数,实际请更改*/3.1.2 主函数 main()main()函

9、数主要实现了对整个程序的运行控制,以及相关功能模块的调用。FILE *fp;void seek();/* 函数声明 */void insert();void del();void display();void save();void getnum();void readfile();void menu();int main()(while(k)menu();system(pause);return 0;switch(num)( case 1:insert();break;case 2:del();break;case 3:seek();break;case 4:display();break;

10、case 5:getnum();break;case 6:readfile();break;case 7:k=0;break;default:printf(请在 1-7 之间选择 n);3.1.3 主菜单界面用户进入成绩管理系统时,需要显示主菜单,提示用户进行选择,完成相应任务。此代码被main()函数调用。void menu()/* 界面 */(int num;printf(n);printf( n);*系统功能菜单闫晨曦*0951100206*/printf(友情提醒:查询前请先刷新系统!n);printf(*n);printf( printf( printf(*1.增加学生信息*n);2

11、.删除学生信息*n);3.查询学生信息*n);*printf(*4.显示当前信息*n);printf(*5.统计学生人数*n);printf(*6.刷新当前信息*n);printf(*7.退出系统*n);printf(*n);printf(请选择菜单编号:);scanf(%d,&num);3.1.4 插入学生记录系统会先按学号查找到要插入的节点的位置,然后在该学号之:n);在插入学生记录操作中, 后插入一个新节点。void insert() /* 插入函数 */(int i=n,j,flag;printf(请输入待增加的学生数 scanf(%d,&m);do (flag=1;while(fla

12、g)(flag=0;printf(请输入第%d个学生的学号:n,i+1);scanf(%s,stui.code);for(j=0;ji;j+) if(strcmp(stui.code,stuj.code)=0) ( printf(已有该学号,请检查后重新录入!n); flag=1;break;/*如有重复立即退出该层循环,提高判断速度*/ printf(请输入第 %d个学生的姓名:n,i+1); scanf(%s,stui.name);printf(请输入第 %d个学生的年龄:n,i+1); scanf(%d,&stui.age);printf(请输入第 %d个学生的性别(格式:男1女0):n

13、,i+1); scanf(%s,stui.sex);printf(请输入第 %d个学生的出生年月:(格式:年.月)n,i+1); scanf(%s,stui.date);printf(请输入第%d个学生的电话:n,i+1); scanf(%s,stui.tel);if(flag=0)i=i;i+;)while(in+m);n+=m;printf(录入完毕! nn);sort();)3.1.5 统计学生记录在统计学生记录操作中,系统会统计学生人数总数,并打印输出统计结果。void getnum()(int num_b=0,num_g=0;int i;fp=fopen(student.txt,a+

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 演讲稿/致辞

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号