- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C-学生数据处理
C-学生数据处理
#includestdio.h
#includestdlib.h
#includestring.h
#define N 10
#define LEN sizeof(struct student)
typedef struct student
{
char a[N];
char name[N];
struct student *next;
}Stud;
char ch;
Stud *head,*q; // (struct student*)malloc(LEN);(struct student*)malloc(LEN);
Stud *present=(struct student*)malloc(LEN); /*head-next=NULL;present-next=NUL*/
void menu() //主菜单
{
putchar(10);
printf(\t\t\t 主菜单\n);
printf(\t\t\tadd: -------------增加。\n);
printf(\t\t\tfind: -------------查找。\n);
printf(\t\t\talter: -------------修改。\n);
printf(\t\t\tdel: -------------删除。\n);
printf(\t\t\tshow: -------------显示。\n);
printf(\t\t\texit: -------------退出。\n);
printf(请输入对应指令:\n);
}
void Add() //添加数据
{
Stud *stu_x;
stu_x=(struct student*)malloc(LEN);
printf(请输入\n学号:);
getchar(ch);
gets(stu_x-a);
printf(姓名:);
gets(stu_x-name);
present-next=stu_x;
present=stu_x;
present-next=NULL;
}
void Del(Stud *q_x) //重载有参 删除函数
{
Stud *p;
p=q_x-next;
q_x-next=p-next;
free(p);
printf(已删除!\n);
}
void Del() //删除数据
{
Stud *p;
p=head-next;
q=p;
char finding[N];
printf(请输入该学生信息,如:学号、姓名等。\n);
scanf(%s,finding);
while(p!=NULLstrcmp(finding,p-a)!=0strcmp(finding,p-name)!=0) //当输入为姓名或学号时进行查找
{
q=p;
p=p-next;
}
/*while(p!=NULLstrcmp(finding,p-a)!=0) //p!=NULL(strcmp(finding,p-a)!=0||strcmp(finding,p-name)!=0)) //当输入为姓名或学号时进行查找
{
if(strcmp(finding,p-name)!=0)
{
printf(%d,p!=NULL(strcmp(finding,p-a)!=0||strcmp(finding,p-name)!=0));
}
else break;
p=p-next;
}*/
if(p==NULL)
printf(未查找到该学生!\n);
else
{
char destroy[10];
printf(学号\t\t姓名\n);
printf(%s\t\t%s\n,p-a,p-name);
printf(确定删除该学生吗? yes/no\n);
while(1)
{
scanf(%s,destroy);
if(strcmp(destroy,no)==0) break;
switch(strcmp(destroy,yes)==0?1:2)
{
case 1:if(p-next==NULL) present=q;Del(q);break;
case 2:printf(输入有误,请重新输入:\n)
文档评论(0)