课程设计选题管理程序Word格式.docx
《课程设计选题管理程序Word格式.docx》由会员分享,可在线阅读,更多相关《课程设计选题管理程序Word格式.docx(16页珍藏版)》请在冰点文库上搜索。
typedefstructdesign
charname[10];
//课程设计名称
intdesID;
//课程设计代号
charinfo[20];
//相关信息
structdesign*next;
}design,*ptrdesign;
3.算法设计
3.1登陆系统
3.1.1主界面
#include"
stdio.h"
structFile.h"
function.h"
InitFunction.h"
voidmain()
{
inti;
students;
designd;
s.next=NULL;
d.next=NULL;
Init(&
s,&
d);
while
(1)
{
i=Welcome();
//程序结束再进行保存
if(i==5)
{
Save(&
break;
}
switch(i)
case1:
Student(&
break;
case2:
Teacher(&
case3:
InitDesign(&
case4:
InitStudent(&
default:
printf("
请按照提示编号进行输入^\n"
);
}
}
3.1.2操作提示
intWelcome()
intinput;
printf("
————————————————————\n"
***********欢迎进入选课系统**************\n"
-----------------------------------------\n"
|\t\t1.学生登录\t\t|\n"
);
|\t\t2.教师登录\t\t|\n"
|\t\t3.录入课程信息\t\t|\n"
|\t\t4.录入学生数据\t\t|\n"
|\t\t5.退出系统\t|\n"
输入所属类别:
"
scanf("
%d"
&
input);
returninput;
3.2学生登录、选课、查询
voidStudent(ptrstustu,ptrdesigndes)
charid[10];
ptrstus;
进入学生系统...\n"
输入您的学号:
%s"
id);
s=SearchStudent(stu,id);
if(s==NULL)
printf("
学生你好,你输入的学号并不存在,即将退出...\n"
else
ChooseDesign(s,des);
//学生选课
intChooseDesign(ptrstustu,ptrdesigndes)
ptrdesignp=des->
next;
charc;
进入学生系统成功:
您的信息如下:
\n"
InfoStudent(stu);
\n所有供你选择的科目如下:
while(p->
next!
=NULL)
InfoDesign(p);
p=p->
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n"
if(stu->
status==0)
目前尚未进行选课,输入课程编号选择兴趣课程,不进行选择请按0:
elseif(stu->
status==1)
printf("
当前选课为:
%d,如需修改请输入新的编号,不进行选择请按0\n"
stu->
Ondesign);
status==2){
getchar();
选课已被老师确认^按任意键退出功能"
getchar();
return1;
}
while
(1){
c);
//判断选择结果
if(c==0){
退出课程选择...\n"
break;
//未找到课程
if(!
SearchDesign(des,c))
并未找到输入编号的课程...请重新确认.\n"
//return1;
//更新状态
else
选择课程%d\n正在修改您的信息\n退出\n"
c);
stu->
Ondesign=c;
status=1;
++++++++++++++++++++++++++++++++++++++++++++++\n"
3.3教师管理
voidTeacher(ptrstustu,ptrdesigndes)
charinputc;
charin[10];
*************进入教师系统**************\n"
|\t\t1.学生信息查询\t|\n"
|\t\t2.课程信息查询\t|\n"
if(2==input)
while(p->
InfoDesign(p);
p=p->
按任意键返回主菜单:
getchar();
if(1==input)
/*printf("
请输入要查询学生的学号,退出请输入exit,输入ALL进行全体学生搜索:
scanf("
in);
if(strcmp(in,"
exit"
)==0)
break;
ALL"
{
s=stu->
while(s)
{
InfoStudent(s);
s=s->
printf("
*/
请输入要查询学生的学号:
scanf("
s=SearchStudent(stu,in);
if(s==NULL){
学号输入有误\n"
continue;
p=SearchDesign(des,s->
InfoStudent(s);
\n是否选定该生课程设计状态?
:
Y/N"
%c"
inputc);
if('
Y'
==inputc||'
y'
==inputc)
s->
status=2;
3.4导入学生信息
voidInitStudent(ptrstustu,ptrdesigndes)
charnum[10];
ptrstus=stu,p=stu;
intchoose;
while
(1)
{
输入学号,如果学号已存在则为修改,输入exit退出:
scanf("
num);
if(strcmp(num,"
)==0)
//循环结束则证明未找到学生
while(s)
{
if(s->
next==NULL)
p=s;
if(strcmp(s->
stuID,num)==0)
{
进入修改模式\n即将修改信息:
InfoStudent(s);
输入欲修改的项目:
1.姓名\n\t2.学号\nt\t3.年级\n\t4.所选课程\n\\n"
fflush(stdin);
choose);
进行修改:
num);
switch(choose)
case1:
strcpy(s->
name,num);
case2:
stuID,num);
case3:
grade,num);
case4:
ChooseDesign(s,des);
default:
输入有误,请验证"
}
修改结果为:
}//EndIF
s=s->
}//EndWhile
//未找到学生信息_添加
if(s==NULL){
static_stunum++;
s=(ptrstu)malloc(sizeof(student));
p->
next=s;
strcpy(s->
输入该生姓名:
s->
name);
//getchar();
输入该生年级:
grade);
s->
Ondesign=0;
status=0;
next=NULL;
s=p=stu;
}//EndWhile
3.5添加、修改课程设计
voidInitDesign(ptrdesigndes)
charname[20];
ptrdesigns=des,p=des;
intchoose,in;
while
(1)
输入课程设计名称,如果该课程设计已经存在,则进入修改,输入exit退出:
//fflush(stdin);
name);
if(strcmp(name,"
//循环结束则证明未找到课程
while(s)
name,name)==0)
\n进入修改模式\n信息如下:
InfoDesign(s);
\n输入欲修改的项目:
\n\t1.设计名称\n\t2.设计编号\n\t3.课程信息\n\n"
printf("
输入课程设计名称:
scanf("
strcpy(s->
name,name);
break;
输入课程编号:
in);
s->
desID=in;
输入课程信息:
info,name);
//未找到课程信息_添加
s=(ptrdesign)malloc(sizeof(design));
输入课程时间编号:
//fflush(stdin);
(s->
desID));
输入课程相关信息:
static_desnum++;
s=p=des;
4.程序实现及测试:
4.1登陆界面:
4.2登陆课程信息:
4.3进入教师系统:
4.4查询当前已经添加课程:
4.5查询学生状态:
5.结束语:
5.1不足之处:
课程设计及人员的添加与保存比较简易,2次添加出现错误,需要提高程序的实用性,对于错误输入考虑不足,健壮性较差。
5.2设计体会:
经历了这次设计,明白了虽然想着很简单的代码,实践起来由于不了解或者遗忘掉会面临许多困难,让我开始反思自己学的知识的透彻度很低,关于指针的问题再次深刻了自己的理解,对于程序=数据结构+算法的理解开始有了改变,了解到算法与代码之间的差距。
通过实验,亲自体验了在线性表与链表之间的选择,对于这两者的选择有了自己的认识。
完成这个系统面临着许多问题,虽然很艰难,但在使它成功运行的过程所学会的,让我更加深刻的理解了数据结构的意义,我加深了对数据结构的理解
参考文献:
1.谭浩强《C语言程序设计》清华大学出版社2005年7月
2.严蔚敏吴伟民《数据结构》清华大学出版社2001年1月
3.刘光然《数据结构实践训练教程》南开大学出版社2009年4月