C语言程序设计报告—学生选修课程系统
c语言课程设计学生选课系统
c语言课程设计学生选课系统一、教学目标本课程的目标是让学生掌握C语言编程基础,能够运用C语言设计学生选课系统。
具体目标如下:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识。
2.技能目标:学生能够运用C语言编写简单的程序,具备一定的编程能力,能够独立设计并实现学生选课系统的核心功能。
3.情感态度价值观目标:学生通过本课程的学习,能够培养对计算机编程的兴趣和热情,提高解决问题的能力,培养团队协作和自主学习的意识。
二、教学内容根据课程目标,教学内容主要包括以下几个部分:1.C语言基础知识:包括基本语法、数据类型、运算符、控制结构等。
2.函数:包括函数的定义、声明、调用等。
3.数组和字符串:包括一维数组、多维数组、字符串的基本操作等。
4.指针:包括指针的基本概念、指针与数组、指针与函数等。
5.结构体和文件:包括结构体的定义和使用、文件的读写操作等。
6.学生选课系统的设计与实现:包括系统需求分析、系统设计、核心功能实现等。
三、教学方法为了达到课程目标,我们将采用以下教学方法:1.讲授法:通过讲解C语言的基本语法、数据类型、运算符、控制结构等知识,让学生掌握C语言的基础知识。
2.案例分析法:通过分析实际的学生选课系统的案例,让学生了解并掌握系统的设计与实现方法。
3.实验法:让学生通过动手编写程序,巩固所学知识,提高编程能力。
4.小组讨论法:分组让学生讨论并解决问题,培养团队协作和自主学习的意识。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C语言程序设计》等相关教材。
2.参考书:提供相关的C语言编程参考书籍,供学生自主学习。
3.多媒体资料:制作课件、教学视频等,丰富教学手段,提高学生的学习兴趣。
4.实验设备:提供计算机实验室,让学生能够进行上机实验,提高编程能力。
五、教学评估为了全面、客观、公正地评估学生的学习成果,我们将采用以下评估方式:1.平时表现:通过学生在课堂上的参与度、提问回答、小组讨论等表现,评估学生的学习态度和积极性。
c语言课程设计学生选课系统
c语言课程设计 学生选课系统一、课程目标知识目标:1. 学生能理解C语言在开发学生选课系统中的应用,掌握基本的数据结构(如结构体、数组、链表)和文件操作相关知识。
2. 学生能运用C语言实现学生选课系统的基本功能,如学生信息管理、课程信息管理、选课操作等。
3. 学生能理解并掌握C语言中的模块化编程思想,将学生选课系统分解为多个函数,提高代码的可读性和可维护性。
技能目标:1. 学生能运用C语言编写、调试和运行学生选课系统,具备一定的编程实践能力。
2. 学生能通过团队协作,共同完成一个完整的学生选课系统项目,提高沟通与协作能力。
3. 学生能运用所学知识,对现有学生选课系统进行优化和改进,提高系统性能。
情感态度价值观目标:1. 学生通过本课程的学习,培养对计算机编程的兴趣和热情,树立学习C语言的自信心。
2. 学生在团队协作中,学会尊重他人意见,培养合作精神和团队意识。
3. 学生能够认识到编程在解决实际问题中的价值,提高将所学知识应用于实际生活的意识。
课程性质:本课程为C语言编程实践课程,旨在让学生通过动手实践,掌握C 语言编程技能,并运用所学知识解决实际问题。
学生特点:学生已具备一定的C语言基础,具备基本编程能力,但缺乏实际项目经验。
教学要求:注重理论与实践相结合,强调编程实践,培养学生解决实际问题的能力。
通过团队协作,提高学生的沟通与协作能力。
在教学过程中,关注学生的个体差异,因材施教,使每位学生都能在原有基础上得到提高。
二、教学内容1. 数据结构基础:回顾结构体、数组、链表等基本数据结构,讲解其在学生选课系统中的应用。
相关教材章节:第3章 数据类型与表达式,第4章 控制结构,第5章 函数,第6章 数组与字符串,第7章 指针与结构体。
2. 文件操作:介绍文件读写、文件管理等基本操作,为学生选课系统提供数据持久化支持。
相关教材章节:第10章 文件操作。
3. 模块化编程:讲解模块化编程思想,引导学生将学生选课系统分解为多个函数,提高代码的可读性和可维护性。
c语言学生选课系统设计详细设计
c语言学生选课系统设计详细设计详细设计:1. 数据结构设计:- 学生信息结构体:包含学生姓名、学号、已选课程等信息。
- 课程信息结构体:包含课程名称、课程编号、授课教师等信息。
- 教师信息结构体:包含教师姓名、教师编号等信息。
2. 功能设计:- 学生选课功能:学生可以浏览可选课程列表,并选择自己感兴趣的课程进行选修。
选修成功后,将该门课程加入学生的已选课程列表中。
- 课程管理功能:教师可以添加、修改和删除课程信息。
- 学生信息管理功能:教师可以查看学生的选课情况,并进行相关操作,如修改学生选课等。
3. 界面设计:- 学生选课界面:显示可选课程列表,并提供选课按钮。
- 课程管理界面:显示课程信息列表,并提供添加、修改和删除按钮。
- 学生信息管理界面:显示学生信息列表和选课情况,并提供相关操作按钮。
4. 数据库设计:- 学生表:包含学生姓名、学号、已选课程等字段。
- 课程表:包含课程名称、课程编号、授课教师等字段。
- 教师表:包含教师姓名、教师编号等字段。
5. 系统流程设计:- 学生选课流程:学生登录系统后,进入选课界面,浏览可选课程列表,选择自己感兴趣的课程进行选修。
选修成功后,系统更新学生的已选课程列表。
- 课程管理流程:教师登录系统后,进入课程管理界面,可以进行添加、修改和删除课程信息的操作。
系统更新课程表。
- 学生信息管理流程:教师登录系统后,进入学生信息管理界面,可以查看学生的选课情况,并进行相关操作,如修改学生选课。
系统更新学生表。
6. 错误处理设计:- 输入错误处理:对于用户输入的非法数据,系统进行提示并要求重新输入。
- 数据库错误处理:对于数据库操作过程中的错误,系统进行捕获并给出相应的错误提示。
以上为一个简单的C语言学生选课系统的详细设计。
根据具体需求,还可以进行更加详细和具体的设计。
C语言课程设计学生选修课系统设计
汇报人:
目录
添加目录标题
系统概述
系统需求分析
系统设计
系统实现
系统部署与维护
添加章节标题
系统概述
提高学生编程能力
方便教师管理课程设计项目
添加标题
添加标题
提供课程设计实践平台
添加标题
添加标题
促进学生之间的交流与合作
学生选课:查看课程信息,选择感兴趣的课程 教师管理:发布课程信息,管理学生选课情况 教务管理:查看学生选课情况,统计课程报名人数 系统维护:更新课程信息,维护系统正常运行
系统评估与总结
功能完整性:系统是否具备所有必需的 功能
性能稳定性:系统在运行过程中是否稳 定,是否会出现崩溃或错误
用户体验:系统的界面设计、操作流程 是否符合用户习惯,是否易于使用
安全性:系统是否具备足够的安全措施, 如数据加密、用户认证等
可扩展性:系统是否具备良好的可扩展 性,能够适应未来的需求变化
硬件要求:服务器、网络设备、存储设备等 软件要求:操作系统、数据库管理系统、Web服务器等
部署步骤:安装操作系统、安装数据库管理系统、安装Web服务器、部署应用程序等
维护方案:定期备份数据、定期检查系统运行状况、定期更新软件等
定期备份数据:确保数据安全, 防止数据丢失
定期更新软件:确保系统安全, 防止病毒和恶意软件攻击
管理员模块:用户管理、课程管理、选 课管理、成绩管理等操作
系统实现
数据库类型:MySQL
数据库操作:增删改查、事务处理、 备份恢复
添加标题
添加标题
添加标题
添加标题
数据库设计:表结构设计、字段设 计、索引设计
数据库优化:查询优化、索引优化、 存储优化
C语言程序设计报告—学生选修课程系统
p->classperiod=classperiod;//指向结构体变量中的成员
p->experiperiod=experiperiod;
p->creditHour=creditHour;
p->term=term;
if(head==NULL)
head=p;//,如果链表为空,head指向该结点
}SUB;
SUB *head=NULL;//head,头指针
SUB *create_form() //创建链表
{
SUB *head,*tail,*p;//定义结构体指针变量
int courseCode,totalperiod,classperiod;
int experiperiod,term;
float creditHour;
char courseName[20],courseType[10];
int size=sizeof(SUB);
head=tail=NULL;//将空地址赋给头指针,链表中无结点
printf("输入选修课程信息:\n");
scanf("%d%s%s%d%d%d%f%d",&courseCode,courseName,courseType,&totalperiod,&classperiod,&experiperiod,&creditHour,&term);
char courseType[10]; //课程性质
int totalperiod; //总学时
int classperiod; //授课学时
C语言程序设计报告学生选修课系统
C语言程序设计学校:学院:班级序号:学号::姓名指导老师:C语言程序设计报告一、C语言课程设计的目的:高级语言课程设计是学习完《高级语言程序设计》课程后进行的一次全面的综合性上机实验。
其目的在于为同学提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼同学的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力。
二、题目学生选修课程系统设计假定有n门课程,每门课程有课程编号、课程名称、课程性质、总学时、授课学时、实验或商机学时、血粉、开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。
1、要求:试设计一个选修课程系统,使之能提供以下功能:(1)系统以菜单方式工作。
(2)课程信息和学生选课信息输入功能(课程信息用文件保存)——输入。
(3)课程信息浏览功能——输出。
(4)查询功能(至少一种查询方式)——算法。
(5)按学分查询。
(6)某门课程学生选修情况(可选项)。
2、分析:由于题目要求将学生的选课信息用结构体形式输入,并写入文件中,所以应提供文件的输入输出等操作:在过程中需有浏览、插入、修改、查找、删除学生选课信息等操作,顾应分别建立个功能模块;另外还应提供键盘式选择菜单实现程序运行。
3、总体设计:根据题目要求,可以将系统分为六个模块:1)系统以菜单方式工作模块;2)课程信息与学生选课信息录入功能模块;3)课程信息浏览功能模块;4)查询模块;5)按学分查询模块;6)某些课程学生选修情况模块。
块设计:细4详#include <stdio.h>:程主流图#include <stdlib.h>#include <string.h>开始typedef struct subjects{int num; 显示一系列功能选择char name[20];char kind[10];int stime;N判断int ttime;int etime;int score;int term;结束struct subjects *next;}SUB;SUB *create_form(){SUB *head,*tail,*p;int num,stime,ttime;int etime,score,term;char name[20],kind[10];int size=sizeof(SUB);head=tail=NULL;牰湩晴尨输入选修课程信息:\n);scanf(%d %s %s %d %d %d %d %d,&num,&name,&kind,&stime,&ttime,&etime,&score,&term); while(num!=0){p=(SUB *)malloc(size);p->num=num;strcpy(p->name,name);strcpy(p->kind,kind);p->stime=stime;p->ttime=ttime;p->etime=etime;p->score=score;p->term=term;if(head==NULL)head=p;elsetail->next=p;tail=p;scanf(%d %s %s %d %d %d %d %d,&num,&name,&kind,&stime,&ttime,&etime,&score,&term);}tail->next=NULL;return head;}void savefile(SUB *head){ 开始SUB *p;FILE *fp;fp=fopen(subjects.txt,w); 输出写入文件并储存输入结束灦楲瑮?灦尬课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期\n);for(p=head;p;p=p->next)fprintf(fp,]_x0012_s%9s??dd}\n,p->num,p->name,p->kind,p->stime,p->ttime,p->etime,p->score,p->term);fclose(fp);}void savefileadd(SUB *head){SUB *p;FILE *fp;fp=fopen(subjectsadd.txt,w);灦楲瑮?灦尬课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期\n);for(p=head;p;p=p->next)fprintf(fp,]_x0012_s%9s??dd}\n,p->num,p->name,p->kind,p->stime,p->ttime,p->etime,p->score,p->te rm);fclose(fp);}void savefiledel(SUB *head){SUB *p;FILE *fp;fp=fopen(subjectsdel.txt,w);灦楲瑮?灦尬课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期\n);for(p=head;p;p=p->next)fprintf(fp,]_x0012_s%9s??dd}\n,p->num,p->name,p->kind,p->stime,p->ttime,p->etime,p->score,p->te rm);fclose(fp);}void prin(SUB *head){SUB *ptr;if(head==NULL){牰湩晴尨没有此门课程记录!\n);return;}牰湩晴尨课程编号课程名称课程性质总学时授课学时实践或上机学时学分开课学期\n);for(ptr=head;ptr;ptr=ptr->next)printf(]_x0012_s%9s??dd}\n,ptr->num,ptr->name,ptr->kind,ptr->stime,ptr->ttime,ptr->etime,ptr->scor e,ptr->term);}void search(SUB *head) 开始{int a,num;打开文件查看学生选课信息int t=1;char type[10];char ch='a',ch1;21SUB *ptr;判断查询方法查分学按质性按课程输入结束while(ch!=' '){2:\n); 输入分查找请1程要按课性质查找请输入,若要按学若牰湩晴尨scanf(%d,&a); switch(a){:\n); 的性质入慣敳ㄠ瀺楲瑮?请输要查找的课程scanf(%s,type);或实践学程称名课性质总学时授课时程号程牰湩晴尨课编课\n); 学分学期开课时机上学for(ptr=head;ptr;ptr=ptr->next)if(strcmp(type,ptr->kind)==0){printf(]_x0012_s%9s??dd}\n,ptr->num,ptr->name,ptr->kind,ptr->stime,ptr->ttime,ptr->etime,ptr->scor e,ptr->term);t=0;}晩琨?牰湩晴尨未找到!\n);t=1;break;慣敳㈠瀺楲瑮?输入要查找的课程的学分\n);scanf(%d,&num);牰湩晴尨课程编号课程名称课程性质总学时授课学时实践或上机学时学分开课学期\n);for(ptr=head;ptr;ptr=ptr->next)if(ptr->score==num){printf(]_x0012_s%9s??dd}\n,ptr->num,ptr->name,ptr->kind,ptr->stime,ptr->ttime,ptr->etime,ptr->scor e,ptr->term);t=0;}晩琨?牰湩晴尨未找到!\n);t=1;}牰湩晴尨继续查找请按回车键,结束请按空格键:\n);ch1=getchar(); //将回车键赋给CH1,否则CASE里面最后输入的回车键会赋给CH,因此用CH1填补。
C语言课程设计--学生选修课系统
C语言课程设计--学生选修课系统内蒙古科技大学本科生课程设计说明书题目:C语言课程设计——学生选修课管理学生姓名:***学号:**********专业:计算机科学与技术班级:13-计算机2班指导教师:***内蒙古科技大学课程设计论文2013年12月31日内蒙古科技大学课程设计任务书目录课程设计任务书 (V)目录 (V)第一部分:程序总体设计思路 (3)第二部分:程序功能划分、图示及流程图 (3)函数划分 (3)总体设计 (4)课程选择函数流程图 (5)课程新增函数流程图 (6)第三部分:程序设计数据及运行结果 (7)第四部分:心得体会 (12)第五部分:附录(参考文献及源程序) (12)主函数部分:main() (14)菜单函数:void index() (14)登陆界面函数:void login() (15)学生登陆界面函数:void stu_login() (17)管理员登陆界面函数:void man_login() (16)退出界面函数:void bye_sys() (16)学生课程选择函数:void c_select() (18)课程增加函数:void c_add() (21)课程删除函数:void c_delete() (22)学生课程查询函数:void c_search() (25)管理员课程查询函数:void c_search() (28)管理员课程浏览函数:void c_view() (31)学生课程浏览函数:void c_view() (34)第一部分:程序总体设计思路由于C语言是面对过程的语言,故我的设计思路是根据目标程序运行的过程来编写的。
具体设计思路如下:程序的需求是设计学生选修课管理系统,对选修课程能够进行录入和修改操作等,要求有菜单界面和退出功能。
首先,考虑到程序的数据输入,可以设置一个管理员登陆选项,通过该选项进入管理员界面,进行选修课的录入和修改操作,最后将录入的课程保存到相应的文件中。
C语言程序设计报告—学生选修课程系统
C语言程序设计学校:学院:班级序号:学号:指导老师:C语言程序设计报告一、C语言课程设计的目的:高级语言课程设计是学习完《高级语言程序设计》课程后进行的一次全面的综合性上机实验。
其目的在于为同学提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼同学的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力。
二、题目学生选修课程系统设计假定有n门课程,每门课程有课程编号、课程名称、课程性质、总学时、授课学时、实验或商机学时、血粉、开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。
1、要求:试设计一个选修课程系统,使之能提供以下功能:(1)系统以菜单方式工作。
(2)课程信息和学生选课信息输入功能(课程信息用文件保存)——输入。
(3)课程信息浏览功能——输出。
(4)查询功能(至少一种查询方式)——算法。
(5)按学分查询。
(6)某门课程学生选修情况(可选项)。
2、分析:由于题目要求将学生的选课信息用结构体形式输入,并写入文件中,所以应提供文件的输入输出等操作:在过程中需有浏览、插入、修改、查找、删除学生选课信息等操作,顾应分别建立个功能模块;另外还应提供键盘式选择菜单实现程序运行。
3、总体设计:根据题目要求,可以将系统分为六个模块:1)系统以菜单方式工作模块;2)课程信息与学生选课信息录入功能模块;3)课程信息浏览功能模块;4)查询模块;5)按学分查询模块;6)某些课程学生选修情况模块。
4详细设计:#inc lud e <std io.h>#inc lud e <std lib.h> 主流程图:#inc lud e <str ing.h>type def str uc t sub jec ts{int num;c har nam e[20];c har k ind[10];int st ime;int tt im e;int et ime;int sc or e;int term;struc t subjec ts *ne xt;}S UB;S UB *c r eat e_f orm(){SUB *h e ad,*t a il,*p;int num,st im e,tt ime;int et ime,sc ore,t erm;c har nam e[20],k ind[10];int s ize=s iz eof(S UB);hea d=t a il=N ULL;pr intf("输入选修课程信息:\n");sc anf("%d %s %s %d %d %d%d %d",&num,&nam e,&k ind,&st ime,&tt im e,&et ime,&sc ore,&t erm);w hile(num!=0){p=(SUB *)ma lloc(siz e);p->num=n um;strc py(p->nam e,n ame);strc py(p->k ind,k ind);p->stim e=st ime;p->tt ime=tt ime;p->et im e=e t im e;p->sc ore=sc ore;p->term=t erm;if(h ea d==N ULL)head=p;els etail->n ext=p;ta il=p;sc anf("%d %s %s %d %d %d%d %d",&num,&nam e,&k ind,&st ime,&tt im e,&et ime,&sc ore,&t erm);}ta il->n ex t=N ULL;return h ea d;}vo id sa vef ile(S U B *h ead) Array {SUB *p;FILE *fp;fp=fope n("sub jec ts.txt","w");fpr intf(fp,"课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期\n");for(p=he ad;p;p=p->ne xt)fpr intf(fp,"%5d%12s%9s%9d%9d%11d%11d%7d\n",p->nu m,p->n am e,p->k ind,p ->stime,p->tt ime,p->et ime,p->sc ore,p->term);fc lose(fp);}vo id sa vef ile ad d(S UB *h ea d){SUB *p;FILE *fp;fp=fope n("sub jec tsa dd.txt","w");fprintf(fp,"课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期\n");for(p=he ad;p;p=p->ne xt)fpr intf(fp,"%5d%12s%9s%9d%9d%11d%11d%7d\n",p->nu m,p->n am e,p->k ind,p ->stime,p->tt ime,p->et ime,p->sc ore,p->term);fc lose(fp);}vo id sa vef ile de l(S UB *h ea d){SUB *p;FILE *fp;fp=fope n("sub jec tsd e l.txt","w");fprintf(fp,"课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期\n");for(p=he ad;p;p=p->ne xt)fpr intf(fp,"%5d%12s%9s%9d%9d%11d%11d%7d\n",p->nu m,p->n am e,p->k ind,p ->stime,p->tt ime,p->et ime,p->sc ore,p->term);fc lose(fp);}vo id pr in(S UB *he ad){SUB *p tr;if(h ea d==N ULL){printf("没有此门课程记录!\n");}printf("课程编号课程名称课程性质总学时授课学时实践或上机学时学分开课学期\n");for(ptr=h ea d;ptr;ptr=ptr->n ext)pr intf("%5d%12s%9s%9d%9d%11d%11d%7d\n",ptr->num,p tr->n ame,ptr->k ind,ptr->st im e,ptr->tt ime,ptr->et ime,ptr->sc ore,ptr->term);}{int a,nu m;int t=1;c har type[10];c har c h='a',c h1;SUB *p tr;w hile(c h!=' '){printf("若要按课程性质查找请输sc anf("%d",&a);sw itc h(a){c ase 1:pr intf("请输入要查找的课程的性质:\n");sc anf("%s",t ype);printf("课程编号课程名称课程性质总学时授课学时实践或上机学时学分开课学期\n");for(ptr=he ad;p tr;ptr=ptr->nex t)if(strc mp(type,ptr->k ind)==0){pr intf("%5d%12s%9s%9d%9d%11d%11d%7d\n",ptr->num,p tr->n ame,ptr->k ind,ptr->st im e,ptr->tt ime,ptr->et ime,ptr->sc ore,ptr->term);t=0;}if(t) pr intf("未找到!\n");t=1;c ase 2:pr intf("输入要查找的课程的学分\n");sc anf("%d",&nu m);printf("课程编号课程名称课程性质总学时授课学时实践或上机学时学分开课学期\n");for(ptr=he ad;p tr;ptr=ptr->nex t)if(ptr->sc ore==n um){pr intf("%5d%12s%9s%9d%9d%11d%11d%7d\n",ptr->num,p tr->n ame,ptr->k ind, ptr->st im e,ptr->tt ime,ptr->et ime,ptr->sc ore,ptr->term);t=0;}if(t) pr intf("未找到!\n");t=1;}pr intf("继续查找请按回车键,结束请按空格键:\n");c h1=getc h ar(); //将回车键赋给CH1,否则CAS E里面最后输入的回车键会赋给CH,因此用CH1填补。
C语言课程设计报告-学生选课系统
X X X学校C程序设计课程设计报告选题名称:学生选修课程系统设计系(院):计算机工程系专业:嵌入式软件系统设计方向班级:嵌入式1091 姓名: XXX 学号: XXXXXXXXXX指导教师: XXX 学年学期:2008 ~ 2009 学年第 1 学期2009 年12 月28 日设计任务书年月日摘要:C语言课程设计和现代计算机技术的实际应用相结合,是我们在本阶段学完理论课程之后对自己该方面的能力的一次很好的检验,从开始的算法思路到运行调试后的美观的图形界面以及另人兴奋的可用程序,都是一个很好的学习和锻炼的过程。
使我们巩固了原有的理论知识,培养了我们灵活运用和组合集成所学过知识及技能来分析、解决实际问题的能力。
使我们体会到自身知识和能力能在实际中的应用和发挥。
不但可以激发创新意识,还可以开发创造能力、培养沟通能力。
这次学生选修课系统管理设计时间虽然仅有一个星期,但确实使我受益非浅。
通过学生选修课系统管理设计我丰富了计算机操作经验,更加深了对C语言的了解,熟悉了其环境,更增强了对Turbo C的使用技巧。
C语言是在国内外广泛使用的一种计算机语言。
语言功能丰富、表达能力强、使用灵活方便、既具有高级语言的优点,又具有低级语言的许多特点,适合编写系统软件。
同时,我觉得C语言应该是操作和理论相结合的课程,在不断地编写中去思考,两者是不可分割的。
我们在编写一个较大的程序时应该把它分开成几个小程序来看,这样会容易得多。
关键词:学生选修课系统管理;C语言课程设计;计算机技术;模块化程序设计;信息录入;浏览信息;选课;查询目录1.设计目的 (5)2.总体设计 (5)2.1首先实现学生选修课程系统主菜单 (5)2.2其次实现模块化语句设计 (7)总结 (11)致谢 (12)参考文献 (13)C语言课程设计报告1.设计目的设计学生选修课程管理系统:假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。
c程序设计 学生选修课程系统
目录一、课程设计的题目和意义 (2)二、详细设计 (3)1、模块功能介绍 (3)2、程序流程图 (4)3、程序清单 (5)三、系统运行结果 (11)一、课程设计的题目和意义题目五:学生选修课程系统设计假定有n门课程,每门课程有:课程编号,课程名称,课程性质(公共课、必修课、选修课),总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。
试设计一选修课程系统,使之能提供以下功能:1、系统以菜单方式工作2、课程信息录入功能(课程信息用文件保存)3、课程信息浏览功能4、课程信息查询功能查询方式按学分查询按课程性质查询5、学生选修课程 (可选项)通过课程设计的实践环节的教学,可以加深学生对课堂所学基础知识的掌握与理解,提高学生对所学内容的综合运用能力;同时也可以通过查询相关资料,培养学生自学能力、接受新知识的能力,提高学习兴趣;增强学生程序设计能力,掌握编程技巧,并可培养学生实际上机调试程序的能力。
“理论与实践”相结合,使学生得到很好的锻炼,为以后学习、工作打下坚实的基础。
二、详细设计1、模块功能介绍题目:学生选修课程系统设计:课程信息包括:课程编号、课程名称、课程性质、总学时、授课学时、实验或上机学时、学分、开课学期等。
试设计一学生选课系统,使之能提供以下功能:选课信息录入功能(学生信息用文件保存)---输入选课信息浏览功能---输出查询功能---算法按学分查询按课程性质查询进入选课信息操作2、程序流程图3、程序清单#include<stdio.h>#include<stdlib.h>#include <string.h>struct course{int num;char name[20];char kind[10];int time;int ttime;int etime;int mark;int term;};struct student{int snum;int cnum;char cname[20];};/*课程信息录入*/void insert(){void main();FILE *fp;struct course c;int count;int i;if((fp=fopen("course.txt","a+"))==NULL){printf("cannot open file\n");}printf("\n请输入课程门数:\n");scanf("%d",&count);printf("课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期:\n");for(i=0;i<count;i++){scanf("%d %s %s %d %d %d %d %d",&c.num,&,&c.kind,&c.time,&c.ttime,&c.etim e,&c.mark,&c.term);fprintf(fp,"%d %s %s %d %d %d %d %d\n",c.num,,c.kind,c.time,c.ttime,c.etime,c.ma rk,c.term);}fclose(fp);main();}/*课程信息浏览*/void browser(){void main();FILE *fp;struct course c;int a;if((fp=fopen("course.txt","r"))==NULL){printf("\nCannot open course!\n");}printf("课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期:\n");for(;!feof(fp);){fscanf(fp,"%d %s %s %d %d %d %d %d\n",&c.num,&,&c.kind,&c.time,&c.ttime,&c. etime,&c.mark,&c.term);printf("%5d%12s%9s%9d%9d%11d%11d%11d\n",c.num,,c.kind,c.time,c.ttime,c.etim e,c.mark,c.term);}fclose(fp);printf("\n1-返回主菜单;2-退出选课系统\n");scanf("%d",&a);if(a==1)main();elseexit(0);}/*课程信息查询*/void search(){void main();FILE *fp;struct course c;int score;char kind[10];int a;int b;printf("1.按学分查询,2.按课程性质查询.\n");printf("请选择查询方式,输入选项数字:");scanf("%d",&b);if(b==1){printf("\n请输入您要查询的学分:\n");scanf("%d",&score);if((fp=fopen("course.txt","r"))==NULL){printf("\nCannot open course!\n");}printf("课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期:\n");for(;!feof(fp);){fscanf(fp,"%d%s%s%d%d%d%d%d\n",&c.num,&,&c.kind,&c.time,&c.ttime,&c.eti me,&c.mark,&c.term);if(c.mark==score)printf("%5d%12s%9s%9d%9d%11d%11d%11d\n",c.num,,c.kind,c.time,c.ttime,c.etim e,c.mark,c.term);}}else if(b==2){printf("\n请输入您要查询的课程性质:\n");scanf("%s",&kind);if((fp=fopen("course.txt","r"))==NULL){printf("\nCannot open course!\n");}printf("课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期:\n");for(;!feof(fp);){fscanf(fp,"%d%s%s%d%d%d%d%d\n",&c.num,&,&c.kind,&c.time,&c.ttime,&c.eti me,&c.mark,&c.term);if(strcmp(c.kind,kind)==0)printf("%5d%12s%9s%9d%9d%11d%11d%11d\n",c.num,,c.kind,c.time,c.ttime,c.etim e,c.mark,c.term);}}else{printf("输入错误!");exit(1);}fclose(fp);printf("\n1-返回主菜单;2-退出选课系统\n");scanf("%d",&a);if(a==1)main();elseexit(0);}/*统计选课情况*/void xuanke_information(){void main();int total=0;int a;FILE *fp;struct student s;if((fp=fopen("student.txt","r"))==NULL){printf("\nCannot open student!\n");}printf(" 学号课程编号课程名称\n");for(;!feof(fp);){fscanf(fp,"%d%d%s\n",&s.snum,&um,&ame);total++;printf("%7d%9d%13s\n",s.snum,um,ame);}printf("\n选课学生总人数为:%d 人",total);fclose(fp);printf("\n1-返回主菜单;2-退出选课系统\n");scanf("%d",&a);main();elseexit(0);}/*学生选修课程*/void xuan_ke(){void main();struct student s;struct course c;int a;FILE *fp;printf("\n请输入您的学号及您要选择的课程编号:");scanf("%d%d",&s.snum,&um);if((fp=fopen("course.txt","r"))==NULL){printf("\nCannot open course!\n");}for(;!feof(fp);){fscanf(fp,"%d %s %s %d %d %d %d %d\n",&c.num,&,&c.kind,&c.time,&c.ttime,&c. etime,&c.mark,&c.term);if(um==c.num)break;}fclose(fp);if((fp=fopen("student.txt","a+"))==NULL){printf("\nCannot open student!\n");}fprintf(fp,"%d %d %s\n",s.snum,um,);fclose(fp);printf("\n1-返回主菜单;2-退出选课系统\n");scanf("%d",&a);if(a==1)main();elseexit(0);}/*主菜单*/{int n,w=0;printf("********************************************************************* ***********\n");printf(" 学生选课系统菜单\n");printf("********************************************************************* ***********\n");printf(" 1-录入选课信息\n");printf(" 2-浏览选课信息\n");printf(" 3-查询选课信息\n");printf(" 4-统计选课情况\n");printf(" 5-进入选课操作\n");printf(" 0-退出选课系统\n");printf("********************************************************************* ***********\n");printf(" 请选择输入选项前数字:");scanf("%d",&n);do{if(n>5||n<0){printf("\n输入错误!请重新输入!\n");scanf("%d",&n);}else w=1;}while(w==0);switch(n){case 1:insert();break;case 2:browser();break;case 3:search();break;case 4:xuanke_information();break;case 5:xuan_ke();break;case 0:exit(0);}return ;}4、系统运行结果主菜单功能选课信息录入选课信息查询选课学生统计进入选课操作。
C语言课程设计学生选课系统
题目一、学生选课管理系统目录第一部分:课程设计名称、目的、要求... 第二部分:程序总体设计思路................ 第三部分:程序功能划分、图示及流程图第四部分:程序设计数据、运行结果 ............ 第五部分:程序的优缺点.................. 第六部分:心得体会..................... 第七部分:附录(源程序)................ 第八部分:附录(参考文献)第一部分:课程设计名称、目的、要求名称:学生选修课程系统设计目的:运用C语言提高解决实际问题的能力实验环境:Microsoft Visual C++ 6.0内容:假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。
【功能】系统以菜单方式工作课程信息录入功能(课程信息用文件保存)――输入课程信息浏览功能--输出查询功能:(至少一种查询方式)――算法按学分查询按课程性质查询学生选修课程(可选项)第二部分:程序总体设计思路由于C语言是面对过程的语言,故我的设计思路是根据目标程序运行的过程来编写的。
具体的设计思路如下:程序的要求是设计学生选修课管理系统,对选修课程能够进行录入和修改操作等,要求有菜单界面和退出功能。
首先,考虑到程序的数据输入,可以设置一个管理员登陆选项,通过该选项进入管理员界面,进行选修课的录入和修改操作,最后将录入的课程保存到相应的文件中。
然后定义各种函数的功能包括查看,查询,删除等。
另一个为学生登陆界面,该界面学生可以进行课程选择和浏览查询等操作。
在进行该操作之前需要对管理员保存的文件进行读取,然后对其中的内容进行查询等,在学生选好课程以后,可以将其选好的课程保存于相应的文件中,以便下次进行修改。
通过函数的层层调用来实现程序的逻辑结构。
中间通过文件的打开和关闭实现对文件内部所包含的数据的操作。
c语言程序设计之学生选修课系统设计代码
c语言程序设计之学生选修课系统设计代码在学生选修课系统设计中,C语言程序设计是必不可少的一部分。
本文将详细介绍学生选修课系统的设计代码,包括学生信息管理、课程信息管理、选课与退课等功能。
一、学生信息管理在学生选修课系统中,首先需要实现学生信息的管理功能。
以下是学生信息管理的代码示例:#include <stdio.h>#include <stdlib.h>#include <string.h>struct Student {char id[20];char name[20];int age;};void addStudent(struct Student students[], int *count) {printf("请输入学号:");scanf("%s", students[*count].id);printf("请输入姓名:");scanf("%s", students[*count].name);printf("请输入年龄:");scanf("%d", &students[*count].age);(*count)++;printf("添加学生信息成功!\n");}void deleteStudent(struct Student students[], int *count) { char id[20];printf("请输入要删除的学生学号:");scanf("%s", id);for (int i = 0; i < *count; i++) {if (strcmp(students[i].id, id) == 0) {for (int j = i; j < *count - 1; j++) {strcpy(students[j].id, students[j+1].id);strcpy(students[j].name, students[j+1].name); students[j].age = students[j+1].age;}(*count)--;printf("删除学生信息成功!\n");return;}}printf("未找到对应学生信息!\n");}void displayStudents(struct Student students[], int count) {printf("学号\t姓名\t年龄\n");for (int i = 0; i < count; i++) {printf("%s\t%s\t%d\n", students[i].id, students[i].name, students[i].age);}}二、课程信息管理除了学生信息管理外,还需要实现课程信息的管理功能。
C语言课程设计报告—学生选修课程系统设计
中国地质大学本科生课程论文封面课程名称C语言课程设计教师姓名本科生姓名本科生学号本科生专业所在院系类别: C.本科生日期: 2012年09月05日课程设计评语注:1、无评阅人签名成绩无效;2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。
目录课程设计评语 (2)目录 (3)1.课程论文题目 (4)2.程序设计思路 (5)3.功能模块图 (5)4.数据结构设计 (6)5.算法设计 (6)6.程序代码 (12)7.程序运行结果 (22)8.编程中遇到的困难及解决方法 (23)9.总结心得及良好建议 (24)10.致谢 (24)1.课程论文题目名称:学生选修课系统设计【要求】假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课时间,实验或上级时间,学分,开课学期等信息,学生可按要求(如总学分不超过60)自由选课。
是设计一选修课课程系统,使只能提供以下功能:(1)系统一菜单方式工作(2)课程信息和学生选课信息录入功能(课程信息用文件保存输入(3)课程信息浏览功能——输出(4)查询功能(至少一种查询方式)——算法(5)按学分查询(6)某门课程学生选修情况(可选项)【提示】数据结构可用结构体,包括授课和选课两个结构体,其中课程结构体成员包括编号,课程名称,课程性质,总学时,授课学时,实验或上机时间,学分,开课学期。
学秀结构体成员包括学号,课程编号,该结构体的建立主要是为了查询某门课程学生选修情况。
2.程序设计思路由于题目要求将学生的选课信息用结构体形式输入,并写入文件中,所以应提供文件的输入输出等操作:在过程中需有浏览、插入、修改、查找、删除学生选课信息等操作,顾应分别建立个功能模块;另外还应提供键盘式选择菜单实现程序运行。
根据题目要求,可以将系统分为六个模块:1)系统以菜单方式工作模块;2)课程信息与学生选课信息录入功能模块;3)课程信息浏览功能模块;4)查询模块;5)按学分查询模块;6)某些课程学生选修情况模块3.功能模块图4.数据结构设计该程序采用多个main ()函数模块分别来实现程序的运行,通过使用数组功能来实现数据的录入,使用strcpy ()函数来实现录入信息的复制,整个结构从整体来看使用了选择结构,break ..case ..的合理利用5.算法设计1.课程信息录入功能void savefile(SUB *head) {SUB *p; FILE *fp;fprintf(fp,"课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期\n");for(p=head;p;p=p->next)fprintf(fp,"%5d%12s%9s%9d%9d%11d%11d%7d\n",p->num,p->name,p->kind,p->stime,p->ttime,p->etime,p->score,p->term);fclose(fp);}void savefileadd(SUB *head){SUB *p;FILE *fp;fp=fopen("subjectsadd.txt","w");fprintf(fp,"课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期\n");for(p=head;p;p=p->next)fprintf(fp,"%5d%12s%9s%9d%9d%11d%11d%7d\n",p->num,p->name,p->kind,p->stime,p->ttime,p->etime,p->score,p->term);fclose(fp);}2.查询功能{int a,num;int t=1;char type[10];char ch='a',ch1;SUB *ptr;while(ch!=' '){printf("若要按课程性质查找请输入1,若要按学分查找请输入2:\n");scanf("%d",&a);switch(a){case 1:printf("请输入要查找的课程的性质:\n");scanf("%s",type);printf("课程编号课程名称课程性质总学时授课学时实践或上机学时学分开课学期\n");for(ptr=head;ptr;ptr=ptr->next)if(strcmp(type,ptr->kind)==0){printf("%5d%12s%9s%9d%9d%11d%11d%7d\n",ptr->num,ptr->name,ptr->kind,pt r->stime,ptr->ttime,ptr->etime,ptr->score,ptr->term);t=0;}if(t) printf("未找到!\n");t=1;break;case 2:printf("输入要查找的课程的学分\n");scanf("%d",&num);printf("课程编号课程名称课程性质总学时授课学时实践或上机学时学分开课学期\n");printf("%5d%12s%9s%9d%9d%11d%11d%7d\n",ptr->num,ptr->name,ptr->kind,pt r->stime,ptr->ttime,ptr->etime,ptr->score,ptr->term);t=0;}if(t) printf("未找到!\n");t=1;}printf("继续查找请按回车键,结束请按空格键:\n");ch1=getchar(); //将回车键赋给CH1,否则CASE里面最后输入的回车键会赋给CH,因此用CH1填补。
学生选课管理系统课程设计c语言
学生选课管理系统课程设计 - C语言引言学生选课管理系统是一个用于学校管理学生选课信息的重要工具。
本文将介绍如何使用C语言设计一个简单的学生选课管理系统,主要功能包括学生信息管理、课程信息管理、选课和退课功能等。
通过本文学习,读者可以初步了解一个基本的学生选课管理系统是如何设计和实现的。
功能设计学生信息管理•学生信息包括学生姓名、学号、性别、年龄等基本信息。
•实现学生信息的增、删、改、查功能。
课程信息管理•课程信息包括课程名称、课程编号、授课教师等信息。
•实现课程信息的增、删、改、查功能。
选课功能•学生可以根据课程编号进行选课操作。
•当选课成功时,系统将更新学生选课信息和课程选课人数。
退课功能•学生可以根据已选课程编号进行退课操作。
•当退课成功时,系统将更新学生选课信息和课程选课人数。
系统设计数据结构设计•学生信息和课程信息可以采用结构体来保存。
•使用链表或数组来管理学生和课程信息数据。
模块设计•设计学生管理模块、课程管理模块、选课模块和退课模块。
•每个模块实现对应功能,便于代码的维护和扩展。
C语言代码实现// 学生结构体typedef struct {char name[50];int id;char gender;int age;} Student;// 课程结构体typedef struct {char name[50];int id;char teacher[50];int max_num;int cur_num;} Course;// 学生信息管理函数void addStudent(Student* students, int* count);void deleteStudent(Student* students, int* count);void updateStudent(Student* students, int count);void searchStudent(Student* students, int count);// 课程信息管理函数void addCourse(Course* courses, int* count);void deleteCourse(Course* courses, int* count);void updateCourse(Course* courses, int count);void searchCourse(Course* courses, int count);// 选课和退课函数void selectCourse(Student* students, int s_count, Course* courses, int c_count);void withdrawCourse(Student* students, int s_count, Course* courses, in t c_count);// 主函数int main() {Student students[100];Course courses[50];int s_count = 0;int c_count = 0;// 主程序逻辑return0;}总结通过本文的学习,读者可以初步了解学生选课管理系统的设计和实现过程。
c语言学生选课管理系统课程设计
C语言学生选课管理系统课程设计引言学生选课管理系统是一个用于管理学生课程的软件应用程序。
该系统能够自动化学生选课过程,提供方便快捷的选课功能,并能够更好地帮助学校管理学生选课情况。
本文将介绍一个基于C语言的学生选课管理系统的设计与实现。
功能需求学生选课管理系统应具备以下功能:1.学生用户登录和注册:学生可以通过用户名和密码登录系统,并可以进行账号注册。
2.课程浏览:学生可以浏览系统中的所有课程信息,包括课程编号、名称、教师、学分等。
3.选课功能:学生可以根据自己的需求,选择自己感兴趣的课程,并将其加入到已选课程列表。
4.退课功能:学生可以从已选课程列表中选择需要退选的课程,并将其移出已选课程列表。
5.课程信息查询:学生可以通过课程编号或名称进行课程信息查询,以便了解课程的详细信息。
6.学生个人信息查看与修改:学生可以查看和修改自己的个人信息,包括学号、姓名、年级、专业等。
7.成绩查询:学生可以查询已选课程的成绩,系统会将学生的成绩存储在相应的课程中。
数据结构与算法设计学生信息数据结构typedef struct Student {char studentId[10]; // 学号char name[20]; // 姓名int grade; // 年级char major[20]; // 专业} Student;课程信息数据结构typedef struct Course {int courseId; // 课程编号char name[30]; // 课程名称char teacher[20]; // 授课教师int credit; // 学分int score; // 成绩} Course;选课流程算法设计1.学生登录系统,输入用户名和密码。
2.系统验证用户名和密码的正确性,确认学生身份。
3.学生选择想要选修的课程,输入课程编号。
4.系统检查课程是否存在,如果课程存在且未满员,则将课程添加到学生的已选课程列表中。
原创c语言学生选课系统课程设计
原创C语言学生选课系统课程设计一、引言学生选课系统是高校管理系统中的重要组成部分,它通过网络为学生提供了方便快捷的选课服务。
本课程设计旨在设计一个基于C语言的学生选课系统,通过实现选课、查看选课结果、修改选课等功能,帮助学生更好地管理自己的选课信息。
二、功能设计1. 学生相关功能1.1 登录功能学生可以通过输入学号和密码登录系统,确保只有正式注册的学生才能使用该系统。
1.2 查看选课信息功能学生登录后可以查看所有可选课程的信息,包括课程名称、授课教师、上课时间等。
1.3 选课功能学生可以根据自己的兴趣和需求选择课程进行选课操作,并将选课结果保存到系统中。
1.4 查看选课结果功能学生可以查看自己已选课程的详细信息,包括课程名称、授课教师、上课时间等。
1.5 修改选课功能学生可以对已选课程进行修改操作,包括添加新课程、删除已选课程等。
2. 管理员相关功能2.1 管理员登录功能管理员可以通过输入管理员账号和密码登录系统,以获得管理员权限。
2.2 添加课程功能管理员登录后可以添加新的课程信息,包括课程编号、课程名称、授课教师、上课时间等。
2.3 删除课程功能管理员可以删除已存在的课程信息,以便及时更新课程列表。
2.4 查看选课情况功能管理员可以查看学生的选课情况,包括学生姓名、所选课程、选课时间等。
2.5 修改选课情况功能管理员可以对学生的选课结果进行修改操作,包括添加课程、删除课程等。
三、系统设计1. 学生数据结构设计在系统中,每个学生可以用一个数据结构来表示,包括学号、姓名、密码等信息。
struct Student {int stuId;char stuName[20];char password[20];};2. 课程数据结构设计每门课程可以用一个数据结构来表示,包括课程编号、课程名称、授课教师、上课时间等信息。
struct Course {int courseId;char courseName[30];char teacher[20];char classTime[20];};3. 数据存储设计使用文件来存储学生和课程信息,其中学生信息存储在一个文件中,课程信息存储在另一个文件中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言程序设计报告一、C语言课程设计的目的:高级语言课程设计是学习完《高级语言程序设计》课程后进行的一次全面的综合性上机实验。
其目的在于为同学提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼同学的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力。
二、题目学生选修课程系统设计假定有n门课程,每门课程有课程编号、课程名称、课程性质、总学时、授课学时、实验或商机学时、血粉、开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。
1、要求:试设计一个选修课程系统,使之能提供以下功能:(1)系统以菜单方式工作。
(2)课程信息和学生选课信息输入功能(课程信息用文件保存)——输入。
(3)课程信息浏览功能——输出。
(4)查询功能(至少一种查询方式)——算法。
(5)按学分查询。
(6)某门课程学生选修情况(可选项)。
2、分析:由于题目要求将学生的选课信息用结构体形式输入,并写入文件中,所以应提供文件的输入输出等操作:在过程中需有浏览、插入、修改、查找、删除学生选课信息等操作,顾应分别建立个功能模块;另外还应提供键盘式选择菜单实现程序运行。
3、总体设计:根据题目要求,可以将系统分为六个模块:1)系统以菜单方式工作模块;2)课程信息与学生选课信息录入功能模块;3)课程信息浏览功能模块;4)查询模块;5)按学分查询模块;6)某些课程学生选修情况模块。
4详细设计:#include <stdio.h>#include <stdlib.h> 主流程图:#include <string.h>typedef struct subjects {int num; char name[20];char kind[10];int stime; int ttime; int etime; int score;int term;struct subjects *next; }SUB;SUB *create_form(){SUB *head,*tail,*p;int num,stime,ttime;int etime,score,term;char name[20],kind[10];int size=sizeof(SUB);head=tail=NULL;系统以菜单方式工作模块 课程信息与学生选课信息录入功能模块课程信息浏览功能模块 查询模块 按学分查询模块某些课程学生选修情况模块 工资信息管理系统开始显示一系列功能选择判断结束Nprintf("输入选修课程信息:\n");scanf("%d %s %s %d %d %d %d %d",&num,&name,&kind,&stime,&ttime,&eti me,&score,&term);while(num!=0){p=(SUB *)malloc(size);p->num=num;strcpy(p->name,name);strcpy(p->kind,kind);p->stime=stime;p->ttime=ttime;p->etime=etime;p->score=score;p->term=term;if(head==NULL)head=p;elsetail->next=p;tail=p;scanf("%d %s %s %d %d %d %d %d",&num,&name,&kind,&stime,&ttime,&eti me,&score,&term);}tail->next=NULL;return head;}void savefile(SUB *head){ SUB *p;FILE *fp;fp=fopen("subjects.txt","w");开始 结束 输出 输入 写入文件并储存fprintf(fp,"课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期\n");for(p=head;p;p=p->next)fprintf(fp,"%5d%12s%9s%9d%9d%11d%11d%7d\n",p->num,p->name,p->kind,p ->stime,p->ttime,p->etime,p->score,p->term);fclose(fp);}void savefileadd(SUB *head){SUB *p;FILE *fp;fp=fopen("subjectsadd.txt","w");fprintf(fp,"课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期\n");for(p=head;p;p=p->next)fprintf(fp,"%5d%12s%9s%9d%9d%11d%11d%7d\n",p->num,p->name,p->kind,p ->stime,p->ttime,p->etime,p->score,p->term);fclose(fp);}void savefiledel(SUB *head){SUB *p;FILE *fp;fp=fopen("subjectsdel.txt","w");fprintf(fp,"课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期\n");for(p=head;p;p=p->next)fprintf(fp,"%5d%12s%9s%9d%9d%11d%11d%7d\n",p->num,p->name,p->kind,p ->stime,p->ttime,p->etime,p->score,p->term);fclose(fp);}void prin(SUB *head){SUB *ptr;if(head==NULL){printf("没有此门课程记录!\n");return;}printf("课程编号 课程名称 课程性质 总学时 授课学时 实践或上机学时 学分 开课学期\n");for(ptr=head;ptr;ptr=ptr->next)printf("%5d%12s%9s%9d%9d%11d%11d%7d \n",ptr->num,ptr->name,ptr->kind,ptr->stime,ptr->ttime,ptr->etime,ptr->score,ptr->term);}void search(SUB *head) {int a,num; int t=1;char type[10];char ch='a',ch1; SUB *ptr;while(ch!=' '){printf("若要按课程性质查找请输入1,若要按学分查找请输入2:\n"); scanf("%d",&a);switch(a){case 1:printf("请输入要查找的课程的性质:\n");scanf("%s",type);printf("课程编号 课程名称 课程性质 总学时 授课学时 实践或上机学时 学分 开课学期\n");for(ptr=head;ptr;ptr=ptr->next)if(strcmp(type,ptr->kind)==0){开始 打开文件查看学生选课信息 判断查询方法 结束2 输入 按课程性质按学分查1printf("%5d%12s%9s%9d%9d%11d%11d%7d\n",ptr->num,ptr->name,ptr->kind, ptr->stime,ptr->ttime,ptr->etime,ptr->score,ptr->term);t=0;}if(t) printf("未找到!\n");t=1;break;case 2:printf("输入要查找的课程的学分\n");scanf("%d",&num);printf("课程编号课程名称课程性质总学时授课学时实践或上机学时学分开课学期\n");for(ptr=head;ptr;ptr=ptr->next)if(ptr->score==num){printf("%5d%12s%9s%9d%9d%11d%11d%7d\n",ptr->num,ptr->name,ptr->kind, ptr->stime,ptr->ttime,ptr->etime,ptr->score,ptr->term);t=0;}if(t) printf("未找到!\n");t=1;}printf("继续查找请按回车键,结束请按空格键:\n");ch1=getchar(); //将回车键赋给CH1,否则CASE里面最后输入的回车键会赋给CH,因此用CH1填补。
ch=getchar();}}SUB *insert(SUB *head){SUB *ptr,*ptr2,*subj;int size=sizeof(SUB);char ch='a',ch1;while(ch!=' '){subj=(SUB *)malloc(size);ptr=subj;printf("输入要插入的课程信息:\n");scanf("%d%s%s%d%d%d%d%d",&subj->num,subj->name,subj->kind,&subj->st ime,&subj->ttime,&subj->etime,&subj->score,&subj->term);if(head==NULL){head=ptr;head->next=NULL;}else{for(ptr2=head;ptr2;ptr2=ptr2->next)if(ptr2->next==NULL){ptr2->next=subj;subj->next=NULL;break;}}printf("继续插入请按回车,结束请按空格:\n");ch1=getchar(); //将回车键赋给CH1,否则subj->term输完后输入的回车键会赋给CH,因此用CH1填补。