学生信息管理系统的建立
目的
- 熟悉C语言程序的编辑、编译链接和运行的过程,至少能够用一种编译器较熟练地编辑、编译及调试程序。
- 掌握结构体类型变量、数组的定义和使用
- 掌握文件和文件指针的概念以及文件的定义方法,认识文件打开、关闭、读、写等文件基本操作函数
- 能用c语言中灵活运用链表
技术
要懂得如何用c语言创建一个文件,代码引用
FILE *fp=fopen("C:/Users/lenovo/Desktop/hml.txt","w");
fputs("abc",fp);
//struct student{
//char name[10];
//int age;
// };
//struct student xw1={"xiaowang",20};
//fwrite(&xw1,sizeof(struct student),1,fp);
类似于这种,首先要在电脑中输入cmd打开命令提升符,然后复制粘贴一个文件路径放到c语言中就可以了,类似上面那样的,要知道‘w“”r““a”等是什么意思,w就是只能写,r是只读,a是从末尾开始写
链表的建立,特别是在结构体当中的使用
具体的实现
首先要建立一个结构体,
typedef struct Node{
char name[10];
int _id;
float score;
struct Node *next;
} Student;
然后初始化一个头结点,并且要进行动态分配内存。
void inttHeader(student **pHeader){
student *pTemp=malloc(1*sizeof(student));
pTemp->next=NUll;
*pHeader=pTemp;
}
要有一个进入选择的界面,并进行选择,而且要有一个退出的界面。
void showMenu(void){
printf("************\n");
printf("1.查询\n");
printf("2.删除\n");
printf("3.更改\n");
printf("4.插入\n");
printf("5.退出\n");
printf("************\n");
}
int getChoice(void){
int c;
printf("请选择操作:");
scanf("%d", &c);
return c;
}
oid MyExit(int status){
printf("**************\n");
printf("感谢你的使用再见\n");
printf("**************\n");
要准备一个结构体保存数据,首先我们要插入学生的各种信息
void save(student *pTemp){
}
void insert(student *pTemp){
student *pstu=malloc(1*sizeof(student));
pstu->next=Null;
printf("请输入姓名:");
scanf("%s",pstu->name);
printf("请输入成绩:");
scanf("%f",&(pstu->next));
int count=0;
while(pTemp->next!=Null){
pTemp=pTemp->next;
count++;
}
pstu->_id=count+1;
pTemp->next=pstu;
}
然后我们就是要查询了
void querry(student *pTemp){
pTemp=ptemp->next;
while(pTemp!=Null){
printf("id:%id\n",pTemp->_id);
printf("name:%s\n",pTemp->name);
printf("score:%.1f\n",pTemp->score);
printf("\n");
pTemp=pTemp->next;
}
}
删除和更改也类似,创立两个函数,然后在main函数当中使用就行了
Student *pHeader = NULL;
initHeader(&pHeader);
int choice = 0;
while(1){
showMenu();
choice = getChoice();
switch (choice) {
case 1:
querry(pHeader);
break;
case 2:
delete(pHeader)
break;
case 3:
change(pHeader)
break;
case 4:
insert(pHeader);
printf("插入成功!!!\n");
break;
default:
MyExit(EXIT_SUCCESS);
break;
}
}
return 0;