c语言增加学生信息(c语言请帮我弄一下增加学生的功能,运行不出来郁闷死了,万分感谢)

2026-01-26 06:15:02 0

c语言增加学生信息(c语言请帮我弄一下增加学生的功能,运行不出来郁闷死了,万分感谢)

大家好,今天小编来为大家解答以下的问题,关于c语言增加学生信息,c语言请帮我弄一下增加学生的功能,运行不出来郁闷死了,万分感谢这个很多人还不知道,现在让我们一起来看看吧!

本文目录

c语言请帮我弄一下增加学生的功能,运行不出来郁闷死了,万分感谢

void add()//头指针是全局变量,必须通过传递
{
stu *p,*q;
int j=0;//要初始化
p = (stu *)malloc(sizeof(stu));
system("cls");
printf("\n请输入所添加学生的序号:");
scanf("%d",&(p-》xuhao));
printf("\n请输入所添加学生的学号:");
scanf("%s",p-》num);
printf("\n请输入添加学生的姓名:");
scanf("%s",p-》name);
printf("\n请输入添加学生的性别:");
scanf("%s",p-》sex);
printf("\n请输入添加学生的年龄:");
scanf("%d",&(p-》age));
printf("\n请输入添加学生的电话:");
scanf("%s",p-》phone);
printf("\n请输入添加学生的专业:");
scanf("%s",p-》zhuanye);
printf("\n请输入添加学生的籍贯:");
scanf("%s",p-》address);
p-》next=NULL;
if(head==NULL)
{
head=p;//头指针为空,p作为新的头指针
}
q=head;//使q指向头结点
while(q-》next&&j 《 (p-》xuhao)-1)//要考虑p是头结点的情况
{
q=q-》next;
++j;
}
if(q != p){//p不是头结点才连接结点
p-》next=q-》next;//连接节点
q-》next=p;
}
}
void print_menu_main(){//主菜单
int selected = 0;//搜选
system("cls");//这个函数的作用是清屏
print_menu_tile(TITLE);//打印标题
printf("menu_main");//没看到menu_main 的定义
printf("=======================================\n");

while(!(selected 》= 1 && selected 《= MENU_MAIN_COUNT)){
printf("》请选择:");
scanf("%d",&selected);
if(selected 》= 1 && selected 《= MENU_MAIN_COUNT){
break;
}
printf("\n》输入错误!(注:请选择 1 - %d)\n", MENU_MAIN_COUNT);
//break;//不要break;
}
menu_main_func();//功能菜单
}
目前就看到这些问题,如果还有问题,贴出问题的图

求用C语言怎么实现学生信息录入功能

* 1。根据学生信息定义一个结构体类型,再说明一个该结构体类型的数组。*/
struct stu_info{
char stuNo;/* No */
char stuName;/* Name */
float stuScore;/* the three scores */
float aveScore; /* average score */
float totalScore; /* total score */
}stu;
/* 2。用input函数从键盘上输入10个学生的数据。 */
void input()
{ int i = 0;
printf("Input the students’ infomation(FORMAT LIKE:No Name score1 score2 score3):\n");
while(i 《 10)
{ printf("Input %d:",i + 1);
scanf("%s%s%f%f%f",stu);
i++;
}
}

c语言程序设计学生信息管理系统中如何插入学生信息

