相关文章推荐:

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

2、 C语言学籍管理系统源代码 ★★

3、C语言学生成绩管理系统设计 《C语言程序设计》实训报告 ★★★

4、职工信息管理系统C++代码 ★★★

扫描上方二维码,回复 999 直接获取作者之前收藏的学习资源,谢谢网友们的分享。

更多管理系统更新中,请注意关注!

大学C语言实训课学习到的一段源代码,C语言学生信息管理系统。

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
struct stu_inf//学生信息结构体定义
{int age,year,month;long int number;char name[10],sex[4],tel[15],email[30],address[50]; struct stu_inf *next;
};
#define LEN sizeof(struct stu_inf)
int STU_SUM=0;//学生总数同时写入文件再次读取可防止读取空文本出现乱码的情况。
int FLAG=0;//判断是否对学生信息进行了改动
struct stu_inf *Stu_Create(struct stu_inf *head);//学生信息录入
struct stu_inf *Stu_Delete(struct stu_inf *head);//学生信息删除
struct stu_inf *Stu_Correct(struct stu_inf *head);//学生信息修改
struct stu_inf *Stu_Search_Number(struct stu_inf *head,int number);//按学号查询学生信息
struct stu_inf *Stu_Search_Name(struct stu_inf *head,char *name);//按姓名查询学生信息
struct stu_inf *Stu_Insert(struct stu_inf *head,struct stu_inf *stu);//学生信息的插入
void Stu_Print(struct stu_inf *head);//学生信息的输出
void Stu_Search(struct stu_inf *head);//选择按何种方式查询学生信息
void Write_Data(struct stu_inf *head);//学生信息写入到文件
struct stu_inf *Read_Data();//学生信息读入到文件
void main()
{char choice,choice2;struct stu_inf *head=NULL;head=Read_Data();do{printf("\n\t\t------------------\n");printf("\t\t学生信息管理系统\n");printf("\t\t-*-*-*-*-*-*-*-*-*\n");printf("\t\t(1)---录入学生信息\n");printf("\t\t(2)---浏览学生信息\n");printf("\t\t(3)---查询学生信息\n");printf("\t\t(4)---删除学生信息\n");printf("\t\t(5)---修改学生信息\n");printf("\t\t(0)---退出系统\n");printf("\t\t-*-*-*-*-*-*-*-*-*\n");printf("\t\t请输入您的选择:");choice=getche();putchar('\n');switch(choice){case '1':head=Stu_Create(head);break;case '2':Stu_Print(head);break;case '3':Stu_Search(head);break;case '4':head=Stu_Delete(head);break;case '5':         Stu_Correct(head);break;case '0':if(FLAG==1){printf("\n是否将改动保存到“学生信息.txt”?(y/n)\n");do{choice2=getche();switch(choice2){case 'y':Write_Data(head);break;case 'n':break;}}while(choice2!='n'&&choice2!='y');}    break;default:printf("\n无效的选项。\n");break;}printf("\n按任意键继续...");getch();putchar('\n');}while(choice!='0');exit(0);
}stu_inf *Stu_Create(struct stu_inf *head)//学生信息录入
{struct stu_inf *p;p=(struct stu_inf *)malloc(LEN);printf("\n请输入学号:");scanf("%d",&p->number);printf("请输入姓名:");scanf("%s",p->name);printf("请输入年龄:");scanf("%d",&p->age);printf("请输入性别:");scanf("%s",p->sex);printf("请输入出生年月(年月之间用空格隔开):");scanf("%d%d",&p->year,&p->month);printf("请输入地址:");scanf("%s",p->address);printf("请输入电话号码:");scanf("%s",p->tel);printf("请输入E-mail:");scanf("%s",p->email);p->next=NULL;head=Stu_Insert(head,p);STU_SUM++;FLAG=1;printf("\n该学生的信息为:\n"); printf("-----------------------------------------------------------\n"); printf("学号\t姓名\t年龄\t性别\t出生年月\t\t地址\t电话\tE-mail\n"); printf("%d\t%s\t%d\t%s\t%d %d\t%s\t\t%s\t%s\n",p->number,p->name,p->age,p->sex,p->year,p->month,p->address,p->tel,p->email);return head;
}
struct stu_inf *Stu_Insert(struct stu_inf *head,struct stu_inf *stu)//学生信息插入
{struct stu_inf *phead=head,*pstu=stu,*previous;if(head==NULL)head=stu;else{while(pstu->number  >  phead->number  &&  phead->next  !=  NULL)previous=phead,phead=phead->next;if(pstu->number  <=  phead->number){if(phead==head)head=pstu;elseprevious->next=pstu;pstu->next=phead;}elsephead->next=pstu;}return head;
}
void Stu_Search(struct stu_inf *head)//选择按何种方式查询学生信息
{if(head==NULL){printf("\n无学生信息。\n\n");return ;}int number;char choice;char *name=(char *)calloc(15,sizeof(char));do{printf("\n\n\t学生信息查询\n");printf("------------------------------\n");printf("\t按学号查询 请按1\n");printf("\t按姓名查询 请按2\n");printf("\t取消       请按0\n");printf("------------------------------\n");printf("请输入您的选择:");choice=getche();   putchar('\n');switch(choice){case '0':return;case '1':printf("\n请输入学号:");scanf("%d",&number);Stu_Search_Number(head,number);break;case '2':printf("\n请输入姓名:");scanf("%s",name);Stu_Search_Name(head,name);break;default:printf("\n无效的选项。\n");   break;}printf("\n按任意键继续...");getch();putchar('\n');}while(1);
}
struct stu_inf *Stu_Search_Number(struct stu_inf *head,int number)//按学号查询学生信息
{struct stu_inf *p=head;if(head==NULL)printf("\n无学生信息。\n\n");else{while(p->number  !=  number  &&  p->next  !=  NULL)p=p->next;if(p->number==number){printf("\n学号\t姓名\t年龄\t性别\t出身年月\t地址\t电话\tE-mail\n");printf("%d\t%s\t%d\t%s\t%d %d\t%s\t%s\t%s\n",p->number,p->name,p->age,p->sex,p->year,p->month,p->address,p->tel,p->email);}elseprintf("\n无该学生的记录。\n\n");}return p;
}
struct stu_inf *Stu_Search_Name(struct stu_inf *head,char *name)//按姓名查询学生信息
{struct stu_inf *p=head;if(head==NULL)printf("\n无学生信息。\n\n");else{while(strcmp(p->name,name)  !=  0  && p->next  !=  NULL)p=p->next;if(strcmp(p->name,name)==0){printf("\n学号\t姓名\t年龄\t性别\t出身年月\t地址\t电话\tE-mail\n");printf("%d\t%s\t%d\t%s\t%d %d\t%s\t%s\t%s\n",p->number,p->name,p->age,p->sex,p->year,p->month,p->address,p->tel,p->email);}elseprintf("\n无该学生的记录。\n\n");}return p;
}
void Stu_Print(struct stu_inf *head)//学生信息的输出
{struct stu_inf *p=head;if(head==NULL)printf("\n无学生信息。\n\n");else{printf("\n学生总数:%d\n",STU_SUM);printf("\n学号\t姓名\t年龄\t性别\t出身年月\t地址\t电话\tE-mail\n");while(p!=NULL){printf("%d\t%s\t%d\t%s\t%d %d\t%s\t%s\t%s\n",p->number,p->name,p->age,p->sex,p->year,p->month,p->address,p->tel,p->email);p=p->next;}}
}
struct stu_inf *Stu_Delete(struct stu_inf *head)//学生信息删除
{struct stu_inf *phead=head,*previous;int number;if(head==NULL){printf("\n无学生信息。\n\n");return NULL;}printf("\n请输入要删除的学生的学号:");scanf("%d",&number);while(phead->number  !=  number  &&  phead->next  !=  NULL)previous=phead,phead=phead->next;if(phead->number==number){if(phead==head)head=phead->next;elseprevious->next=phead->next;printf("\n删除成功。\n\n");STU_SUM--;FLAG=1;}elseprintf("\n无该学生的信息。\n\n");return head;
}
struct stu_inf *Stu_Correct(struct stu_inf *head)//学生信息修改
{struct stu_inf *phead=head;int number;char choice;if(head==NULL){printf("\n无学生信息。\n\n");return NULL;}else{    printf("\n请输入要修改的学生的学号:");scanf("%d",&number);while(phead->number  !=  number  &&  phead->next  !=  NULL)phead=phead->next;if(phead->number==number){printf("\n该学生的信息:\n");printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ");printf("\n学号\t姓名\t年龄\t性别\t出身年月\t地址\t电话\tE-mail\n");printf("%d\t%s\t%d\t%s\t%d %d\t%s\t%s\t%s\n",phead->number,phead->name,phead->age,phead->sex,phead->year,phead->month,phead->address,phead->tel,phead->email);printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \n");do{printf("---------------------\n");printf("修改姓名      请按1\n");printf("修改年龄      请按2\n");printf("修改性别      请按3\n");printf("修改出生年月  请按4\n");printf("修改地址      请按5\n");printf("修改电话号码  请按6\n");printf("修改E-mail    请按7\n");printf("取消          请按0\n");printf("---------------------\n");printf("请输入您的选择:");choice=getche();putchar('\n');switch(choice){case '0':return head;case '1':printf("\n请输入新姓名:");scanf("%s",phead->name);FLAG=1;break;case '2':printf("\n请输入新年龄:");scanf("%d",&phead->age);FLAG=1;break;case '3':printf("\n请输入新性别:");scanf("%s",phead->sex);FLAG=1;break;case '4':printf("\n请输入新的出生年月(年月之间用空格隔开):");scanf("%d%d",&phead->year,&phead->month);FLAG=1;break;case '5':printf("\n请输入新的地址:");scanf("%s",phead->address);FLAG=1;break;case '6':printf("\n请输入新的电话号码:");scanf("%s",phead->tel);FLAG=1;break;case '7':printf("\n请输入新的E-mail:");scanf("%s",phead->email);FLAG=1;break;default:        printf("\n无效的选项。\n\n");break;             }printf("\n按任意键继续...");getch();putchar('\n');}while(choice!='0');}elseprintf("\n无该学生的信息。\n\n");}return head;
}
void Write_Data(struct stu_inf *head)//学生信息写入到文件
{FILE *fp;struct stu_inf *p;if((fp=fopen("学生信息.txt","w"))==NULL){printf("\n*************\n");printf("文件创建失败。\n\n");printf("*************\n");return;}fprintf(fp,"学生总数:%d\n",STU_SUM);if(STU_SUM!=0)fprintf(fp,"\n学号\t姓名\t年龄\t性别\t出身年月\t地址\t电话\tE-mail\n");for(p=head;p!=NULL;p=p->next)fprintf(fp,"%d\t%s\t%d\t%s\t%d %d\t%s\t%s\t%s\n",p->number,p->name,p->age,p->sex,p->year,p->month,p->address,p->tel,p->email);fclose(fp);/*printf("\n*************\n");printf("文件写入成功。\n");printf("*************\n");*/
}struct stu_inf *Read_Data()//从文件读入学生信息
{FILE *fp;struct stu_inf *p,*phead,*head;   if((fp=fopen("学生信息.txt","r"))==NULL){/*printf("\n*************\n");printf("文件读取失败。\n");printf("*************\n");*/return NULL;}/*printf("\n*************\n");printf("文件读取成功。\n");printf("*************\n");*/fscanf(fp,"学生总数:%d\n",&STU_SUM);if(STU_SUM==0)return NULL;fscanf(fp,"\n学号\t姓名\t年龄\t性别\t出身年月\t地址\t电话\tE-mail\n");head=phead=p=(struct stu_inf *)malloc(LEN);fscanf(fp,"%d\t%s\t%d\t%s\t%d %d\t%s\t%s\t%s\n",&p->number,p->name,&p->age,p->sex,&p->year,&p->month,p->address,p->tel,p->email);while(!feof(fp)){p=(struct stu_inf *)malloc(LEN);fscanf(fp,"%d\t%s\t%d\t%s\t%d %d\t%s\t%s\t%s\n",&p->number,p->name,&p->age,p->sex,&p->year,&p->month,p->address,p->tel,p->email);phead->next=p;phead=phead->next;      }phead->next=NULL;fclose(fp);return head;
}

