下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、郑州轻工业学院实训报告实训名称:学生成绩管理系统姓 名:褚超院(系):软件学院专业班级:网络软件开发 14-01班学 号:621413560103指导教师:孙海燕成 绩:时间:2015年1月5日至2015年1月9日目录实训任务书实训进度日历实训报告实训感想实训任务书一、题目“学生成绩管理系统”设计二、学生信息专业学号姓名三、用户需求及约束条件1、用C语言实现 “学生成绩管理系统”。2、设计“学生成绩管理系统”的用户界面,系统启动进入后,只能通过界面菜单指令才能退出。3、“学生成绩管理系统”具有以下功能:1)系统启动后,弹出一个用户界面,能实现人机交互的功能。而且只能通过界面菜单命令实现各种功能
2、(包括系统退出功能)。2) 录入学生成绩(信息有:班级、姓名、学号、五门课程成绩);3)计算每门功课的平均成绩和学生五门功课的平均成绩并存档。下面的功能必须是第 3)项功能完成以后才能进行。4)输出学生的信息和对应的原始成绩以及平均成绩;5)按平均成绩进行排序,输出排序后的学生信息以及对应的课程成绩和平均成绩。6)对成绩修改,分别有两种模式,一种是按学号查找后进行修改;另一种是按姓名查找后进行修改;修改后重新排序学生的顺序,并输出学生信息和对应课程成绩和平均成绩。7)增补遗漏的学生以及对应的信息和对应的课程成绩,并计算出平均成绩,增补以后重新排序学生顺序,并输出学生信息和对应课程成绩和平均成绩
3、。8)附加功能:把学生信息和对应的课程成绩和平均成绩存入到文件中。9)附加功能:输出文件中的内容。10)附加功能:试着从文件中导入数据到成绩管理系统中,然后进行管理。四、设计要求、技术参数及设计规格1、原始成绩由老师统一给出,在 Excel表中;2、设计的系统能够运行,提交源程序、目标文件和可执行文件;3、 提交实训报告,实训报告中列写:1)软件需求分析;2)软件规格说明和设计要求;3)对数据的管理方案;4)"学生成绩管理系统”设计的思路和整体框架;5)各功能或者模块实现的思路(或者用带注释的程序代替)并交待模块之间的接口关系;6) “学生成绩管理系统”设计的结果(可以用一些屏幕拷贝
4、的图来补充说明)。4、程序设计环境为 Visual C+ 6.0 或DEV C+5、所有的设计工作需要同学自己真实地、独立地完成。五、工作量天/日期任务描述通过标准2015 年上午:熟悉系统功能,文档通过1月5日完成三项任务(用文档记录):1)软件需求分析;2)软件规格说方案通过明和设计要求;3)对数据的管理方案。数据结构通过下午:构思“学生成绩管理系统”的思路和整体框架。设计的函数框架通过设计数据结构(命名),设计函数框架(命名,考虑参数的类型和要求数据传递接口正常,main函个数,即考虑数据之间的传递关系)。设计被系统调用的 main函数;数能运行。实现界面函数;设计各功能子函数的框架;2
5、015 年上午:实现成绩录入功能;各子函数调试通过,能被main函1月6日下午:实现计算平均成绩功能;实现输出功能;数成功调用,其子功能能实现。2015 年上午:实现排序功能;各子函数调试通过,能被main函1月7日下午:实现修改功能;实现增补功能 (选做);数成功调用,其子功能能实现。2015 年上午:实现查找功能,按学号查找、按姓名查找;各子函数调试通过。1月8日下午:实现自身特色功能,如登陆、链表操作、文件存储数据;2015 年上午:完善“成绩管理系统的各项功能”。撰写实训报告。系统能正确运行,界面友好);1月8日实践能力强的同学实现附加功能。各功能能够实现,性能良好操作方下午:继续写实
6、训报告并且验收设计的项目。便。备注:做得慢的同学选做部分可不做。六、考核形式、考核时间、考核指标及成绩评定实训成绩由下面构成:实训纪律、实训态度和平时表现占20%实训结果占30%实训报告占30%实践操作能力占20%考核形式:1)老师每日对学生的考察、评估和考核;2)最后对实训项目完成的质量进行考核和验收。完成期限:2015年01月09日指导教师签章:孙海燕专业负责人签章:崔建涛教学院长签章实训进度日历题 目学生成绩管理系统指导教师孙海燕、张玲、 陈明学 生 班 级软件学院网络软件 14-01 网络软件14-02 , .net 技14-02学年学期1415学年第1学期天实训任务详细描述教师实训任
7、务的指导(解决方案、实现步骤、 技术路线、难点提示)通过标准15年1月5日上午完成:1 )软件需求 分析;2 )软件规格 说明和设计要求; 3)对数据的管理方 案。对软件功能进行分类。用户界面操作简单、功能完备,系统启动后先 录入数据,再求平均成绩;平均成绩求出后, 其他的功能才能实现。数据结构可以采用数组也可以采用链表。文档通过验收下午构思“学生成绩管 理系统”的思路和 整体框架。设计数据结构(命 名),设计函数框架(命名,考虑参数 的类型和个数,即 考虑数据之间的传 递关系) 设计被系统调用的 main函数;设计界 面函数;如果采用数组管理数据结构,则数组必须按地 址传递,这样数据才能在各
8、个函数间共享。难点1:系统的退出,exit()函数需要包含stdlib.h难点2 :清屏函数 clrscr();难点3 :数据的传递设计的 函数框 架通过 调试, 要求数 据传递 接口正八t /丿吊,main 函数能 运行。15年1月6日上午设计数据录入函 数,从键盘读数据 到数组中,或者创 建链表难点1:数据输入完后,怎样控制结束?用一 个什么标志。难点2:结构体数组中的子域又是一个数组 时,数据不能直接从键盘读入, 需用一个临时 变量中转一下。难点3:从键盘录入数据时,要给完全的提示 信息,便于操作指导。各子函 数调试 通过,能 被 mai n 函数成 功调用下午计算平均成绩的函 数实现;
9、输出原始成绩;难点4:想一想:在录入数据时数据保存到一 数组,那么在算平均值时,怎样能接触到此数 组中的数据。输出按照一定的格式,好看。各子函数调试 通过,能被 main函数成 功调用。15年1月7日上午排序功能实现并输 出排序后的成绩。按平均成绩排序。排序的算法可以是泡泡法或者选择法等思考1 :你还可以分别在每个班中按平均成绩 排序吗?思考2:能输出有不及格课程的同学信息和成 绩吗?各子函 数调试 通过,能 被 mai n 函数成 功调用。下午实现查找功能按姓名查找以后,再修改;按学号查找以后,再修改; 如果要用对半查找法,需要数据是有序的。各子函 数调试 通过,能 被 mai n 函数成
10、功调用。15年1月8日上午能对某一学生信息 和成绩进行修改;能增加学生的信息(选做);查找到某一学生,修改某一属性,如果需要重 新排序,重新排序,把结构存入文件; 难点:怎样从键盘中把成绩存入文件。增加后重新排序,重新输出。难点:怎样从文件中读出数据下午自定义功能实现女口:登陆:密码输入显示 * ;等15年1月9日上午完成实训报告难点:清晰、明确、简单、评价合理、有自己 的见解、创新。实训报告内容:任务书、实训进度计划、大纲 性的目录、正文、实训感想、附件。实训报告要求装订整齐。系统能 正确运 行,界面 友好); 各功能 能够实 现,性能 良好操 作方便。下午验收程序 讨论系统能 正确运 行,
11、界面 友好); 各功能 能够实 现,性能 良好操 作方便。制订教师:孙海燕、张玲实训报告1. 软件需求分析1.1、 用C语言编写程序实现“学生成绩管理系统”。1.2、设计“学生成绩管理系统”的用户界面,系统启动进入后,只能通过 界面菜单指令才能退出。1.3、系统启动后,弹出一个用户界面,能实现人机交互的功能。而且只能 通过界面菜单命令实现各种功能(包括系统退出功能);1.4、 录入学生成绩(信息有:班级、姓名、学号、五门课程成绩);1.5、计算每门功课的平均成绩和学生五门功课的平均成绩并存档;1.6、输出学生的信息和对应的原始成绩以及平均成绩;1.7、按平均成绩进行排序,输出排序后的学生信息以
12、及对应的课程成绩和 平均成绩;1.8、对成绩修改,有两种模式,一种是按学号查找后进行修改;另一种是 按姓名查找后进行修改;修改后重新排序学生的顺序,并输出学生信息和对 应课程成绩和平均成绩;1.9、增补遗漏的学生以及对应的信息和对应的课程成绩,并计算出平均成 绩,增补以后重新排序学生顺序,并输出学生信息和对应课程成绩和平均成 绩;1.10、附加功能:把学生信息和对应的课程成绩和平均成绩存入到文件中;1.11、附加功能:输出文件中的内容;1.12、 附加功能:试着从文件中导入数据到成绩管理系统中,然后进行管理2. 系统详细设计及实现2.1、系统用户界面尽量居中,体现美观效果;2.2、编写的程序具
13、有人机交互功能;2.3、通过菜单选择软件的功能;2.4、软件只能由菜单退出系统;2.5、操作信息提示(界面友好);2.6、具有拦截一些误操作错误的功能;2.7、按原始成绩格式输出。设计要求:2.1、根据老师给出的数据写入;2.2、设计的系统能够运行,提交源程序、目标文件和可执行文件;2.3、提交实训报告,实训报告中列写;2.4、程序设计环境为 DEV C+;2.5、所有的设计工作需要同学自己真实地、独立地完成。3、对数据的管理方案结构体数组和文件:输入的数据可以保存在文件中,下次重新打开程序,原先已输入的数据还在;(难度中等)以下为该程序的定义部分typedef struct stude nt
14、char clas5;char ID5;char n ame15;double score5;double sum;double avg;STU;在此处,我将学生的班级、学号和姓名都定义为char型,方便整体的使用。特别是后面的部分子函数中用到的字符串比较函数strcmp,方便了排序比较;将学生的成绩定义为双精度实型变量(double),为了使计算的平 均分更为精确。讲此定义放在程序的头部,作为整个程序使用。为了使后面的子函数调用方便、简介,我用到 typedef structstudent定义。以下是该程序的函数声明部分/*以下是该程序的函数声明部分*/void Display(void);
15、/*显示主菜单界面*/void Load(STU stu, i nt *n);/*将信息加载到内存中*/void InputOne(STU stu, int i);/*输入指定的学生信息*/void Add(STU stu, i nt *n);/*添加指定的学生信息*/void Save(STU stu, i nt n);/*将数组保存到磁盘*/void Output(STU stu, i nt n);/*输出所有学生信息*/void Prin t(STU *s);/*输出指定的学生信息*/void Sort(STU stu, i nt n);/*排序*/void Fi nd(STU stu,
16、 i nt n);/*查找*/int FindID(STU stu, int n, char clas, char ID); /*按学生学号查找*/void Edit(STU stu, i nt n);/*修改指定的学生信息*/void Del(STU stu, i nt *n);/*删除*/void DeleteAll(STU stu, i nt *n);/*删除所有学生信息*/void Delete On e(STU stu, i nt *n);/*删除指定的学生信息*/以上是该程序的全部声明部分,这些声明函数与下文的各功能函数相互 对应,且顺序依次排列,方便查找和修改。在这些声明的函数中
17、,用到了引 用数组以及指针,方便了下面各功能函数的使用以及调用。以下是该程序的主函数部分int mai n()STU stuN;int n;int select;Load(stu, &n);while(1)Display。;scan f("%d", &select);switch(select)case 1:/*输入 */Add(stu, &n); break;case 2:/*输出 */Output(stu, n); break;case 3:/*排序 */Sort(stu, n); break;case 4:/*查找 */Fin d(stu, n
18、); break;case 5:/*修改 */Edit(stu, n); break;case 6:/*删除 */Del(stu, &n); break;case 7:/*退出 */return 0;以上是该函数的函数部分,用到了 switch语句,分别针对7种功能分 情况列出。在下面的各分函数中,处理完的数据值会根据具体需要返还到主 函数中,并且显示在主界面中。方便用户查看。利用switch的好处在于,分情况列出各种需要的可能性,条例清晰,可读性强,并且十分方便。以下是该程序的主界面部分/*以下为该程序的主界面*/void Display。system("cls"
19、); printf(” prin tf("n"); printf(" prin tf("n"); printf(" prin tf("n"); printf("郑州轻工业学院考试成绩管理系统n");班级:网络软件开发14-01班n");学号:621413560103n");作者:褚超n");printf(”* n")1:n");printf(”2:输出学生成绩3:资料进行排序n")prin tf("n");print
20、f(”4:查找学生资料5:修改学生资料n")prin tf("n");printf(”6:删除学生资料7:退出管理系统n")输入学生资料printf(” prin tf("n");prin tf("n");prin tf("*n" );printf("欢迎进入成绩管理系统,请选择(你只需输入17中的其中一个数字便可进行下一步操作)n");以上为该程序实际操作的主界面,具有 6大基本功能。用户可以根据需要进行相关操作,实现所需要的功能。在此界面中,用到了清屏函数,方便用户更好的
21、体验该程序,不至于界面混乱void Load(STU stu, int *n)FILE *fp;int i;if(fp=fope n("d:stude nt.dat",*n = 0;return;”r+”)= NULL) /* 以'r+'打开可读写的文件 */for(i=0; fread( &stui,sizeof(STU),1,fp)!=0;i+); /*将信息读取到stu中*/*n = i;中当前学生数量*/fclose(fp);/*/*这里*n的作用为记录文件关闭文件*/*以上是该程序的从文件中读取数据的函数部分。用到了指针,从所指定的文件st
22、udent.dat读取到输入后保存在该文件中的信息,并显示在主界面 中。用户可以直接将该文件拷贝到指定文件夹中,当执行一次源代码的编译 后,该系统就知道了这些数据所在的文件,当用户执行程序运行时,选择相 关的功能时,便可直接在主界面显示,无需再次输入信息。这样以来,该程 序就具有了很强的实用性与使用性,方便了用户处理数据。以下是该程序的输入部分/*输入第i个学生信息,保存到stu数组中*/void In putO ne(STU stu, i nt i)int j;/*输入学生信息*/printf(”请输入学生班级、学号、姓名(数据间以空格隔开):");scanf("%s%s
23、%s", &stui.clas, &stui.ID, &);/*输入五门课程成绩并累加*/printf(”请依次输入课程1、2、3、4、5成绩(数据间以空格隔开):");stui.sum = 0.0;for(j=0; j<5; j+)scan f("%lf", & stui.scorej);stui.sum += stui.scorej;/*计算五门课程的平均分*/stui.avg = stui.sum / 5;/*调用InputOne函数添加若干学生信息,并把新添加的学生信息依次保存到文件中*/v
24、oid Add(STU stu, i nt *n)int i=0;char s = 'y'while(s = 'y')In put On e(stu, (*n)+);/*添加第 n+1 个学生的信息 */printf("是否继续添加(请输入y or n)n");scanf(” %c", &s);Save (stu, * n);void Save(STU stu, i nt n)FILE *fp;if(fp=fopen("d:student.dat", "w") = NULL)print
25、f(”打开文件失败n");exit(O);fwrite(stu, n * sizeof(stu0), 1, fp);fclose(fp);/*/以上为该程序的第一个功能函数部分,可实现学生信息的录入功能,所 录入的文件即student.dat。用户可以根据需要输入一个或多个学生信息。只需要在输入一个学生信息完成后,判断是否继续录入学生信息即可。当输 入y时,可继续输入一个或多个学生信息,操作与之前相同;当输入其它字 母时,输入学生信息结束,程序返回到该程序的原始主界面。可继续选择其 它相关操作。方便用户处理数据,解决了单次功能实现后,程序退出的问题以下是该程序的输出部分/*输出所有学
26、生信息*/void Output(STU stu, i nt n)int i;/*打印数据表头*/printf(”您需要的所有学生成绩如下:n");prin tf("n");printf("%8s%8s%8s%8s%8s%8s%8s%8s%8s%8s","班级","学号","姓名","成绩 1","成绩2","成绩3","成绩4","成绩5","总分","平
27、均分");for(i=0; i<n; i+)Print(&stui);system("pause");void Prin t(STU *s)int i;/*打印所有学生的信息*/printf("%8s%8s%8s", s->clas, s->ID, s->name);for(i=0; i<5; i+)prin tf("%8.2f", s->scorei);printf("%8.2f%8.2f", s->sum, s->avg);prin tf(&qu
28、ot;n ”); /*/以上是学生信息输出部分的函数,系统会自动打印出表头信息。相关的 学生信息会在其下一行依次展开并与表头对齐。程序实现了信息的读出功 能,方便了用户的查看与处理。其中,输出的学生成绩都采用了double型,并保留两位有效数字,使数据更为准确。F面给出输出学生信息时的主界面显示情况郑册I轻工业学院考试成绩管理系统班级:网络软件幵发1471班学号:621413560103作者:褚超4=M=+=I4=M=M=M=M=+=I=+=I=I=M=M=M=M=+=I=+=M=M=M=M=M=+=I=+=M=M=M=M=M=+=I=I=M=M=M=M=+=I=+=M=M=M=M=M=+=I
29、=+:1:输入学生资料2:输出学生成绻出资料进行排序加查找学生资料E:修改学生资料已删除学生资料"退出管理系统欢迎进入成绩管理系统,请选择(你只需谕入广亍中的其中一个数字僵可进行下一步操作2您需要的所有学生成绩如下:班级601学号3姓容 lin成绩189.00成绩288,00成绩393.00咸绩481.00成绩日83.00总分494.00平均列86. B06016ling67,0058,0076.0079,0076,00356.0071, 206016kang77*0076.0078.0079,0078.00338.0077*606017ddd77.0073.0079.0083.00
30、80.00392.0078.406018chenzi89.0094,0082,0080,0087,00432.0086.406021hua65.0077*0075.0078.007400369.007j.8'j6023Iiao56.0071.0073.0075.0074.00349.0069.806024guang78.0085.0089.0092.0090,00434.0086.806025qun88,00S9,0094.0083,0082,00436.0087, 20以下是该程序的排序部分/*对学生的信息进行排序*/void Sort(STU stu, int n)int sele
31、ct;int ScoreAsc(c onst void *a, const void *b);int ScoreDes(c onst void *a, const void *b);int NameAsc(c onst void *a, const void *b);prin tf("1:按总成绩升序排列n");prin tf("n");prin tf("2:按总成绩降序排列n");prin tf("n");printf("3:按学生姓名排序n");scan f("%d",
32、& select);switch(select)case 1: qsort(stu, n, sizeof(stu0), ScoreAsc); break; case 2: qsort(stu, n, sizeof(stu0), ScoreDes); break; case 3: qsort(stu, n, sizeof(stu0), NameAsc); break; default: return;Output(stu, n);/*以下是按成绩升序排序的分函数*/int ScoreAsc(c onst void *a, const void *b) return (STU *)a)-&
33、gt;sum > (STU *)b)->sum ? 1 : -1;/*以下是按成绩降序排列的分函数*/int ScoreDes(c onst void *a, const void *b)return (STU *)a)->sum < (STU *)b)->sum ? 1 : -1;/*以下是按学生姓名升序排列的分函数*/int NameAsc(c onst void *a, const void *b)return strcmp(STU *)a)->name, (STU *)b)->name);/*以上为该程序的排序函数部分,该函数实现了排序的功能,
34、并且可以分 别根据总成绩的高低进行升序以及降序排序,也可以根据学生的姓名进行排 序。在这里,为了使三种排序功能方便处理、简洁,我用到了switch语句,根据三种情况分别判断。并根据用户需要,将特定的排序方式信息反馈给用 户,用户可以直接在该程序的主界面进行查看,方便用户处理学生信息。F面给出资料进行排序中的按总成绩降序排列主界面显示情况1按总成绩升序排列E按总成绩隆序排列壮扌安学生姓名排序您需要的所有学生成绩如下:学号姓名成绩1成绩2成绩3成绩4成绩5总分平均分6025qun88,0089,0094.0083.0082,00436.0087. 205024guang73.0085.0039.0
35、092.0090,00434.0086.806013lin89*0088.0093.0081.0083.00434.0086.806018chenKi89.0094,0082.0080.0087.00432.0086.406011vang78,0085.0092.0088,0084,00427.0085,4060310qun78.0079.0080.0083*00S8.00408.0081. S06038bo80.0081.0082.0079.0085.00407.0081.406017ddd77,0073,0079.0083.0080,00392.00?8.406028 dongfei73.
36、0079.0080.0082.0077*00391.0078. 206016kang77*0076.0073.0079.0078.00388.0077. S0602711178,0076,0065.0082.0080,00381.0076. 201deng81.0085.0073.006S,0066,00373.0074.606021hua65*0077.007E.OO73*0074.00369.0073.806035hegang75.0076.0073.0072.0071.00367.0073.406029feisian71,0065.0072.00?7.0074,00359.007L806
37、015ling67.0058.0076.0079.0076.00356.007L 20以下是该程序的查找部分/*按学号查找学生信息*/void Fi nd(STU stu, i nt n)int in dex;char clas5,ID5;printf(”请输入班级和学号(数据间以空格隔开):");scan f("%s%s", clas, ID);index = FindID(stu, n, clas, ID);if(in dex > 0)Prin t(&stui ndex);elseprin tf("该学生信息不存在!n");s
38、ystem("pause");/*分别对学生班级和学号进行确定*/int FindID(STU stu, int n, char clas, char ID)int i;for(i=0; i<n; i+)/*一旦找到该学生信息,则会自动返回对应的下标 */if(strcmp(stui.ID, ID)=0 && strcmp(stui.clas, clas) =0)return i;return -1; /*/以上是查找学生信息的功能函数部分。在此,因为有多个班级的信息存在,因此,避免不了学号一致的情况出现。可学号相同的学生,班级肯定不 相同,因此为了使
39、查找的学生信息是用户所需要的信息。我在查找函数中, 同时查找学生班级与学生学号,这样以来,就可以确定所需要查找的学生信 息在主界面反馈给用户时是正确的。因此就需要用到一个if语句,只有在班级和学号都一致的情况下,才将信息返回给用户,否则输出该学生的信息 不存在。这样以来,学生信息的查找功能就得以实现了。F面给出查找学生成绩的主界面显示情况以下是该程序的修改部分/*修改指定的学生信息*/void Edit(STU stu, i nt n)int i, i ndex;char s;char clas5,ID5;printf(”请输入班级和学号(数据间以空格隔开):");scan f(&q
40、uot;%s%s", clas, ID);index = FindID(stu, n, clas, ID);if(in dex < 0)prin tf("该学生信息不存在!n");return;printf(”以下是修改前的学生信息n");Prin t(&stui ndex);/*修改学生成绩*/printf("是否修改成绩?(请输入y or n)n");scanf(” %c", &s);if(s = 'y')stui ndex.sum = 0;printf("请输入五门学科的
41、成绩(数据间以空格隔开):");for(i=0; i<5; i+)scanf("%lf", &stuindex.scorei);stui ndex.sum += stui ndex.scorei;stui ndex.avg = stui ndex.sum / 5;Save(stu, n);/*/以上是修改学生信息的函数部分,用户可以通过输入需要查找的学生的 班级和学号先找到该学生的具体信息,主界面也会在同一时间将该学生的信 息反馈到程序的主界面。用户可以通过判断来确定是否修改学生信息,如用 户确定修改该学生的信息,就会显示请输入需要修改的学生的成绩。
42、用户只 需要将更新后的成绩再次输入,就可以完成学生信息的修改功能,并且将该 次更新的成绩存储到指定的2文件中,覆盖原来的该学生信息。这样以来, 学生成绩修改的功能就可以完成了。下面给出修改学生资料主界面显示情况(待修改状态)1 ;输入学生資料吋俞出学生成绩3:资料进行排序缶查找学生资料5:修改学主资料I曰:删除学生资料退出管理系统欢迎进入成绩管理系统,请选择£你只需辅k入中的其中一个数字便可逛行下一步操作)養输入班级和学号(数拯间臥空格隔幵)©1 1以下是修改前的学生信息6011 W3ELE 78.0085. 0092.0088.0084.00427. 0085. 40是否
43、修改咸续?(请谕入y ox n)奮输入五门学科的成绩(数据间以空格隔幵):100 100 100 100 100F面给出修改学生资料主界面显示情况(修改完成状态)班级:咻软件开发14-01班6 21413560103作者:褚超1:输入学主资料2:输出学生成绩3 :资丰斗进厅排序心查找学生资料5 :修改学生资料乩删除学生资料7 :退出管理系统欢迎进入成绩管理系统,请选择C你只需諭入中的其中一个数字便可进行下一步操作4请输入喊和学号(数据间以空格隔开):占。1 16011 wang 100.00100.00100.00100. 00100.00500.00100. 00请按任意键缩续-以下是该程序
44、的删除部分/*删除*/void Del(STU stu, i nt *n)int select;prin tf("1:删除指定的学生信息n");prin tf("n");prin tf("2:删除所有的学生信息n");scan f("%d", & select);switch(select)case 1: Delete On e(stu, n); break; case 2: DeleteAll(stu, n); break;/*从文件中删除全部学生信息*/void DeleteAll(STU stu, i
45、 nt *n)char s;FILE *fp;printf(”信息是否全部删除?(请输入y or n)n");scanf(” %c", &s);if(s = 'y')以'w'方式打开可覆盖原来的文件*/内存中的数组stu中元素个数变为0*/fp = fope n("d:stude nt.dat", "w"); /* *n = 0;/*prin tf("删除完成! n");fclose(fp);/*删除指定的学生信息*/void Delete On e(STU stu, i n
46、t *n)int i, i ndex;FILE *fp;char clas5,ID5;printf(”请输入班级和学号(数据间以空格隔开):");scan f("%s%s", clas, ID);index = FindID(stu, *n, clas, ID);if(in dex < 0)prin tf("n该学生信息不存在! n");return;for(i=i ndex; i < *n-1; i+)stui = stui+1;(*n)-;if(fp=fopen("d:student.dat", "
47、w")=NULL) /*以'w'的方式打开可清除文件 */prin tf("打开文件失败!n");exit(0);printf("n删除成功 n");Save(stu, *n);/*保存到文件 */*/以上是该程序的删除功能函数部分,当用户选择该项功能时。会弹出两个选择项,分别是删除指定的学生信息与删除全部的学生信息。用户可以根据需要进行具体的操作。当确定需要删除学生信息时,同样需要输入需要删 除的学生的班级与学号,这样,就可以确定删除的学生信息就是我们需要删 除的那个学生的信息。这样以来,删除学生信息的功能,就可以实现了。F面
48、给出删除学生资料主界面显示情况(待删除状态)F面给出删除学生资料主界面显示情况(删除完成状态)郑州轻工业学院考试成绩管理系统班缠:网络软件开发1471班学°:521413560103作者:褚超丄:输入学生资料2:输出学生成绩3:资料进行排序4:查找学生资料&修改学生资料6:删除学生资料1:退出管理系统欢迎进入成绩管理系统,请选择(你只需输入中的其中一个数字便可进行下一歩操作)4请输入班级和学号(数据间以空格隔开)泊01 1该学生信息不存在!请按任意键樂续*实训感想回想,5天的C语言实训经历,让我受益匪浅。从一开始做的时候的各 种迷茫(没有思路、对大程序产生恐惧、不知如何下手
49、)到现在的思路清晰, 虽然这几天走来实在不易,但我觉得还是非常值得的。这次实训让我对编程 有了更深层次的理解,我越来越喜欢 C语言了。现在想想,这样的一个程序 才算是真正的一个程序,之前的一个个小的题目,一个小的问题,一个小的 程序,只是这样一个程序的一部分。当我把那些小程序综合放在一块,进行 整体的处理,最终变成一个可读性很高的、整体性很强的大程序时,我明白 了小程序就是大程序的分支,只要将小程序处理好,再融入到一个整体中, 一个看似复杂的大程序就可以迎刃而解了。记得,刚开始学 C语言的时候,觉得很难。一句简单的This is a Cprogram,加头加尾都有四五行,我在想如果是一个很大的
50、内容,那要打多 少,一定很麻烦吧!就觉得那是好大的一个工程,很难实现。现在想想,只 要用心去学,掌握完成C语言的语法技巧,是可以完成的。我现在对 C语言 的认识就是,把数学的思想应用在程序上,体现在各种函数上,面对一个程 序题时,首先要有思路,该怎样去处理。然后开始对需要处理的数据进行定 义,需要几个变量,变量的类型是什么。如果是数组的话,还要考虑这个数 组有多大,需要定义多长的数组才能够用。然后就是编写程序的核心部分, 将数学的算法思想,用函数体现出来,通过赋值语句,引用,互换等,完成 数据间的计算。在程序输出的部分,确定好需要输出数据的控制符,比如如 果是int型,那输出时的控制符就用%d
51、将各种数据一一对应的输入输出, 就基本上可以完成一个程序。这周C语言的实训,让我明白。做出一个程序系统并不是一件简单的事, 虽然说也不是非常难的那种,但是却很考验一个人的耐心以及细心程度。第 一天的时候,其实,我不知道该怎样做,一直坐在电脑旁想啊想,往往想的 一头雾水。这么大的一个程序,要怎么入手。后来明白,我不该把它想的这 么复杂,而是应该像平时那些小程序一样,一个一个来,然后合起来成为一 个大的程序。当思路清晰以后,我明白该怎么去写才能写成。所以我觉得思 路很重要,然后就是对语法的灵活运用,这样,才能自由的编写一个程序。为什么要学习程序设计?计算机的本质是“程序的机器”,程序和指令的思想是计算机系统中最基本的概念。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年温县带编教师招聘考试备考试题及答案解析
- 2026-2027学年黄石市中考考前最后一卷数学试卷(含答案解析)
- 2026年龙江县带编教师招聘考试参考题库及答案解析
- DB32/T 5266-2025 城市轨道交通疏散平台技术规程
- 2025年兰州大学物理试题及答案
- 2026湘能华磊光电股份有限公司社会招聘2人笔试备考题库及答案详解
- 2026年和平县带编教师招聘考试模拟试题及答案解析
- 2026年景东彝族自治县带编教师招聘考试参考题库及答案解析
- 2026年中江县带编教师招聘考试参考题库及答案解析
- 2026年郁南县带编教师招聘笔试备考试题及答案解析
- 2026年吉林省中考英语真题(含答案)
- 2026盐城市国企招聘考试真题及答案
- 2026广西-东盟食品检验检测中心招聘编制外食品安全检查员22人笔试备考试题及答案详解
- (2026版)医疗质量安全(不良)事件报告制度及流程、处置规范、报告表
- GA/T 2379-2026城市道路非机动车交通组织规范
- 2026秋人教版(新教材)小学数学五年级上册(全册)教学设计(附目录p273)
- 中国创伤失血性休克急诊诊疗指南(2025 版)
- 栏杆监理实施细则
- 第25章 一元二次方程数学活动 教学设计
- 冷链药品收货验收作业指导书
- 《中华人民共和国生态环境法典》专题全解读课件
评论
0/150
提交评论