资源简介
用申请动态内存的方式实现C语言学生信息管理系统, 可以实现学生的增、删、改、查、列、保存、加载等功能的实现,最大的特点就是全部用指针实现功能,不必进行传参,节省了内存。
代码片段和文件信息
#include
#include
#include
#define STU struct Student
#define LEN sizeof(struct Student)
void back();
struct Student{
int no; //学号
char name[40]; //名字
int age; //年龄
char sex; //性别
double score[3]; //语数英三门成绩
}*stu;
int id = 20191100; //学号 自动生成
int count = 0; //学生人数
void save(){ //保存文件
FILE *f = fopen(“file_stu.dat““w“);
if(f != NULL){
fwrite(&countsizeof(count)1f);
fwrite(stuLEN*countcountf);
fclose(f);
}
}
void load(){ //加载文件
FILE *f = fopen(“file_stu.dat““r“);
if(f != NULL){
fread(&countsizeof(count)1f);
fread(stuLEN*countcountf);
fclose(f);
}
}
STU *add(){ //增加学生
STU *p;
p = stu;
p+=count;
if(stu == NULL){
printf(“applied failed!\n“);
back();
return;
}
int flag = 1;
while(flag){
p->no = id+count;
printf(“please input student‘s name:“);
scanf(“%s“p->name);
printf(“please input student‘s age:“);
scanf(“%d“&p->age);
printf(“please input student‘s sex:“);
scanf(“%*[^\n]“);
scanf(“%*c“);
scanf(“%c“&p->sex);
printf(“please input student‘s score:“);
scanf(“%lf%lf%lf“&p->score[0]&p->score[1]&p->score[2]);
printf(“add student more?(1-YES0-NO)\n“);
scanf(“%d“&flag);
p++;
count++;
}
back();
return stu;
}
STU *delete(){ //删除学生
if(stu == NULL){
printf(“the list is empty!\n“);
back();
return stu;
}
STU *p;
p = stu;
int num;
printf(“please input student id that you want to delete:“);
scanf(“%d“&num);
int i = 0;
while(p[i].no !=num && i i++;
}
if(num == p[i].no){
for(;i p[i] = p[i+1];
}
count--;
}else{
printf(“student No:%d is not exist!\n“num);
}
back();
return stu;
}
STU *modif(){ //修改学生信息
if(stu == NULL){
printf(“the list is empty!\n“);
back();
return stu;
}
printf(“please input student‘s id that you want to modify:“);
int num;
scanf(“%d“&num);
STU *p;
p = stu;
int i = 0;
while(p->no != num && i i++;
p++;
}
if(p->no == num){
printf(“student No:%d ‘s information showed as below:\n“num);
printf(“ID:%d name:%s age:%d sex:%c\n“p->nop->namep->agep->sex);
printf(“chinese:%g math:%g english:%g\n“p->score[0]p->score[1]p->score[2]);
printf(“Please select the items you want to change:\n“);
printf(“1~name 2~age 3~sex 4~chinese score 5~math score 6~english score 0~done\n“);
while(1){
int opt;
scanf(“%d“&opt);
switch(opt){
case 1:
printf(“input new name:“);
scanf(“%s“p->name);
break;
case 2:
printf(“input new age:“);
scanf(“%d“&p->age);
break;
case 3:
prin
相关资源
- C语言嵌入式Modbus协议栈,支持主站和
- C语言封装的HttpClient接口
- C语言课设计算器
- C语言 学生兴趣管理系统
- c语言实现火车订票系统(控制台)源
- 模拟笔记本电脑(C语言实现)
- c语言实现竞技比赛打分系统
- KMP算法C语言程序
- Linux c语言 学生成绩管理系统
- 弹跳的小球(test.c)
- 林锐—高质量C编程
- 基于c语言的通讯录系统
- C语言全套课件与教学资料-哈工大
- 计算机二级C语言真题.docx
- C语言实现 设备信息管理系统
- GBT 28169-2011 嵌入式软件 C语言编码规范
- C语言标准库函数大全.chm
- C语言常用代码(分章节)
- c语言课程设计:客房登记系统源码
- C语言常用算法源代码
- 吕鑫:VS2015之博大精深的0基础C语言视
- c语言文都讲义2020
- c语言课件56883
- C语言推箱子win控制台
- C语言程序设计50例.docx
- 烟花优化算法(c语言版)
- C语言程序设计教材习题参考答案.do
- 数据结构(C语言版)ppt课件,清华,
- c语言编程经典例题100例 word版
- C语言编译器的设计与实现.doc
评论
共有 条评论