1、1 英语 42 数学 23 信息系统 44 操作系统 35 数据结构 46 数据处理 27 C/C+ 4SC.txt中的内容:Sno Cno Grade20120001 1 90 (这里是说20120001的学生选了1,2,4这三门课) 20120001 2 8020120001 4 8520120002 1 8620120003 3 82 (这里是说2012003的学生选了3.5这两门课门课)20120003 5 8820120005 7 902、为存储学生、课程和选课信息设计数据结构,将以上文件内容导入其中;3、对学生表进行插入、删除、修改和查询操作;考查点: 插入时注意学号的处理,可以不
2、填吗?是否重复?其他数据是否可以乱填?如何控制? 删除时一要防止误操作,二要考虑该生的选课信息,如何处理? 修改时同样要考虑各数据项的性质; 查询要求可以实现多条件查询,越灵活越好,发挥你们的想象,自行设计。4、对选修表进行插入、删除、修改操作;5、综合查询例如查询“选修了数据结构课程的学生的姓名”,希望大家设计出有实际意义、灵活、丰富的综合查询。另外,为了加快查询速度,可以考虑采用索引表,参考教材第一章绪论中的第一个例子:书目检索问题,也可以考虑将课堂所学的第9章查找、第10章排序加入到系统中。6、最后把系统中的数据保存回文件中。【课程设计报告的编写格式规范】报告首页为成绩单,填写姓名、性别
3、、学号、班级和指导教师。正文要求把课程设计的过程、算法设计的内容描述清楚,一般有如下几个方面的内容(也可自行增减):1)问题描述无歧义的陈述设计的内容,明确设计所能够达到的要求或功能。2)解题思路用文字表达设计思想即可。3)算法描述用流程图、伪码等描述算法。4)程序设计说明本程序中所有用到的数据及其数据结构的定义,对包含的基本操作及其实现给出详细注解。5)测试结果截图给出你的测试结果,并对输出结果进行适当的分析、比对和客观的评价。6)设计总结可以包括设计过程中遇到的问题是如何解决的以及对设计与实现的回顾和分析,或者改进思想,经验和体会等。【成绩评定】1、由指导教师根据检查学生程序的情况、课程设
4、计报告的质量和课程设计过程中的工作态度等综合打分。成绩评定实行优秀、良好、中等、及格和不及格五个等级。2、设计程序的检查由指导教师当面在计算机上检查测试,并同时对程序运行中的问题至少提出三个问题,学生当面回答,教师根据以上检查做好记载;3、按时独立完成规定的工作任务,不得弄虚作假,不准抄袭他人内容,否则成绩以不及格计。发现课程设计报告基本雷同,一律不及格。#includestdlib.hstring.h /调用strcmp()函数和strcpy()函数/定义学生对象类型typedef struct node1 char Sno10; /学号 char Sname10; /姓名 char Sse
5、x3; /性别 char Sage3; /年龄 char Sdept4; /所在系 struct node1 *next; /指针域/Student;/ 结点的类型/定义课程对象类型typedef struct node2 char Cno10; /课程号 char Cname10; /课程名 char Ccredit3; /学分 struct node2 *next;Course;/定义选课对象类型typedef struct node3 int Grade; /分数 struct node3 *next;SC;Student *h_student;Student *r_student;/指
6、向表h_student的尾结点指针Course *h_course;Course *r_course;/指向表h_course的尾结点指针SC *h_sc,*r_sc;FILE *fp_student,*fp_course,*fp_sc; /创建文件型指针/只需创建头指针void Init() /三个表的初始化 /Create_Student(h_student); h_student=(Student *)malloc(sizeof(Student);/创建表头结点 h_student-next=NULL; r_student=h_student;/尾指针指向表头结点 /Create_Cou
7、rse(h_course); h_course=(Course *)malloc(sizeof(Course); h_course- r_course=h_course; /Create_SC(h_sc); h_sc=(SC *)malloc(sizeof(SC); h_sc- r_sc=h_sc;/用户输入数据建立学生信息表(尾插法)void Create_Student(Student *stu) Student *s; int m,i; printf(现在输入学生信息n);请输入学生个数: scanf(%d,&m);| 学号 | 姓名 | 性别 | 年龄 | 所在系 |n for(i=1
8、;i1) printf(第%d位学生的相关信息输入完毕!nn,i-1); printf(现在输入第%d位学生的相关信息n,i);请输入学号:%ss-Sno);请输入姓名:Sname);请输入性别:Ssex);请输入年龄:Sage);请输入所在系:Sdept); r_student-next=s; r_student=s; r_student-/由用户输入数据建立课程信息列表void Create_Course(Course *C) Course *s;n现在输入课程信息n请输入课程数量:| 课程号 | 课程名 | 学分 |n s=(Course *)malloc(sizeof(Course);
9、第%d个课程的相关信息输入完毕!现在输入第%d个课程的相关信息n请输入课程号:Cno);请输入课程名:Cname);请输入学分: scanf(Ccredit); r_course- r_course=s;/由用户输入数据建立选课信息列表void Create_SC(SC *S) SC *q;n现在输入选课信息n请输入选课信息条数:| 学号 | 课程号 | 成绩 |n q=(SC *)malloc(sizeof(SC);第%d条选课的相关信息输入完毕!现在输入第%d条选课的相关信息nq-请输入课程分数:Grade); r_sc-next=q; r_sc=q;/输出学生信息表void Show_A
10、ll_Student() Student *p; p=h_student-next;学生信息表n-n| Sno | Sname | Ssex | Sage | Sdept |n while(p!=NULL)|%9s%8s%9s%9s%9s |n,p-Sno,p-Sname,p-Ssex,p-Sage,p-nn p=p-/输出课程信息表void Show_All_Course() Course *p; p=h_course-课程信息表n-n| Cno | Cname | Ccredit |n|%6s%21s%13s |nCno,p-Cname,p-nn/输出选课信息表void Show_All_
11、SC() SC *p; p=h_sc-选课信息表n| Sno | Cno | Grade |n|%11s%13s%16d |n/在学生信息表中添加学生(尾插法)void Insert_Student(Student *stu) Student *s,*s1; s=(Student *)malloc(sizeof(Student); s1=stu-/检查是否存在这名学生,输入的学号不能重复 while(s1! if(strcmp(s1-Sno,s-Sno)=0)该学生已存在,请检查是否输入错误n请重新输入学号: s1=s1- if(s1=NULL)请输入性别(男/女): if(strcmp(s-
12、Ssex,男)=0)|(strcmp(s-女)=0) r_student- r_student=s;插入成功! else插入失败! 性别输入有误!n/删除学生/一要防止误操作/二要考虑该生的选课信息,删除学生的同时把该学生对应的课程也删除了void Delete_Student(Student *stu,SC *S) char sn20; SC *s; int i=0;请输入要删除的信息中学生学号或姓名:sn); p=stu- s=S- Student *q=stu; SC *s1=S; if(strcmp(p-Sno,sn)=0 | strcmp(p-Sname,sn)=0)/找到对应的学生
13、 strcpy(sn,p- while(s! if(strcmp(sn,s- s1-next=s- free(s); s=s1- continue; if(s! s=s- s1=s1- q-next=p- free(p);删除成功! break; q=q-/修改学生信息/考虑各数据项的性质,现在只能修改学生年龄和学生所在系void Update_Student(Student *stu) int i;请输入要修改的信息中学生学号或姓名: Student *q;Sname,sn)=0) q=p; if(p=NULL)对不起,无该学生信息! return ; else请输入要修改的信息n你可以修改
14、的内容为: 1、年龄 2、院系n请输入修改序号(1或者2):i); switch(i) case 1: printf(请输入你所需要修改该学生现在的年龄: scanf(修改成功! break; case 2:请输入你所需要修改该学生现在所在的系: default :输入错误,请重新输入!/查询学生个人基本信息,以姓名或学号为参数void Select_Student(Student *stu)请输入所要查询的学生的学号或姓名:Sname,sn)=0|strcmp(p-Sno,sn)=0)|%9s%9s%9s%8s%9s |n/查询学生单科目的成绩void Select_SC(Student *stu,Course *C,SC *S) char cn20; Course *q; SC *r;请输入所要查询的学生的学号和课程号n请输入学号或姓名:对不起,无该学生的信息!请输入课程号或课程名:cn); q=C- while(q! if(strcmp(q-Cno,cn)=
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2