ImageVerifierCode 换一换
格式:DOC , 页数:13 ,大小:40.04KB ,
资源ID:9496574      下载积分:8 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/9496574.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(表格形式的学生成绩管理系统模板.doc)为本站上传会员【w****g】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

表格形式的学生成绩管理系统模板.doc

1、include "stdio.h" /*I/O函数*/ #include "stdlib.h" /*其它说明*/ #include "string.h" /*字符串函数*/ #include "conio.h" /*屏幕操作函数*/ #include "ctype.h" /*字符操作函数*/ #define N 3 /*定义常数*/ #define M 30 /*定义数据结构*/

2、typedef struct z1 { char no[11]; char name[15]; int score[N]; float sum; float average; int order; struct z1 *next; }STUDENT; /*菜单函数, 返回值为整数*/ menu_select() { char *menu[]={" ***************MENU***************", /*定义菜单字符串数组*/ " 1. Enter list", /*输入统计*/ " 2. Print list"

3、 /*显示单链表中全部统计*/ " 3. Sort to make new file ", /*排序*/ " 4. Insert record to list ", /*插入统计到表中*/ " 5. Delete a record from list", /*从表中删除统计*/ " 6. Save the file", /*将单链表中统计保留到文件中*/ " 7. Load the file", /*从文件中读入统计*/ " 8. Quit",

4、 /*退出*/ /*屏幕调整, 没有实际意义*/ " ***********************************",}; char s[3]; /*以字符形式保留选择号*/ int c,i; /*定义整形变量*/ textbackground(GREEN); /*设置背景颜色为黄色*/ gotoxy(1,25);

5、 /*移动光标*/ printf("Press any key enter menu......\n"); /*压任一键进入主菜单*/ getch(); /*输入任一键*/ clrscr(); /*清屏*/ for(i=0;i<16;i++) /*输出主菜单数组*/ { gotoxy(10,i+1); cprintf("%s",menu[i]);

6、 } window(1,1,80,25); /*恢复原窗口大小*/ gotoxy(10,21); /*移动光标*/ do { printf("\n Enter you choice(1-8):"); /*在菜单窗口外显示提醒信息*/ scanf("%s",s); /*输入选择项*/ c=atoi(s); /*将输入字符串转化为整形数*/ }w

7、hile(c<0||c>9); /*选择项不在0~9之间重输*/ return c; /*返回选择项, 主程序依据该数调用对应函数*/ } /*初始化链表*/ STUDENT *init() { return NULL; } /*创建链表, 完成数据录入功效*/ STUDENT *create() { int i; int s; STUDENT *h=NULL,*info; /* STUDENT指向结构体指针*/ for(;;) {

8、 info=(STUDENT *)malloc(sizeof(STUDENT)); /*申请空间*/ if(!info) /*假如指针info为空*/ { printf("\nOut of memory"); /*输出内存溢出*/ return NULL; /*返回空指针*/ } printf("Input imformation as follow.\n"); printf("Press '#

9、'after'Enter NO'to end the input.\n"); inputs("Enter NO.:",info->no,11); /*输入学号并校验*/ if(info->no[0]=='#') break; /*假如学号首字符为#则结束输入*/ inputs("Enter name:",info->name,15); /*输入姓名, 并进行校验*/ printf("Please input %d scores \n",N); /*提醒开始输

10、入成绩*/ s=0; /*计算每个学生总分, 初值为0*/ for(i=0;iscore[i]); /*输入成绩*/ if(info->score[i]>100||in

11、fo->score[i]<0) /*确保成绩在0~100之间*/ printf("Bad data,repeat input\n"); /*犯错提醒信息*/ }while(info->score[i]>100||info->score[i]<0); s=s+info->score[i]; /*累加各门课程成绩*/ } info->sum=s; /*将总分保留*/ info->average=(

12、float)s/N; /*求出平均值*/ info->order=0; /*未排序前此值为0*/ info->next=h; /*将头结点做为新输入结点后继结点*/ h=info; /*新输入结点为新头结点*//*没排序前,后输入数据将排在最上*/ } return(h); /*返回头指针*/ }

