C语言程序设计
课程设计
学生姓名:
学 号:
系 (院):
专 业:
设计(论文)题目: 学生选课系统管理
完成日期: 20##年6月
指导教师:
目录
一、实验目的
二、实验内容
三、总体设计
四、详细设计
五、运行结果
六、课程设计体会
一、实验目的:
1. 通过课程设计,加深对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。
2. 通过课程设计,进一步掌握C有并重要的数据结构。掌握并熟练运用指针、链表、结构体、文件等数据结构。
3. 通过课程设计,提高程序开发能力,能运用合理的控制流编写清晰高效的程序。
4. 通过课程设计,培养C语言知识运用和自学能力,真正的把课堂上获得的知识运用起来,培养自己对程序编写的兴趣,并能独立设计和实现一个中小型系统。
5. 通过课程设计,加强了自己的程序分析能力。
二、实验内容:
学生选修课程系统设计
假定有n门课程,每门课程有课程编号、课程名称、课程性质、总学时、授课学时、实验或上机学时、学分、开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。
1、要求:
试设计一个选修课程系统,使之能提供以下功能:
(1) 系统以菜单方式工作。
(2) 课程信息和学生选课信息输入功能(课程信息用文件保存)——入。
(3) 课程信息浏览功能——输出。
(4) 查询功能(至少一种查询方式)——算法。
(5) 按学分查询。
(6)某门课程学生选修情况(可选项)。
2、分析:
由于题目要求将学生的选课信息用结构体形式输入,并写入文件中,所以应提供文件的输入输出等操作:在过程中需有浏览、插入、修改、查找、删除学生选课信息等操作,顾应分别建立个功能模块;另外还应提供键盘式选择菜单实现程序运行。
3、总体设计:
根据题目要求,可以将系统分为六个模块:
1) 系统以菜单方式工作模块;
2) 课程信息与学生选课信息录入功能模块;
3) 课程信息浏览功能模块;
4) 查询模块;
5) 按学分查询模块;
6) 某些课程学生选修情况模块。
三、总体设计
1。本系统的功能如图一所示功能:调用各个主要模块,实现选课系统的整体功能。
2.输入函数
功能:提供用户输入窗口,用户输入数据,用数据文件的形式保存所有的课程信息。
3.显示函数
功能:提供用户输入窗口,显示用户输入系部的全部课程信息。
4 查询函数
功能:显示满足用户输入学分的所有课程信息;
5 查询函数
功能:显示满足用户输入课程性质的所有课程信息;
6 查询函数
功能:显示用户输入课程名的所有课程信息;
7 选课函数
功能:提供选课界面供学生选课,用文件保存学生输入的信息;
四、详细设计
如图2为选择模块图
功能:提供选课界面供学生选课,用文件保存学生输入的信息
{
int courseCode; //课程编号
char courseName[20]; //课程名称
char courseType[10]; //课程性质
int totalperiod; //总学时
int classperiod; //授课学时
int experiperiod; //实验或上机学时
float creditHour; //学分
int term; //开课学期
struct subjects *next;//next是指针变量,指向结构体变量,链表
}SUB;
录入课程信息:
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");
}
查询方式:
switch(a)//多分支选择语句
{
case 1:printf("请输入要查找的课程的名称:");
scanf("%s",min);
printf("课程编号 课程名称 课程性质 总学时 授课学时 实践或上机学时 学分 开课学期\n");
for(ptr=head;ptr;ptr=ptr->next)
if(strcmp(min,ptr->courseName)==0)//比较查找课程和结构体成员编号是否相同
t=0;//如果相同,输出课程信息
if(t)
printf("\t\n未找到!\n");
t=1;
system("pause");
goto L1;//指定跳转到l1,程序将处理从下一行开始的命令
case 2:printf("请输入要查找的课程的性质:");
scanf("%s",type);
for(ptr=head;ptr;ptr=ptr->next)
if(strcmp(type,ptr->courseType)==0)
{
printf("%5d%12s%9s%9d%9d%11d%11.6f%7d\n",ptr->courseCode,ptr->courseName,ptr->courseType,ptr->totalperiod,ptr->classperiod,ptr->experiperiod,ptr->creditHour,ptr->term);
t=0;
}
if(t)
printf("\t\n未找到!\n");
t=1;
system("pause");
goto L1;
case 3:printf("输入要查找的课程的学分:");
scanf("%d",&courseCode);
printf("课程编号 课程名称 课程性质 总学时 授课学时 实践或上机学时 学分 开课学期\n");
for(ptr=head;ptr;ptr=ptr->next)
if(ptr->creditHour==courseCode)
{
printf("%5d%12s%9s%9d%9d%11d%11.6f%7d\n",ptr->courseCode,ptr->courseName,ptr->courseType,ptr->totalperiod,ptr->classperiod,ptr->experiperiod,ptr->creditHour,ptr->term);
t=0;
}
if(t)
printf("\n\t未找到!\n");
t=1;
system("pause");
goto L1;
case 4:break;
}
}
返回主菜单
五、运行结果:
六、课程设计体会:
回顾起此次课程设计,至今我仍感慨颇多,的确,在这些日子,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。虽然我的这个课程设计有很多缺陷,但是我以后会一直改进直到它能比较完善的工作。以后我会更努力的学习c语言。
第二篇:C语言课程设计报告模版
C程序设计课程设计报告
(页面设置:A4纸,上下左右边距2.5厘米2.5厘米3厘米1.5厘米,页眉页脚均1.7厘米)
题目
(居中小二号黑体)
作者
(与题目空一行,作者之间空两个全角空格,居中小四号宋体)
作者班级学号
(不同作者的班级学号之间用逗号隔开,居中五号宋体,下空2行)
一 课题分析
(序号与文字之间空1个全角空格,居中小三号黑体,下主标题同此)
1.1 设计要求(顶格,四号黑体,序号与文字之间空1个半角空格,所有子标题同此) 装
订
线 正文(首行缩进两个全角空格,小四号宋体,段前段后0行,1.5倍行距,下面所有正文同此) 1.1.1 ☆☆☆(顶格、四号黑体,如果需要下一级子标题按照此规律设置) 正文 1.1.2 ☆☆☆ 正文
1.2 实现功能
C程序设计课程设计报告
(一级层次之间空2行)
二 整体设计(居中、小三号、黑体)
2.1框架设计(顶格、四号黑体)
正文(首行缩进两个全角空格,小四号宋体)
2.2 功能设计(顶格、四号黑体,如果需要可按照此形式继续扩充,名称自拟)
正文(首行缩进两个全角空格,小四号宋体)
表1
装 订 线
(表与正文空一行)
三 详细设计(居中、小三号、黑体)
3.1 ☆☆☆(顶格、四号黑体) 3.2 ☆☆☆(顶格、四号黑体)
四 总结(居中、小三号、黑体)
参考文献(标题顶格、四号黑体,与上空2行;正文五号宋体,顶格)
文献是期刊时,书写格式为:
C程序设计课程设计报告
[编号] 作者.文章题目.期刊名(外文可缩写),年份,卷号,期号:起~止页码
文献是图书时,书写格式为:
[编号] 作者.书名(译音). 出版地:出版单位,出版年,起~止页码
文献是网页时,书写格式为:
[编号] 网站名称.资料名称.URL地址.时间
以上,编号用中扩号内阿拉伯数字排序。作者只写到第三位,余者写“等”,英文作者超过3人写“et al”(斜体)。如果需要两行的,第二行文字要位于编号的后边,与第一行文字对齐。中文的用五号宋体,外文的用五号Times New Roman字体。
附 录
(另起一页,居中小三号黑体,“附录”两字中间空两个全角空格)
(源程序代码,小五号Times New Roman字体,单倍行距)
说明:
1. 课题分析部分:主要写课题的目的、背景、意义,以及预期要达到的功
能、效果等。
2. 整体设计部分:可以按照课题的实现功能或组成框架等方面,写课题是
怎样设计实现的。
3. 详细设计部分:按照各功能的实现,从算法、程序等方面详细介绍。
4. 总结部分:程序的最终实现的效果描述,包括优点和不足之处。
5. 附录部分:程序的源程序代码。