学生成绩管理系统c语言代码.doc
《学生成绩管理系统c语言代码.doc》由会员分享,可在线阅读,更多相关《学生成绩管理系统c语言代码.doc(14页珍藏版)》请在咨信网上搜索。
#include〈stdio.h〉 #include<dos。h〉 #define N sizeof(struct STH) #define GESHI ”%-10ld%—10s%-5s%—4d/%—2d/%—4d%—12s%—12s%s\n” #define PRINTF ”学号 姓名 性别 生 日 系别 班级 家庭住址\n" struct STH* readfile();/*声明*/ int insert(struct STH**); int n=0; struct dt { int year; /*全局变量*/ int month; int day; }; struct STH { long num; /*学号不能以0开头*/ char name[9]; char sex[5]; struct dt birth; char xi[20]; char ban[20]; char add[30]; struct STH* next; }*head; /*输入模块*/ input_message() { char ch; int flag=1; do { if(insert(&head)!=0) n++; /*计数*/ else printf("\n有相同的的学号!”); printf("\n是否继续?(y/n)”); getchar(); scanf(”%c”,&ch); if(ch=='y'||ch=='Y’) { printf(”\n继续!"); getch(); flag=1;/*标志程序不结束*/ } else flag=0; }while(flag==1); save_message(); printf("按任意键继续.。。”); getch(); } /*insert()模块*/ /*被输入和插入模块所调用*/ int insert(struct STH**h) { struct STH *p,*p0; p=(struct STH*)malloc(N); printf(”\n请输入学号:"); scanf(”%ld",&p—〉num); printf(”\n请输入姓名:”); scanf("%s”,p->name); printf(”\n请输入性别:”); getchar(); /*取走上一个留下来得‘\n’*/ scanf(”%s”,p—〉sex); printf(”\n请输入生日(年月日,用回车隔开):\n"); scanf(”%d%d%d",&p->birth。year,&p—>birth.month,&p—>birth.day); printf("\n请输入系别:”); scanf("%s",p->xi); printf(”\n请输入班级:”); scanf(”%s",p—〉ban); printf(”\n请输入家庭住址:”); scanf("%s",p-〉add); p—〉next=NULL; if(*h==NULL) { *h=p; return 1; } p0=*h; if(p0—〉num〉p—〉num) { p-〉next=p0; *h=p; return 1; } while(p0-〉next!=NULL&&p0—>next—〉num〈p—〉num) p0=p0-〉next; if(p0->next==NULL) { p0—〉next=p; return 1; } else if(p0-〉next-〉num==p—>num) { free(p); /*有相同数据输入失败*/ return 0; } else { p—>next=p0-〉next; p0-〉next=p; return 1; } } /*读文件模块*/ /*读文件模块中创建了一个新的链表,其返回值为新链表的头指针*/ struct STH *readfile() { FILE *fp; struct STH *p,*p0; char ch; int i; if((fp=fopen("STH。txt","r"))==NULL) { printf("\n不能读取文件!\n”); return NULL; } /*注意要该*/ head=p=p0=(struct STH *)malloc(N); fscanf(fp,”%d”,&n); fscanf(fp,”%c",&ch); /*为了使学号和信息个数分开加入一个‘/'*/ fscanf(fp,”%ld%s%s%d%d%d%s%s%s”, &p—>num,p—>name,p—〉sex,&p-〉birth。year,&p—>birth。month,&p—〉birth.day,p—>xi,p-〉ban,p->add); p-〉next=NULL; i=1; /*如果只有一个数时跳出*/ if(n!=1) { do { p=(struct STH *)malloc(N); fscanf(fp,”%ld%s%s%d%d%d%s%s%s", &p—〉num,p—〉name,p->sex,&p—>birth。year,&p—>birth。month,&p—〉birth。day,p->xi,p—〉ban,p—〉add); p0-〉next=p; p0=p; i++; }while(i〈n); p0->next=NULL; } fclose(fp); return head; } /*插入模块*/ insert_message() { struct STH *p; int flag=1; char ch; head=readfile(); do { if(insert(&head)!=0) { n++; save_message(); printf(””); } /*计数*/ else { printf(”\n添加失败!\n有相同的的学号!"); save_message(); getch(); } printf("\n是否继续?(y/n)"); getchar(); ch=getchar(); if(ch==’y’||ch=='Y') { printf(”\n继续!"); flag=1;/*标志程序不结束*/ } else flag=0; }while(flag==1); printf(”\n按任意键继续。。。"); getch(); } /*修改模块*/ renew_message() { struct STH *p; int i,flag=1; long num; p=head=readfile(); if(head==NULL) { printf("读文件有误!”); getch(); } else { printf(”\n请按输入要修改的学生的学号:"); scanf(”%ld”,&num); for(i=0;i〈n;i++) { if(p—>num==num) { p—〉num=num; printf(”\n已找到要%ld号学生的信息!\n",num); printf(”原姓名为%s 要修改为:\n",p—>name); scanf(”%s”,p—〉name); printf("原性别为%s 要修改为:\n”,p—〉sex); scanf(”%s",p—〉sex); printf("原生日为%d/%d/%d 要修改为:\n”,p—〉birth。year,p->birth。month,p-〉birth.day); scanf(”%d%d%d",&p—>birth。year,&p-〉birth。month,&p—〉birth。day); printf(”原系别为%s 要修改为:\n",p—>xi); scanf(”%s",p—〉xi); printf(”原班级为%s 要修改为:\n”,p-〉ban); scanf("%s”,p—〉ban); printf(”原家庭住址为%s 要修改为:\n",p—>add); scanf("%s”,p—〉add); printf(”你所更改后的信息为:\n”); printf(PRINTF); printf(GESHI, p—>num,p-〉name,p-〉sex,p—〉birth。year,p—〉birth.month,p—〉birth.day,p—>xi,p—〉ban,p—>add); printf(”\n按任意键退出!\n"); getch(); flag=1; break; } else p=p—〉next; } if(flag!=1) printf("无此人信息!\n”); else save_message(); getch(); } } /*删除模块*/ delete_message() { int flag; long num; char ch; struct STH*p,*p0; p0=p=head=readfile(); if(head==NULL) { printf(”文件读取出错!"); getch(); } else { printf(”请输入要删除学生的学号:\n”); scanf(”%ld",&num); if(p0—〉num==num) { head=p0—>next; free(p0); flag=1; n——; /*学生数减一*/ } p=p0—>next; while(p!=NULL) { if(p-〉num==num) { p0->next=p—〉next; free(p); flag=1; n--; } else { p0=p; p=p—〉next; } } if(p—>next==NULL) flag=0; if(flag==1) { printf("\n永久删除%ld号学生的信息?(y/n)",num); getchar(); ch=getchar(); if(ch=='y'||ch==’Y') save_message(); else { printf(”\n撤消删除!"); getch(); } } else printf(”\n删除失败!”); getch(); } } /*查询模块*/ inquire_message() { int i,flag=0; long num; struct STH *p; p=head=readfile(); if(head==NULL) { printf(”文件读取出错!”); getch(); } else { printf(”请输入要查询学生的学号:\n”); scanf(”%ld”,&num); for(i=0;i<n;i++) { if(p—>num==num) { printf("\n信息已找到:\n"); getch(); clrscr(); printf(”**********************************FOUND*********************************\n”); printf("——-———--—--—-—--—-———--——--—--—-——--———--———-————-———----—-————-—--—--——\n\n”); printf(PRINTF); printf(GESHI, p—〉num,p—〉name,p—〉sex,p-〉birth。year,p—〉birth。month,p—〉birth。day,p->xi,p—>ban,p—>add); printf(”\n———--——---——---————-—---———-—-———-——-—--—-——--————---————-————-—————--—-\n”); printf(”***********************************END**********************************\n”); flag=1;break; } else p=p->next; } if(flag==0) printf(”\n无此人信息!”); else printf(”\n显示完毕!\按任意键返回主菜单...。..”); getch(); } } /*显示模块*/ output_message() { int i=0; struct STH*p; p=head=readfile(); if(head==NULL) { printf(”文件读取出错!”); getch(); } else { clrscr(); printf(”\n************************************STUDENT************************************\n"); printf(”——-——-—-—-—-———-———-—-—-——-——--—-—-—--————--———-———-——--—-——--——---——-————--———\n"); printf(PRINTF); while(i〈n) { printf(GESHI, p—〉num,p-〉name,p—〉sex,p—〉birth。year,p—〉birth。month,p—>birth.day,p—>xi,p—>ban,p—>add); p=p—>next; i++; } printf(”—-—--———---—-—-—-———--———-—-——--———————-—-——-————-——————-———-—-———--—-——-——-———\n”); printf(”**************************************END**************************************\n"); printf("\n显示完毕!\n共%d条信息.\n按任意键返回主菜单。。。。。.”,n); getch(); } } /*存档模块*/ save_message() { FILE *fp; int i; struct STH*p; p=head; if((fp=fopen(”STH。txt",”w”))==NULL) { printf("读文件错误!!”); exit(0); } fprintf(fp,”%d",n); fprintf(fp,”%c",'/’); /*注意要该*/ for(i=0;i<n;i++) { fprintf(fp,”%ld %s %s %d %d %d %s %s %s ”, p—〉num,p-〉name,p->sex,p->birth.year,p—>birth。month,p—>birth。day,p—〉xi,p—〉ban,p-〉add); p=p—>next; } fclose(fp); printf(”\n信息已经保存在STH。txt文件中!”); getch(); } /*主函数*/ void main(void) { int choice; char ch; FILE *fp; struct date d; getdate(&d); if((fp=fopen(”STH。txt”,"r”))==NULL) { fp=fopen(”STH。txt”,"w"); fprintf(fp,”%d”,0); fclose(fp); } else { fscanf(fp,”%d”,&n); fclose(fp); } clrscr(); printf(”制作人:通工0501 李艺凡"); printf(”\n\n\n"); printf(" ************************************************** \n”); printf(" 欢迎进入学生户籍系统 \n\n"); printf(" 1 创建记录\n”); printf(” 2 添加记录\n"); printf(” 3 查找记录\n"); printf(" 4 删除记录\n"); printf(" 5 修改记录\n"); printf(" 6 显示全部信息\n"); printf(" 0 退出程序\n”); printf(” ************************************************** \n”); printf(” %d年%d月%d日”,d。da_year,d。da_mon,d。da_day); printf(" \n 请选择(0—6):"); scanf("%d”,&choice); if(n==0) /*记录为空时不让其进行其他操作*/ { while(choice〈0||choice〉1) { printf("记录为空,无法操作此项!”); printf(”请重新输入:(0或1)\n”); scanf("%d”,&choice); } } else { while(choice<0||choice〉6) { printf(”输入有误!\n 请重新输入:\n"); scanf(”%d",&choice); } } do { switch(choice) { case 1:input_message();break; case 2:insert_message();break; case 3:inquire_message();break; case 4:delete_message();break; case 5:renew_message();break; case 6:output_message();break; case 0:break; } printf(”\n按任意键返回主菜单!”); getchar(); ch=’y’; if(ch=='Y’||ch=='y’) { clrscr(); printf("制作人:通工0501 李艺凡”); printf("\n\n\n”); printf(” ************************************************** \n”); printf(” 欢迎进入学生户籍系统 \n\n”); printf(” 1 创建记录\n”); printf(” 2 添加记录\n”); printf(” 3 查找记录\n”); printf(" 4 删除记录\n”); printf(" 5 修改记录\n"); printf(” 6 显示全部信息\n”); printf(" 0 退出程序\n"); printf(" ************************************************** \n"); printf(” %d年%d月%d日",d。da_year,d.da_mon,d。da_day); printf(” \n 请选择(0—6):"); scanf(”%d”,&choice); } }while(choice!=0); printf("以上信息已经保存在STH.txt中!\n”); }- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 语言 代码
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文