湖南工程学院C语言课程设计学生成绩管理系统(DOC)复习过程_第1页
湖南工程学院C语言课程设计学生成绩管理系统(DOC)复习过程_第2页
湖南工程学院C语言课程设计学生成绩管理系统(DOC)复习过程_第3页
免费预览已结束,剩余28页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计报告课程名称C语言课程设计课题名称学生成绩管理系统专业汽车服务工程班 级1 2 0 2班学号201202180213姓 名刘 波指导教师王宁 肖伟平郭芳2014年 1月3日湖南工程学院课程设计任务书课程名称 C课程设计课 题学生成绩管理系统专业班级汽车服务工程学生姓名 刘 波学 号201202180213指导老师 王宁 肖伟平 郭芳审 批任务书下达日期2013年12月 27日任务完成日期 2014年1月3 日目录封面 1任务书 2目录 3设计内容与设计要求 4进度安排 4课题的主要功能 5课题的功能模块的划分 5主要功能的实现 5程序调试 8程序界面 9总结心得 15源程序(附件) 1

2、6评分表 27亠、设计内容与设计要求1 .设计内容:设计与开发一个学生成绩管理系统,对学生的学号、姓名、课程成绩、总分、平均成绩等信息进行管理、主要功能以下基本功能模块图1-1所示。主程序.初始化输入显示删除查找添加计算排序退出图1-1基本功能模块2 .设计要求:1) .设计正确,方案合理。2) .界面友好,使用方便。3) .程序精炼,结构清晰。4) .设计报告5000字以上,含程序设计说明、系统的功能框图、流 程图、源程序清单等。5) .实际操作过程中遇到的问题及解决方法:设计总结及心得体会.6) .上机演示。二、进度安排第十七周 周五 上午8 : 0012: 00 (查阅相关资料并 开始编

3、写源程序)第十七周 周五晚上18 : 30 22: 30 (完成源程序编写调试运行课程设计报告)第十七周 周六 下午13 : 3017: 30 (完成课程设计报告以及答辩)学生成绩管理系统、课题的主要功能:学生信息是存放在文件中的,所以应该提供文件的输入,输出,插入,删除等操 作,在程序中需要浏览学生的信息,应提供显示,查找,排序等操作,另外还应提供键 盘式选择菜单提供选择功能。、课题的功能模块的划分:根据上面的需求分析,可以将这个系统大致划分为以下模块三、主要功能的实现:3-1初始化模块2. 建立学生表格模块,如图3-2所示:输入1Y任意键返回主模N返回主模块N返回主模块进行编辑信息录入继续

4、输入3-2建立学生表格模块3. 从表中删除原有纪录模块,如图 3-3所示:3-3删除原有纪录模块4. 显示单链表中所有记录模块,如图 3-4所示:3-4显示纪录模块5. 按照姓名查找纪录模块,如图3-5所示:3-5查找模块6保存到文件模块,如图3-6所示:3-6查找模块7. 从文件加载模块,如图3-7所示:3-8所示:3-7查找模块8. 计算所有学生的总分和均分模块,如图3-8计算模块9. 插入纪录到表中模块,如图3-9所示:3-9插入纪录模块10. 将所有学生成绩排序模块,如图3-10所示:3-10排序模块11. 追加记录到文件模块,如图3-11所示:3-11分类合计模块12. 退出模块。四

5、、程序调试:在设计该程序的时候我采用了结构化程序方法编辑,并在源代码的基础上添加了中文注释。但是在该系统的编写过程中仍然有许多错误,主要的有:注释文字的排版,定 义错误,句式的语法错误。在完善程序时,我将源代码先打印下来反复的捉摸和研究,力图在上机运行时先改 正一些低级错误.如缺少”;”之类.在仔细检查之后,将源代码上机调试一进行编译, 在编译和连接过程中发现错误,屏幕上显示了出错信息,根据提示找到出错的位置,加 以改正直到顺利显示我预期的。1、首先,在本次调试过程中我碰到了在上机前根本没有想到的错误:在注释的时候, 注释文字应写在一起中间不能有中断,不能再其中包含 c语言的语句。否则会引起错

