学生管理系统(C语言简单实现)
仅供借鉴、仅供借鉴、仅供借鉴(整理了一下大一C语言每个章节的练习题、没得题目、只有程序了)
1 、实训名称
实训12:文件
2、实训目的及要求
1、文件的基本应用
2、综合运用已学的知识,包括循环结构、函数、数组、指针等来解决问题。结合程序调试功能和程序3、调试技巧解决程序中存在的逻辑问题。
实现效果:



3、 源码
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#define N 2
struct student{
char num[10];//学号
char name[10];//名字
float score_c;//语文
float score_m;//数学
float score_e;//英语
float score_sum; //总成绩
};
void inputfile(struct student *stu,int n);//输入文件函数
int outputfile(struct student *stu);//输出文件函数
void input(struct student *stu);//输入函数,从键盘输入数据
void output(struct student *stu);//输出函数,将数据输出在屏幕上显示
void rank(struct student *stu);//排序函数,按总成绩排序后调用输出函数输出排序后的情况
void locating(struct student *stu);//查询函数,按姓名进行查询,并输出查询到的数据
void mainview();//界面函数
void inputfile(struct student *stu,int n){
FILE *f;
int i;
if((f=fopen("student.txt","w"))!=NULL)
{
for(i=0;i<n;i++)
{
fprintf(f,"学号:%s\t姓名:%s\t语文:%.2lf\t数学:%.2lf\t英语%.2lf\t总分%.2lf\n",
stu[i].num,stu[i].name,stu[i].score_c,stu[i].score_m,stu[i].score_e,stu[i].score_sum);
}
printf("文件写入成功");
fclose(f);
}else{
printf("文件打开失败!\n");
}
}
int outputfile(struct student *stu){
FILE *f;
int i,n;
if((f=fopen("stu.txt","r"))!=NULL)
{
for(i=0;feof(f)==0;i++)//feof(f)函数:指针f所指向的文件若文件结束,该函数返回值为非0值
fscanf(f,"学号:%s\t姓名:%s\t语文:%.2lf\t数学:%.2lf\t英语%.2lf\t总分%.2lf\n",
stu[i].num,stu[i].name,stu[i].score_c,stu[i].score_m,stu[i].score_e,stu[i].score_sum);
fclose(f);
}else{
printf("文件打开失败");
}
n=i-1;
return n;
}
void input(struct student *stu){
int i;
for(i=0;i<N;i++)
{
printf("\n\t请输入学生信息:\n\t\t学号:");
scanf("%s",stu[i].num);
printf("\t\t姓名:");
scanf("%s",stu[i].name);
printf("\t\t语文:");
scanf("%f",&stu[i].score_c);
printf("\t\t数学:");
scanf("%f",&stu[i].score_m);
printf("\t\t英语:");
scanf("%f",&stu[i].score_e);
stu[i].score_sum=stu[i].score_c+stu[i].score_m+stu[i].score_e;
}
inputfile(stu,N);
}
void output(struct student *stu){
int i,n;
printf("\t学号\t姓名\t语文\t数学\t英语\t总分\n");
for(i=0;i<N;i++)
{
printf("\t%-8s%-8s%-8.lf%-8.lf%-8.lf%-8.lf\n",stu[i].num,stu[i].name,
stu[i].score_c,stu[i].score_m,stu[i].score_e,stu[i].score_sum);
}
}
void rank(struct student *stu){
int i,k;
struct student temp;
for(k=1;k<N;k++)
for(i=N-1;i>=k;i--)
if(stu[i].score_sum>stu[i-1].score_sum)
{
temp=stu[i];
stu[i]=stu[i-1];
stu[i-1]=temp;
}
output(stu);
}
void locating(struct student *stu){
int i;
char ch[10];
if(N==0)
{
printf("没有记录!\n");
return;
}
printf("请输入你要查找的姓名:");
scanf("%s",&ch);
for(i=0;i<N;i++)
if(strcmp(stu[i].name,ch)==0)
{
printf("\n\t\t查找到的学生,信息如下\n\n");
printf("\t学号\t姓名\t语文\t数学\t英语\t总分\n");
printf("\t%-8s%-8s%-8.lf%-8.lf%-8.lf%-8.lf\n",stu[i].num,stu[i].name,
stu[i].score_c,stu[i].score_m,stu[i].score_e,stu[i].score_sum);
return;
}
if(i==N)printf("\t\t未找到要查找的学生的信息!\n");
}
void mainview(){
int c,f;
struct student stu[N];
while(1)
{
system("CLS");
printf("*********************************************************\n");
printf("*\t\t\t\t\t\t\t*\n");
printf("*\t\t 学生管理系统! \t\t*\n");
printf("*\t\t\t\t\t\t\t*\n");
printf("*********************************************************\n");
printf("*\t\t\t\t\t\t\t*\n");
printf("*\t\t 1--输入信息 \t\t*\n");
printf("*\t\t 2--查看信息 \t\t*\n");
printf("*\t\t 3--按成绩排序 \t\t*\n");
printf("*\t\t 4--按姓名查找 \t\t*\n");
printf("*\t\t 0--退出系统 \t\t*\n");
printf("*\t\t\t\t\t\t\t*\n");
printf("*********************************************************\n");
printf("请输入选项编号(0 ~ 4): (按回车键结束输入)\n");
scanf("%d",&c);
switch(c)
{
case 1:input(stu);break;
case 2:output(stu);break;
case 3:rank(stu);break;
case 4:locating(stu);break;
case 0: return;
default:printf("输入错误,请重新输入!\n");fflush(stdin);//fflush清空缓冲区残余信息
}
printf("\n\n");
system("pause");
}
}
int main()
{
mainview();
system("pause");
getchar();
getchar();
return 0;
}
4、实验小结
通过本次的作业,了解到文件的读写方式和存储的形式。通过不同函数的结合使用可以解决生活中的一些实际问题。指针的使用能够方便的定位,便于操作。但是指针使用不好会对程序造成危害。数组的使用可以存储大量的数据,在内存中按连续的顺序存储数据有利于数据的操作。
学生管理系统(C语言简单实现)的更多相关文章
- 学生管理系统 Python语言
def show_student(): print(('*'*20).center(55)) print('1.添加学生信息'.center(50)) print('2.修改学生信息'.center( ...
- 【IOS开发笔记02】学生管理系统
端到端的机会 虽然现在身处大公司,但是因为是内部创业团队,产品.native.前端.服务器端全部坐在一起开发,大家很容易做零距离交流,也因为最近内部有一个前端要转岗过来,于是手里的前端任务好像可以抛一 ...
- 【IOS开发笔记01】学生管理系统(上)
端到端的机会 虽然现在身处大公司,但是因为是内部创业团队,产品.native.前端.服务器端全部坐在一起开发,大家很容易做零距离交流,也因为最近内部有一个前端要转岗过来,于是手里的前端任务好像可以抛一 ...
- Java 小型学生管理系统心得
这个学生管理系统相对来说比较简单,主要就是复习下java怎么连接数据库,然后你怎么来实现这个功能,我简单的说下思路吧. 首先你要构思好这个界面,他包括增删查改这些基本功能,然后你去分析这些功能都能怎么 ...
- Maven+JSP+SSM+Mysql+C3P0实现的学生管理系统
项目简介 项目来源于:https://gitee.com/wu_yun_long/student_management_system 本系统是基于Maven+JSP+SSM+Mysql+C3P0实现的 ...
- c语言之学生管理系统
0x00 学生管理系统 说到学生管理系统,对于每一个初学c语言的人都是一道不得不过的砍.不过,学习c,我觉得每个人都应该写一个学生管理系统,至于为什么,我想倘若连一个学生管理系统都写不好,哪么他的c是 ...
- 学生管理系统-火车订票系统 c语言课程设计
概要: C 语言课程设计一---学生管理系统 使使用 C 语言实现学生管理系统.系统实现对学生的基本信息和考试成绩的 管理.采用终端命令界面,作为系统的输入输出界面.采用文件作为信息存储介质. 功能描 ...
- Java写一个简单学生管理系统
其实作为一名Java的程序猿,无论你是初学也好,大神也罢,学生管理系统一直都是一个非常好的例子,初学者主要是用数组.List等等来写出一个简易的学生管理系统,二.牛逼一点的大神则用数据库+swing来 ...
- C++ 实现简单命令行学生管理系统
C++ 实现简单命令行学生管理系统 预览: 编译环境是macOS.system("clear") 在windows下请换成 system("cls") #inc ...
随机推荐
- 机器学习建模高级用法!构建企业级AI建模流水线 ⛵
作者:韩信子@ShowMeAI 机器学习实战系列: http://www.showmeai.tech/tutorials/41 本文地址:http://www.showmeai.tech/articl ...
- 大家都能看得懂的源码 - 如何封装 cookie/localStorage/sessionStorage hook?
本文是深入浅出 ahooks 源码系列文章的第九篇,该系列已整理成文档-地址.觉得还不错,给个 star 支持一下哈,Thanks. 今天来看看 ahooks 是怎么封装 cookie/localSt ...
- fast json 乱序问题解决过程
解决问题:保存到redis中的jsonstring在转回jsonObject的时候乱序: 解决方案:https://inlhx.iteye.com/blog/2312512 解决过程: 1 看fast ...
- 面试题:Java序列化与反序列化
目录 序列化和反序列化的概念 应用场景? 序列化实现的方式 继承Serializable接口,普通序列化 继承Externalizable接口,强制自定义序列化 serialVersionUID的作用 ...
- 1.3_HTML基础知识
打开记事本,输入 <html> <hand> <title>我要自学网</title> </hand> <body> <h ...
- Jenkins+SpringCloud(多模块)+Vue项目详细配置
一.Jenkins安装及所需插件安装 安装过程略. 我这用到工具包括JDK.Git.Maven.NodeJS:可以选择自行在服务器安装,也可以通过Jenkins自动安装,位置在系统管理 >全局工 ...
- SpringMvc(二)- 请求处理参数 和 响应数据处理
1.请求处理参数 1.1 请求参数 @RequestParam 1.1.1 不使用 @RequestParam 注解 请求参数处理,不使用参数注解: 1.如果请求参数名和请求处理的形参名一致,spri ...
- rh358 004 bind反向,转发,主从,各种资源记录 unbound ansible部署bind unbound
通过bind实现正向,反向,转发,主从,各种资源记录 7> 部署反向解析 从ip解析到fqdn vim /etc/named.conf zone "250.25.172.in-addr ...
- [Python]-字典-实践经验总结
字典是Python中常用的一个数据类型. 与列表有相似的用法,表现在列表的下标和字典的键值可以通过相似的方式读取数据: list_name[0] = value dict_name['key'] = ...
- 云原生之旅 - 3)Terraform - Create and Maintain Infrastructure as Code
前言 工欲善其事,必先利其器.本篇文章我们介绍下 Terraform,为后续创建各种云资源做准备,比如Kubernetes 关键词:IaC, Infrastructure as Code, Terra ...