真有点累人啊,汗~~~~~~
不过,你的要求这些代码都能满足了,
可能会有点小错误,我这儿也无法验证,总之总体的思路是完全正确的。
#include 《stdio.h》
#include 《string.h》 //字符串头文件
#include 《windows.h》 //Sleep函数的头文件
#include 《conio.h》 //getch函数的头文件
#define N 50
//定义全局变量
//定义学员结构体
typedef struct Student
{

char name;//姓名
int NO;//学号
char sex;//性别
char subject;//专业
int phone;//电话
char jianli;//简历
}STU;
//声明这种学员类型的数组
STU stu;
//计数器n
int n=0; //代表数组的实际人数
//登录函数
void login()
{
system("color 2A");//定义背景和前景颜色
//登录模块实现代码
char Yonghu;
char Mima;
for(int i=0;i《3;i++)
{
// 打印登陆界面
Sleep(500);//定时打印
printf("\n\n\t\t\t\t学员管理系统平台\n");

Sleep(500);

printf("\n\t\t\n");
Sleep(500);
printf("\n\t\t\t\t用户名:");
gets(Yonghu);
printf("\n\t\t\t\t密码:");
char let=NULL;//定义一个字符变量为空值
int j=0; //代表密码的实际长度
while(j《10 && let!=13)//定义密码长度和当接收的字符不为回车键(回车键的ASCLL码值为13)时
{
let=getch();//获得字符 不显示
if(let!=8)//当接收的字符不为退格键(退格键的ASCLL码值为8)时
{
Mima=let;//将接收的字符赋给数组Mima并自加一个长度
printf("*");
}
else
{
if(j》0)//当密码长度不为0时
{
//删除字符的操作
putchar(8);
putchar(’ ’);
putchar(8);
Mima=NULL;//将空值赋给数组Mima并自减一个长度
}
}
}
Mima=NULL;
putchar(8);//消除因回车键所打印的*
putchar(’ ’);
putchar(8);
putchar(’\0’);//字符串结束标记
//验证密码
if(strcmp(Yonghu,"姓名")==0 && strcmp(Mima,"123456")==0)//用比较函数判断用户输入的用户名和密码是否正确
{
//调用dos命令清空控制台屏幕
system("cls");
printf("\n\n\n\n\n\t\t\t正在登录菜单界面,请稍候...");
for(int i=0;i《=5;i++)
{
Sleep(666);
printf("》》》");
}
for(int i=0;i《=100;i++)
{
system("cls");
//%%为百分号
printf("\n\n\n\n\n\n\n\t\t\t\t正在加载数据中...%d%%",i);
}
system("cls");
printf("\n\n\n\n\n\n\n\t\t\t\t加载数据成功,loding.....\n");
break;//跳出for循环
}
else
{
if(i《2)//用户输入错误不超过2次
{
system("cls");
printf("\n\n\n\n\n\n\n\n\n\n");
Sleep(1000);
printf("\t:抱歉,您输入的用户名或密码错误,请重新输入!\n");
}
else//用户3次输入都错误时
{
system("cls");
printf("\n\n\n\n\n\n\n\n\n\n");
Sleep(1000);
printf("\t:Sorry,您输入的用户名或密码错误次数太多,请休息一会再来!\n");break;
}
}
Sleep(2000);
//调用dos命令清空控制台屏幕
system("cls");
}
}
//菜单函数
void menu()
{
Sleep(2000);
//调用dos命令清空控制台屏幕
system("cls");
//打印功能菜单界面
Sleep(500);
printf("\n\n\t\t\t\t学员管理系统平台\n");

Sleep(500);
printf("\n\t\t************************************************\n");
Sleep(500);
printf("\n\t\t功能菜单:\n\n");
Sleep(1000);

printf("\t\t 1、录入单个学员信息 2、显示所有学员信息\n");

Sleep(1000);

printf("\t\t 3、排序显示学员信息 4、插入单个学员信息\n");

Sleep(1000);

printf("\t\t 5、删除单个学员信息 6、查找单个学员信息\n");

Sleep(1000);

printf("\t\t 7、读取所有学员信息 8、保存所有学员信息\n");

Sleep(1000);

printf("\t\t 9、清空全部学员信息 0、退出学员管理系统\n");

}
//录入函数
void input()
{
int i;
char answer;

do
{
//录入学号
do
{
printf("学号:");
scanf("%d",&stu.NO);
// 判断输入格式是否有错
while(stu.NO》50)
{
printf("\t:输入格式有误,请重新输入!\n");
fflush(stdin); //判断输入其它字符(如:a,b,aa,skd...)时报错
printf("学号:");
scanf("%d",&stu.NO);
}
//循环遍历输入的学号是否重复
for(i=0;i《n;i++)
{
if(stu.NO)
{
printf("\t:学号重复,请重新输入!\n");
break;
}
}
}while(i《n);
//录入姓名
do
{
printf("姓名:");
scanf("%s",stu.name);
//判断输入时姓名是否为空
while(strlen(stu.name)==0)
{
printf("\t:姓名不能为空,请重新输入!\n");
printf("姓名:");
scanf("%s",stu.name);
}
// 判断输入时姓名是否含有数字
for(i=0;i《strlen(stu.name);i++)
{
if(stu《=’9’)
{
printf("提示:姓名不能含有数字,请重新输入!\n");
break;
}
}
}while(i《strlen(stu.name));
//录入性别
do
{
printf("性别");
scanf("%s",stu.sex);
}while(i《strlen(stu.sex));

//录入专业
do
{
printf("专业");
scanf("%s",stu.subject);
}while(i《strlen(stu.subject));

//录入联系电话
do
{
printf("电话号码");
scanf("%s",&stu.phone);
}while(i《strlen(stu.phone));

//录入简历
do
{
printf("简历\n");
scanf("%s",stu.jianli);
}while(i《strlen(stu.jianli);
n++;//实际的人数自加一次
//判断输入成绩的实际人数是否超出已定内存空间
if(n《N)
{
printf("是否继续录入?(y/n):");
fflush(stdin);//清空缓存
scanf("%c",&answer);
}
else
{
printf("实际人数超出已定存储空间的内存,程序终止!\n");
break;
}
}while(answer==’Y’ || answer==’y’);
}
//显示函数
void display()
{
//打印表头
printf("********************************************************************************\n");
printf("学号\t姓名\t性别\t专业\n");
printf("********************************************************************************\n");
//循环打印学员信息
for(int i=0;i《n;i++)
{
printf("%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",stu.subject);
printf("********************************************************************************\n");
}
printf("\n联系电话\n");
for(int i=0;i《n;i++)
{
printf("%d\n",stu.phone);
printf("********************************************************************************\n");
}
printf("\n学历\n");
for(int i=0;i《n;i++)
{
printf("%s",stu.jianli);
printf("********************************************************************************\n");
}
}
//排序函数
void sort()
{
STU temp;//定义临时变量
int i,j;
//冒泡排序
for(i=0;i《n-1;i++)
{
for(j=0;j《n-1-i;j++)
{
if(stu.avg)
{
temp=stu;
stu;
stu=temp;
}
}
}
}
//插入函数
void insert()
{
int i,j;//定义循环变量
STU newStu;//定义实行插入功能时输入的类型
char answer;
printf("单个学员信息的循环插入:\n");
do
{
do
{
printf("学号:");
scanf("%d",&newStu.NO);
// 判断输入格式是否有错
while(newStu.NO《=0 || newStu.NO》50)
{
printf("\t:输入格式有误,请重新输入!\n");
fflush(stdin); //判断输入其它字符(如:a,b,aa,skd...)时报错
printf("学号:");
scanf("%d",&newStu.NO);
}
//循环遍历输入的学号是否重复
for(i=0;i《n;i++)
{
if(stu.NO==newStu.NO)
{
printf("\t:学号重复,请重新输入!\n");
break;
}
}
}while(i《n);
do
{
printf("姓名:");
scanf("%s",&newStu.name);
//判断输入时姓名是否为空
while(strlen(newStu.name)==0)
{
printf("\t:姓名不能为空,请重新输入!\n");
printf("姓名:");
scanf("%s",newStu.name);
}
// 判断输入时姓名是否含有数字
for(i=0;i《strlen(newStu.name);i++)
{
if(newStu.name《=’9’)
{
printf("提示:姓名不能含有数字,请重新正确输入!\n");
break;
}
}
}while(i《strlen(newStu.name));
n++;//实际的人数自加一次
sort();//调用排序函数
//循环遍历找位置
for(i=0;i《n;i++)
{
if(newStu.avg》stu.avg)
{
j=i;
break;
}
}
//移位
for(i=n;i》j;i--)
{
stu;
}
stu=newStu;//将newStu插入到j的位置

//判断插入的实际人数是否超出已定内存空间
if(n《N)
{
printf("是否继续插入?(y/n):");
fflush(stdin);//清空缓存
scanf("%c",&answer);
}
else
{
printf("实际人数超出已定存储空间的内存,程序终止!\n");
break;
}
}while(answer==’Y’ || answer==’y’);
}
//删除函数
void remove()
{
int i,j,no;
char answer;
do
{
printf("请输入要删除学员的学号:");
scanf("%d",&no);
//循环遍历找位置
for(i=0;i《n;i++)
{
if(no==stu.NO)
{
j=i;
break;
}
}
//移位
if(i《n)
{
for(i=j;i《n-1;i++)
{
stu;
}
n--;//实际人数自减一个
printf("\n\n系统在第%d个位置找到了学号为%d的学员!\n",j+1,no);
}
else
{
printf("没有找到您要删除的学员学号,请重新选择功能!\n");
}
//判断是否已经没有可以删除的人数
if(n》0)
{
printf("是否继续删除?(y/n):");
fflush(stdin);//清空缓存
scanf("%c",&answer);
}
else
{
printf("已经没有可以删除的人数了,程序终止!\n");
break;
}
}while(answer==’Y’ || answer==’y’);
}
//查找函数
void search()
{
int i,no;
char answer;
printf("请输入您要查找学员的学号:");
scanf("%d",&no);

do
{
//循环遍历找位置
for(i=0;i《n;i++)
{
if(stu.NO==no)
{
break;
}
}
if(i《n)
{
printf("\n\n系统在第%d个位置找到了学号为%d的学员!\n",i+1,no);
printf("该学员的信息如下:\n");
printf("********************************************************************************\n");
printf("学号\t姓名\t成绩一\t成绩二\t成绩三\t平均分\t总分\n");
printf("********************************************************************************\n");
printf("%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",stu.sum);
printf("********************************************************************************\n");
}
else
{
printf("\n提示:对不起,没有找到学号为%d的学员\n",no);
}
//判断是否继续查询
printf("是否继续查询?(y/n):");
fflush(stdin);//清空缓存
scanf("%c",&answer);
}while(answer==’Y’ || answer==’y’);
}
//读取函数
int read()
{
FILE *fp;//定义文件指针变量
fp=fopen("e:\\xueyuanguanlixitong.txt","rt");
int n=fread(stu,sizeof(STU),N,fp);
return n;

}
//保存函数
void save()
{
FILE *fp;//定义文件指针变量
fp=fopen("e:\\xueyuanguanlixitong.txt","wb");
fwrite(stu,sizeof(STU),n,fp);
fclose(fp);
printf("已保存在:e:\\xueyuanguanlixitong.txt\n");
printf("\n\n\n\n\n\t\t\t\t保存成功!O(∩_∩)O~\n");
}
//主函数
void main()
{
login();//调用登录函数
int choice,i;//定义用户选择变量
do
{
//显示菜单
menu();
printf("\n\t请选择:");
scanf("%d",&choice); //接受用户选择
switch(choice)
{
case 1:
system("cls"); //清屏
printf("\n单个学员信息的循环录入\n");
input();
display();
system("pause");
break;
case 2:
system("cls");
display();
system("pause"); //暂停一下程序
break;
case 3:
system("cls");
if(n==0)
{
printf("\t\t学员个数为0,无法排序,请先录入!\n");
system("pause");
break;
}
else
{
sort(); ;//调用排序函数
system("pause");
break;
}
case 4:
system("cls");
insert(); //调用插入函数
system("pause");
break;
case 5:
system("cls");
remove(); //调用删除函数
system("pause");
break;
case 6:
system("cls");
search(); //调用查找函数
system("pause");
break;
case 7:
system("cls");
n=read(); //调用读取函数
printf("读取成功!\n");
system("pause");
break;
case 8:
system("cls");
save(); //调用保存函数
system("pause");
break;
case 9:
system("cls");
n=0; //清空学员个数
printf("清空完成!\n");
system("pause");
break;
case 0: //退出程序
system("cls");
for(i=5;i》=0;i--)
{
Sleep(1000);
system("cls");
printf("\n\n\n\n\n\n\n\n\n\n\n\n\t\t请稍等,还有%d秒推出程序!\n\n\n",i);
}
system("cls");
printf("\n\n\n\n\n\n你已经成功退出程序\n\t\t谢谢使用,欢迎再次登录!\n");
exit(0);
break;
default:
system("cls");
printf("\n\n\n\n\n\t\t请选择0-9之间的数!\n");
system("pause");
}
}while(1);
}

c语言学生管理系统中的增加学生信息

#include《iostream.h》
#include《iomanip.h》
#include《windows.h》
#include 《conio.h》
void back();//返回开始菜单
void out();//输出信息
int w=1; //用于记录学生人数,全局变量
class Data//日期类
{public:
double Year,Month,Day;
Data()
{ Year=0;Month=0;Day=0; }
};
class student //学生类
{
public:
char name; //姓名
char sex; //性别
char jiguan; //籍贯
int num,age;//学号,年龄
char adr;//住址
Data year;
friend class Data;//date作为student的友元 //定义一个日期类
void operator=(student s); //=重载
int operator == (student s);//==重载
}stu;
void main()
{
system("cls");//清屏 DOC调用
system("color f4"); //颜色 同样是调用doc
int i;
void comp();
void input();
void find();
void alt() ;
void del();
void exit();
void show();
cout《《setw(53)《《"欢迎进入学生管理系统!"《《endl;
cout《《setw(55)《《"1 添加学生信息 2 查询学生信息"《《endl《《endl;
cout《《setw(55)《《"3 删除学生信息 4 修改学生信息"《《endl《《endl;
cout《《setw(55)《《"5 比较学生信息 6 显示学生信息"《《endl《《endl;
cout《《setw(45)《《"0 推出系统"《《endl;
cout《《"请选择:";
cin》》i;
if(i》6||i《0)
{
cout《《"输入有误!"《《endl;
back();
}
switch(i)
{
case 1:input();break;
case 2:find();break;
case 3:del();break;
case 4:alt();break;
case 5:comp();break;
case 6:show();break;
case 0:exit();break;
default:cout《《"你的输入有误!\n";
}
}
void input() //添加学生
{
system("color 84"); //颜色 同样是调用doc
system("cls");//清屏
int n;
cout《《"请输入要添加的学生个数:\n";
cin》》n;
if(n》=100||n《=0)
{cout《《"输入有误!《《endl";
main(); }
else
{
for(;n》0;w++,n--)
{
cout《《"请输入姓名、性别、籍贯,年龄,学号,住址:"《《endl;
cin》》stu.adr ;
cout《《"请输入该生生日(年 月 日)"《《endl;
cin》》stu.year.Year;
cin》》stu.year.Month;
cin》》stu.year.Day;
}
out();
}
cout《《"添加完毕2秒后返回"《《endl;
Sleep(2000); //延时2秒
main();
}
void find() //按学号查找学生
{
system("color f4"); //颜色 同样是调用doc
system("cls");
int i,id,j=0;//j是用以记录是否有信息被找到
cout《《"请输入你要查找学生的学号:";
cin》》id;
for(i=1;i《w;i++)
if(stu.num ==id)
{
cout《《i《《" "《《stu.adr《《endl;
j++;
}
if(j==0)
cout《《"没有你要查找的信息";
back();
}
void del()//删除指定学号学生信息
{
system("color f4"); //颜色 同样是调用doc
int i,a,y=0;
char x;
cout《《"请输入要删除的学生学号";
cin》》a;
for(i=1;i《w;i++)
if(stu.num==a)
{
cout《《"该生情况:"《《endl;
cout《《i《《" "《《stu.adr《《endl;
cout《《"是否确认删除?(Y/N)"《《endl;
cin》》x;
if(x==’Y’||x==’y’)
{
y++;
for(;i《w-1;i++)
stu;
w--;//每删除一个对总是减少一个
}
}

用C语言编写录入学生信息(学号、性别、年龄、院系 )

//自己再添上性别 什么的就行
#include 《string.h》
#include 《stdio.h》
#include 《stdlib.h》
#define _COURSES 3//定义科目数
#define _LEN sizeof(student)//定义结构体大小
//枚举返回值情况
enum status
{
OVERFLOW = -1,//内存(溢出)问题
DONE = 0,//成功
NOFOUND = 1,//不存在
OPENFAIL = 2,//打开(文件)失败
BACK = 3//返回
};
//end
//定义学生信息结构体
typedef struct StudentInfo
{
//数据域
unsigned int num;//学号
char name;//姓名
float scores;//各科成绩
//指针域
struct StudentInfo *next;//存放下一节点的地址
}student;
//end
student *head=NULL;//声明链表头结点
student *curr=NULL;//声明指向当前节点的指针
int total = 0;//声明当前节点个数
int init();//初始化链表
int add_stu();//添加新节点
int show_all();//显示所有学生信息
int find_stu();//查找指定信息节点
int modify_stu();//修改指定信息节点
int remove_stu();//删除指定信息节点
int sort_list();//对链表排序
int save_to_file();//将所有信息保存至文件
int read_from_file();//从文件中读取信息
void about();//关于
int quit();//释放所有节点空间
int entering(student *input);//录入学生信息
void show_stu(student *show, int serial);//显示指定学生信息
void start();//程序开始界面
void change(student *former, student *latter, student *temp);//交换两个节点的数据域
void main()
{
int choice=0;
init();
while(1)
{
system("cls");
start();
printf("请选择:");
scanf("%d",&choice);
fflush(stdin);//清空缓冲区
switch (choice)
{
case 1:
{
add_stu();
break;
}
case 2:
{show_all();
break;
}
case 3:
{
find_stu();
break;
}
case 4:
{
modify_stu();
break;
}
case 5:
{
remove_stu();
break;
}
case 6:
{
sort_list();
break;
}
case 7:
{
save_to_file();
break;
}
case 8:
{
read_from_file();
break;
}
case 9:
{
about();
break;
}
case 0:
{
quit();
exit(0);
break;
}
default:{break;}
}
system("pause");
}
}
/*******************************************************/
/*功能: 初始化带头结点的链表,头结点指针域置空 */
/* */
/*返回: */
/*******************************************************/
int init()
{
head = (student *)malloc(_LEN);//为头结点申请空间
if (!head)
{//如果申请空间失败,返回
return OVERFLOW;
}
head-》next = NULL;//指向下一节点(空)
curr = head-》next;//当前节点指针指向第一个结点
total = 0;//当前节点个数初始化为0(头结点不计算在内)
return DONE;
}
/*******************************************************/
/*功能:头插法添加新节点,并刷新学生人数 */
/* */
/*返回: */
/*******************************************************/
int add_stu()
{
student *add = (student *)malloc(_LEN);
curr = head-》next;//当前节点指针指向第一个节点

printf("\t====当前已存入 %d 个同学\n",total);
printf("请输入第 %d 个学生的信息\n",total+1);
if (BACK == entering(add))
{
free(add);
return BACK;
}

head-》next = add;//头结点指针域指向新建的节点
add-》next = curr;//新建节点指针域指向第一个节点
curr = add; //当前节点指向新建的节点
total += 1; //更新学生总人数
return DONE;
}
/*******************************************************/
/*功能:显示所有学生信息 */
/* */
/*返回: */
/*******************************************************/
int show_all()
{
if ( 0 == total )
{
printf("\t====没有可供显示的学生信息!\n");
return NOFOUND;
}
curr = head-》next;//当前节点指针指向第一个节点
printf("\t%4s%12s%12s","序号","学号","姓名");
for (int m=0; m《_COURSES; m++)
{
printf("%7s","科目");
}
printf("\n");
printf("\t-------------------------------------------------------------\n");
for (int i=1; i《=total; i++)
{
show_stu(curr,i);
curr = curr-》next;//当前节点指针后移
}
printf("\t-------------------------------------------------------------\n");
return DONE;
}
/*******************************************************/
/*功能:查找指定学生信息 */
/* */
/*返回: */
/*******************************************************/
int find_stu()
{
char stu_name;
int flag=1;
printf("请输入要查找的学生姓名:");
scanf("%s",stu_name);
curr = head-》next;//指向第一个节点
while (curr != NULL)
{
if (strcmp(stu_name,curr-》name) == 0)
{
printf("\t%4s%12s%12s","序号","学号","姓名");
for (int m=0; m《_COURSES; m++)
{
printf("%7s","科目");
}
printf("\n");
printf("\t-------------------------------------------------------------\n");
show_stu(curr,flag);
return DONE;
}
curr = curr-》next;
++flag;
}
printf("\t====没有找到 %s !请仔细核对姓名再查找\n",stu_name);
return NOFOUND;
}
/*******************************************************/
/*功能:修改指定学生的所有信息 */
/* */
/*返回: */
/*******************************************************/
int modify_stu()
{
char stu_name;
int flag=1;
curr = head-》next;//指向第一个节点
printf("请输入要修改的学生的姓名:");
scanf("%s",stu_name);
while (curr != NULL)
{
if (strcmp(stu_name,curr-》name) == 0)
{
printf("\t%4s%12s%12s","序号","学号","姓名");
for (int m=0; m《_COURSES; m++)
{
printf("%7s","科目");
}
printf("\n");
printf("\t-------------------------------------------------------------\n");
show_stu(curr,flag);
entering(curr);
printf("\t====成功修改了 %s 的所有信息!\n",stu_name);

return DONE;
}
curr = curr-》next;
++flag;
}
printf("\t====没有找到 %s !请仔细核对姓名\n",stu_name);
return NOFOUND;
}
/*******************************************************/
/*功能:删除指定学生 */
/* */
/*返回: */
/*******************************************************/
int remove_stu()
{
student *pre=head;
char stu_name;
curr = head-》next;//指向第一个节点
printf("请输入要删除的学生的姓名:");
scanf("%s",stu_name);

while (curr != NULL)
{
if (strcmp(stu_name,curr-》name) == 0)
{
pre-》next = curr-》next;//
free(curr);//
--total;//
printf("\t====已成功删除\"%s\"\n",stu_name);

return DONE;
}
pre = pre-》next;
curr = curr-》next;
}
printf("\t====没有找到 %s !请仔细核对姓名\n",stu_name);
return NOFOUND;
}
/*******************************************************/
/*功能:对所有学生排序 */
/* */
/*返回: */
/*******************************************************/
int sort_list()
{
student *temp = (student *)malloc(_LEN);
student *curr_i = head-》next;
student *curr_j = NULL;
char choice=’0’;

printf("\t \t1----按学号排序 .\t2----按姓名排序 . \n");
printf("\t \t3----按科目排序 .\t0----退 出 排 序. \n");
printf("请选择:");
scanf("%c",&choice);
fflush(stdin);
switch (choice)
{
case ’1’:
{
while(curr_i-》next != NULL)
{
curr_j = curr_i-》next;
while (curr_j != NULL)
{
if (curr_i-》num 》 curr_j-》num)
{
change(curr_i,curr_j,temp);
}
curr_j = curr_j-》next;
}
curr_i = curr_i-》next;
}
printf("\t====排序成功!\n");
break;
}
case ’2’:
{
while(curr_i-》next != NULL)
{
curr_j = curr_i-》next;
while (curr_j != NULL)
{
if (strcmp(curr_i-》name , curr_j-》name) 》 0)
{
change(curr_i,curr_j,temp);
}
curr_j = curr_j-》next;
}
curr_i = curr_i-》next;
}
printf("\t====排序成功!\n");
break;
}
case ’3’:
{
while(curr_i-》next != NULL)
{
curr_j = curr_i-》next;
while (curr_j != NULL)
{
if (curr_i-》scores)
{
change(curr_i,curr_j,temp);
}
curr_j = curr_j-》next;
}
curr_i = curr_i-》next;
}
printf("\t====排序成功!\n");
break;
}
case ’0’:
{
free(temp);
return BACK;
}
default:
{printf("\t====输入有误!\n");break;}
}
free(temp);
return DONE;
}
/*******************************************************/
/*功能:保存数据到文件 */
/* */
/*返回: */
/*******************************************************/
int save_to_file()
{
curr=head-》next;
if (total == 0)
{
printf("\t====目前还没有任何信息,不用保存!\n");
return BACK;
}
FILE *fp;
if((fp=fopen("record.dat","wb"))==NULL)
{
printf("\t====文件打开失败!\n");
return OPENFAIL;
}
while (curr != NULL)
{
//将数据成块写入文件
fwrite((char *)curr, _LEN, 1, fp);
curr=curr-》next;
}
fclose(fp);
printf("\t====信息已成功保存至文件\"record.dat\"文件中\n");
return DONE;
}
/*******************************************************/
/*功能:从文件中读取数据 */
/* */
/*返回: */
/*******************************************************/
int read_from_file()
{
char judge=’y’;
FILE *fp;
if((fp=fopen("record.dat","r"))==NULL)
{
printf("文件不存在或者打开失败!\n");
return OPENFAIL;
}
printf("\t====读取文件会覆盖当前信息!是否确定载入文件?(y/n):");
scanf("%c",&judge);
if (judge==’n’ || judge==’N’)
{
return BACK;
}
quit();//释放以前所有信息的空间
init();//重新初始化链表
curr = head;//当前节点指针指向头结点

student *add=(student *)malloc(_LEN);//申请空间存放读取的信息

while (fread((char *)add, _LEN, 1, fp))
{//由于存储的信息是最新的信息在前,所以读取的时候将其添加在链表尾
add-》next=curr-》next;
curr-》next=add;
curr=add;
add=(student *)malloc(_LEN);
++total;
}
fclose(fp);
printf("\t====文件载入成功!当前已有%d个学生。\n",total);
return DONE;
}
/*******************************************************/
/*功能: */
/* */
/*返回: */
/*******************************************************/
void about()
{
printf("\t#############################################################\n");
printf("\n\t \t欢迎各位用户反馈Bug或提出宝贵的意见和建议 \n");
printf("\t \t联系方式 \n");
printf("\t \t手 机:13667102098 \n");
printf("\t \tE-mail:Never_S@126.com \n");
printf("\n\t \t\tC语言学生成绩管理系统1.0版\n\n");
printf("\t#############################################################\n");
}
/*******************************************************/
/*功能:释放内存 */
/* */
/*返回: */
/*******************************************************/
int quit()
{
curr =head-》next;
student *temp=curr;
while(curr != NULL)
{
temp=curr-》next;
free(curr);
curr=temp;
}
curr=NULL;
temp=NULL;
free(head);//释放头节点
return DONE;
}
//////////////////////////////////////////////////////////////////////////
/*******************************************************/
/*功能:录入一个学生的全部信息 */
/* */
/*返回: */
/*******************************************************/
int entering(student *input)
{
printf("\n请输入学生的学号(输入0退出添加):");
scanf("%d",&input-》num);
if (0 == input-》num)
{
return BACK;
}
printf("请输入学生的姓名(五个汉字以内):");
scanf("%s",&input-》name);
printf("请输入%d门科目的成绩(用空格隔开):", _COURSES);
for (int i=0; i《_COURSES; i++)
{
scanf("%f",&input-》scores);
}
return DONE;
}
/*******************************************************/
/*功能:显示指定学生的所有信息 */
/* */
/*返回: */
/*******************************************************/
void show_stu(student *show, int serial)
{
printf("\t%4d%12d%12s",serial,show-》num,show-》name);
for (int i=0; i《_COURSES; i++)
{
printf("%7.1f",show-》scores);
}
printf("\n");
}
/*******************************************************/
/*功能:根据权限进入不同的界面 */
/* */
/*返回: */
/*******************************************************/
void start()
{
printf("\n");
printf("\t\t\t欢迎使用学生成绩管理系统\n");
printf("\t*************************************************************\n");
printf("\t|\t1----添 加 学 生.\t2----显 示 信 息. |\n");
printf("\t|\t3----查 找 学 生.\t4----修 改 信 息. |\n");
printf("\t|\t5----删 除 学 生.\t6----学 生 排 序. |\n");
printf("\t|\t7----信 息 存 档.\t8----读 取 存 档. |\n");
printf("\t|\t9----关 于.\t0----退 出. |\n");
printf("\t*************************************************************\n");
}
/*******************************************************/
/*功能: */
/* */
/*返回: */
/*******************************************************/
void change(student *former, student *latter,student *temp)
{
*temp = *former;
strcpy(former-》name , latter-》name);
strcpy(latter-》name , temp-》name);
former-》num = latter-》num;
latter-》num = temp-》num;
for (int i=0; i《_COURSES; i++)
{
former-》scores;
latter-》scores;
}
}

以上就是我们为大家找到的有关“c语言增加学生信息(c语言请帮我弄一下增加学生的功能,运行不出来郁闷死了,万分感谢)”的所有内容了,希望可以帮助到你。如果对我们网站的其他内容感兴趣请持续关注本站。

c语言增加学生信息(c语言请帮我弄一下增加学生的功能,运行不出来郁闷死了,万分感谢)

本文编辑:admin

更多文章:


wireshark没有找到接口(我在windows xp上安装了wireshark软件,结果提示There are no interfaces on which a capture can be done)

wireshark没有找到接口(我在windows xp上安装了wireshark软件,结果提示There are no interfaces on which a capture can be done)

本篇文章给大家谈谈wireshark没有找到接口,以及我在windows xp上安装了wireshark软件,结果提示There are no interfaces on which a capture can be done对应的知识点,

2025年7月31日 03:30

结束正在运行的程序快捷键(电脑关闭程序快捷键 都有哪些呢)

结束正在运行的程序快捷键(电脑关闭程序快捷键 都有哪些呢)

“结束正在运行的程序快捷键”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看结束正在运行的程序快捷键(电脑关闭程序快捷键 都有哪些呢)!本文目录电脑关闭程序快捷键 都有哪些呢在电脑上结束任务的快捷键是什么(按哪个键结束程序)电

2025年7月3日 03:45

零基础学php培训(昌平IT培训分享学PHP想快点学会要怎么办)

零基础学php培训(昌平IT培训分享学PHP想快点学会要怎么办)

大家好,如果您还对零基础学php培训不太了解,没有关系,今天就由本站为大家分享零基础学php培训的知识,包括昌平IT培训分享学PHP想快点学会要怎么办的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录昌平IT培训分享

2025年12月27日 23:30

维吉尼亚密码怎么用(令n=26,s=4,密钥k=QEGD,明文串M=computer,用维吉尼亚密码体制对M加密)

维吉尼亚密码怎么用(令n=26,s=4,密钥k=QEGD,明文串M=computer,用维吉尼亚密码体制对M加密)

“维吉尼亚密码怎么用”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看维吉尼亚密码怎么用(令n=26,s=4,密钥k=QEGD,明文串M=computer,用维吉尼亚密码体制对M加密)!本文目录令n=26,s=4,密钥k=QE

2026年4月2日 23:45

化妆品入库表单模板(出库单和入库单怎么弄的表格)

化妆品入库表单模板(出库单和入库单怎么弄的表格)

本篇文章给大家谈谈化妆品入库表单模板,以及出库单和入库单怎么弄的表格对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录出库单和入库单怎么弄的表

2025年10月8日 14:30

下载php的软件(php开发软件有哪些(php用什么软件))

下载php的软件(php开发软件有哪些(php用什么软件))

这篇文章给大家聊聊关于下载php的软件,以及php开发软件有哪些(php用什么软件)对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录php开发软件有哪些(php用什么软件)php开发软件有哪些php项目开发用什么软件学php要

2025年9月22日 21:15

isnull()方法的作用(sqlserver中isnull(@RecIndex,’’) <> ’’是什么意思)

isnull()方法的作用(sqlserver中isnull(@RecIndex,’’) <> ’’是什么意思)

其实isnull()方法的作用的问题并不复杂,但是又很多的朋友都不太了解sqlserver中isnull(@RecIndex,’’) ’’是什么意思,因此呢,今天小编就来为大家分享isnull()方法的作用的一些知识,希望可以帮助到大家,

2026年7月2日 14:45

永久免费个人网站申请注册w(如何注册免费网站)

永久免费个人网站申请注册w(如何注册免费网站)

本篇文章给大家谈谈永久免费个人网站申请注册w,以及如何注册免费网站对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录如何注册免费网站个人网站有

2025年11月22日 18:00

constructed environment翻译(翻译下面这段文字)

constructed environment翻译(翻译下面这段文字)

各位老铁们,大家好,今天由我来为大家分享constructed environment翻译,以及翻译下面这段文字的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始

2025年9月26日 03:00

interface如何读(请教几个英文怎么读)

interface如何读(请教几个英文怎么读)

其实interface如何读的问题并不复杂,但是又很多的朋友都不太了解请教几个英文怎么读,因此呢,今天小编就来为大家分享interface如何读的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录请教几个英文怎么读r

2025年12月2日 14:30

广州中小企业网站制作(怎么做中小企业网站呢)

广州中小企业网站制作(怎么做中小企业网站呢)

其实广州中小企业网站制作的问题并不复杂,但是又很多的朋友都不太了解怎么做中小企业网站呢,因此呢,今天小编就来为大家分享广州中小企业网站制作的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录怎么做中小企业网站呢我想建

2026年6月10日 16:15

spite词组(in spite of中spite是恶意,为什么变成短语是尽管的意思)

spite词组(in spite of中spite是恶意,为什么变成短语是尽管的意思)

各位老铁们好,相信很多人对spite词组都不是特别的了解,因此呢,今天就来为大家分享下关于spite词组以及in spite of中spite是恶意,为什么变成短语是尽管的意思的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看

2025年9月18日 03:45

mvc模式和责任链(网站开发模式除了MVC外还有什么)

mvc模式和责任链(网站开发模式除了MVC外还有什么)

这篇文章给大家聊聊关于mvc模式和责任链,以及网站开发模式除了MVC外还有什么对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录网站开发模式除了MVC外还有什么软件设计模式主要有哪几种mvc开发模式java 除了mvc设计模式

2025年9月13日 21:00

quadrature(quadrature中文翻译)

quadrature(quadrature中文翻译)

大家好,今天小编来为大家解答以下的问题,关于quadrature,quadrature中文翻译这个很多人还不知道,现在让我们一起来看看吧!本文目录quadrature中文翻译quadrature rule的定义 请问什么是quadratur

2025年11月21日 16:00

datagridview动态添加列(在DataGridView中动态添加combox列)

datagridview动态添加列(在DataGridView中动态添加combox列)

各位老铁们,大家好,今天由我来为大家分享datagridview动态添加列,以及在DataGridView中动态添加combox列的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家

2026年7月18日 09:00

web服务器控件不包括(web用户控件 的优点和缺点在哪里)

web服务器控件不包括(web用户控件 的优点和缺点在哪里)

大家好,如果您还对web服务器控件不包括不太了解,没有关系,今天就由本站为大家分享web服务器控件不包括的知识,包括web用户控件 的优点和缺点在哪里的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录web用户控件

2026年4月12日 16:45

字符串strtok(c语言:如何把字符串分解为一个个的字符)

字符串strtok(c语言:如何把字符串分解为一个个的字符)

其实字符串strtok的问题并不复杂,但是又很多的朋友都不太了解c语言:如何把字符串分解为一个个的字符,因此呢,今天小编就来为大家分享字符串strtok的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录c语言:如何

2025年8月24日 22:45

国内军事新闻(中国最新军事新闻)

国内军事新闻(中国最新军事新闻)

大家好,如果您还对国内军事新闻不太了解,没有关系,今天就由本站为大家分享国内军事新闻的知识,包括中国最新军事新闻的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录中国最新军事新闻关于战争的国内新闻深圳卫视军情直播间播

2025年10月18日 16:30

forks翻译(刀叉的英文怎么说)

forks翻译(刀叉的英文怎么说)

其实forks翻译的问题并不复杂,但是又很多的朋友都不太了解刀叉的英文怎么说,因此呢,今天小编就来为大家分享forks翻译的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录刀叉的英文怎么说亲人怎么翻译英语高手请进,

2026年6月2日 19:15

echo和printf的区别(bash下echo和print的区别在哪里)

echo和printf的区别(bash下echo和print的区别在哪里)

今天给各位分享bash下echo和print的区别在哪里的知识,其中也会对bash下echo和print的区别在哪里进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录bash下echo和print的区别在哪里PH

2026年9月22日 22:45

近期文章

本站热文

electronics软件(labcenter electronics是什么软件)
2025-05-22 23:45:02 浏览:134
博客是微博吗(博客是微博吗)
2025-05-22 22:45:01 浏览:111
diversity and distribution(悬赏英语短文)
2025-05-23 16:15:02 浏览:107
ios软件开发前景(iOS就业前景怎么样)
2025-05-22 23:00:01 浏览:102
next month(有The next month这个单词吗,和 next month有什么区别)
2025-05-23 02:30:01 浏览:102
patron(patron是什么意思)
2025-05-23 10:30:02 浏览:95
标签列表

热门搜索