6、误, 例如格式不正确或是多了字符等。2、缺少变量定义或是定义位置不正确;由于该程序相对来讲稍有些长,前后有些变量很难联系起来,但是在错误信息的提 示下一般还是很是可以找到。不过需要注意的是在定义的时候有些函数使用同样的变量 名而表示不同的作用,因而使用要很小心,定义及定义的位置要特别留意。为减少这样 的错误我后来还是用不同的变量名来表示,结果引起的那些错误解决了。3、句式的语法错误;大多的语法错误在通过书本参考下能够修改。主要是平时看书不仔细、不太注意而 产生的。如没有注意具体数据使用是有一定的范围限定;过分重视分号的重要性而在 for、if、while语句中画蛇添足加分号;在使用文件的时候忘

7、记将文件先打开,对打开 的方式与使用的情况不太注意而造成不匹配;还有漏掉形参的定义是值不能传递等等。 这些语法错误有信息框的提示一般是能够排除的。编译、连接的成功并不意味着程序的最终成功。以上是调试的全过程。程序界面:首先进入界面时,根据屏幕上的提示press any key enter menu 即是按任意键均可进入主菜单,考虑到学生成绩大多由老师输入和调用,所以这里对使用者没有要求 也就没有添加密码的必要。在进入主菜单时可以看到这样的画面,如图4-1所示:ffl FirnTCApi q_ilaitrt9rwirm,cap* w-w Wtw-w- W旨呂它 M W # V w W W* W

8、H X if0. ini I list丄,Lntar list2. Dvloto d rucurd fron 1it3. print list& .ch record cn i itittH5 生due Uw filt36. I orid Iho file7. coimdijtthe score8. insert record Io 1isl9 . sori to mjkc rwvr f i 110. append record tn file11. Ojit4-1主菜单从0到10共有11个功能键。此时应该根据提示”Enter your choice (0-10):”选择自己需要用的功能,例如

9、:在提示后按1再回车(Enter键)的话就会进入编辑。在主菜单上的11个功能分别是:0. i nit list将表格初始化:使用0后,系统会将原有的一切记录全部删去,所有的 恢复到位使用时。一切在主菜单上完成。1. Enter list 建立学生成绩表格:使用1后,在界面上会要求你输入学号 no,姓名 name和成绩score1、2、3。如果已经输入完毕只要在下一个 no后输入!按回车键即 可,此时就会回到主菜单,如图 4-2所示:1.tL9.1011* he s;匚3厂 e rtictirdl Io 1 isi mnlk* ww fill号 retard to Fim s r p U c H

10、 0 no. ci Xtrill er mi ter no: 01 ni I ter: Clp 1 eaise input 3 score1:100 scort!2 :10Oice0-14Jscorestror(2er rio:4-2输入界面2. Delete a record from list从表中删除原有纪录:使用2后,会进入子界面,提示语会告诉你输入你要删除的信息的学生的学号,然后会出现“ list no * student ”这就表示删除成功,如果没有这个学生的信息则会跳过步执行但是还是会输出上述的句 子,如图4-3所示:4-3显示删除界面3. print list显示单链表中所有记

11、录:如果是在执行完5以后,那么总分和均分一栏就不会空白,而是会输出计算后的数据,如图4-4所示:4-4打印输出界面4. Search record from list 按照姓名查 找纪录:根据提示” please enterstudents name for search ”输入学生的拼音拼写的姓名,如图 4-5所示:4-5查找界面5. Save the file,根据提示保存到文件,如图4-6所示:4-6保存界面電t F:QU I- fg At-iesktp* Ai r FL - pry r iTS WriaF.123A5-G10911Enter listDele te tn reccird

12、l from list print listSe-ireh record on n scor* inxsrt record to 1is+ sort to moke new file.append 厂ecord to f i le.QuitEnter jyon cho i 匚el0厂6nter iiifile hame t to 严 eMempie c tf IXte txt: :X1.twl-一一Lpdin file!一 You have 吕 ui 匚 cess read da1a from f ile ? M- rciss 白nychtr Menu a B.4-7加载界面7. comput

13、e the score计算所有学生的总分和均分:按 7后,系统会自动计算然后输出结果,如图4-8所示:row和鬥to11 xt file o nISl2.111ffil F-mn-U*filctop .Virt-tip刮e邛nefijr-e.r:e一一R1I students sum score is;270 press anv key enter emu* , LnIer you choiceC014):7init listEnier listDelete a record f orint listSearch record on 血g the file* Load Uhi File COl

