课程设计报告学生选修课系统设计.docx
- 文档编号:11342165
- 上传时间:2023-02-28
- 格式:DOCX
- 页数:76
- 大小:985.73KB
课程设计报告学生选修课系统设计.docx
《课程设计报告学生选修课系统设计.docx》由会员分享,可在线阅读,更多相关《课程设计报告学生选修课系统设计.docx(76页珍藏版)》请在冰豆网上搜索。
课程设计报告学生选修课系统设计
成绩
课程设计说明书(论文)
题目学生选修课系统设计
课程名称C语言课程设计
院(系、部、中心)电力工程学院
专业建筑电气与智能化
班级建筑电气与智能化111
设计起止时间:
2011年12月20日至2011年12月30日
一、系统大纲-------------------------------------------------------------------------------------1
二、模块设计-------------------------------------------------------------------------------------2
(1)主函数、头文件及结构声明-----------------------------------------------------------2
(2)打开、关闭程序画面模块--------------------------------------------------------------4
(3)管理员功能模块--------------------------------------------------------------------------7
(4)学生功能模块----------------------------------------------------------------------------10
(5)浏览模块----------------------------------------------------------------------------------12
(6)查询模块----------------------------------------------------------------------------------14
(7)插入链表模块----------------------------------------------------------------------------17
(8)添加模块----------------------------------------------------------------------------------19
(9)删除模块----------------------------------------------------------------------------------20
(10)选修课程模块----------------------------------------------------------------------------22
(11)读取文件模块----------------------------------------------------------------------------25
(12)保存文件模块----------------------------------------------------------------------------26
(13)密码修改模块----------------------------------------------------------------------------28
三、完整程序-------------------------------------------------------------------------------------30
(1)源文件-------------------------------------------------------------------------------------30
(2)运行效果----------------------------------------------------------------------------------45
四、结果分析-------------------------------------------------------------------------------------54
五、总结--------------------------------------------------------------------------------------------54
六、参考资料-------------------------------------------------------------------------------------54
一:
系统大纲
二:
模块设计
(一)主函数,头文件及结构体声明
主函数设计地比较简洁,只是提供一个主菜单,switch语句将整个程序分为两个大的功能模块
[流程图]
[程序]
//由于程序画面较大,请您右击程序框,打开属性栏,将程序框调整至---宽:
114---高:
37---给您带来不便,敬请谅解。
//程序目前还存在一些问题,课程信息修改无法进行。
//由于时间关系,一些在程序前面注释过的信息在后面将不给予注释,敬请谅解
#include
#include
#include
#include
#include
typedefstructsubject//课程结构体
{
intnum;//课程编号
charname[20];//课程名称
charkind[10];//课程性质(选修或必修)
charteacher[7];//授课教师
charplace[20];//授课地点
chartimes[20];//授课时间
intstime;//总学时
intttime;//授课学时
intscore;//学分
ints_num;//允许选修人数
intl_num;//剩余人数
structsubject*next;//指向下一个结构体
}SUB;
SUB*head=NULL;
charpassword[8]="111111";//密码
voidmain()
{
intn,w=1;
menu();
s_o_m();
do
{
system("cls");
printf("\n\n\n\n");
printf("\n\n\t\t∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮主菜单∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮\n\n");
printf("\t\t\t\t\t\t1.以管理员身份登录\n");
printf("\n");
printf("\t\t\t\t\t\t2.以学生身份登录\n");
printf("\n");
printf("\t\t\t\t\t\t3.退出");
printf("\n\n\t\t∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮∮\n");
printf("\n\t\t\t请选择您要执行的操作(1-3):
[]\b\b");
scanf("%d",&n);
switch(n)
{
case1:
Mangers();break;
case2:
Students();break;
case3:
w=0;break;
default:
printf("输入错误!
请重新输入。
");printf("\n\t\t\t");system("pause");break;
}
}
while(w==1);
withdraw();
}
(二)打开、关闭程序画面模块
打开程序时运用延时函数,配合printf函数,制作出一个动画,随之出现一个欢迎界面。
关闭程序时出现“再见”画面
[程序]
voidmenu()//开机画面
{
printf("由于程序画面较大,请您右击程序框,打开属性栏,将程序框调整至\n宽:
114\t高:
37\n给您带来不便,敬请谅解。
\n");
Sleep(300);//延时函数
printf(":
K#ELj;.,ifDK#,\n");
Sleep(300);
printf("f#######ELLDK######L\n");
Sleep(300);
printf(".####################i\n");
Sleep(300);
printf("j####################E南\n");
Sleep(300);
printf("W#####################;京\n");
Sleep(300);
printf(";######################L工\n");
Sleep(300);
printf("E#######################.程\n");
Sleep(300);
printf(",########################f学\n");
Sleep(300);
printf(".iLW#########################Gt:
院\n");
Sleep(500);
printf(".;fE################################WGi.学\n");
Sleep(300);
printf(":
tGW######################################WEf,生\n");
Sleep(300);
printf("f########################E选\n");
Sleep(300);
printf("t########################D修\n");
Sleep(300);
printf(":
.W#######################i:
;课\n");
Sleep(300);
printf("G#KDLt,.,W#####################G:
ifGE#W,管\n");
Sleep(300);
printf("D#####WDLt,i####################D,ijGK#####W,理\n");
Sleep(300);
printf("L############E;,j########################K:
系\n");
Sleep(300);
printf("jW########Ei.G########################f.统\n");
Sleep(300);
printf(":
K#####Wij#########################j\n");
Sleep(300);
printf(".E#####GfK#########################i\n");
Sleep(300);
printf(".K###############################t\n");
Sleep(300);
printf(".,;tjG##############################Kfji,:
\n");
Sleep(300);
printf(".ifDW###########################################ELt:
\n");
Sleep(300);
printf(".;fK####################################################WGt.\n");
Sleep(300);
printf(";D############################################################Kj\n");
Sleep(300);
printf(":
G################################################################E;\n");
Sleep(300);
printf("j####################################################################D.\n");
Sleep(300);
printf("D######################################################################W,\n");
Sleep(300);
printf(".E#########################################################################,\n");
Sleep(300);
printf(":
D###########################################################################\n");
Sleep(300);
printf("#############################################################################\n");
system("pause");//按任意键继续
system("cls");//清屏
}
voids_o_m()//开机画面
{printf("\n\n\n\n");
printf("\n\n\t\t※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n\n");
printf("\n\n\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n\n");
printf("\t\t\t\t\t\t欢迎使用学生选修课管理系统。
\n");
printf("\n\n");
printf("\t\t\t\t\t\t祝您使用愉快。
\n");
printf("\n\n\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n\n");
printf("\n\n\t\t※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n\n");
printf("\n\t\t\t");
system("pause");
}
voidwithdraw()//结束画面
{system("cls");
printf("\n\n\n\n");
printf("\n\n\t\t※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n\n");
printf("\n\n\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n\n");
printf("\t\t\t\t\t\t\t感谢您的使用。
\n");
printf("\n\n\n");
printf("\t\t\t\t\t\t\t再见。
\n");
printf("\n\n\t\t※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n\n");
printf("\n\n\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n\n");
printf("\n\t\t\t");
system("pause");
}
(三)管理员功能模块
进入管理员菜单需要密码,初始密码为“111111”,进入管理员菜单后可修改密码。
管理员的功能一共有五个功能:
浏览、查询、添加、删除、课程.修改密码。
还有一个“修改课程信息”功能暂时无法运行运用字符串处理函数处理密码的问题,用一个switch语句实现函数的调用.
[流程图]
[程序]
voidMangers()//管理员函数
{
intn,w=1,flag=0,i=3;
chars[8],a[]={"manager"};
do
{
printf("\n\n\t\t\t请输入密码:
");
scanf("%s",s);
if(!
strcmp(s,password))//进行密码匹配验证
{
flag=1;
break;
}
else
{
printf("\n\n\t\t\t输入错误!
你还有%d次机会,请重新输入:
\n",i-1);
i--;
}
}
while(i>0);
if(!
flag)
{
printf("\t\t\t你已连续输错三次!
");//输入密码超过了3次!
!
exit(0);//自动退出
}
do
{
system("cls");
printf("\n\n\n\n");
printf("\n\n☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆管理员菜单☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆\n\n");
printf("\t\t\t\t\t\t1---浏览课程信息\n");
printf("\t\t\t\t\t\t2---查询课程信息\n");
printf("\t\t\t\t\t\t3---添加课程信息\n");
//printf("\t\t\t\t\t\t4---修改课程信息\n");
//printf("\t\t\t\t\t\t5---删除课程信息\n");
//printf("\t\t\t\t\t\t6---修改密码\n");
//printf("\t\t\t\t\t\t7---返回主菜单");
printf("\t\t\t\t\t\t4---删除课程信息\n");
printf("\t\t\t\t\t\t5---修改密码\n");
printf("\t\t\t\t\t\t6---返回主菜单");
printf("\n\n☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆\n");
printf("\n\t\t\t请选择您要执行的操作(1-5):
[]\b\b");
scanf("%d",&n);
switch(n)
{
case1:
prin(a);break;
case2:
search();break;
case3:
insert();savefile();break;
//case4:
mod();break;
//case5:
del();savefile();break;
//case6:
pass();break;
//case7:
w=0;break;
case4:
del();savefile();break;
case5:
pass();break;
case6:
w=0;break;
default:
printf("输入错误!
请重新输入。
");printf("\n");system("pause");break;
}
}while(w==1);
}
(四)学生功能菜单
学生功能菜单包括五个功能:
浏览课程,查询课程,添加选修课程,浏览我所选修的课程,删除错选的课程,也是用到switch语句来调用函数。
每个学生选修课程和浏览我选修的课程时都要输入学号,每个学生的信息单独存放在一个文件里。
[流程图]
[程序]
voidStudents()//学生函数
{
intn,w=1;
chara[]={"manager"},b[5];
do
{
system("cls");
printf("\n\n\n\n");
printf("\n\n☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆学生菜单☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆\n\n");
printf("\t\t\t\t\t\t1---浏览所有课程\n");
printf("\t\t\t\t\t\t2---查询课程信息\n");
printf("\t\t\t\t\t\t3---选择选修课程\n");
printf("\t\t\t\t\t\t4---浏览我选修的课程\n");
printf("\t\t\t\t\t\t5---删除错选课程\n");
printf("\t\t\t\t\t\t6---返回主菜单");
printf("\n\n☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆☆○☆\n");
printf("\n请选择您要执行的操作(1-6):
[]\b\b");
scanf("%d",&n);
switch(n)
{
case1:
prin(a);break;
case2:
search();break;
case3:
choose();break;
case4:
printf("请输入您的学号:
\n");scanf("%s",b);prin(b);break;
case5:
del();savefile1();break;
case6:
w=0;break;
default:
printf("输入错误!
请重新输入。
");printf("\n\t\t\t");system("pause");break;
}
}
while(w==1);
}
(五)浏览模块
浏览模块主要用管理员中的”浏览课程”和学生功能中的”浏览所有所有课程”,将所有的课程信息输出,即将txt文件里面的内容全部输出
[流程图]
[程序]
voidprin(chara[])//浏览所有课程
{
SUB*ptr;
chars[]={".txt"};
strcat(a,s);
head=NULL;
readfile(a);
if(head==NULL)
{
printf("\n\n\t*********没有课程信息!
************\n");
return;
}
printf("课程编号课程名称课程性质授课教师授课地点授课时间总学时授课学时学分允许选修人数剩余人
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 报告 学生 选修课 系统 设计