C语言课程设计学生选修课程管理系统.docx
- 文档编号:15004611
- 上传时间:2023-06-29
- 格式:DOCX
- 页数:140
- 大小:219.90KB
C语言课程设计学生选修课程管理系统.docx
《C语言课程设计学生选修课程管理系统.docx》由会员分享,可在线阅读,更多相关《C语言课程设计学生选修课程管理系统.docx(140页珍藏版)》请在冰点文库上搜索。
C语言课程设计学生选修课程管理系统
内蒙古科技大学
本科生课程设计说明书
题目:
C语言课程设计
——学生选修课程管理系统
学生姓名:
学号:
专业:
软件工程
班级:
软件一班
指导教师:
日期:
2014年12月23日
内蒙古科技大学课程设计说明书
内蒙古科技大学课程设计任务书
课程名称C语言课程设计
设计题目学生选修课程管理系统
指导教师余金林时间2014.12.13——2014.12.23
一、教学要求
1.巩固和加深学生对C语言课程的基本知识的理解和掌握
2.掌握C语言编程和程序调试的基本技能
3.利用C语言进行基本的软件设计
4.掌握书写程序设计说明文档的能力
5.提高运用C语言解决实际问题的能力
二、设计资料及参数
每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。
学生选修课程管理系统设计
假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验
或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。
试设
计一选修课程系统,使之能提供以下功能:
1.课程信息录入功能(课程信息用文件保存)--输入;课程信息浏览功能--输出
2.查询功能:
(至少一种查询方式)--算法●按学分查询●按课程名称查询
3.学生选修课程(可选项)
三、设计要求及成果
1.分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题
目)
2.写出详细设计说明(至少包括功能实现分析和模块流程图)
3.编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少500行代码,不包括注释和花括号)
4.设计完成的软件要便于操作和使用
5.设计完成后提交课程设计报告(请严格按照模板进行排版)
四、进度安排
第一天选择课程设计题目,分析课题的要求
第二天编程
第三天编程及调试
第四天写课程设计报告
第五天提交课程设计报告(打印稿及电子稿)
五、评分标准
1.根据平时上机考勤、表现和进度,教师将每天点名和检查
2.根据课程设计完成情况,必须有可运行的软件。
3.根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。
六、建议参考资料
1.《C语言程序设计》,谭浩强,清华大学出版社
2.《C语言程序设计课程设计》,刘振安,机械工业出版社
I
内蒙古科技大学课程设计说明书
内蒙古科技大学课程设计任务书
·······································I
目
录·······················································II
第一章
需求分析··············································3
1.1
引言·················································3
1.2
任务概述
··············································3
1.3
数据描述
··············································3
1.4
功能需求
··············································3
1.5
性能需求
··············································3
1.6
运行需求
··············································4
1.7
任务计划
··············································4
第二章
概要设计
··············································4
2.1
总体设计
··············································4
2.2
数据类型设计(或数据结构设计)·····························5
2.3
接口设计
//函数声明····································6
2.4
运行界面设计
·······································6
第三章
详细设计
·············································10
3.1
输入模块设计
·······································10
3.2
输出模块设计
·······································12
3.3
查找模块设计
·······································18
第四章
测试分析
·············································20
4.1
测试程序执行情况
·······································20
第五章
用户手册(可选)
·······································26
5.1
使用说明
·············································26
5.2
运行说明
·············································26
第六章
课程设计总结
·······································27
附录:
程序代码················································28参考文献·······················································48致谢·······················································48
II
内蒙古科技大学课程设计说明书
第一章需求分析
1.1引言
本课设真对于选修课,增加课程,阅览课程,按学分选择课程,等一系列功
能。
现在大学生正处于选课阶段,特作本课设,帮助学生选课。
1.2任务概述
1、采用结构体的形式进行信息输入与输出。
2、对输入的课程的信息进行简单的排序。
3、对输入的课程的信息进行删除。
4、对输入的课程信息进行修改。
5、对输入的课程信息进行浏览。
6、对输入的课程信息进行查询。
1.3数据描述
课程编号:
课程名字:
课程学分:
课程性质:
课程学时:
开课学期:
001幸福学2哲学163-8周春
002大学语文2文学1412-18周春
1.4功能需求
1、有登陆系统的界面和一些必要的提示。
2、有输入信息的界面和返回主目录的功能。
3、有信息的浏览功能,对信息进行系统的输出。
4、有信息的删除功能,对无关紧要或不必要并且已输入的信息进行删除。
5、有信息的修改功能,对有错误或对需要修改的信息进行修改。
6、有信息的查询功能,按学分可进行查询。
1.5性能需求
1、具有一定的信息提示功能。
2、对信息由基本的处理功能,如:
输入、输出、查询、修改、删除等。
3
内蒙古科技大学课程设计说明书
3、对管理的信息进行系统的输入和输出。
1.6运行需求
1、输入信息要严格按照提示顺序进行输入。
2、输入选择项功能,要在选项范围内进行选择。
3、输入的信息严格按照要求的格式输出。
4、输入的信息必须清晰,不可连续不断。
1.7任务计划
1、本程序是以为了更好地帮助学生选课而编写的一个程序。
目的是以以一种更
系统的操作来帮助学生选课,所以本程序的输入是以数据和文字两种形式输入
的,输出也是一样。
而本程序可以对学生所选课程进行输入和输出,对信息进行
删除和修改并可以对信息进行浏览,使使用者更方便的浏览所选课程的信息。
还
可以对信息尽查找,方便使用者对信息进行提取。
2、对程序进行调试时,如果有输入错的信息的时候,本程序会对使用者进行提
示,而让使用者对信息进行重新输入。
第二章概要设计
2.1总体设计
学生选课
课程浏览
课程查询
学生登录
新增课程
课程浏览
登陆页面管理员登录
课程查询
退出系统
4
内蒙古科技大学课程设计说明书
2.2数据类型设计(或数据结构设计)
structcourse//定义课程结构体
{
intc_num;//课程编号
charc_name[20];//课程名字
intc_score;//课程学分
charc_properties[20];//课程性质
intc_time;//课程学时
charc_term[20];//开课学期
};
structstudent
{
chars_number[10];
chars_password[10];
};
structmanager
{
charm_name[10];
charm_password[10];
};
5
内蒙古科技大学课程设计说明书
2.3接口设计//函数声明
表2.1:
函数列表
函数名
函数格式
//即函数首部
函数功能
login()
void
登陆
bye_sys()
void
退出界面
stu_login()
void
学生登陆菜单
c_select()
void
选择课程
c_view()
void
课程浏览
c_add()
void
新增课程
c_searchs()
void
学生查询函数
c_searchm()
void
管理员查询函数
c_viewm()
void
管理员浏览函数
c_views()
void
学生浏览函数
2.4运行界面设计
6
内蒙古科技大学课程设计说明书
voidlogin()//登陆界面
{
voidstu_login();
voidman_login();
voidbye_sys();
intinput;
do
{
system("cls");
printf("\n\n\n\n\n\n\t\t\t\t1.学生登陆\n");
printf("\n\t\t\t\t2.管理员登陆\n");
printf("\n\t\t\t\t3.退出系统\n\n\n");
printf("\n\n\n\t请输入项目代号:
");
scanf("%d",&input);
if(input!
=1&&input!
=2&&input!
=3)
{
printf("\n\t输入有误!
!
请重新输入\n");
printf("\n\t按任意键返回\n\t");
getchar();getchar();
system("cls");
}
if(input==3)
{
bye_sys();
}
}while(input!
=1&&input!
=2&&input!
=3);
switch(input)
{
case1:
7
内蒙古科技大学课程设计说明书
stu_login();break;
case2:
man_login();break;
}
}
voidbye_sys()//退出界面
{
exit(0);
}
voidman_login()//管理员登陆
{
voidc_add();
voidc_view();
voidc_searchm();
intin;
do{
system("cls");
printf("\n\n\n\n\t\t\t--管理员登陆菜单--\n\n");
printf("\n\n\t\t\t\t1.新增课程\n");
printf("\n\t\t\t\t2.课程浏览\n");
printf("\n\t\t\t\t3.课程查询\n");
printf("\n\t\t\t\t4.退出\n");
printf("\n\n\t请输入项目代号:
");
scanf("%d",&in);
}while(in!
=1&&in!
=2&&in!
=3&&in!
=4);
switch(in)
{
case1:
c_add();break;
case2:
8
内蒙古科技大学课程设计说明书
c_viewm();break;
case3:
c_searchm();break;
case4:
login();break;
}
}
9
内蒙古科技大学课程设计说明书
第三章详细设计
3.1输入模块设计
voidc_add()//新增课程函数
{
voidc_add();
voidman_login();
inti=0,j,inp;
FILE*fp;
structcoursecourse_new;
structcoursecourses[10];
system("cls");
printf("\n\n\t\t请输入课程信息");
printf("\n\n\t\t1.课程编号:
");
scanf("%d",&course_new.c_num);
printf("\n\n\t\t2.课程名字:
");
scanf("%s",course_new.c_name);
printf("\n\n\t\t3.课程学分:
");
scanf("%d",&course_new.c_score);
printf("\n\n\t\t4.课程性质:
");
scanf("%s",course_new.c_properties);
printf("\n\n\t\t5.课程学时:
");
scanf("%d",&course_new.c_time);
printf("\n\n\t\t6.开课学期:
");
scanf("%s",course_new.c_term);
if((fp=fopen("course.dat","rb"))!
=NULL)
{
do{
fread(&courses[i],sizeof(structcourse),1,fp);
10
内蒙古科技大学课程设计说明书
i=i+1;
}while(!
feof(fp));
fclose(fp);
}
if((fp=fopen("course.dat","rb"))==NULL)
{
fp=fopen("course.dat","wb");
}
else
{
fclose(fp);
fp=fopen("course.dat","ab");
}
fwrite(&course_new,sizeof(structcourse),1,fp);
fclose(fp);
printf("\n\n\t\t信息输入完毕\t按任意键继续");
getchar();getchar();
do{
system("cls");
printf("\n\n\t\t1.继续输入");
printf("\n\n\t\t2.返回管理菜单");
printf("\n\n\t\t请输入标号:
");
scanf("%d",&inp);
}while(inp!
=1&&inp!
=2);
switch(inp)
{
case1:
c_add();break;
case2:
man_login();break;
11
内蒙古科技大学课程设计说明书
}
}
3.2输出模块设计
voidc_viewm()
{
voidstu_login();
voidc_view();
intinp,i=0,n=0;
FILE*fp;
charinput;
structcoursecourseview[10];
if((fp=fopen("course.dat","rb"))==NULL)
{
system("cls");
printf("\n\n\t课程不存在\n\n");
printf("\t<按任意键返回菜单>\n\t");
getchar();getchar();
man_login();
}
else
{
do{
fread(&courseview[i],sizeof(structcourse),1,fp);
i=i+1;
}while(!
feof(fp));
fclose(fp);
do{
system("cls");
if(i==1)
12
内蒙古科技大学课程设计说明书
{
printf("\n\n\n\t\t\t没有记录!
\n");
getchar();getchar();
man_login();
}
else
{
printf("\n\t\t\t-----共有%d条记录-----",i-1);
printf("\n\n\t\t\t课程编号:
%d\n",courseview[n].c_num);
printf("\n\n\t\t\t课程名字:
%s\n",courseview[n].c_name);
printf("\n\n\t\t\t课程学分:
%d\n",courseview[n].c_score);
printf("\n\n\t\t\t课程性质:
%s\n",courseview[n].c_properties);
printf("\n\n\t\t\t课程学时:
%d\n",courseview[n].c_time);printf("\n\n\t\t\t开课学期:
%s\n",courseview[n].c_term);printf("\n\n\t\t1.上一页\t2.下一页\t3.回目录");printf("\n\t请选择:
");
scanf("%d",&inp);
switch(inp)
{
case1:
{
if(n==0)
{
printf("\n\t已到达首页\t按任意键返回");
input=getchar();
input=getchar();
}
else
{
n=n-1;
13
内蒙古科技大学课程设计说明书
}
break;
}
case2:
{
if(n==i-2)
{
printf("\n\t已到达尾页\t按任意键返回");
input=getchar();
input=getchar();
}
else
{
n=n+1;
}
break;
}
case3:
{
man_login();
break;
}
default:
{
printf("\n\t操作错误\t按任意键返回");
getchar();
getchar();
break;
}
}
}
14
内蒙古科技大学课程设计说明书
}while(inp!
=3);
}
}
voidc_views()
{
voidstu_login();
voidc_view();
intinp,i=0,n=0;
FILE*fp;
charinput;
structcoursecourseview[10];
if((fp=fopen("course.dat","rb"))==NULL)
{
system("cls");
printf("\n\n\n\t课程不存在\n\n");
printf("\t<按任意键返回菜单>\n\t");
getchar();getchar();
stu_login();
}
else
{
do
{
fread(&courseview[i],sizeof(structcourse),1,fp);
i=i+1;
}
while(!
feof(fp));
fclose(fp);
do
{
15
内蒙古科技大学课程设计说明书
system("cls");
if(i==1)
{
printf("\n\n\n\t\t\t没有记录!
\n");
getchar();getchar();
stu_login();
}
else
{
printf("\n\t\t\t-----共有%d条记录-----",i-1);
printf("\n\n\t\t\t课程编号:
%d\n",courseview[n].c_num);
printf("\n\n\t\t\t课程名字:
%s\n",courseview[n].c_name);
printf("\n\n\t\t\t课程学分:
%d\n",courseview[n].c_score);
printf("\n\n\t\t\t课程性质:
%s\n",courseview[n].c_properties);
printf("\n\n\t\t\t课程学时:
%d\n",courseview[n].c_time);printf("\n\n\t\t\t开课学期:
%s\n",courseview[n].c_term);printf("\n\n\t\t1.上一页\t2.下一页\t3.回目录");printf("\n\t请选择:
");
scanf("%d",&inp);
switch(inp)
{
case1:
{
if(n==0)
{
printf("\n\t已到达首页\t按任意键返回");
input=getchar();
input=getchar();
}
else
16
内蒙古科技大学课程设计说明书
{
n=n-1;
}
break;
}
case2:
{
if(n==i-2)
{
printf("\n\t已到达尾页\t按任意键返回");
input=getchar();
input=getchar();
}
else
{
n=n+1;
}
break;
}
case
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 学生 选修 课程 管理 系统
![提示](https://static.bingdoc.com/images/bang_tan.gif)