




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学习 - 好资料目 录1 程序目标及功能 - 11.1 课题背景 -21.2 系统功能-21.3 设计要求-32 程序功能模块组成及流程图-32.1 系统功能模块 -52.2 各模块流程图 -63 程序主要数据结构及函数列表-83.1 程序中使用的数据结构 -83.2 函数列表 -104 程序代码及运行结果-125 总结与体会-15更多精品文档学习 - 好资料更多精品文档学习 - 好资料1、程序目标及功能1.1 、课题背景当今社会是一个信息时代,计算机技术发展迅速,同时信息的自动处理以及网络式的信息交互方式越来越被人们认可和运用,让计算机来管理学生的信息是现在各个高校都在积极进行的工作之一,也
2、是高校教学管理工作的重要内容之一。网上选课与传统的选课方式相比更节约资源,同时,随着学生选课自主权的增加,网上选课有效的避免了许多不良现象,使教学更加透明。1.2 、系统功能课程信息录入。建立课程信息链表,由键盘输入课程信息。课程信息输出。输出所有课程信息。查询课程。按课程编号、课程名称、学分、按课程性质、开课学期等查询(至少实现1 种)。学生选修课程。 输入学生学号和课程编号, 形成一条选课信息,保存在“选修信息文件”里。查询学生选修的课程。输入学生学号,输出该生已选修的课程编号和课程名称。保存课程信息到磁盘文件。建立一个磁盘文件,把所建立的课程表写入文件。从磁盘文件中读出课程信息。更多精品
3、文档学习 - 好资料1.3 、设计要求假定有 n 门课程,每门课程有课程编号、课程名称、课程性质(专业选修课、公选课) 、总学时、总学分、理论学时、实验学时、开课学期、已选修本课程的学生人数等信息;每门课最多允许 60 个学生选修。选修信息文件,用来保存每个学生选修课程的信息,每条记录包括:学生的学号、所选修的课程编号和课程名称。系统以菜单方式工作 (程序主界面包括程序名称及编程者学号、姓名、班级;同时要求输入功能号码,选择进入功能模块程序) 。用函数分别实现动态链表的建立、动态链表输出等功能。界面友好,程序中加入必要的注释。函数功能要划分好 (结构化程序设计);函数要求使用指针作形参。学生选
4、修一门课后,要同时更新课程信息和选修信息文件。2、程序功能模块组成及流程图2.1 系统功能模块根据设计要求分为8 个模块,分别是:1: 创建课程信息:课程信息的录入,建立课程信息链表,有键盘输入课程信息。2: 课程信息输出:输入所有课程信息。3: 查询课程信息:按课程编号、课程名称、课程性质、学分、开课更多精品文档学习 - 好资料学期等查询(此程序按课程编号实现)。4: 学生选修课程:输入学生学号和课程编号,形成一条选课信息,保存在“选修信息文件”里。5: 查询学生选修课程:输入学生学号,输入该省已选修的课程编号和课程名称。6: 保存课程信息到磁盘:建立磁盘文件,把所建立的课程表写入文件。7:
5、 从磁盘文件中读出课程信息: 从磁盘文件中读出课程信息并输出,显示主界面。8: 退出:结束程序,退出系统。2.2 各模块流程图选课信息管理系统课 程课程课 程信 息信息信 息录 入输出输出功 能模 块按 学选信息号 查课 ,的保询保存与存读 出信息更多精品文档学习 - 好资料选择模块创建课程信息docp1=(struct stu*)malloc(sizeof(struct stu);if(i=1) chead=cp2=cp1;else cp2-next=cp1;更多精品文档学习 - 好资料scanf(%d %s,&cp1-num,&cp1-name);scanf(%s %d %d %d,&cp
6、1-quale,&cp1-time,&cp1-credit, &cp1-thtime);scanf(%d %d%d,&cp1-extime,&cp1-term,&cp1-alnum); cp2=cp1;fflush(stdin);/刷新 scanf() 函数缓冲,防止自动循环i+;while(am=i);cp2-next=NULL;学生选课更多精品文档学习 - 好资料int snum;struct stu*head,*p1;p1=p;printf(请输入学生学号: );scanf(%d,&snum);printf(输入课程编号: );scanf(%d,&num);doif (p1-num=nu
7、m)FILE*fp;fp=fopen(选修信息文件 .txt,w);fprintf(fp, 学生学号 课程编号 名称 性质 总学时 总学分 理论学时 实验学时 开课学期 已修本课的人数 n);fprintf(fp,%dt%dt%st%st%dt%dt%dt%dt%dt%d,snum,p1-num,p1-name,p1-quale,p1-time,p1-credit,p1-thtime,p1-extime,p1-term,p1-alnum);fclose(fp);printf(已保存至“选修信息文件.txt”n);更多精品文档学习 - 好资料elsep1=p1-next;while(p1=NUL
8、L);3、程序主要数据结构及函数列表3.1程序中使用的数据结构链表的使用struct stu/声明结构体类型struct studentint num;/课程编号char name20;/课程名称char quale10;/课程性质int time;/总学时int credit; /总学分int thtime;/理论学时int extime;/实验学时int term;/开课学期int alnum;/已选本课程的学生人数struct stu*next;3.2函数列表struct stu * creat(int am);/创建链表,录入课程信息void output(struct stu *p)
9、;/声明输入课程信息的函数,按更多精品文档学习 - 好资料课程编号查询void inquire(struct stu*p,int n); /声明查询课程的函数void stu_classes(struct stu*p,int num);/声明保存文件的的函数void inquire_stu(struct stu*p,int numb); /查询学生选课信息voidsave_inf(structstu*p);/声明保存课程信息函数voidread_inf(structstu*p);/声明读出课程信息的函数void reset();/声明清除界面函数4、程序代码及运行结果程序代码:#include
10、#include#include#define NULL 0#define N 2/定义共 5 门课程struct stu/声明结构体类型struct studentint num;/课程编号char name20;/课程名称更多精品文档学习 - 好资料char quale10;/课程性质int time;/总学时int credit; /总学分int thtime;/理论学时int extime;/实验学时int term;/开课学期int alnum;/已选本课程的学生人数struct stu*next;int main(void)struct stu * creat(int am);/创
11、建链表,录入课程信息void output(struct stu *p);/声明输入课程信息的函数,按课程编号查询void inquire(struct stu*p,int n);/声明查询课程的函数void stu_classes(struct stu*p,int num);/声明保存文件的的函数void inquire_stu(struct stu*p,int numb); /查询学生选课信息void save_inf(struct stu*p);/声明保存课程信息函数void read_inf(struct stu*p);/声明读出课程更多精品文档学习 - 好资料信息的函数void re
12、set();/声明清除界面函数struct stu *head;int M,n,num,numb,fail;loop:printf(n);printf(*学生选修课程系统*n);printf(学号:*姓名:*班级:*n );printf(n);printf(*n);printf(*tt1:创建课程信息表*n);printf(*tt2:课程信息输出*n);printf(*tt3:查询课程信息*n);printf(*tt4:学生选修课程*n);printf(*tt5:查询学生选修课程*n);printf(*tt6:保存课程信息到磁盘*n);printf(*tt7:从磁盘文件中读出课程信息*n);p
13、rintf(*tt8:退出*n);/ 菜单形式的主界面 printf(*更多精品文档学习 - 好资料*n);printf(nntt请输入功能号 1-8:);/提示输入功能号scanf(%d,&M);if (M=1)if (fail=1)/判断是否创建列表 printf( 已经创建列表,请选择其他功能! !n);goto loop;/返回初始界面elsehead=creat(N);/使用列表,录入信息fail=1;/ reset();/清除界面elseif (M=2)if(fail=1)/判断是否创建列表output(head);reset();/输入信息 , 清除界面elseprintf(没有
14、数据,请先录入信息! !n);更多精品文档学习 - 好资料goto loop;/返回初始界面elseif (M=3)if (fail=1)/判断是否创建列表inquire(head,n);reset();/查询信息函数,清除界面elseprintf(没有数据,请先录入信息! !n);goto loop;/返回初始界面elseif (M=4)if(fail=1)stu_classes(head,num);reset();/形成信息并保存,清除界面elseprintf(没有数据,请先录入信息! !n);goto loop;/返回初始界面更多精品文档学习 - 好资料elseif (M=5)if(fa
15、il=1)inquire_stu(head,numb);/查询信息fail=2;reset();/清除界面elseprintf(没有数据,请先录入信息! !n);goto loop;/返回初始界面elseif (M=6)if (fail=2)save_inf(head);/保存文件fail=3;reset();/清除界面更多精品文档学习 - 好资料elseprintf(没有选课,请先选课!n);goto loop;/返回初始界面elseif (M=7)if (fail=1|fail=2|fail=3)read_inf(head);reset();elseprintf(没有数据,请先录入信息!
16、!n);goto loop;/返回初始界面elseif (M=8)exit(0);/退出程序elseprintf(输入错误 n);/错误提示goto loop;/转至功能号的输入return 0;struct stu * creat(int am)/创建链表更多精品文档学习 - 好资料int i=1;am=N;struct stu *cp1,*cp2,*chead;printf(t请输入以下信息:(名称和性质请输入小写字母,其余均为数字) n);printf(课程的编号名称 性质 总学时总学分理论学时实验学时 开课学期已修本课的人数 :);printf(n);docp1=(struct stu
17、*)malloc(sizeof(struct stu);if(i=1) chead=cp2=cp1;else cp2-next=cp1;scanf(%d %s,&cp1-num,&cp1-name);scanf(%s %d %d %d,&cp1-quale,&cp1-time,&cp1-credit, &cp1-thtime);scanf(%d %d%d,&cp1-extime,&cp1-term,&cp1-alnum); cp2=cp1;fflush(stdin);/刷新 scanf() 函数缓冲,防止自动循环i+;更多精品文档学习 - 好资料while(am=i);cp2-next=NUL
18、L;return (chead);void output(struct stu *p)/定义输出信息函数int i;struct stu *p1;p1=p;printf(编号名称性质总学时总学分理论学时实验学时开课学期已修本课的人数 n);for (i=1;p1!=NULL;i+)printf(%d %s %st%dt%dt%dt%dt%dt%d,p1-num,p1-na me,p1-quale,p1-time,p1-credit,p1-thtime,p1-extime,p1- term,p1-alnum);printf(n);p1=p1-next;void inquire(struct st
19、u*p,int n)/定义查询信息函数更多精品文档学习 - 好资料printf(输入要查询的编号: );scanf(%d,&n);struct stu *p1;p1=p;printf(您所查询的信息是: n);doif (p1-num=n)printf( 编号 名称 性质 总学时 总学分 理论学时 实验学时 开课学期 已修本课的人数 n);printf(%d %s %st%dt%dt%dt%dt%dt%d,p1-num,p1-na me,p1-quale,p1-time,p1-credit,p1-thtime,p1-extime,p1- term,p1-alnum);printf(n);p1=
20、p1-next;elsep1=p1-next;while(p1!=NULL);更多精品文档学习 - 好资料void stu_classes(struct stu*p,int num)/定义学生选课信息的函数,并保存至 选修信息文件 .txtint snum;struct stu*head,*p1;p1=p;printf(请输入学生学号: );scanf(%d,&snum);printf(输入课程编号: );scanf(%d,&num);doif (p1-num=num)FILE*fp;fp=fopen(选修信息文件 .txt,w);fprintf(fp, 学生学号 课程编号 名称 性质 总学时
21、 总学分 理论学时 实验学时 开课学期 已修本课的人数 n);fprintf(fp,%dt%dt%st%st%dt%dt%dt%dt%dt%d,snum,p1-num,p1-name,p1-quale,p1-time,p1-credit,p1-thtime,更多精品文档学习 - 好资料p1-extime,p1-term,p1-alnum);fclose(fp);printf(已保存至“选修信息文件.txt”n);elsep1=p1-next;while(p1=NULL);void inquire_stu(struct stu*p,int numb)/定义查询学生信息的函数int snum;pr
22、intf(请输入学号: );scanf(%d,&snum);struct stu*head,*p1;p1=p;printf( 学号 课程编号 课程名称 n); printf(%dt%dt%s,snum,p1-num,p1-name); printf(n);void save_inf(struct stu*p)/定义保存课程信息的文件更多精品文档学习 - 好资料int i;struct stu *p1,*head;p1=p;FILE*fp;fp=fopen( 课程信息 .txt,w);for (i=0;p1!=NULL;i+)fprintf(fp,课程编号名称 性质 总学时总学分理论学时实验学时
23、开课学期已修本课的人数 n);fprintf(fp,%dt%st%st%dt%dt%dt%dt%dt%dn,p1-nu m,p1-name,p1-quale,p1-time,p1-credit,p1-thtime,p1-ext ime,p1-term,p1-alnum);p1=p1-next;fclose(fp);printf(已保存至“课程信息 .txt”n);void read_inf(struct stu*p)/定义读出课程信息的函数int i;更多精品文档学习 - 好资料struct stu *p1,*head;p1=p;FILE*fp;if (fp=fopen(课程信息 .txt,r)=NULL)printf(无法打开文件 n);printf(请先建立文件 n);for (i=1;p1!=NULL;i+)fread(&p,sizeof(head),1,fp);printf(%d %s %st%dt%dt%dt%dt%dt%dn
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 绍兴市职业教育中心教师招聘考试真题2024
- (完整版)项目管理方案执行保障措施
- 服务进度保证措施方案
- 达标测试人教版八年级物理上册第4章光现象-光的色散必考点解析试卷(详解版)
- 2025煤矿企业主要负责人考试安全生产知识和管理能力冲刺试题及答案
- 解析卷-人教版八年级上册物理《物态变化》章节训练试题
- 2025年燃气经营企业从业人员考试测试题及答案
- 【语文】四川省眉山市2024-2025学年高一下学期期末考试试题(解析版)
- 2025年新版数控车工期末考试及答案
- 2025年道路运输企业主要负责人和安管人员考试冲刺试题及答案
- 2025年医保政策调整考试题库:影响分析及答案
- 工厂环保管理与污染防治方案
- 农村房屋交易合同范本及指南
- 餐饮业成本控制与利润分析报表模板
- 中青班安全生产培训课件
- 电梯井道施工方案
- 第十三章 全等三角形 单元练习(含答案)数学冀教版(2024)八年级上册
- 中考语文作文复习 准确审题 巧妙立意 公开课一等奖创新教学设计
- 社会科学研究方法 课件 第七章 调查研究
- 六西格玛黑带培训教材
- 2025年湖南省高考化学真题卷含答案解析
评论
0/150
提交评论