| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 496 人关注过本帖
标题:求高手帮忙修改个程序啊
只看楼主 加入收藏
w124490783
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-6-14
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
求高手帮忙修改个程序啊
编了个程序出现了错误,下午就要交给老师了,求好心人帮忙看看怎么修改啊。各种谢谢啊!
#include<stdio.h>
#include<conio.h>
#include<string.h>

typedef struct STUDENT
{
char studentNumber[10];/*学生学号*/
char className[20];/*班级名称*/
char studentName[20];/*学生姓名*/
char studentAge[20];
char studentSEX[10];/*学生性别*/
char studentBirth[30];/*出生日期*/
char studentAdd[20];
char studentTel[12];
char studentEmail[30];
struct STUDENT *next;
}STUDENT;
STUDENT *headLink;/*链表表头指针*/
/*以下是函数声明*/
void ReadInfoFormFile(void);
void DesplayMenu(void);
void CreateHeadLink(void);
STUDENT *MallocNode(void);
void GetInformation(STUDENT *t);
void OutputInformation(void);
void DesplayInfoBystudentName(void);
void DesplayInfoBystudentNumber(void);
void DesplayOneNode(STUDENT *t);
void InsertOneNode(STUDENT *t);
void DeleteNodeBystudentNumber(void);
void ChangeMarkByName(void);
void ChangeMarkByNumber(void);
void SaveLinkToFile(void);
void DesplayMarkSegment(void);
void CompositorByTotalMark(void);
int choose;/*用于接受用户的选择*/
/*主函数*/
void main()
{
CreateHeadLink();
ReadInfoFormFile();
DesplayMenu();
}
/************************************
函数功能:从文件中读学生信息到链表中
************************************/
void ReadInfoFormFile(void)
{
FILE *fp;
STUDENT *p;
fp=fopen("student.txt","r");
if(!fp)
{
printf("文件不存在\n");
return;
}
p=MallocNode();
while(fscanf(fp,"%s%s%s%s%s%s%s%s%s",p->studentNumber,p->className,p->studentName,p->studentBirth,p->studentAge,p->studentAdd,p->studentTel,p->studentEmail,p->studentSEX)
){
InsertOneNode(p);
p=MallocNode();
}
fclose(fp);
}
/************************************
函数功能:显示菜单,根据用户的输入
完成相应的功能
************************************/
void DesplayMenu(void)
{
STUDENT *p;
printf("-------请选择相应功能------------\n\n");
printf("| 1 显示所有学生的信息 |\n");
printf("| 2 按学号查询 |\n");
printf("| 3 按班级查询 |\n");
printf("| 4 删除学生 |\n");
printf("| 5 保存所有学生信息 |\n");
printf("| 6 退出 |\n\n");
scanf("%d",&choose);/*取得用户的选择*/
switch(choose)
{
case 1:
OutputInformation();/*显示所有学生的信息*/
break;
case 2:
DesplayInfoBystudentNumber(); /*根据用户输入的学号显示该学生的信息*/
break;
case 3:
DesplayInfoByclassName();/*根据用户输入的班级显示该学生的信息*/
break;
case 4:
DeleteNodeBystudentNumber();/*根据用户输入的学号删除该学生*/
break;
case 5:
SaveLinkToFile();/*保存数据*/
break;
case 6:
SaveLinkToFile();/*保存数据后再退出*/
free(headLink);
exit(1);
break;
default:
break;
}
DesplayMenu();/*递归调用*/
}
/************************************
函数功能:建立链表表头
************************************/
void CreateHeadLink(void)
{
STUDENT *p;
p=(STUDENT*)malloc(sizeof(STUDENT));
headLink=p;
p->next=NULL;
}
/************************************
函数功能:申请一个新结点,并将其初始化
************************************/
STUDENT *MallocNode(void)
{
STUDENT *p;
int i;
p=(STUDENT*)malloc(sizeof(STUDENT));
if(p==NULL)
return NULL;
for(i=0;i<10;i++)
p->studentNumber[i]='\0';
for(i=0;i<20;i++)
p->className[i]='\0';
for(i=0;i<20;i++)
p->studentName[i]='\0';
for(i=0;i<20;i++)
p->studentAge[i]='\0';
for(i=0;i<10;i++)
p->studentSEX[i]='\0';
for(i=0;i<30;i++)
p->studentBirth[i]='\0';
for(i=0;i<20;i++)
p->studentAdd[i]='\0';
for(i=0;i<12;i++)
p->studentTel[i]='\0';
for(i=0;i<30;i++)
p->studentEmail[i]='\0';
p->next=NULL;
return p;
}
/************************************
函数功能:取得用户输入的学生信息
************************************/
void GetInformation(STUDENT *t)
{
printf("请输入学生学号:\n");
scanf("%s",t->studentNumber);
printf("请输入班级名称:\n");
scanf("%s",t->className);
printf("请输入学生姓名:\n");
scanf("%s",t->studentName);
printf("请输入该生年龄:\n");
scanf("%s",&(t->studentAge));
 printf("请输入该生的性别:\n");
scanf("%s",&(t->studentSEX));
printf("请输入该生出生日期:\n");
scanf("%s",t->studentBirth);
printf("请输入该生地址:\n");
scanf("%s",&(t->studentAdd));
printf("请输入该生电话:\n");
scanf("%s",&(t->studentTel));
printf("请输入该生的Email:\n");
scanf("%s",&(t->studentEmail));
}
/************************************
函数功能:在链表的结尾处增加一个结点
************************************/
void InsertOneNode(STUDENT *t)
{
STUDENT *p;
p=headLink;
while(p->next)
{
p=p->next;
}
p->next=t;
}
/************************************
函数功能:根据用户输入的学生姓名显示该学生的信息
************************************/
void DesplayInfoBystudentName(void)
{
STUDENT *p;
char className[20];
char flag=0;
p=headLink->next;
printf("请输入班级姓名:\n");
scanf("%s",className);
while(p)
{
if(strcmp(p->className,className)==0)
{
printf("学号\t班级\t姓名\t年龄\t性别\t出生日期\t地址\t电话\tEmail\n\n");
DesplayOneNode(p);
flag=1;
break;
}
p=p->next;
}
if(!flag)
printf("对不起,不存在姓名为 %s 的学生\n",studentName);
}
/************************************
函数功能:根据用户输入的学号显示该学生的信息
************************************/
void DesplayInfoBystudentNumber(void)
{
STUDENT *p;
char studentNumber[10];
char flag=0;
p=headLink->next;
printf("请输入学生学号:\n");
scanf("%s",studentNumber);
while(p)
{
if(strcmp(p->studentNumber,studentNumber)==0)
{
printf("学号\t班级\t姓名\t年龄\t性别\t出生日期\t地址\t电话\tEmail\n\n");
DesplayOneNode(p);
flag=1;
break;
}
p=p->next;
}
if(!flag)
printf("对不起,不存在学号为 %s 的学生\n",studentNumber);
}
/************************************
函数功能:输出一个结点的信息
************************************/
void DesplayOneNode(STUDENT *t)
{
printf("%s\t",t->studentNumber);
printf("%s\t",t->className);
printf("%s\t",t->studentName);
printf("%s\t",t->studentAge);
printf("%s\t",t->studentSEX);
printf("%s\t",t->studentBirth);
printf("%s\t",t->studentAdd);
printf("%s\t",t->studentTel);
printf("%s\t",t->studentEmail);
}
/************************************
函数功能:根据用户输入的学号删除该学生
************************************/
void DeleteNodeBystudentNumber(void)
{
char studentNumber[10];
STUDENT *p,*q;
char flag=0;
printf("请输入要删除的学生学号:");
scanf("%s",studentNumber);
p=headLink;
q=headLink->next;
while(q)
{
if(strcmp(q->studentNumber,studentNumber)==0)
{
p->next=q->next;
free(q);
flag=1;
break;
}
p=p->next;
q=q->next;
}
if(!flag)
{
printf("不存在该学号的学生\n");
return;
}
printf("成功删除\n");
}
/************************************
函数功能:显示所有学生的信息
************************************/
void OutputInformation(void)
{
STUDENT *p;
p=headLink->next;
if(p==NULL)
{
printf("现在没有学生信息,请先输入学生信息\n\n");
return;
}
printf("学号\t班级\t姓名\t年龄\t性别\t出生日期\t地址\t电话\tEmail\n\n");
while(p)
{
DesplayOneNode(p);
p=p->next;
}
}

