学生个人消费管理系统

学生个人消费管理系统,第1张

学生个人消费管理系统,第2张

# include
# include
# include
# define LEN sizeof(struct score node)
# define DEBUG
# include
struct score node
{ int number;/*学生ID */
char namep1 =压头;
P0 = stu;
for(I = 1;inumber > P1-> number)
{
k = max-> number;
max-> number = P1-> number;
P1-> number = k;
/*交换前后节点的学号值,使学号最大的一个移到后面节点*/
strcpy(t,max-> name);
strcpy(max->name,P1-> name);
strcpy(p1->name,t);
/*交换前后节点中的名称匹配学号*/
/*交换前后节点中的消费情况匹配学号*/
}
max = head;p1 =压头;/*将max,p重新指向链表的头*/
} end2:
printf("现在的学生人数是:%d!\n”,n);
return(头);;/* name */
浮动肖飞;/* consume */
struct score node * next;
};
typedef结构scorenode得分;
int n,k;/*n,k是一个全局变量,可以被这个程序中的所有函数使用*/
/* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
score * P1,*p2,*p3,* max
int i,j;
float fen;
char t[10];
n = 0;
P1 = p2 = P3 =(score *)malloc(LEN);head = p3/*开辟新单元*/
printf("请输入学生信息,输入0退出!\ n ");
repeat1: printf("请输入学号(学号应大于0):");/*输入学号,学号应大于0 */
scanf ("%d ",& P1-> number);
while(P1-> number number);}
/*当输入的学号为字符或小于0时,程序给出错误,提示您重新输入学号*/
if(P1-> number = = 0)
goto end;/*当输入的学号为0时,转到最后,完成创建链表*/
else
{
P3 = head;
if(n > 0)
{ for(I = 0;inumber!=p3->数字)
p3=p3->下一个;
else
{printf("学号重复,请重新输入!\ n ");
goto repeat 1;
/*当输入的学号已经存在,程序报错时,回到前面重新输入*/
}
}
}
printf("请输入学名:");
scanf("%s ",& P1-> name);/*输入学生姓名*/
printf("请输入消费:");/*输入消费情况;

head = NULL
while(p1->number!= 0)
{
n = n+1;
if(n = = 1)
head = P1;
else
p2-> next = P1;
p2 = P1;
P1 =(score *)malloc(LEN);
printf("请输入学生信息,输入0退出!\ n ");
repeat2:printf("请输入学号(学号应大于0):");
scanf("%d ",& P1-> number);/*输入学号,应大于0 */
while (P1->号数);}
/*当输入的学号为字符或小于0时,程序给出错误,提示您重新输入学号*/
if(P1-> number = = 0)
goto end;/*当输入的学号为0时,转到最后,完成创建链表*/
else
{
P3 = head;
if(n > 0)
{ for(I = 0;inumber!=p3->数字)
p3=p3->下一个;
else
{printf("学号重复,请重新输入!\ n ");
goto repeat 2;
/*当输入的学号已经存在,程序报错时,回到前面重新输入*/
}
}
}
printf("请输入学名:");
scanf("%s ",& P1-> name);/*输入学生姓名*/
printf("请输入消费:");
scanf("%f ",&p1->肖飞);/*输入消费情况;
}

end:P1 =头;
P3 = P1;
for(I = 1;inumber > P1-> number)
{
k = max-> number;
max-> number = P1-> number;
P1-> number = k;
/*交换前后节点的学号值,使学号最大的一个移到后面节点*/
strcpy(t,max-> name);
strcpy(max->name,P1-> name);
strcpy(p1->name,t);
/*交换前后节点中的名称匹配学号*/
/*交换前后节点中的消费情况匹配学号*/
}

}
max = head;p1 =压头;/*将max,p重新指向链表的头*/
}
p2-> next = NULL;/*链表结尾*/
printf("输入的学生人数是:%d!\n”,n);
return(头);

}
/* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */
/* = = = = = = = = = = =
int m = 0;
char filepn[10];
FILE * FP;
printf("请输入文件路径和名称:");
scanf("%s ",filepn);/*输入文件路径和名称*/
if ((FP = fopen (filepn," r+")= = null)
{
printf("无法打开文件!\ n ");
返回0;
}
{
P1 =(score *)malloc(LEN);/*开辟一个新单位*/
fscanf (FP," %d% s% f% f% f ",&P1->数,->名,&P1->宇文,&P1->于颖,&P1->蜀学);
printf(" | % d \ t | % s \ t | % . 1f \ t | % . 1f \ t | % . 1f \ t | \ n ",p1->number,p1->name,p1->虞雯,p1->于颖,p1->舒雪);
/*文件读取和显示*/
head = NULL;
do
{
n = n+1;
if(n = = 1)head = P1;
else p2-> next = P1;
p2 = P1;
P1 =(score *)malloc(LEN);/*开辟一个新单位*/
fscanf (FP," %d% s% f% f \ n ",&P1->人数,->姓名,&P1->宇文,&P1->于颖,&P1->蜀学。
printf(" | % d \ t | % s \ t | % . 1f \ t | % . 1f \ t | % . 1f \ t | \ n ",p1->number,p1->name,p1->虞雯,p1->于颖,p1->舒雪);
/*文件读取和显示*/
}while(!feof(FP));
p2-> next = P1;
P1-> next = NULL;
n = n+1;
} printf("-\ n ");/* form offline */
f close(FP);/*结束阅读,关闭文件*/
回车(头);
}

/* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */
/* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */
Score * add2311(Score * head,Score *stu)
/*函数add 2311,函数:添加学生数据,将所有学生数据按其学号进行排序*/
{
Score * P0,* P1,*
int i,j;
float fen;
char t[10];
P3 = stu =(score *)malloc(LEN);/*打开一个新单元*/
printf(" \ n输入要添加的学生信息!");
repeat4: printf("请输入学号(学号应大于0):");
scanf("%d ",& stu-> number);
/*输入学号,应大于0 */
while(stu-> number number);}/*输入不正确,重新输入学号*/
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *,当输入的学号为0时,转到最后完成追加*/
else
{
P3 = head;
if(n > 0)
{ for(I = 0;inumber!=p3->数字)
p3=p3->下一个;
else
{printf("学号重复,请重新输入!\ n ");
goto repeat 4;
/*当输入的学号已经存在并且程序给出错误时,返回前面重新输入*/
}
}

}
/* * * * * * * * * * * * * * * * * * * * * * */
printf("输入学生姓名:");
scanf("%s ",stu-> name);/*输入学生姓名*/
printf("请输入消费:");
scanf("%f ",&stu->肖飞);/*输入消费情况,分值应为0-100 */
P1 =头;
P0 = stu;
if(head = = NULL)
{ head = P0;P0-> next = NULL;}/*当原链表为空时,数据将从第一个节点开始存储*/
else/*原链表不是空* {
if(P1-> next = = null)/*查找原
P0-> next = NULL;/*将其与新打开的单元连接*/
}
else
{
while(P1->下一个!=NULL)/*还没找到结尾,继续找*/
{
p2 = P1;P1 = P1-> next;
}
P1-> next = P0;
P0-> next = NULL;
}

}
n = n+1;