14、HFbJ I & I h电 J2COF 中 inseflrl 厂民匚-ord to sor t I o rnke neid append retiord Quit4-8计算界面8. insert record to list插入纪录到表中:使用 8时,要输入你想插到哪一个学生前,只需输入他的学号。然后,在提示语的提醒下输入要插入学生的学号,姓名和成 绩。如图4-9所示:翌 $gCFr.* :1 L.、p -iij r . 1:7Ur rrsp.9 sort to nake neu file10. append roccrd to filo11. QuitEnter rhoicct 0 14 J

15、 1 8 please writer location before tlie w 09nloasc? n(?w recordA-n ter no : &3etn ter name : 該 j niul 3 scorescore1;80core7:8tlscore3:80-havo insartod 03 Uidcnt- Doftt forget 牙曰寸壬press 已n#enter nenu.4-9插入后界面9. sort to make new file将所有学生成绩排序:在完成后,会出现 ” sortsuccess! ”如果想看结果的话,可以在执行完这一步后在执行 3,这样就可以看到排序

16、 后的结果。如图4-10所示:4-10分类合计界面10. appe nd record to file追加记录到文件模板,如图4-11所示:9. sort to Make new file10. dppeiid record tc file11. QuitEntttr you choice 0141:10please new recordenter naiU4enter none:StDlease input 3 scoropicorol: 7flsccrp?70 score3:7A rnter infill nfle.for exmplf! c:flVe.twt: d:UKtRpDriMin

17、g record?- append sucessl1press any key erler venu.4-11追加记录界面10. Quit退出模块,在主菜单上实行。五、总结通过这次C语言课程设计,让我对 C语言更加的了解,C语言不单单是仅一种简单 的程序设计,C语言是一种兴趣的培养,是一种对程序编程的热爱。虽然只有几天的课 程设计,但是让我体会到了所掌握的知识的不足, 对以前所学过的知识理解得不够深刻, 掌握得不够牢固。 我们通过查阅大量有关资料, 并在小组中互相讨论, 交流经验和自学, 使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。对我而言,C语言是一门很有趣的课程,通过简简单单的

18、几句程序语句,简简单单的组合在一起,就可以组成一个能够帮助人的管理系统,方便而快捷。当然,我对C语言的认知还远远不够,需要我不断地去探索,去发现。这是一个学习的过程,难免会遇 到拦路虎,这就需要我有勇气去征服,不放弃,不抛弃。我相信,我一定会在接下来的 日子里学的更好的。感谢在课程设计过程中王老师给予的讲解和帮助以及和我讨论给我很大帮助的同 学们,谢谢你们的帮助和支持!六、附件(源程序)/*xuesheng.c*/* 头文件(.h ) */#include stdio.h/*I/O 函数 */#include stdlib.h/* 其它说明 */#include string.h/* 字符串函

19、数 */#include conio.h/* 屏幕操作函数 */#include mem.h/* 内存操作函数 */#include ctype.h/* 字符操作函数 */#include alloc.h/* 动态地址分配函数 */#define N 3/* 定义常数 */typedef struct z1/* 定义数据结构 */char no11;char name15;int scoreN;float sum;float average;int order;struct z1 *next;STUDENT;/* 以下是函数原型 */STUDENT *init(); /* 初始化函数 */ S

20、TUDENT *create(); /* 创建链表 */STUDENT *delete(STUDENT *h);/* 删除记录 */void print(STUDENT *h); /* 显示所有记录 */ void search(STUDENT *h);/* 查找 */void save(STUDENT *h); /*保存 */STUDENT *load(); /* 读入记录 */ void computer(STUDENT *h); /* 计算总分和均分 */ STUDENT *insert(STUDENT *h); /* 插入记录 */ void append(); /* 追加记录 */

21、STUDENT *sort(STUDENT *h); /* 排序 */ int menu_select(); /* 菜单函数 */主函数开始 */* 链表定义头指针 */* 初始化链表 */*清屏 */* 无限循环 */main()int i;STUDENT *head; head=init(); clrscr();for(;)switch(menu_select() /* 调用主菜单函数,返回值整数作开关语句的条件 */ /* 值不同,执行的函数不同, break 不能省略 */ case 0:head=init();break; /* 执行初始化 */ case 1:head=create

22、();break; /*创建链表 */ case 2:head=delete(head);break; /*删除记录 */ case 3:print(head);break; /* 显示全部记录 */ case 4:search(head);break; /* 查找记录 */ case 5:save(head);break; /* 保存文件 */ case 6:head=load(); break; /* 读文件 */ case 7:computer(head);break; /* 计算总分和均分 */ case 8:head=insert(head); break; /* 插入记录 */ c

23、ase 9:head=sort(head);break; /* 排序 */ case 10:append();break;/* 追加记录 */case 11:exit(0);/*如菜单返回值为 14 程序结束 */* 菜单函数,返回值为整数 */ menu_select()/* 定义菜单字符串数组 */char *menu=*MENU*0. init list, /* 初始化 */1. Enter list,/* 输入记录 */ 2. Delete a record from list, /* 从表中删除记录 */ 3. print list ,/* 显示单链表中所有记录 */ 4. Sear

24、ch record on name, /* 按照姓名查找记录 */ 5. Save the file,/* 将单链表中记录保存到文件中 */ 6. Load the file,/* 从文件中读入记录 */7. compute the score,/* 计算所有学生的总分和均分 */8. insert record to list/* 插入记录到表中 */9. sort to make new file,/* 排序 */ 10. append record to file,/* 追加记录到文件中 */ 11. Quit; /* 退出 */ char s3;/* 以字符形式保存选择号 */int

25、c,i; /* 定义整形变量 */ gotoxy(1,25);/* 移动光标 */printf(press any key enter menun); /* 压任一键进入主菜单 */getch(); /* 输入任一键 */ clrscr(); /* 清屏幕 */ gotoxy(1,1);/* 移动光标 */textcolor(YELLOW);/* 设置文本显示颜色为黄色 */textbackground(BLUE); /* 设置背景颜色为蓝色 */ gotoxy(10,2);/* 移动光标 */putch(0xc9);/*输出左上角边框厂*/for(i=1;i44;i+)putch(0xcd)

26、; putch(0xbb);for(i=3;i20;i+)/* 输出上边框水平线 */*输出右上角边框 */gotoxy(10,i);putch(0xba); /* 输出左垂直线 */ gotoxy(54,i);putch(0xba);/* 输出右垂直线 */gotoxy(10,20);putch(0xc8);/*输出左上角边框1- */for(i=1;i44;i+)putch(0xcd);/*输出下边框水平线 */putch(Oxbc);/*输出右下角边框*/window(11,3,53,19);/* 制作显示菜单的窗口,大小根据菜单条数设计 */clrscr();/*清屏 */for(i=

27、0;i13;i+)/*输出主菜单数组 */gotoxy(10,i+1);cprintf(%s,menui); textbackground(BLACK); /*设置背景颜色为黑色 */ window(1,1,80,25);/*恢复原窗口大小 */gotoxy(10,21);/*移动光标 */* 在菜单窗口外显示提示信息 */doprintf(n Enter you choice(014):);scanf(%s,s);/*输入选择项 */c=atoi(s);/* 将输入的字符串转化为整形数 */while(c11);/*选择项不在 014 之间重输 */*/return c;/*返回选择项,主程

28、序根据该数调用相应的函数 STUDENT *init()return NULL;/*创建链表 */STUDENT *create()int i; int s;STUDENT *h=NULL,*info; /* STUDENT 指向结构体的指针 */ for(;)info=(STUDENT *)malloc(sizeof(STUDENT); /* 申请空间 */ if(!info)/*如果指针 info 为空*/printf(nout of memory); /*输出内存溢出 */ return NULL;/*返回空指针 */inputs(enter no:,info-no,11);/* 输入学

29、号并校验 */if(info-no0=) break;/* 如果学号首字符为 则结束输入 */inputs(enter name:,info-name,15); /* 输入姓名,并进行校验 */ printf(please input %d score n,N); /* 提示开始输入成绩 */ s=0; /* 计算每个学生的总分,初值为 0*/*N 门课程循环 N 次 */* 将总分保存 */* 求出平均值 */for(i=0;iscorei);/* 输入成绩 */if(info-scorei100|info-scoreiscorei100|info-scoreiscorei; /* 累加各门

30、课程成绩 */ info-sum=s; /* 将总分保存 */ info-average=(float)s/N; /* 求出平均值 */info-order=0; /* 未排序前此值为 0*/ info-next=h; /* 将头结点做为新输入结点的后继结点 */ h=info;/* 新输入结点为新的头结点 */return(h); /* 返回头指针 */* 输入字符串,并进行长度验证 */ inputs(char *prompt, char *s, int count)char p255;doprintf(prompt); /* 显示提示信息 */ scanf(%s,p); /* 输入字符串

31、 */ if(strlen(p)count)printf(n too long! n); /* 进行长度校验,超过 count 值重输入 */ while(strlen(p)count);strcpy(s,p); /*将输入的字符串拷贝到字符串 s 中*/* 输出链表中结点信息 */ void print(STUDENT *h)int i=0; /* 统计记录条数 */ STUDENT *p; /* 移动指针 */ clrscr(); /* 清屏 */ p=h; /* 初值为头指针 */printf(nnn* *STUDENT *printf(|rec|nO | name | sc1| sc2

32、| sc3| sum | ave |order|n);printf(|-| | | | |n);while(p!=NULL)i+;printf(|%3d |%-10s|%-15s|%4d|%4d|%4d| %4.2f | %4.2f | %3d |n, i, p-no,p-name,p-score0,p-score1, p-score2,p-sum,p-average,p-order);p=p-next;printf(*end*n);/* 删除记录 */STUDENT *delete(STUDENT *h)STUDENT *p,*q; /*p 为查找到要删除的结点指针, q 为其前驱指针 */

33、 char s11;/* 存放学号 */clrscr();/*清屏 */printf(please deleted non);/* 显示提示信息 */scanf(%s,s); /* 输入要删除记录的学号 */q=p=h; /*给q和p赋初值头指针*/*当记录的学号不是要找的,或指针不为空时 */ q=p;/* 将 p 指针值赋给 q 作为 p 的前驱指针 */p=p-next;/*将 p 指针指向下一条记录 */if(p=NULL)/*如果p为空,说明链表中没有该结点*/printf(nlist no %s studentn,s);else/*p 不为空,显示找到的记录信息 */printf(

34、*have found*printf(|no|name | sc1| sc2| sc3| sum | ave |order|n);printf(|n);printf(|%-10s|%-15s|%4d|%4d|%4d| %4.2f | %4.2f | %3d |n, p-no,p-name,p-score0,p-score1,p-score2,p-sum, p-average,p-order);printf( *end*n);getch();/* 压任一键后,开始删除 */if(p=h)/* 如果 p=h ,说明被删结点是头结点 */h=p-next;/* 修改头指针指向下一条记录 */else

35、q-next=p-next; /* 不是头指针,将 p 的后继结点作为 q 的后继结点 */ free(p); /*释放 p 所指结点空间 */ printf(n have deleted No %s studentn,s);printf(Dont forget saven);/* 提示删除后不要忘记保存文件 */return(h); /* 返回头指针 */* 查找记录 */ void search(STUDENT *h)STUDENT *p; /* 移动指针 */char s15;/* 存放姓名的字符数组 */clrscr();/* 清屏幕 */printf(please enter nam

36、e for searchn);scanf(%s,s); /* 输入姓名 */p=h;/* 将头指针赋给 p*/while(strcmp(p-name,s)&p!=NULL)/* 当记录的姓名不是要找的,或指针不为空时*/p=p-next;/* 移动指针,指向下一结点 */if(p=NULL) /* 如果指针为空 */printf(nlist no %s studentn,s);/* 显示没有该学生 */else /* 显示找到的记录信息 */printf(nn*havefound*n);printf(|nOname | sc1| sc2| sc3| sum | ave |order|n);pr

37、intf(|n);printf(|%-10s|%-15s|%4d|%4d|%4d| %4.2f | %4.2f | %3d |n, p-no,p-name,p-score0,p-score1,p-score2,p-sum,p-average,p-order);printf( */* 插入记录 */STUDENT *insert(STUDENT *h)STUDENT *p,*q,*info; /*p 指向插入位置, q 是其前驱, info 指新插入记录 */ char s11; /* 保存插入点位置的学号 */int s1,i;printf(please enter location befo

38、re the non); scanf(%s,s); /* 输入插入点学号 */ printf(nplease new recordn); /* 提示输入记录信息 */ info=(STUDENT *)malloc(sizeof(STUDENT); /* 申请空间 */ if(!info)printf(nout of memory);/* 如没有申请到,内存溢出 */return NULL;/* 返回空指针 */inputs(enter no:,info-no,11); /* 输入学号 */ inputs(enter name:,info-name,15); /* 输入姓名 */ printf(

39、please input %d score n,N); /* 提示输入分数 */ s1=0; /* 保存新记录的总分,初值为 0*/ for(i=0;iscorei); if(info-scorei100|info-scoreiscorei100|info-scoreiscorei;/* 计算总分 */info-sum=s1; /* 将总分存入新记录中 */ info-average=(float)s1/N;/* 计算均分 */info-order=0;/* 名次赋值 0*/info-next=NULL;/* 设后继指针为空 */p=h; /* 将指针赋值给 p*/ q=h;/* 将指针赋值给

40、 q*/while(strcmp(p-no,s)&p!=NULL) /* 查找插入位置 */ q=p;/*保存指针p,作为下一个p的前驱*/p=p-next;/*将指针 p 后移 */if(p=NULL)/*如果 p 指针为空,说明没有指定结点 */if(p=h)/*同时p等于h,说明链表为空*/h=info; /*新记录则为头结点 */ elseq-next=info; /*p为空,但p不等于h,将新结点插在表尾*/ elseif(p=h) /*p 不为空,则找到了指定结点 */info-next=p; /*如果p等于h,则新结点插入在第一个结点之前*/h=info; /* 新结点为新的头结

41、点 */ elsep*/info-next=p; /*不是头结点,则是中间某个位置,新结点的后继为 q-next=info; /* 新结点作为 q 的后继结点 */printf(n have inserted %s studentn,info-name);printf(-Dont forget save-n);/* 提示存盘 */return(h);/* 返回头指针 */*保存数据到文件 */void save(STUDENT *h)FILE *fp;/* 定义指向文件的指针 */STUDENT *p;/* 定义移动指针 */char outfile10;/* 保存输出文件名 */*/whil

42、e(p!=NULL)/*如p不为空*/printf(Enter outfile name,for example c:f1te.txt:n); /* 提示文件名格式信息 */scanf(%s,outfile);if(fp=fopen(outfile,wb)=NULL) /* 为输出打开一个二进制文件,如没有则建立printf(can not open filen);exit(1);printf(nSaving filen);/* 打开文件,提示正在保存 */p=h;/*移动指针从头指针开始 */fwrite(p,sizeof(STUDENT),1,fp);/* 写入一条记录 */p=p-nex

43、t;/* 指针后移 */fclose(fp);/*关闭文件 */printf(save success!n);/* 显示保存成功 */*从文件读数据 */*定义记录指针变量 */char infile10;/*保存文件名 */STUDENT *load()STUDENT *p,*q,*h=NULL;FILE *fp;/* 定义指向文件的指针 */scanf(%s,infile);/* 打开一个二进制文件,为读方式 */printf(can not open filen);/* 如不能打开,则结束程序 */*输入文件名 */printf(Enter infile name,for example

44、 c:f1te.txt:n); if(fp=fopen(infile,rb)=NULL)exit(1);/*申请空间 */printf(n Loading file!n);p=(STUDENT *)malloc(sizeof(STUDENT);if(!p)printf(out of memory!n); /* 如没有申请到,则内存溢出 */ return h;/*返回空头指针 */ h=p;/*申请到空间,将其作为头指针 */while(!feof(fp) /* 循环读数据直到文件尾结束 */ if(1!=fread(p,sizeof(STUDENT),1,fp)break; /* 如果没读到

45、数据,跳出循环 */ p-next=(STUDENT *)malloc(sizeof(STUDENT);/* 为下一个结点申请空间 */if(!p-next)printf(out of memory!n); /* 如没有申请到,则内存溢出 */return h;q=p; /* 保存当前结点的指针,作为下一结点的前驱 */ p=p-next; /* 指针后移,新读入数据链到当前表尾 */q-next=NULL;/* 最后一个结点的后继指针为空 */fclose(fp); /* 关闭文件 */printf(-You have success read data from file!-n);retu

46、rn h; /* 返回头指针 */* 追加记录到文件 */void append()FILE *fp; /* 定义指向文件的指针 */STUDENT *info;/* 新记录指针 */int s1,i;char infile10; /* 保存文件名 */ printf(nplease new recordn);info=(STUDENT *)malloc(sizeof(STUDENT); /* 申请空间 */ if(!info)printf(nout of memory);/* 没有申请到,内存溢出本函数结束 */return ;inputs(enter no:,info-no,11);/* 调用 inputs 输入学号 */inputs(enter name:,info-name,15); /* 调用 inputs 输入姓名 */ printf(please input %d score n,N);/* 提示输入成绩 */s1=0;for(i=0;iscorei); /* 输入成绩 */ if(info-scorei100|info-scoreiscorei100|info-scoreiscorei;/* 求总分 */info-sum=s1;/* 保存总分 *

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论