也希望能帮到正在做实训报告的你,欢迎留言区讨论。

分享:C语言学生成绩管理系统设计 《C语言程序设计》实训报告

扫描下方公众号,发送 成绩系统 4个字,获取下载实训源码

扫描上方二维码,回复 999 直接获取作者之前收藏的学习资源,谢谢网友们的分享。

回复 系统大全,即可获得关于C语言管理系统比较全面的文章内容,覆盖全网(有点夸张,随时更新,没获取到的朋友直接留言告诉一声)

C语言学生信息管理系统源代码相关推荐

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

    分享:C语言学生成绩管理系统设计 <C语言程序设计>实训报告 点击查看 ----> C语言学生成绩管理系统(课程设计报告书) 扫描下方公众号,发送 成绩系统 4个字,获取下载源码. ...

  2. c语言学生信息系统 完整版,C语言 学生信息管理系统(完整版).docx

    C语言 学生信息管理系统(完整版) 电子科技大学成都学院 程序综合设计论文 论文题目 学生信息管理系统 学生姓名 魏国 学 号 1340840625 专 业 机械设计制造及其自动化 系(分院) 电子工 ...

  3. 大一c语言学生信息管理系统课程设计

    使用命令行操作, 每次操作结束后,代码中加入清屏命令,给人一种有界面的感觉. 大一学c语言,现在回过头来看, 觉得当时什么图形界面啥的都没学, 怎么写课程设计. 结果我还是当时班上写得最棒的黑框框毕业 ...

  4. C语言学生信息管理系统(结构体数组,文件)

    C语言学生信息管理系统(结构体数组,文件) 这是初学时写的一个程序,比较菜,不喜勿喷.在一个结构体里定义结构体内所有的信息(如果信息也需要分类则可以再定义一个结构体并在当前结构体内声明,我的这个代码在 ...

  5. 显示学生信息的C语言,学生信息管理系统C语言.doc

    学生信息管理系统C语言 学生信息管理系统 摘要 由于学校规模进一步扩大,学生人数逐年上升,学生信息的管理也变得越来越复杂,切实有效的把学生信息管理系统引入学校教务管理中,对于促进学校管理制度和提高学校 ...

  6. 学生管理系统c语言代码实验报告,C语言学生信息管理系统实验报告(含源代码).doc...

    实 验 四:结构体 实验目的: 1.更加灵活的使用数组作为函数参数: 2.初步掌握开发一个小型实用系统的基本方法: 3.初步掌握书写程序设计开发文档的能力. 实验内容: 程序一:学生信息管理系统 编写 ...

  7. 学生管理程序c语言数组,c语言学生管理系统(c语言学生信息管理系统)

    要求:1记录学生班级姓名,性别,职务住址情况,数据输入数据删除排序查. #include /*引用库函数*/ #include #include #include typedef struct /*定 ...

  8. c语言学生信息结构体录入文件,C语言—学生信息管理系统

    学习了C语言结构体,链表和文件的知识之后,就可以做出一个学生信息管理系统了,下面的是我在刚学习完这块知识后写出来的,基本没什么界面,不过 能够实现  录入,添加,插入,遍历,删除,查询,并且保存到本地 ...

  9. C语言学生信息管理系统第二版(附带密码登录模式)

    这几天准备复习一下学习的C语言,进行一门语言最好的复习方式我认为就是用这门语言做一个作品出来,这样可能方方面面的知识都有可能用到,于是我花了几天写了一个学生信息管理系统,这是第二版操作系统,我又增加了 ...

  10. C语言学生成绩管理系统文档版,C语言学生信息管理系统(完整版)总结.docx

    电子科技大学成都学院 程序综合设计论文 论文题目 学生信息管理系统 学生姓名 魏国 学 号 1340840625 专 业 机械设计制造及其自动化 系(分院) 电子工程系 授课教师 杜娥 2015年12 ...

最新文章

  1. Bootstrap中默认表单的创建
  2. windows service自动启动相关设置
  3. 浅谈配置文件:spring-servlet.xml(spring-mvc.xml) 与 applicationContext.xml
  4. Java-Frame
  5. 宜昌市计算机一级考试真题,2018年上半年湖北省宜昌市计算机等级考试考务通知...
  6. 论文笔记:Triplet Network
  7. Linux C 编程技巧--利用有限状态机模型编程
  8. 课堂上老师不讲的有趣物理知识,才是孩子最感兴趣的!
  9. db2数据库日期减一天_DB2 数据库中的日期与时间如何正确操作?(2)
  10. Docker 基础介绍及配置安装 [一]
  11. 优秀logo设计解析_日本的logo设计为什么那么优秀?
  12. Java基础知识小杂库
  13. RK3288 开机时间和开机速度优化安卓系统优化
  14. su - root 切换失败
  15. 名字生成器 php,中文名字随机生成器
  16. java实现简易计算器,实现加减乘除,括号,算式查错,
  17. Revit建模绘制楼板时剖面图上如何修改使其在墙的外边界?
  18. 温补晶振及压控晶振的技术资料与应用
  19. 以太坊数据结构MPT 1
  20. tortoiseGit管理的文件没有绿色红色等图标

热门文章

  1. java写培根披萨和海鲜披萨_java子类继承父类实例-披萨的选择实现代码
  2. android强制权限,Android6.0动态权限,强制申请权限方法
  3. 安全教育平台账号后四位_2020中小学国家安全教育专题活动入口官网:学校安全教育平台...
  4. unity将预制体写成fbx_unity 将fbx转成prefab
  5. IDEA+Maven搭建JavaWeb项目
  6. [EffectiveC++]item3:尽可能使用const
  7. LLppdd likes strings
  8. sql server 数据库连接方式分析、详解
  9. CString转换成const char*
  10. Nginx 注册为 windows服务