/************************************
函数功能:保存链表数据到文件中
************************************/
void SaveLinkToFile(void)
{
STUDENT *p;
FILE *fp;
p=headLink->next;
if(p==NULL)
{
printf("现在没有学生信息,请先输入学生信息\n\n");
return;
}
fp=fopen("student.txt","w+");
if(!fp)
{
printf("文件不存在\n");
return;
}
while(p)
{
fprintf(fp,"%s %s %s %s %s %s %s %s %s\n",p->studentNumber,p->className,p->studentName,p->studentAge,p->studentSEX,p->studentBirth,p->studentAdd,p->studentTel,p->studentEmail);
p=p->next;
}
fclose(fp);
}
OutputInformation();
}

搜索更多相关主题的帖子: 出生日期 include 姓名 next 
2012-06-14 10:56
lonmaor
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:郑州
等 级:版主
威 望:75
帖 子:2637
专家分:6423
注 册:2007-11-27
收藏
得分:10 
good luck!

从不知道到知道,到知道自己不知道,成长的道路上脚步深深浅浅
2012-06-14 12:01
梦ambious
Rank: 2
等 级:论坛游民
帖 子:27
专家分:71
注 册:2011-11-25
收藏
得分:10 
好长啊,找问题不好找!!!
2012-06-15 11:30
快速回复:求高手帮忙修改个程序啊
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020884 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved