本文实例为大家分享了C语言实现学生信息管理程序的具体代码,供大家参考,具体内容如下

目前只有5个功能

1. 增加学生信息

2. 删除学生信息

3. 查询某学生信息

4. 列出所有学生信息

5. 按出生日期先后输出学生信息

代码:

#include

#include

#include

struct StuInfo//学生信息

{

char cName[10];

char cSex;

char cNumber[6];

char cTel[13];

int iYear;

int iMonth;

};

typedef struct StuInfo INFO;

void AddStu()//增加学生函数

{

int iLenth;

FILE *fp = NULL;

INFO toAdd;//临时存储新学生信息

system("CLS");

fp = fopen("SavedStudents.txt", "a+"); //a+读写指针在文件尾

if(fp == NULL)

{

puts("Error01");

getchar();getchar();

return;

}

puts("输入信息:\n姓名\t性别\t学号\t出生年月\t手机号");

scanf("%s %c %s %d.%d %s", toAdd.cName, &toAdd.cSex, toAdd.cNumber, &toAdd.iYear, &toAdd.iMonth, toAdd.cTel);

//合法性判断

if(toAdd.cSex != 'F'&&toAdd.cSex != 'M')//性别只能为F或者M

{

puts("性别格式错误!请重新输入性别:");

scanf("%c", &toAdd.cSex);

}

if(toAdd.iYear <= 1980 || toAdd.iYear >= 2017 || toAdd.iMonth>12)

{

puts("日期错误!请重新输入出生日期:");

scanf("%d.%d", &toAdd.iYear, &toAdd.iMonth);//日期格式为1990.1格式

}

iLenth = strlen(toAdd.cTel);//手机号长度

if(iLenth != 11)

{

puts("手机号码格式错误!请重新输入手机号:");

scanf("%s", toAdd.cTel);

}

iLenth = strlen(toAdd.cNumber);

if(iLenth != 5)

{

puts("学号格式错误!请重新输入学号:");

scanf("%s", toAdd.cNumber);

}

//判断结束

fwrite(&toAdd, sizeof(INFO), 1, fp);

fclose(fp);

puts("写入成功!");

puts("按回车返回");

getchar();getchar();

return;

}

void DeleteStu()//通过学号删除学生信息

