为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

c语言 课程设计程序

2014-01-18 8页 doc 56KB 49阅读

用户头像

is_377107

暂无简介

举报
c语言 课程设计程序#include #include #include struct s //定义一个s的结构体 { char num[12]; char name[15]; char sex[15]; char birthday[15]; char address[10]; char position[10]; char money[10]; }; typedef struct node //声明了一个struct node 类型 { struct s data; struct node *next; //定义1个struct node...
c语言 课程设计程序
#include #include #include struct s //定义一个s的结构体 { char num[12]; char name[15]; char sex[15]; char birthday[15]; char address[10]; char position[10]; char money[10]; }; typedef struct node //声明了一个struct node 类型 { struct s data; struct node *next; //定义1个struct node类型的指针,它可以指向相应类型的变量。 }Node; void Add(Node *student) //自定义函数 { Node *p,*r,*s; char n[12]; r=student; s=student->next; while(r->next!=NULL) //这个循环的作用是使r为最后一个结点 r=r->next; //将指针置于最末尾 while(1) { printf("************************** 输入0 返回主菜单!\n"); printf("\n请你输入学号号:"); scanf("%s",n); if(strcmp(n,"0")==0) break; p=(Node *)malloc(sizeof(Node)); //申请sizeof(Node)大小的空间 printf("\n请输入姓名:"); scanf("%s",&p->data.name); printf("\n请输入性别:"); scanf("%s",&p->data.sex); printf("\n请输入出生年月:"); scanf("%s",&p->data.birthday); printf("\n请输入籍贯:"); scanf("%s",&p->data.address); printf("\n请输入政治面貌:"); scanf("%s",&p->data.position); printf("\n请输入家庭收入:"); scanf("%s",&p->data.money); printf("提示:已经完成一条记录的添加。\n"); p->next=NULL; r->next=p; r=p; } } void change(Node *student) { Node *p; char find[20]; if(!student->next) { printf("\n************************** 没有资料可以修改!\n"); fflush(stdin); getchar(); return; } printf("请输入要修改的学号:"); scanf("%s",find); p=student->next; while(p!=NULL) { if(strcmp(p->data.num,find)==0) break; p=p->next; } if(p!=NULL) { int x; while(1) { printf("完成修改请输入0\n输入任意数再进行修改:"); scanf("%d",&x); if(x==0) {break;} printf("请输入新学号(原来是 %s ):",p->data.num); scanf("%s",p->data.num); printf("请输入新学生姓名(原来是 %s ):",p->data.name); scanf("%s",p->data.name); printf("请输入新学生性别(原来是 %s ):",p->data.sex); scanf("%s",p->data.sex); printf("请输入新出生年月(原来是 %s ):",p->data.birthday); scanf("%s",p->data.birthday); printf("请输入新学生籍贯(原来是 %s ):",p->data.address); scanf("%s",p->data.address); printf("请输入新政治面貌(原来是 %s ):",p->data.position); scanf("%s",p->data.position); printf("请输入新家庭收入(原来是 %s ):",p->data.money); scanf("%s",p->data.money); printf("\n************************** 该项记录资料已经成功修改! \n"); fflush(stdin); getchar(); } } else printf("\n**************************你要修改的信息不存在!\n"); fflush(stdin); getchar(); } void Disp(Node *student) { Node *p; p=student->next; if(!p) { printf("\n************************** 没有记录可以显示!\n"); getchar(); return; } printf("\t\t\t\t显示结果\n"); printf("学号 学生姓名 性别 学生生日 学生籍贯 政治面貌 家庭收入\n"); while(p) { printf("\n%-13s%-11s%-7s%-10s%-13s%-10s%-5s\n",p->data.num,p->data.name,p->data.sex,p->data.birthday,p->data.address,p->data.position,p->data.money); p=p->next; getchar(); } getchar(); } void Tongji(Node *student) { Node *p; int sel; int flag2=0,ha=0; char find[20]; p=student->next; if(!student->next) { printf("\n************************** 资料数为零!\n"); getchar(); return; } printf("************************** \n******0退出\n******1按学号统计\n******2按学生姓名统计\n"); scanf("%d",&sel); if(sel==1) { printf("\n输入你要统计分类的学号:"); scanf("%s",find); while(p) { if(strcmp(p->data.num,find)==0) { flag2++; } if(flag2==1&&ha!=flag2) { printf("学号 学生姓名 学生性别 学生生日 学生籍贯 政治面貌 家庭收入\n"); printf("\n%-13s%-11s%-7s%-10s%-13s%-10s%-5s\n",p->data.num,p->data.name,p->data.sex,p->data.birthday,p->data.address,p->data.position,p->data.money); ha=flag2; } else if(flag2>ha) { printf("\n%-13s%-11s%-7s%-10s%-13s%-10s%-5s\n",p->data.num,p->data.name,p->data.sex,p->data.birthday,p->data.address,p->data.position,p->data.money); ha=flag2; } p=p->next; } if(flag2) { printf("\n*************************按学生号%s统计分类的有%d条记录:*************************\n\n",find,flag2); } else { printf("\n按学号%s统计的结果为0个\n\n",find); } } else if(sel==2) { printf("\n输入你要统计分类的学姓名:"); scanf("%s",find); while(p) { if(strcmp(p->data.name,find)==0) { flag2++; } if(flag2==1&&ha!=flag2) { printf("学号 学生姓名 学生性别 学生生日 政治面貌 政治面貌 家庭收入\n"); printf("\n%-13s%-11s%-7s%-10s%-13s%-10s%-5s\n",p->data.num,p->data.name,p->data.sex,p->data.birthday,p->data.address,p->data.position,p->data.money); ha=flag2; } else if(flag2>ha) { printf("\n%-13s%-11s%-7s%-10s%-13s%-10s%-5s\n",p->data.num,p->data.name,p->data.sex,p->data.birthday,p->data.address,p->data.position,p->data.money); ha=flag2; } p=p->next; } if(flag2) { printf("\n\n\n共查找到%d条记录:\n\n",flag2); } else {printf("\n按学生姓名%s统计分类的结果为0个\n\n",find);} } else if(sel==0)return; fflush(stdin); getchar(); } void save(Node *student) { int n; Node *p; FILE *fp; //定义指向FILE类型文件的指针变量 printf("需要保存文件吗?(按1保存,按0不保存)"); scanf("%d",&n); if(n==1) { if(student->next==NULL) printf("无记录"); else p=student->next; if((fp = fopen("学生信息.txt", "wb")) == NULL) //打开输出文件,并使fp指向此文件 printf("无法打开文件\n"); while(p!=NULL) { fprintf(fp,"%s %s %s %s %s %s %s",&p->data.num,&p->data.name,&p->data.sex,&p->data.birthday,&p->data.address,&p->data.position,&p->data.money); p=p->next; } fclose(fp); //关闭文件 } fflush(stdin); getchar(); } void dismiss(Node *student) { Node *p,*r; char find[20]; if(!student->next) { printf("\n************************** 没有资料可以显示!\n"); fflush(stdin); getchar(); return; } printf("\n************************** 请输入您要删除的学号!\n"); scanf("%s",find); p=student->next; while(p!=NULL) { if(strcmp(p->data.num,find)==0) break; p=p->next; } if(!p) printf("\n************************** 找不到您想删除的学号!\n"); else { r=student; while(r->next!=p) r=r->next; r->next=r->next->next; //删除节点 } getchar(); } void main() { int a; Node *student; Node *p; student=(Node*)malloc(sizeof(Node)); //通过malloc申请sizeof(Node)大小的一段连续内存空间, student->next=NULL; //指向的下一个结点 p=student; while(1) { printf("\n"); printf("\t\t\t\t学生信息管理系统\n"); printf("\n\t*********************************************************************"); printf("\n\t1、添加记录\n"); printf("\n\t2、修改记录\n"); printf("\n\t3、浏览记录\n"); printf("\n\t4、分类查找记录\n"); printf("\n\t5、删除记录\n"); printf("\n\t0、退出\n"); printf("\n\n输入序号:"); scanf("%d",&a); switch(a) //选择结构 { case 0: return;break; case 1: Add(student);save(student);break; case 2: change(student);break; case 3: Disp(student);break; case 4: Tongji(student);break; case 5: dismiss(student);break; default: printf("\n************************** 输入错误!\n"); break; }system("cls"); } fflush(stdin); getchar(); }
/
本文档为【c语言 课程设计程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索