#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<conio.h>

typedef struct student{
char name[10];
int num;
int score;
struct student* pnext;
}STU;

void input(STU* phead){
STU* node = NULL;
    node = (STU*)malloc(sizeof(STU));
node->pnext = NULL;
printf("请输入该同学的姓名\n");
scanf("%s",node->name);
printf("请输入该同学的学号\n");
scanf("%d",&node->num);
printf("请输入该同学的成绩\n");
scanf("%d",&node->score);
FILE* fp = fopen("e:\\Student_info.dat","a");
if(fp == NULL)
printf("文件打开失败\n"); 
if(phead->pnext == NULL){
phead->pnext = node;
fwrite(phead->pnext,sizeof(STU),1,fp);
}
else{
while(phead->pnext != NULL){
phead = phead->pnext;
}
phead->pnext = node;
fwrite(phead->pnext,sizeof(STU),1,fp);
}
fclose(fp);
}

void viewer(STU* phead){
FILE* fp = fopen("e:\\Student_info.dat","r");
STU* plist = NULL;
plist = (STU*)malloc(sizeof(STU));
plist->pnext = NULL;
fread(plist,sizeof(STU),1,fp);
if(fp == NULL){
printf("未找到数据文件\n");
Sleep(3000);
}
else{
while(feof(fp) == 0){
printf("该同学的姓名为: %s\n" , plist->name);
printf("该同学的学号为: %d\n" , plist->num);
printf("该同学的成绩为: %d\n" , plist->score);
printf("\n");
fread(plist,sizeof(STU),1,fp);
}
printf("请按任意键进行下一步操作\n");
getch(); 
}
}

void menu(){
printf("1.录入信息\n");
printf("2.查看信息\n");
printf("0.退出\n");
}

int main(int argc,char** argv){
system("color 1e");
int select;
STU* head = NULL;
head = (STU*)malloc(sizeof(STU));
head->pnext = NULL;
while(1){
system("cls");
menu();
printf("请输入您要选择的功能\n\n");
printf("您选择的功能是: \n");
scanf("%d",&select);
switch(select)
{
case 1: input(head);
break;
case 2: viewer(head);
break;
case 0: exit(1);
break;
default : printf("输入无效,请重新输入\n");
break;
}
}

}

C语言学生管理系统(C语言课程设计/精简版)的更多相关文章

  1. c语言实现通讯录管理系统(c课程设计)

    工具:Visual C++6.0 说明: 本系统基于C语言实现班级通讯录管理系统,为大一时学习C语言刚入门所做的课程设计.功能包括增.删.查.改等,非常适合初学者练手.通讯录包括的个人信息有姓名.学号 ...

  2. C语言连接MySQL数据库(课程设计总结)

    刚结束课程设计,也预示着假期立即就要到来了.本次课程设计并不算难,无非就是让做一个XXX系统,实现用户的注冊.登录.菜单管理.超级用户等等一些功能,到如今为止已经做过好几个了,所以基本流程都熟悉了! ...

  3. 学生管理系统 Python语言

    def show_student(): print(('*'*20).center(55)) print('1.添加学生信息'.center(50)) print('2.修改学生信息'.center( ...

  4. C语言学生管理系统

    想练习一下链表,所以就有了这个用C写的学生管理系统 没有把它写入文件,才不是因为我懒哈哈哈,主要是为了练习链表的 #include<stdio.h> #include<stdlib. ...

  5. JAVA面向对象编程课程设计——web版斗地主

    一.团队课程设计博客链接 JAVA面向对象编程课程设计--网络版单机斗地主 二.个人负责模块或任务说明 实体类的设计 斗地主规则的实现 人机自动出牌的算法 实现数据库的DAO模式 三.自己的代码提交记 ...

  6. Java课程设计---web版斗地主

    一. 团队课程设计博客链接 二.个人负责模块和任务说明 负责前后端数据传输 JSP界面的设计 根据后台传来的数据进行页面动态更新 负责Servlet设计 三.自己的代码提交记录截图 四.自己负责模块或 ...

  7. C语言学生管理系统源码分享

    大家好 我就是如假包换的...陈玲 自从运营了C语言程序设计微信公众号 很多粉丝都给我备注 ...奇葩 实在是不敢当 也被人开始叫玲玲姐 我知道 很多人都想看我出境 我本人也有 年多的舞台演讲训练 实 ...

  8. C语言学生管理系统(增进版)

    在原版上进行改进,主要改进的功能有. 1.利用atof:将字符串转换为浮点型: 利用atoi:将字符串转换为整型: 原文地址:http://www.cnblogs.com/sddai/p/577412 ...

  9. C语言学生管理系统(原版本)(自编)

    /*系统特色:(大牛勿笑) *颜色提示 *文字提示 *功能 */ #include <stdio.h> #include <stdlib.h> #include <mat ...

随机推荐

  1. windows 下载~安装nginx

    nginx 中文文档 http://www.nginx.cn/doc/ 到nginx官网下载安装包http://nginx.org/en/download.html 解压安装包 进入windows的c ...

  2. Spring 多数据源配置(转)

    转载自:https://www.cnblogs.com/digdeep/p/4512368.html 同一个项目有时会涉及到多个数据库,也就是多数据源.多数据源又可以分为两种情况: 1)两个或多个数据 ...

  3. Event loops秒懂

    Event loops秒懂 简介 JS是一种单线程脚本语言,为什么要设计成单线程? 举例说明,假设JS是多线程脚本语言,A线程修改了DOM,B线程删除了DOM,一旦B线程先执行完,DOM被删除了,A线 ...

  4. [ctfhub]SQL注入

    今天在ctfhub整理了几个sql注入的解题过程,还算是比较详细的. 知识点都是比较常见的:每个题大致涉及的知识点用一张表格解释 !注:下方的 information_schema.xxxxxxxxx ...

  5. CAS无锁模式

    一.java内存模型:JMM 在内存模型当中定义一个主内存,所有声明的实例变量都存在于主内存当中,主内存的数据会共享给所有线程,每一个线程有一个块工作内存,工作内存当中主内存数据的副本当更新数据时,会 ...

  6. Mysql性能优化:为什么要用覆盖索引?

    导读 相信读者看过很多MYSQL索引优化的文章,其中有很多优化的方法,比如最佳左前缀,覆盖索引等方法,但是你真正理解为什么要使用最佳左前缀,为什么使用覆盖索引会提升查询的效率吗? 本篇文章将从MYSQ ...

  7. 阿里云服务器Ubuntu系统搭建LNMP环境

    目录 一.Nginx 安装 二.MySQL安装 三.PHP安装 四.配置Nginx 五.环境测试 六.服务器常用路径 一.Nginx 安装 更新软件源 sudo apt-get update 安装 N ...

  8. bluekeep漏洞(CVE-2019-0708)利用

    前言 上个月爆出exp的一个高危漏洞,跟风复现一下下...( ̄▽ ̄)~* 简介 Windows再次被曝出一个破坏力巨大的高危远程漏洞CVE-2019-0708.攻击者一旦成功利用该漏洞,便可以在目标系 ...

  9. mysql系列-⼀条SQL查询语句是如何执⾏的?

    ⼀条SQL查询语句是如何执⾏的? ⼤体来说,MySQL 可以分为 Server 层和存储引擎层两部分 Server 层 Server 层包括连接器.查询缓存.分析器.优化器.执⾏器等,涵盖 MySQL ...

  10. Electron 踩坑记录- require is not defined

    从 github 上拉取 electron-sample-apps 后,运行 electron printing, 出现如下报错信息 解决方案 在 main.js 中增加 nodeIntegratio ...