13、 /*自定义输入控制函数inputs*/ inputs(char *prompt, char *s, int count) { char p[255]; do{printf(prompt); /*显示提醒信息*/ scanf("%s",p); /*输入字符串*/ if(strlen(p)>count)printf("\n Too long! \n"); /*进行长度校验, 超出count值重输入*/ }while(strlen(p)>count); s

14、trcpy(s,p); /*将输入字符串拷贝到字符串s中*/ } /*显示模块*/ void print(STUDENT *h) { int i=0; /* 统计统计条数*/ STUDENT *p; /*移动指针*/ clrscr(); /*清屏*/ p=h;

15、 /*初值为头指针*/ printf("\n\n\n----------------------------------STUDENT---------------------------------\n"); printf("|rec|NO. | name | english| math | computer | ave |order |\n"); printf("|---|----------|---------------|--------|------|-----------|------|--

16、\n"); while(p!=NULL) { i++; if(i%15==0){getch();clrscr(); printf("\n\n\n\n");} /*不然什么也不做*/ else printf("|%2d |%-10s|%-15s|%8d|%6d|%11d| %5.2f| %5d|\n", i, p->no,p->name,p->score[0],p->score[1], p->score[2],p->average,p->order); p=p->next; } printf("-----------------

17、end--------------------------------------\n"); } /*排序模块*/ STUDENT *sort(STUDENT *h) { int i=0; /*用来保留名次*/ STUDENT *p,*q,*t,*h1; /*定义临时指针*/ h1=h->next; /*将原表头指针所指下一个结点作头指针*/ h->next=NULL; /*断开原来链表头结点与其它结点连接*/ while(h1!=NULL) /*当原表不为空时, 进行排序*

18、/ { t=h1; /*取原表头结点*/ h1=h1->next; /*原表头结点指针后移*/ p=h; /*设定移动指针p, 从头指针开始*/ q=h; /*设定移动指针q做为p前驱, 初值为头指针*/ while(t->sumsum&&p!=NULL) /*作总分比较*/ { q=p; /*待插入点值小, 则新表指针后移*/ p=p->next; } if(p==q)

19、 /*p==q, 上面while没有实施, 也即插入点大于头指针, 此点应排在首位*/ { t->next=p; /*待排序点后继为p*/ h=t; /*新头结点为待排序点*/ } else /*待排序点应插入在q和p之间, 如p为空则是尾部*/ { t->next=p; /*t后继是p*/ q->next=t; /*q后继是t*/ } } p=h; /*已排好序头指针赋给p*/

20、while(p!=NULL) /*给予各组数据排序号*/ { i++; /*结点序号*/ p->order=i; /*将名次赋值*/ p=p->next; /*指针后移*/ } printf("Sort sucess!!!\n"); /*排序成功*/ return (h); /*返回头指针*/ } STUDENT *insert(STUDENT *h) { STUDENT *p,*q,*info,*k; /*p指向插入位置, q

21、是其前驱, info指新插入统计*/ int s1,i,n=0; printf("\nplease new record\n"); info=(STUDENT *)malloc(sizeof(STUDENT)); /*申请空间*/ if(!info) { printf("\Out of memory"); /*如没有申请到, 内存溢出*/ return NULL; /*返回空指针*/ } inputs("Enter NO.:",info->no,11); /*以下是待插入数据录入和处理, 具体同创建模块同

22、/ inputs("Enter name:",info->name,15); printf("Please input %d score \n",N); s1=0; for(i=0;iscore[i]); if(info->score[i]>100||info->score[i]<0) printf("bad data,repeat input\n"); }while(info->score[i]>100||info->score[i]<0); s1=s1+i

23、nfo->score[i]; } info->sum=s1; info->average=(float)s1/N; info->next=NULL; /*设后继指针为空*/ p=h; /*将指针赋值给p*/ q=h; /*将指针赋值给q*/ if(h==NULL) /*链表为空*/ {h=info;info->next=NULL;} else {while((info->sumsum)&&(p-

24、>next!=NULL)) {q=p; /*使q指向p刚才结点*/ p=p->next;} /*使p后移一个结点*/ if(info->sum>=p->sum) {if(h==p){h=info; info->next=p;} /*info作为头指针, p作为info后继指针*/ else q->next=info; /*q后继指针是info*/ info->next=p;}

25、 /*info后继指针是p*/ else {p->next=info;info->next=NULL;}} /*p后继指针是info,info后继指针是空*/ k=h; while(k!=NULL) /*重新给予排序号(排序号因为被插入新数据而改变)*/ { n++; k->order=n; k=k->next; } printf("\n ----have inserted %s student----\n",info->name); return(h);

26、 /*返回头指针*/ } /*删除统计模块*/ STUDENT *delete(STUDENT *h) { char k[5]; /*定义字符串数组, 用来确定删除信息*/ STUDENT *p,*q; /*p为查找到要删除结点指针, q为其前驱指针*/ char s[11]; /*存放学号*/ clrscr();

27、 /*清屏*/ printf("Please enter deleted No.\n"); /*显示提醒信息*/ scanf("%s",s); /*输入要删除统计学号*/ q=p=h; /*给q和p赋初值头指针*/ while(strcmp(p->no,s)&&p!=NULL) /*当统计学号不是要找, 或指针不为空时*/ { q=p; /*将p指针值赋给q作为p前驱指针

28、/ p=p->next; /*将p指针指向下一条统计*/ } if(p==NULL) /*假如p为空, 说明链表中没有该结点*/ printf("\nlist no %s student\n",s); else /*p不为空, 显示找到统计信息*/ { printf("----------------------------------have found------------------------------

29、\n"); printf("|rec|NO. | name | english| math | computer | ave |order |\n"); printf("|---|----------|---------------|--------|------|-----------|------|------|\n"); printf("| |%-10s|%-15s|%8d|%6d|%11d| %5.2f| %5d|\n", p->no,p->name,p->score[0],p->score[1],p->score[2] ,p->av

30、erage,p->order); printf("---------------------------------end--------------------------------------\n"); do{inputs("Do you really want to deleted? (y/n)",k,5); }while(k[0]!='y'&&k[0]!='n'); if(k[0]!='n') /*删除确定判定*/ {if(p==h) /*假如p==h, 说明被删结点是头结点*/ h=p

31、>next; /*修改头指针指向下一条统计*/ else q->next=p->next; /*不是头指针, 将p后继结点作为q后继结点*/ free(p); /*释放p所指结点空间*/ printf("\n have deleted No %s student\n",s); }} return(h); /*返回头指针*/ } /*保留数据到文件模块*/

32、 void save(STUDENT *h) { FILE *fp; /*定义指向文件指针*/ STUDENT *p; /* 定义移动指针*/ char outfile[20]; /*保留输出文件名*/ printf("Enter outfile name,for example G:\\f1\\score.txt:\n"); scanf("%s",outfile); if((fp=fopen(outfile,"wb

33、"))==NULL) /*为输出打开一个二进制文件, 如没有则建立*/ { printf("Can not open file\n"); exit(1); } printf("\nSaving file......\n"); /*打开文件, 提醒正在保留*/ p=h; /*移动指针从头指针开始*/ while(p!=NULL) /*如p不为空*/ { fwrite(p,sizeof(STUDENT),1,fp)

34、 /*写入一条统计*/ p=p->next; /*指针后移*/ } fclose(fp); /*关闭文件*/ printf("-----Save success!!-----\n"); /*显示保留成功*/ } /*导入信息模块*/ STUDENT *load() { STUDENT *p,*q,*h=NULL;

35、 /*定义统计指针变量*/ FILE *fp; /* 定义指向文件指针*/ char infile[20]; /*保留文件名*/ printf("Enter infile name,for example G:\\f1\\score.txt:\n"); scanf("%s",infile); /*输入文件名*/ if((fp=fopen(infile,"rb"))==NULL)

36、 /*打开一个二进制文件, 为读方法*/ { printf("Can not open file\n"); /*如不能打开, 返回头指针*/ return h; } printf("\n -----Loading file!-----\n"); p=(STUDENT *)malloc(sizeof(STUDENT)); /*申请空间*/ if(!p) { printf("Out of memory!\n"); /*如没有申请到, 则内存溢出*/ return h;

37、 /*返回空头指针*/ } h=p; /*申请到空间, 将其作为头指针*/ while(!feof(fp)) /*循环读数据直到文件尾结束*/ { if(1!=fread(p,sizeof(STUDENT),1,fp)) break; /*假如没读到数据, 跳出循环*/ p->next=(STUDENT *)malloc(sizeof(ST

38、UDENT)); /*为下一个结点申请空间*/ if(!p->next) { printf("Out of memory!\n"); /*如没有申请到, 则内存溢出*/ return h; } q=p; /*保留目前结点指针, 作为下一结点前驱*/ p=p->next; /*指针后移, 新读入数据链到目前表尾*/ } q->next=NULL; /*最终一个结点后继指针为空*/ fclose(fp);

39、/*关闭文件*/ printf("Load success!!!\n"); return h; /*返回头指针*/ } /******主函数开始*******/ main() { int i; STUDENT *head; /*链表定义头指针*/ head=init(); /*初始化链表*/ clrscr(); /*清屏*/ while(8)

40、 /*无限循环*/ { switch(menu_select()) /*调用主菜单函数, 返回值整数作开关语句条件*/ { /*实施初始化*/ case 1:head=create();break; /*创建链表*/ case 2:print(head);break; /*显示全部统计*/ case 3:head=sort(head);break; /*排序*/ case 4:head=insert(head); break; /*插入统计*/ case 5:head=delete(head);break; /*删除统计*/ case 6:save(head);break; /*保留文件*/ case 7:head=load(); break; /*读文件*/ case 8:exit(0);break; /*如菜单返回值为9程序结束*/ } } }

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服