1、1) 设计在相应存储结构(邻接矩阵或邻接表)下的图的类型声明。2) 创建单链表,将文本文件中的学生成绩信息存储到单链表中。3) 查询操作,可通过序号或姓名查询学生信息。4) 显示操作,将所有成绩信息在屏幕上显示。5) 插入操作,在已经创建的单链表中进行插入操作,在第 i 条记录后插入 1条新的记录,并显示所有信息。6) 删除操作,在单链表中进行删除图书操作,查找第 i 条记录,找到后删除该条记录,并显示所有信息。7) 保存数据文件功能。三、数据结构说明1首先编写主菜单将子函数显示出来,然后利用switch函数一一对应选项调用子函数。2. 定义结构体stu和单链表结构体变量struct Node
2、,用fopen函数读取文本信息,定义一个头指针L和结构体变量s1。四、详细设计1.系统功能模块图2.功能模块图1)读取模块图2 读取模块图2)查询模块图3 查询模块图3)显示模块图4 显示模块图4)插入模块图5 插入模块图5)删除模块图6 删除模块图6)保存模块图7 保存模块图五、调试与测试测试数据结果1. 主菜单主菜单及其分支功能2.读取学生信息创建链表,读取学生信息3.查询学生信息出现查询子菜单,按序号查询和按姓名查询选项1) 按序号查询按序号查询成功2) 按姓名查询按姓名查询成功4.显示学生信息全部显示学生信息5.插入学生信息插入学生信息成功!插入成功后的学生信息6.删除学生信息删除学生
3、信息成功!7.保存学生信息保存学生信息成功!8.学生信息保存学生信息文本保存成功六、课程设计总结通过两周的上机实习,我对C语言又有了崭新的认识。C语言的学习是一个系统的过程,需要长期的知识积累和储备并辅以大量的上级实际操作练习,自己也应该有所体会,在实践中成长,在实践中求知。从最开始的什么都不会,到最后的熟悉了c语言程序的运行,一路上学习了很多很多,非常满足。七、附录#includestdlib.hstring.htypedef struct stu int bianhao; char xuehao100; char name100; char sex500; char ximing100;
4、int english; int math; int computer;stu;typedef struct Node stu data; struct Node *next;LNode,*LinkList;LinkList L;stu s1;void chaxun();void xuhao();void xingming();LinkList read(LinkList L) FILE *fp=fopen(13.txt,r);/相对路径 if(fp=NULL) printf(找不到该文件?出错!n exit(0); char str81; fgets(str,80,fp);/读标题 puts
5、(str);/输出标题 LinkList p; L=(LinkList)malloc(sizeof(LNode); if(L=NULL)内存空间分配失败! L-next=NULL; while(!feof(fp)/循环读取数据 fscanf(fp,%d%s%s%s%s%d%d%d,&s1.bianhao,s1.xuehao,s1.name,s1.sex,s1.ximing,&s1.english,&s1.math,&puter);%-5d%-11s%-8s%-6s%-9s%-8d%-8d%-5dn,s1.bianhao,s1.xuehao,s1.name,s1.sex,s1.ximing,s1
6、.english,s1.math,puter); p=(LinkList)malloc(sizeof(LNode); if(p=NULL) printf( exit(0); p-data=s1;next=L-next; L-next=p; return L; fclose(fp);/显示全部信息void display(LinkList L) p=L- while(p),p-data.bianhao,p-data.xuehao,p-data.name,p-data.sex,p-data.ximing,p-data.english,p-data.math,p- p=p- printf(/查询vo
7、id chaxun() int i; while(1)ttt=查询=nttt1 按序号查询nttt2 按姓名查询nttt0 退出nttt=n请输入查询子菜单: scanf(%di); switch(i) case 1:xuhao(); break; case 2:xingming(); case 0:break; default:printf(请输入查询子菜单nreturn; break;/按序号查询void xuhao()请输入要查询的序号: scanf( while(p!=NULL&p-data.bianhao!=i) if(p=NULL)输入错误! return;/按姓名查询void x
8、ingming()请输入要查询的姓名:%s,name);strcmp(p-data.name,name)!=0)/插入LinkList insert(LinkList L) LinkList p,q;请输入所要插入位置的序号n while(i请输入学生信息:data.bianhao=i;%s%s%s%s%d%d%d,q-data.xuehao,q-data.name,q-data.sex,q-data.ximing,&q-data.english,&data.math,& if(p-data.bianhaonext=q; else while(p- p-data.bianhao=p-data.
9、bianhao+1; p=p-next=p-插入成功! /删除LinkList del(LinkList L) int i,a; LinkList p,q,g;请输入所要删除学生信息的序号n while(p-i|i while(q- q=q- q-删除成功! else已取消! if(p-data.bianhao=i) p- scanf( if(a=1) p=p- L- printf( else g=L- while(p-=i+1) q-data.bianhao=q- while(g-=i-1) g=g-next=g;/保存void save(LinkList L)14.txtw保存文件失败!
10、fprintf(fp,编号 学号 姓名 性别 系名 英语 数学 计算机n fprintf(fp,保存成功!/主函数void main()tt*学生成绩管理系统*ntt| 1.读取学生信息 |ntt| 2.查询学生信息 |ntt| 3.显示学生信息 |ntt| 4.插入学生信息 |ntt| 5.删除学生信息 |ntt| 6.保存新的学生信息 |ntt| 0.退出 |ntt*n请选择功能序号:L=read(L);chaxun(); case 3:display(L); case 4:L=insert(L); case 5:L=del(L); case 6:save(L);exit(1); default :请重新选择n长江大学工程技术学院课程设计报告评阅意见报告成绩:指导教师签名: 年 月 日
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1