⒈将想在控制台出现的初始页面用printf()函数展现出来
源码
#include<stdio.h>
int main(){
printf("***********************************\n");
printf("* 欢迎使用高校学生成绩管理系统 *\n");
printf("***********************************\n");
printf(" 请选择功能列表 \n");//也可写成printf("*\t\t请选择功能列表\t\t\t*\n");
printf("***********************************\n");//用制表符更方便省事
printf("* 1.录入学生信息 *\n");
printf("* 2.打印学生信息 *\n");
printf("* 3.保存学生信息 *\n");
printf("* 4.读取学生信息 *\n");
printf("* 5.统计所有学生人数 *\n");
printf("* 6.查找学生信息 *\n");
printf("* 7.修改学生信息 *\n");
printf("* 8.删除学生信息 *\n");
printf("* 0.退出系统 *\n");
printf("***********************************\n");
return 0;
}
控制台
2.用循环,可让程序执行无数次,用getch() 和switch语句来进入下一步,即实现程序功能
3实现功能1:
源码
//定义学生结构体
struct student{
char name[20];//姓名
int age;//年龄
int number;//学号
int score;//成绩
};
//建立链表
struct node{
struct student stu;//学生
struct node*pnext;//指向下一个节点的指针
};
struct node*head=NULL;//头节点
void input(){
//创建一个新节点
struct node*pnewnode=(struct node*)malloc(sizeof(struct node));
pnewnode->pnext=NULL;
//头插 尾插
//头插
if(head==NULL){
head=pnewnode;
}
else{
pnewnode->pnext=head;
head=pnewnode;
}
printf("请输入学生姓名:\n");
scanf("%s",pnewnode->stu.name);//name本身是一个数组,数组名能表示地址
printf("请输入学生年龄:\n");
scanf("%d",&pnewnode->stu.age);
printf("请输入学生学号:\n");
scanf("%d",&pnewnode->stu.number);
printf("请输入学生成绩:\n");
scanf("%d",&pnewnode->stu.score);
printf("学生信息录入成功。\n");
system("pause");//暂停
system("cls");//清屏
}
控制台结果
4.实现功能2:遍历链表
void print(){
printf("***********************************\n");
printf("* 欢迎使用高校学生成绩管理系统 *\n");
printf("***********************************\n");
printf("* 学 号 * 姓 名 * 年 龄 * 成 绩 *\n");
printf("***********************************\n");
//遍历链表
struct node*p=head;
while(p!=NULL){
printf("* %d * %s * %d * %d *\n",p->stu.number,p->stu.name,p->stu.age,p->stu.score);
p=p->pnext;
}
system("pause");//暂停
system("cls");//清屏
}
控制台
5.实现功能3
用文件打开读写函数 遍历列表 读写结构体整体即可
源代码
//保存学生信息
void save(){
//打开文件
FILE*fp=fopen("D:\\C代码\\to","w");
if(fp==NULL){
printf("打开文件失败");
return;
}
//遍历链表
struct node*p=head;
while(p!=NULL){
fwrite(&p->stu,1,sizeof(struct student),fp);
p=p->pnext;
}
//关闭指针
fclose(fp);
printf("保存数据成功\n");
system("pause");//暂停
system("cls");//清屏
}
输入的信息
控制台
保存的文件打开(计算机语言)
实现前三个功能完整代码
#include<stdio.h>
#include<conio.h>//用getch()需要包含的头文件
#include<stdlib.h>//malloc()需要包含的头文件
//定义学生结构体
struct student{
char name[20];//姓名
int age;//年龄
int number;//学号
int score;//成绩
};
//建立链表
struct node{
struct student stu;//学生
struct node*pnext;//指向下一个节点的指针
};
struct node*head=NULL;//头节点
//初页面函数
void start(){
printf("***********************************\n");
printf("* 欢迎使用高校学生成绩管理系统 *\n");
printf("***********************************\n");
printf(" 请选择功能列表 \n");//也可写成printf("*\t\t请选择功能列表\t\t\t*\n");
printf("***********************************\n");//用制表符更方便省事
printf("* 1.录入学生信息 *\n");
printf("* 2.打印学生信息 *\n");
printf("* 3.保存学生信息 *\n");
printf("* 4.读取学生信息 *\n");
printf("* 5.统计所有学生人数 *\n");
printf("* 6.查找学生信息 *\n");
printf("* 7.修改学生信息 *\n");
printf("* 8.删除学生信息 *\n");
printf("* 0.退出系统 *\n");
printf("***********************************\n");
}
//录入学生信息
void input(){
//创建一个新节点
struct node*pnewnode=(struct node*)malloc(sizeof(struct node));
pnewnode->pnext=NULL;
//头插 尾插
//头插
if(head==NULL){
head=pnewnode;
}
else{
pnewnode->pnext=head;
head=pnewnode;
}
printf("请输入学生姓名:\n");
scanf("%s",pnewnode->stu.name);//name本身是一个数组,数组名能表示地址
printf("请输入学生年龄:\n");
scanf("%d",&pnewnode->stu.age);
printf("请输入学生学号:\n");
scanf("%d",&pnewnode->stu.number);
printf("请输入学生成绩:\n");
scanf("%d",&pnewnode->stu.score);
printf("学生信息录入成功。\n");
system("pause");//暂停
system("cls");//清屏
}
//打印学生信息
void print(){
printf("***********************************\n");
printf("* 欢迎使用高校学生成绩管理系统 *\n");
printf("***********************************\n");
printf("* 学 号 * 姓 名 * 年 龄 * 成 绩 *\n");
printf("***********************************\n");
//遍历链表
struct node*p=head;
while(p!=NULL){
printf("* %d * %s * %d * %d *\n",p->stu.number,p->stu.name,p->stu.age,p->stu.score);
p=p->pnext;
}
system("pause");//暂停
system("cls");//清屏
}
//保存学生信息
void save(){
//打开文件
FILE*fp=fopen("D:\\C代码\\to","w");
if(fp==NULL){
printf("打开文件失败");
return;
}
//遍历链表
struct node*p=head;
while(p!=NULL){
fwrite(&p->stu,1,sizeof(struct student),fp);
p=p->pnext;
}
//关闭指针
fclose(fp);
printf("保存数据成功\n");
system("pause");//暂停
system("cls");//清屏
}
int main(){
while(1){
start();//初页面
char ch=getch();//从键盘输入一个字符getch()不需要输入完按回车,也可用scanf(),getchar等;
switch(ch){
case '1'://录入学生信息·
input();
break;
case '2'://打印学生信息·
print();
break;
case '3'://保存学生信息·
save();
break;
case '4'://读取学生信息·
break;
case '5'://统计所有学生人数·
break;
case '6'://查找学生信息·
break;
case '7'://修改学生信息·
break;
case '8'://删除学生信息·
break;
}
}
return 0;
}
后续会更新完整版 大家记得点点关注哟😘😘😘