[10]

}
/* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =/*/
/* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =/
score * search 2311(score * head)
/* function search 2311,功能:查询学生消费*/
{ int number;
score *p1,* p2
printf("输入要查询的学生身份证号,");
scanf("%d ",& number);

而(号!= 0)
{
if(head = = null)
{ printf(" \ n没有学生信息!\ n ");返回(头);}

printf("-\ n ");
printf("|学号\t|姓名\t|消费\ t \ n ");
printf("-\ n ");/*打印表格字段*/
P1 = head;
while(数字!=p1->数字&&p1->下一个!=空)

{ p2 = p1P1 = P1-> next;}
if(number = = p1->number)
{ printf(" | % d \ t | % s \ t | % . 1f \ t | % . 1f \ t | % . 1f \ t | \ n ",p1-> number,p1->name,p1->虞雯,p1->于颖,P1->舒雪);
printf("-\ n ");}/*打印表单域*/
else
printf("%d该学生不存在!\n ",数字);
printf("输入要查询的学生身份证号,");
scanf("%d ",& number);
}
printf("已经退出!\ n ");
return(头);}

/* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =/
/* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =/
score * Del2311(score * head)/*函数del 2311,函数:删除学生数据*/
{
score *p1,* p2
int数;
printf("输入要删除的学生证号(输入0时退出):");
scanf("%d ",& number);
getchar();
while(数字!=0)/*学号为0时退出*/
{
if(head = = null)
{
printf(" \ n没有学生信息!\ n ");
return(头);
}

p1 =压头;
while(数字!=p1->数字&&p1->下一个!=NULL)
/*p1不指向你要找的第一个节点,后面还有节点*/
{
P2 = P1;P1 = P1-> next;
} /*p1向后移动一个节点*/[br/]if(number = = P1-> number)
/* Found */
if(P1 = = head)
head。
/*如果p1指向第一个节点,则将两个节点的地址给head */
else
p2-> next = P1-> next;
/*否则,将下一个节点地址赋给上一个节点地址*/
printf ("delete: %d\n ",number);n = n-1;
}
else
printf(" % d该学生不存在!\n ",数字);
/*找不到节点*/

printf("输入要删除的学生身份证号:");
scanf("%d ",& number);
getchar();
}
# ifdefdebug
printf("已经退出!\ n ");
#endif
printf("现在的学生人数是:%d!\n”,n);
return(头);
}

/* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = void print2311(score * head)
/*函数print 2311,功能:显示学生成绩*/
{
score * p;
if(head = = null)
{ printf(" \ n没有学生信息!\ n ");}
else
{printf("%d\n ",n);
printf("-\ n ");
printf("|学号\t|姓名\t|消费\ t | \ n ");
printf("-\ n ");/*打印表单域*/
p = head;
do
{ printf(" | % d \ t | % s \ t | % . 1f \ t | % . 1f \ t | % . 1f \ t | \ n ",p->数字,p->姓名,p->虞雯,p->于颖,p->书学);
printf("-\ n ");/*打印表单域*/
p = p-> next;}while (p!= NULL);/*打印完成*/
}
}

Save2311(score *p1)
/*函数Save2311,函数:保存学生数据*/
{
FILE * FP;
char filepnwhile(1)
{ k = menu 2311(k);
switch(k)/*使用switch语句实现函数选择*/
{ case 1:head = creat 2311();打破;/*调用创建链表的函数*/
case 2:head = load 2311(head);打破;/*从文件中调用record函数*/
case 3:head = search 2311(head);打破;/*调用分数查询函数*/
case 4:head = del 2311(head);打破;/*调用删除学生数据函数*/
case 5:head = add 2311(head,stu);打破;/*调用追加学生数据的函数*/
案例6:print 2311(head);打破;/*调用显示学生数据的函数*/
case7:统计2311(head);打破;/*调用统计函数*/
案例8:save 2311(head);打破;/*调用保存函数*/
案例九:taxis2311(头);打破;/*调用排序函数*/
case 0:exit(0);/*退出系统,返回主界面*/
默认:printf("输入错误,请重试!\ n ");}
}
}
;/*保存用于存储文件的路径和文件名*/
printf("请输入文件路径和文件名:");
scanf("%s ",filepn);
if ((FP = fopen (filepn," w+")= = null)
{
printf("无法打开文件!\ n ");
返回0;
}

Main() /* main function,function:通过调用CREAT、SEARCH、DEL、ADD、PRINT、STSTICS、SAVE、TAXIS等函数,学生消费查询系统函数*/
{score *head=0,* stu = 0;

[20]

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 学生个人消费管理系统

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情