C语言课程设计学生选修课程系统设计Word格式.docx
《C语言课程设计学生选修课程系统设计Word格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计学生选修课程系统设计Word格式.docx(18页珍藏版)》请在冰豆网上搜索。
(6)某门课程学生选修情况(可选项)。
[提示]
数据结构可用结构体,包括课程和选秀两个结构体,其中课程结构体包括课程编号、课程名称、课程性质、总学时、授课学时、实验或上机学时、学分、开课学期。
选修结构体成员包括学号,课程编号,该结构体的建立主要是为了查询某门课程学生选修情况.。
三、数据结构设计
本系统的实现,全部采用链表这种数据结构,用链表实现课程的查找、添加、删除、课程的选修、追加选修的课程,课程信息采用结构体这种数据结构。
typedefstructsubjects
{
intnum;
进入选课系统
选择序号进行选课
进入下一层
管理员身份登录\n"
);
puts("
\t\t\t\t2.以学生身份登录\n"
\t\t\t\t3.退出"
\n\n\t\t*******************************************\n"
printf("
Chioseyournumber(1-3):
[]\b\b"
scanf("
%d"
&
n);
switch(n)
{
case1:
Mangers();
break;
case2:
Students();
case3:
w=0;
default:
;
}
}
while(w==1);
return0;
}
(二)管理员功能模块
管理员的功能一共有四个功能:
浏览,查询,添加,删除课程,运用字符串处理函数处理密码的问题,用一个switch语句实现函数的调用:
管理员登录菜单
输入密码
进行码匹对验证
进入管理员界面
i=3
i>
按任意键退出
是
否
[程序]
voidMangers()
intn,w=1,flag=0,i=3;
chars[8];
charpassword[7]="
1"
do
{
printf("
\n\nEnterpassword:
"
scanf("
%s"
s);
if(!
strcmp(s,password))deldel
学生登录菜单
按1-6数字键进入各选项
1、浏览所有课程
2、查询课程信息
3、选择选修课程
4、浏览我选修的课程
5、删除错选课程
6、返回主菜单
进入所选目标
del
浏览所有课程
SUB*ptr;
head=NULL;
readfile();
Head==NULL
Printf(NORECORDS);
Return;
输出课程信息
n"
choose();
课程编号课程名称课程性质总学时授课学时实践或上机学时学分开课学期\n"
while(!
feof(fp))
ptr=(SUB*)malloc(sizeof(SUB));
fscanf(fp,"
%d%s%s%d%d%d%d%d\n"
ptr->
num,ptr->
name,ptr->
kind,&
stime,&
ttime,&
etime,&
score,&
term);
printf("
%5d%12s%9s%9d%9d%11d%11d%7d\n"
ptr->
kind,ptr->
stime,ptr->
ttime,ptr->
etime,ptr->
score,ptr->
system("
pause"
(六)查询模块
查询模块主要用于管理员功能中的“查询课程”和学生功能模块中的“查询所有课程”,查询模块共分为三个查询方法:
按课程名称查找,按课程性质查找和按学分查找switch语句中,每一个case语句就是一中查询方法:
课程信息查询
按1-4数字键进入各选项
1、按课程名称查找
2、按课程性质查找
3、按学分查找
4、退出查找
voidsearch()
读取文件
请输入课程信息所在的文件名称:
!
feof(fp)
c=fgetc(fp))=='
\n'
newSub=(SUB*)malloc(sizeof(SUB));
fscanf(fp,&
newSub->
num,newSub->
name,newSub->
myInsert(newSub);
fclose(fp);
洁明了的程序菜单。
程序主要采用了六组层次不同的菜单,相互独立又相互联系,巧妙相接,符合用户的使用习惯与思维。
2.人性化的程序提示语言,程序提示语言较人性化,不仅大多为祈使语句、疑问句,而且提示明确,具有较强的明确的指导作用。
程序提示不仅层次分明,提示方式多样,而且提示信息井然有序,更加有利于用户顺利、准确地进行程序的操作。
3.智能化的模块设计。
程序的智能化主要体现在减少了许多人工操作。
如功能模块操作结束后,均会返回主菜单进行下一模板的运行,并提示是否再进行类似的操作,这样给用户带来了操作的方便,大大提高了学生选课的效率。
本程序达到了C语言课程设计题目的所有要求。
即本程序
(1)系统一菜单方式工作
(2)课程信息和学生选课信息录入功能(课程信息用文件保存输入(3)课程信息浏览功能——输出(4)查询功能(至少一种查询方式)——算法(5)按学分查询(6)某门课程学生选修情况(可选项)的功能要求。
与此同时,程序各模块开发设计依据了程序的具体实际的使用情景,而有所改进,使其更具有实用性。
【程序的缺点】
主要表现在以下四点:
1.程序虽然经过多次精简,但仅仅是形式上、小范围的精简,仍
未得到本质上的精简,即未找到更加简单、更加高效、更加合理、更小占用的资源的算法。
2.程序仍然存在不合理的地方,例如程序某些部分输入错误会导致程序中止或转向其他功能模块,即程序建议用户注意提示,进行合理的准确的输入,这样更有利于管理工作。
3.程序功能仍然不够完善。
例如信息表达方式不丰富,比较单一,缺少图片、音乐等元化表达方式。
附录(源程序代码)
#include"
#include"
voidprin1();
voidchoose();
n"
void*myInsert(SUB*subj)管理员身份登录(password1)\n"
puts("
puts("
\n\n\t\t************************************************\n"
switch(n)