C语言课程设计个人课程表管理系统报告.docx
《C语言课程设计个人课程表管理系统报告.docx》由会员分享,可在线阅读,更多相关《C语言课程设计个人课程表管理系统报告.docx(33页珍藏版)》请在冰豆网上搜索。
C语言课程设计个人课程表管理系统报告
个人课程表管理系统
设
计
报
告
专业:
通信工程
班级:
通信1401
团队:
C.F
指导老师:
刘少昌
队长:
陈志强
队员:
蔡晶晶、陈超、刘勤、盛玉霞
设计时间:
2015年7月9日星期四
说明
*我们的课题是:
个人课程表管理系统
*选题的目的与意义:
我们的系统是为了更加方便的查询课程表,方便我们的大学校园生活而创建。
这个项目符合我们大一学生c语言水平,而且此课题新颖,可以充分锻炼我们团队思维能力。
*项目的主要功能描述:
一输入课程:
可根据个人需求,填写课程表信息。
二显示课程:
按照时间顺序显示。
三查询课表:
有以时间、课程名、查询。
四修改课程:
可以按照已有的课程信息,选择要修改课程的序号,可以修改已选序号的全部信息、时间、课程名、教室。
五删除课程:
可以按照已有的课程信息,选择要修改课程的序号,进行删除。
六保存文件保存文件
七退出程序:
退出程序。
*数据结构设计:
结构体设计structschedule
{
chartime[8];字符型课程时间
charlessonname[12];字符型课程名
charteacher[10];字符型授课老师
charclassroom[10];字符型教室
charhours[4];字符型第几节课
intweeks;整型周时
};
全局变量structschedulestr[100];
*函数原型设计
a)voidinput();/*声明输入函数*/
b)voidmenu1();/*声明主菜单函数*/
c)voidrank();/*声明显示时间顺序函数*/
d)voidquerymenu3();/*声明查询函数*/
e)voidlooktime();/*声明按照时间查询函数*/
f)voidlooklessonname();/*声明按照课程名查询函数*/
g)voidadd();/*声明保存函数*/
h)voidamend();/*声明修改课程函数*/
i)voidamend1();/*声明修改课程子函数*/
j)voidamendnews(inti);/*声明修改整个课程信息函数
k)voidamendtime(inti);/*声明修改课程时间函数*/
l)voidlessonname(inti);/*声明修改课程课程名函数*/
m)voidamendclassroom(inti);/*声明修改课程教室函数
n)voiddeleted();/*声明删除函数*/
程序
登陆界面
用户界面
输入课程表
保存文件表
显示课程表
查询课程表
修改课程表
删除课程表
课程时间
课程名
修改教室
修改课程名
总周时
授课老师
修改时间
教室
课程所有信息
第几节课
返回主菜单
按照课程查询
按照时间查询
*程序结构图:
voidmain()
登陆函数
voidmenu1();
显示用户界面函数
voidinput()输入函数
voidquerymenu3()查询函数
voiddeleted()删除函数
voidamend()修改函数
voidadd();保存函数
voidrank()显示函数
amendclassroom(inti)
修改教室函数
voamendlessonname(i
i);修改课程函数
voidamendtime(inti);
修改时间函数
voidamendnews(inti);
修改所有信息哈
voidlooklessonname()
课程查询函数
voidlooktime()时间查询函数
*函数结构图
*项目流程图
否
是
否
*登陆界面
*用户界面
*各项功能实现
输入课程表
显示课程表
查询课程表
修改课程表
删除课程表
保存文件
*运行程序注意事项、须知:
一、打开程序,登陆界面密码为:
123。
二、打开输入项目,输入的周时必须是整数且大于0,负责无法保存。
三、当输入菜单选项时,务必输入是整数,若不是,系统会错误,需按照程序提示输入。
*程序代码:
#include
#include
#include
#include
voidinput();/*声明输入函数*/
voidmenu1();/*声明主菜单函数*/
voidrank();/*声明显示时间顺序函数*/
voidquerymenu3();/*声明查询函数*/
voidlooktime();/*声明按照时间查询函数*/
voidlooklessonname();/*声明按照课程名查询函数*/
voidadd();/*声明保存函数*/
voidamend();/*声明修改课程函数*/
voidamend1();/*声明修改课程子函数*/
voidamendnews(inti);/*声明修改整个课程信息函数*/
voidamendtime(inti);/*声明修改课程时间函数*/
voidamendlessonname(inti);/*声明修改课程课程名函数*/
voidamendclassroom(inti);/*声明修改课程教室函数*/
voiddeleted();/*声明删除函数*/
structstudent
{
chartime[10];/*字符型时间*/
charlessonname[20];/*字符型课程名*/
charteacher[20];/*字符型授课老师*/
charclassroom[10];/*字符型教室*/
charhours[10];/*字符型第几节课*/
intweeks;/*字符型周时*/
};
structstudentstr[30];/*全局变量*/
voidmain()
{
charpassword[20];
inti,j;
system("color1a");/*设置颜色源网络资源*/
printf("\n");
printf("\t*************欢迎使用〖个人课程表管理系统〗程序************\n");
printf("\t*请输入登陆密码(三次输入机会)!
*\n");
printf("\t***********************************************************\n");
printf("\t用户名:
CombinedProgammingLanguage.Family\n");
for(i=1;i<4;i++)/*密码输入三次for循环*/
{
printf("\t第%d次输入密码:
",i);
for(j=0;(password[j]=getch())!
='\r';j++)/*输入密码*/
putch('*');/*每次输入的密码以*号覆盖隐藏*/
printf("\n");
password[j]='\0';/*字符串最后加结束符号*/
if((strcmp(password,"123"))==0)
{
printf("\t*密码正确,打开程序!
\n");
menu1();/*调用子函数meun1()*/
}
else
{
printf("\t*密码错误,请重新输入\n");
}
if(i==3)
{
printf("\t*您已输入三次,请重新登陆程序\n");
exit(0);
}
}
}
voidmenu1()/*主菜单*/
{
intnumber;
system("cls");
while
(1)
{
printf("\t**************欢迎使用〖课程表管理系统〗程序**************\n");
printf("\t*1.☆输入课程表☆*\n");
printf("\t*2.☆显示课程表☆*\n");
printf("\t*3.☆查询课程表☆*\n");
printf("\t*4.☆修改课程表☆*\n");
printf("\t*5.☆删除课程表☆*\n");
printf("\t*6.☆保存文件表☆*\n");
printf("\t*7.☆退出课程表☆*\n");
printf("\t┏********************************************************┓\n");
printf("\t*团队名:
c.f(CombinedProgammingLanguage.Family);*\n");
printf("\t*成员负责任务*\n");
printf("\t*1.蔡晶晶》》》》》》ppt制作程序项目分析*\n");
printf("\t*2.陈超》》》》》》ppt制作*\n");
printf("\t*3.陈志强》》》》》》代码编写*\n");
printf("\t*4.刘勤》》》》》》文档制作程序项目分析*\n");
printf("\t*5.盛玉霞》》》》》》文档制作*\n");
printf("\t*****************请输入选择的功能编号(1-7):
******************\n");
printf("\t输入:
");
scanf("%d",&number);
if(number<0||number>7)
{
printf("\t\t你输入的功能号错误,请重新输入,按Enter键继续!
!
\n");
system("cls");
continue;
}
switch(number)
{
case1:
input();break;/*调用输入函数*/
case2:
rank();break;/*调用显示函数*/
case3:
querymenu3();break;/*调用查询函数*/
case4:
amend();break;/*调用修改函数*/
case5:
deleted();break;/*调用删除函数*/
case6:
add();break;/*调用保存函数*/
case7:
printf("\t\t\t谢谢你的使用!
任意键退出程序!
\n");exit(0);
}
}
}
voidinput()/**/
{
inti=0,flag=1;
chara;
system("cls");
printf("\t****************************************************************\n");
printf("\t**您将会输入:
课程时间课程名授课老师教室第几节课总周时**\n");
printf("\t**输入内容如:
星期一C语言刘老师a1n2051-32**\n");
printf("\t****************************************************************\n");
while(flag)/*输入数据*/
{
printf("\t\t第%d个课程信息:
\n",i+1);
printf("\t\t课程时间:
");
scanf("%s",&str[i].time);
printf("\t\t课程名:
");
scanf("%s",str[i].lessonname);
printf("\t\t授课老师:
");
scanf("%s",str[i].teacher);
printf("\t\t教室:
");
scanf("%s",str[i].classroom);
printf("\t\t第几节课:
");
scanf("%s",str[i].hours);
printf("\t\t总周时:
");
scanf("%d",&str[i].weeks);
printf("\t*****************************************\n");
printf("\t**您好!
是否继续输入下个课程?
(Y/N)!
输入:
");
getchar();
scanf("%c",&a);
if(a=='y'||a=='Y')/*如果输入是y则输入下个数据*/
flag=1;
if(a=='n'||a=='N')/*如果输入是n则结束输入*/
{
flag=0;
printf("\t****************输入完成,任意键返回主菜单!
*************\n");
system("pause");
system("cls");
}
i++;
}
}
voidrank()
{
inti,j,flag;
structstudenttemp;
system("cls");
for(j=0;j<29;j++)/*从大到小排序*/
for(i=0;i<29-j;i++)
if(strcmp(str[i].time,str[i+1].time)<0)
{
temp.weeks=str[i].weeks;/*利用strpy函数字符串覆盖*/
strcpy(temp.time,str[i].time);
strcpy(temp.lessonname,str[i].lessonname);
strcpy(temp.teacher,str[i].teacher);
strcpy(temp.classroom,str[i].classroom);
strcpy(temp.hours,str[i].hours);
str[i].weeks=str[i+1].weeks;
strcpy(str[i].time,str[i+1].time);
strcpy(str[i].lessonname,str[i+1].lessonname);
strcpy(str[i].teacher,str[i+1].teacher);
strcpy(str[i].classroom,str[i+1].classroom);
strcpy(str[i].hours,str[i+1].hours);
str[i+1].weeks=temp.weeks;
strcpy(str[i+1].time,temp.time);
strcpy(str[i+1].lessonname,temp.lessonname);
strcpy(str[i+1].teacher,temp.teacher);
strcpy(str[i+1].classroom,temp.classroom);
strcpy(str[i+1].hours,temp.hours);/*此时排序为星期一星期五星期四三二不符合*/
}
j=0;/*把星期一移到最后位置*/
for(i=0;i<30;i++)
{/*判断周时不为0的个数*/
if(str[i].weeks!
=0)
j++;
}
for(i=0;i{
temp.weeks=str[i].weeks;/*利用strpy函数字符串覆盖*/
strcpy(temp.time,str[i].time);
strcpy(temp.lessonname,str[i].lessonname);
strcpy(temp.teacher,str[i].teacher);
strcpy(temp.classroom,str[i].classroom);
strcpy(temp.hours,str[i].hours);
str[i].weeks=str[i+1].weeks;
strcpy(str[i].time,str[i+1].time);
strcpy(str[i].lessonname,str[i+1].lessonname);
strcpy(str[i].teacher,str[i+1].teacher);
strcpy(str[i].classroom,str[i+1].classroom);
strcpy(str[i].hours,str[i+1].hours);
str[i+1].weeks=temp.weeks;
strcpy(str[i+1].time,temp.time);
strcpy(str[i+1].lessonname,temp.lessonname);
strcpy(str[i+1].teacher,temp.teacher);
strcpy(str[i+1].classroom,temp.classroom);
strcpy(str[i+1].hours,temp.hours);
}
i=0;/*将已排序显示*/
flag=1;
printf("\t********************〖时间顺序显示〗**********************\n");
printf("\t序号\t时间\t课程名\t老师\t教室\t节时\t总周时\n");
while(flag)
{
if(str[i].weeks!
=0)
printf("\t%d\t%s\t%s\t%s\t%s\t%s\t%d\n",i+1,str[i].time,str[i].lessonname,str[i].teacher,str[i].classroom,str[i].hours,str[i].weeks);
else
flag=0;
i++;
}
printf("\t**********************************************************\n");
system("pause");
system("cls");
}
voidquerymenu3()/*查询函数*/
{
intnumber;
system("cls");
while
(1)
{
printf("\t┏**********欢迎使用〖查询课程子子菜单〗程序************┓\n");
printf("\t*1.☆按照时间查询☆*\n");
printf("\t*2.☆按照课程查询☆*\n");
printf("\t*3.☆返回主菜单☆*\n");
printf("\t*****************请输入选择的功能编号(1-6):
*****************\n");
printf("\t输入:
");
scanf("%d",&number);
if(number<0||number>3)
{
printf("\t\t你输入的功能号错误,请重新输入,按任意键继续!
!
\n");
system("cls");
continue;
}
switch(number)
{
case1:
looktime();break;/*调用查询函数*/
case2:
looklessonname();break;/*调用查询课程名函数*/
case3:
menu1();break;/*调用返回主菜单函数*/
}
}
}
voidlooktime()
{
inti=0,sum=0;
chartime1[8];
system("cls");
printf("\t***********欢迎使用〖以时间查询课程〗子程序****************\n");
printf("\t*****************请输入你想查询课表的时间:
");
scanf("%s",time1);
printf("\t序号\t时间\t课程名\t老师\t教室\t节时\t总周时\n");
for(i=0;i<=30;i++)
{
if((strcmp(time1,str[i].time))==0)
{
printf("\t%d\t%s\t%s\t%s\t%s\t%s\t%d\n",i+1,str[i].time,str[i].lessonname,str[i].teacher,str[i].classroom,str[i].hours,str[i].weeks);
sum=sum+1;/*如输入查询的内容和课程相同则加一*/
}
}
if(sum==0)/*如果等于0则说明没有与输入查询内容相同*/
printf("\t*********************无此时间!
查询不到!
***********************\n");
printf("\t*******************按任意键返回查询子菜单:
********************\n");
system("pause");
system("cls");
querymenu3();
}
voidlooklessonname()
{
inti=0,sum=0;
charlessonname1[12];
system("cls");
printf("\t***********欢迎使用〖以课程名查询课程〗子程序****************\n");
printf("\t*****************请输入你想查询课表的课程名:
");
scanf("%s",lessonname1);
printf("\t序号\t时间\t课程名\t老师\t教室\t节时\t总周时\n");
for(i=0;i<=30;i++)
{
if((strcmp(lessonname1,str[i].lessonname))==0)
{
printf(