{

FILE *fp = NULL;

INFO Stu[100];

int i = 0, iCount = 0, iRecord = 0;

char cNumber[6];

system("CLS");

fp = fopen("SavedStudents.txt", "a+");

if(fp == NULL)

{

puts("Error01");

getchar();getchar();

return;

}

rewind(fp);

puts("姓名\t性别\t学号\t出生年月\t手机号");

for(i = 0, iCount = 0;fread(&Stu[i], sizeof(INFO), 1, fp);++i, ++iCount)

{

printf("%s\t%c\t%s\t%d.%d\t\t%s\n", Stu[i].cName, Stu[i].cSex, Stu[i].cNumber, Stu[i].iYear, Stu[i].iMonth, Stu[i].cTel);

}

fclose(fp);

fp = fopen("SavedStudents.txt", "w+"); //覆盖重写

rewind(fp);

puts("输入要删除学生的学号:");

scanf("%s", cNumber);

for(i = 0;i

{

if(strcmp(cNumber, Stu[i].cNumber) == 0)

{

iRecord = i;

break;

}

}

for(i = 0;i

{

if(i == iRecord)//删除实质为:不向文件写入该条信息

{

continue;

}

else

{

fwrite(&Stu[i], sizeof(INFO), 1, fp);

}

}

fclose(fp);

puts("删除完成!");

puts("按回车返回");

getchar();getchar();

return;

}

void GetInfo()//通过学号取得学生信息

{

FILE *fp;

INFO Stu[100];

char cNumber[6];

int iLenth, iCount = 0, i;

system("CLS");

fp = fopen("SavedStudents.txt", "a+"); //a+读写指针在文件尾

if(fp == NULL)

{

puts("Error01");

getchar();getchar();

return;

}

rewind(fp);

for(;fread(&Stu[iCount], sizeof(INFO), 1, fp);++iCount);//读入并计数

puts("输入你要查询的学号:如:Y1001");

scanf("%s", cNumber);

iLenth = strlen(cNumber);

if(iLenth != 5)

{

puts("学号格式错误!");

puts("按回车返回");

getchar();getchar();

return;

}

for(i = 0;i

{

if(strcmp(Stu[i].cNumber, cNumber) == 0)

{

puts("姓名\t性别\t学号\t出生年月\t手机号");

printf("%s\t%c\t%s\t%d.%d\t\t%s\n", Stu[i].cName, Stu[i].cSex, Stu[i].cNumber, Stu[i].iYear, Stu[i].iMonth, Stu[i].cTel);

break;

}

if(i == iCount - 1)

{

puts("没有找到匹配学号!");

}

}

puts("按回车返回");

getchar();getchar();

return;

}

void ListAllInfo()//查看所有学生信息

{

FILE *fp = NULL;

INFO Stu[100], Temp;

int iCount = 0, i = 0, j = 0;

system("CLS");

fp = fopen("SavedStudents.txt", "a+");

if(fp == NULL)

{

puts("Error01");

getchar();getchar();

return;

}

rewind(fp);

for(i = 0, iCount = 0;fread(&Stu[i], sizeof(INFO), 1, fp);++i, ++iCount);

for(i = 0;i

{

for(j = 0;j

{

if(strcmp(Stu[j].cNumber, Stu[j + 1].cNumber)>0)

{

Temp = Stu[j];

Stu[j] = Stu[j + 1];

Stu[j + 1] = Temp;

}

}

}

puts("姓名\t性别\t学号\t出生年月\t手机号");

for(i = 0;i

{

printf("%s\t%c\t%s\t%d.%d\t\t%s\n", Stu[i].cName, Stu[i].cSex, Stu[i].cNumber, Stu[i].iYear, Stu[i].iMonth, Stu[i].cTel);

}

printf("\n共找到[%d]条记录", iCount);

puts("\n按回车返回");

getchar();getchar();

return;

}

void SortAndOut()//排序学生

{

FILE *fp = NULL;

INFO Stu[100], Temp;

int i, j, iCount = 0;

system("CLS");

fp = fopen("SavedStudents.txt", "a+");

if(fp == NULL)

{

puts("Error01");

getchar();getchar();

return;

}

rewind(fp);

for(;fread(&Stu[iCount], sizeof(INFO), 1, fp);++iCount);//读入并计数

for(i = 0;i

{

for(j = 0;j

{

if(Stu[j].iYear>Stu[j + 1].iYear)

{

Temp = Stu[j];

Stu[j] = Stu[j + 1];

Stu[j + 1] = Temp;

}

if(Stu[j].iYear == Stu[j + 1].iYear&&Stu[j].iMonth>Stu[j + 1].iMonth)

{

Temp = Stu[j];

Stu[j] = Stu[j + 1];

Stu[j + 1] = Temp;

}

}

}

puts("姓名\t性别\t学号\t出生年月\t手机号");

for(i = 0;i

{

printf("%s\t%c\t%s\t%d.%d\t\t%s\n", Stu[i].cName, Stu[i].cSex, Stu[i].cNumber, Stu[i].iYear, Stu[i].iMonth, Stu[i].cTel);

}

puts("按回车返回");

getchar();getchar();

return;

}

int main()

{

int iChoice;

puts("1.增加学生\n2.删除学生\n3.查询学生\n4.显示所有学生信息(默认学号排序)\n5.按出生年月排序输出\n0.退出\n输入选择:");

scanf("%d", &iChoice);

while(iChoice != 0)//主界面

{

switch(iChoice)

{

case 1:AddStu();break;

case 2:DeleteStu();break;

case 3:GetInfo();break;

case 4:ListAllInfo();break;

case 5:SortAndOut();break;

default:break;

}

system("CLS");

puts("1.增加学生\n2.删除学生\n3.查询学生\n4.显示所有学生信息(默认学号排序)\n5.按出生年月排序输出\n0.退出\n输入选择:");

scanf("%d", &iChoice);

}

return 0;

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持找一找教程网。

c语言学生管理程序添加,C语言实现学生信息管理程序相关推荐

  1. c语言在文本每一行末尾追加字符串,c语言在末尾添加 C语言 在链表尾部添加节点...

    怎么用C语言在一个文件后面添加内容 怎么用C语言在一个文件后面添加内容 使用fopen函数打开文件,用fseek函数将文件位置调整到文件末尾,然后用fwrite函数写入数据即可.下面的示例代码,向1. ...

  2. Android 系统添加新语言的方法

    方法1 在 frameworks/base/core/res/res/下添加语言对应的values文件夹即可 方法2 在frameworks\base\core\java\com\android\in ...

  3. c语言存储学生信息并显示,C语言实现学生信息管理程序

    本文实例为大家分享了C语言实现学生信息管理程序的具体代码,供大家参考,具体内容如下 目前只有5个功能 1. 增加学生信息 2. 删除学生信息 3. 查询某学生信息 4. 列出所有学生信息 5. 按出生 ...

  4. 学生选课管理系统c语言程序报告,c语言课程设计学生选课管理系统实验报告.doc...

    课程设计报告 课程设计题目:学生选课管理系统 学 号 姓 名:李唐松 专 业:软件工程 班 级: 091107 指导老师:谢小林 2009年1月5 *实验题目: 学分管理程序 *实验时间与地点:200 ...

  5. c语言程序设计报告链表,c语言程序设计报告链表实现学生信息管理.docx

    C语言课程设计报告 链表实现学生信息管理 一.课程设计目标 C语言课程设计的目的是通过课程设计的综合训练,培养学生实际分析问题.编程和动手能力,最终目标是通过这种形式,帮助学生系统掌握该门课程的主要内 ...

  6. 学生管理系统(C语言版)

    学生管理系统 这个是大一学习C语言的时候做的一个小项目,代码部分基本都是自己一人完成,没用到什么高大上的技术,在图形化方面用了EasyX(一个C++的图形库),其他都是C语言的基础内容. 项目介绍 项 ...

  7. 更新学生的成绩C语言,学生成绩管理系统C语言代码实现.pdf

    学生成绩管理系统C语言代码实现 这篇文章主要为大家详细介绍了C语言代码实现学生成绩管理系统,文中示 代码介绍的非常详细,具有一定的参 考价值,感兴趣的小伙伴们可以参考一下 C语言实现了学生成绩管理系统 ...

  8. 用c语言编程宿舍管理系统,学生宿舍管理系统 C语言编程.doc

    "学生宿舍管理系统" C语言课程设计报告 程序功能简介 我设计的是"学生宿舍管理系统",主要是针对住宿学生个人信息的管理,适用对象主要是学校,以方便学校对住宿学 ...

  9. 学生宿舍管理系统c语言程序设计,学生宿舍管理系统C语言编程.doc

    实用文案 标准文档 "学生宿舍管理系统" C语言课程设计报告 程序功能简介 我设计的是"学生宿舍管理系统",主要是针对住宿学生个人信息的管理,适用对象主要是学校 ...

最新文章

  1. 不要过高估计SDN的能力,也善于发现SDN技术的缺陷之美
  2. 百度推ACE交通引擎:不仅是无人车,车路协同新基建我也包了
  3. SpringMVC注解@RequestParam(value=xxxx,required=false)解释
  4. python urllib.request 爬虫 数据处理-python之爬虫(三) Urllib库的基本使用
  5. 数据分析利器:XGBoost算法最佳解析
  6. mysql导入sql文件过大或连接超时的解决办法
  7. webStrom破解链接
  8. PostgreSQL的notify 与listen (三)
  9. Julia也能做爬虫?可以,但没必要
  10. 第一台全自动电子计算机,关于世界上第一台电子计算机ENIAC的叙述错误的是() senny全自动微电脑水位控制仪...
  11. 基于C51控制蜂鸣器
  12. Transmission 下载列表、下载文件 迁移机器指南
  13. python的metaclass分析
  14. cogs——2098. Asm.Def的病毒
  15. python中的join是什么意思_python里join是什么意思
  16. win12 修改dns脚本
  17. win10 添加打印机完整图文教程演示
  18. overleaf 常见数学公式 latex
  19. svn分支介绍和使用
  20. 多线程爬虫爬取电影天堂资源

热门文章

  1. Web Apps来袭
  2. verilog 流水线技术
  3. Linux文件属性查看和修改(非常重要)
  4. 在人际交往中你悟出过什么道理?
  5. 100道java面试题
  6. 浅谈社交网络中的用户心理
  7. dw1000信标码_熊大UWB系列教程三:DW1000测距原理以及软件实现
  8. android获取屏幕属性,获取手机屏幕DisplayMetrics属性多种方法
  9. OceanBase 再破纪录!核心成员陈萌萌:坚持 HTAP 就是坚持我们做数据库的初心
  10. shell编程 循环