#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;
}
}

}

最新文章

  1. VM(虚拟机安装win7 提示 :units specified don&#39;t exist, SHSUCDX can&#39;t install)解决方法
  2. servlet注解@PostConstruct与@PreDestroy
  3. 在C#程序中实现插件架构
  4. jQueryEasyUI
  5. Android之TelephonyManager类的方法详解
  6. linux第4天 shell socket
  7. Research on Unsupervised Word Alignment Based on Inversion Transduction Grammar
  8. (转)fastdfs group通过添加硬盘扩容
  9. CSS样式覆盖规则
  10. Redis学习-Set
  11. C# 创建Word项目标号列表、多级编号列表
  12. Jmeter性能测试之基础知识(一)
  13. mysql性能排查思路
  14. node基础—模块系统
  15. windows下linux子系统安装
  16. 初征——NOIP2018游记
  17. C# NameValueCollection集合 (转)
  18. C# 获取北京时间 (根据纪元时间(1970/1/1)转换为DateTime)
  19. xss编码小结
  20. (转载)Hadoop示例程序WordCount详解

热门文章

  1. js 碰撞+拖拽
  2. 在k3d上快速安装Istio,助你在本地灵活使用K8S!
  3. 组件/ 外层数据初始化时候,不应该触发 on-change 事件
  4. JavaScript 原型与继承
  5. MySQL笔记(3)-- SQL分析
  6. MySQL笔记(4)-- 索引优化
  7. navicat使用、pymysql连接数据库
  8. udp和tcp特点 实现文件上传
  9. python浅学【网络服务中间件】之Celery
  10. hdu1548 奇怪的电梯 dfs dijkstra bfs都可以,在此奉上dfs