资源预览内容
第1页 / 共29页
第2页 / 共29页
第3页 / 共29页
第4页 / 共29页
第5页 / 共29页
第6页 / 共29页
第7页 / 共29页
第8页 / 共29页
第9页 / 共29页
第10页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
实 验 报 告课 程 高级语言程序设计系 别 数学与计算机学院班 级 12计算机科学与技术学 号 姓 名 报告规格一、实验目的二、实验原理三、实验仪器四、实验方法及步骤五、实验记录及数据处理六、误差分析及问题讨论1. 学生成绩管理系统2.3.4.5.6.7.8.9.10.11.12.13.14.15.目录每次实验课必须带上此本子,以便教师检查预习情况和记录实验原始数据。实验时必须遵守实验规则。用正确的理论指导实践,必须人人亲自动手实验,但反对盲目乱动,更不能无故损坏仪器设备。这是一份重要的不可多得的自我学习资料,它将记录着你在大学生涯中的学习和学习成果。请你保留下来,若干年后再翻阅仍将感到十分新鲜,记忆犹新。它将推动你在人生奋斗的道路上永往直前!年级 班 号 姓名 同组姓名 实验日期 年 月 日成绩指导老师:年级 班 号 姓名 同组姓名 实验日期 年 月 日成绩指导老师:实训一 学生成绩管理系统 一、实训目的和要求利用单链表结构实现学生成绩管理,了解数据库管理的基本功能,掌握 C 语言中的结构体、指针、函数、文件操作等知识,是一个 C 语言知识的综合应用。注意其中的难点,指针变量作函数参数、函数值为指向结构体的指针及单链表机构的应用等知识。 二、主要仪器设备安装了 Windows 操作系统、Turbo C 或 Visual C+的计算机。 三、实训内容和原理 设计一个学生成绩管理系统,该系统使用单链表结构管理学生成绩,具有输入记录、查询记录、更新记录、统计记录及输出记录等功能。 、 四、实训小结 1 1、功能描述、功能描述 学生成绩管理系统输入记录 模块查询记录 模块更新记录模块统计记录 模块输出记录 模块从 文 件 读 入从 键 盘 输 入按 学 号 查 询按 姓 名 查 询修 改 记 录删 除 记 录插 入 记 录排 序 记 录计 不 及 格 人 数 统 各 科 最 高 分 和输 出 至 文 件输 出 至 屏 幕图 1 学生成绩管理系统如图1所示,此成绩管理系统单链表实现,它由如下五大功能模块组成。(1) 输入记录模块。 输入记录模块主要完成将数据存入单链表中的工作。在此成绩管理系统中,记录可以从以二进制形式存储的数据文件中读入,也可以从键盘逐个输入学生记录。学生记录由学生的基本信息和成绩信息字段构成。当从数据文件中读入记录时,它就是在以记录为单位存储的数据文件中,将记录逐条复制到单链表中。2) 查询记录模块。查询记录模块主要完成在单链表中查找满足相关条件的学生记录。在此成绩管理系统中,用户可以按照学生的学号或姓名在单链表中进行查找。若找到该学生的记录,则返回指向该学生记录的指针。否则,返回一个值为NULL的空指针,并打印出未找到该学生记录的提示信息。(3)更新记录模块。更新记录模块主要完成对学生记录的维护。在此成绩管理系统中,它实现了对学生记录的修改、删除、插入和排序操作。一般而言,系统进行了这些操作之后,需要将修改的数据存入源数据文件。(4)统计记录模块。统计记录模块主要完成对各门功课最高分和不及格人数的统计。江 西 科 技 师 范 大 学 实 验 报 告年级 班 号 姓名 同组姓名 实验日期 年 月 日成绩 指导老师:(5)输出记录模块。输出记录模块主要完成两个任务。第一,它实现对学生记录的存盘操作,即将单链表中的各节点中存储的学生记录信息写入数据文件中。第二,它实现将单链表中存储的记录信息以表格的形式在屏幕上打印出来。 2 2、总体设计、总体设计(1)功能模块设计If(!L)YNprintf(“failure “)0fp=fopen(“C:student“,“ab+“)l=(Node*)malloc(sizeof(Node);if(fp=NULL )YNprintf(“open file”) “”“)0while(!feof(fp) )p=(Node*)malloc(sizeof(Node);If(!p)printf(“failure“)if(fread(p,sizeof(Nod e),1,fp)=1)YNYYNp-next=NULL; count+;fclose(fp);printf(“the total”);N NY Y江 西 科 技 师 范 大 学 实 验 报 告年级 班 号 姓名 同组姓名 实验日期 年 月 日成绩 指导老师:、Ndefault: Wrong()menu();while(l)Ysystem(“cls“); menu();p=r;printf(“tchoice(09)”); scanf(“%c“,If(select=0)NNYif(saveflag=1)NYprintf(“useness!“) scanf(“%c“,if(ch=y| |ch=Y)Save(l);Yprint(“thankfor) ) useness!“);switch(select)Case1: add()Case2: DElCase1:a dd()Case3: Qur(l)Case4: ModifyCase5: InsertCase6: Tongjicase8: Save(l)Case7:S ort(l)Case9: systemBreak;图 2 主函数 main()图图 1.1 主函数主函数 main()江 西 科 技 师 范 大 学 实 验 报 告年级 班 号 姓名 同组姓名 实验日期 年 月 日成绩 指导老师:system(“cls“); Disp(l);while(rnext!=NULL)YNr=r-next;while(1)Ystringinput(num,10,“ “)flag=0if(strcmp(num,“0“)=0)NYwhile(s)YYif(strcmp(s-dataflag=1;NYNs=s-next;break;YN NYYflag=1;Ys=l-next;江 西 科 技 师 范 大 学 实 验 报 告年级 班 号 姓名 同组姓名 实验日期 年 月 日成绩 指导老师:continue;break;if(flag=1)printf(“(y/n):“,num); scanf(“%c“,if(ch=y|ch=Y)NYNYp=(Node *)malloc(sizeof(Node);if(!p)NYprintf(“failure “)strcpy(pdata.nu m,num);stringinp ut(“Name:“);pda ta.cgradep- data.mgradep- data.egradep- data.total=pp- data.ave=(float) r-next=pr=p;saveflag=图 3 增加函数 Add()江 西 科 技 师 范 大 学 实 验 报 告年级 班 号 姓名 同组姓名 实验日期 年 月 日成绩 指导老师:Node *p;Nofind()stringinput(searchinput,15)if(!l-next)YNsystem(“cls“);printf(“record“)system(“cls“);printf(“by namen“) printf(“ce1,2:“) scanf(“%d“,if(p)YNprintheader();printdata(p);printf(END);printf(“press”);if(select=1)p=Locate(l,searchinput,“name“);YNIf(select=2)YNstringinput(searchinput,15)p=Locate(l,searchinput,“name“);Nofind()Wrong();图 4 查询函数 qur()if(p)printheader();printdata(p);printf(END);printf(“press”);YN江 西 科 技 师 范 大 学 实 验 报 告年级 班 号 姓名 同组姓名 实验日期 年 月 日成绩 指导老师:Node *p,*r;if(p)Yr=l;while(r-next!=p)Nofind()r=r-next;r- next=p-next; free(p)printf(“success!n“)saveflag=1;stringinput(find,”) messp=Locate(l,findmess,“num“);if(p)Yr=l ;while(r next!=p)Nofind()r=r-next;r-next=p- next; free(p)printf(“success!n“)saveflag=1;system(“cls“);if(!l-next)YNprintf(“recor”) d!system(“cls“);Disp (l);printf(“number, name”) printf(“choice1,2”) scanf(“%d“,if(sel=1)YNstringinput(find,”) messp=Locate(l,findmess,“num“);Nif(sel=2)YNWrong();图 5 删除函数江 西 科 技 师 范 大 学 实 验 报 告年级 班 号 姓名 同组姓名 实验日期 年 月 日成绩 指导老师:v=l-next; system(“cls“); Disp(l);while(1)stringinput(s,10,)flag=0;v=l-next;while(v)YYif(strcmp(vdata)YNif(strcmp(v- dataflag=1;breakv=v-next;NYbreakprintf(“,s) scanf(“%if(ch=y|c h=Y)v- dataYNcontinu e;图 6 插入函数()江 西 科 技 师 范 大 学 实 验 报 告年级 班 号 姓名 同组姓名 实验日期 年 月 日成绩 指导老师:strcpy(newinfodstri nginput(newinfo- danewinfo- data.cgradenewinfo- newinfo- next=NULL;data. mgradenewinfo- data.mingci=0;stringinput(num,10)v=l-next;while(v)YNprintf(“atm,printheadr();pri ntdata(v)printf(“n“);if(strcmp(v- date.num.num)=10 Yv=v-next;newinfo=(Node *)Nif(strcmp(v-Yprintf(“n sorry existing,)图 7 插入函数()江 西 科 技 师 范 大 学 实 验 报 告年级 班 号 姓名 同组姓名 实验日期 年 月 日成绩 指导老师:p=l-next;while(1) p(v-if(strcmp(p-data,num,s)=0NYYnewinfonext=p -next; pnext=newinfo ; break;p=p-next;Disp(l);printf(“nn“)
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号