课程设计报告课程信息管理系统.docx

上传人:b****2 文档编号:20136189 上传时间:2023-04-25 格式:DOCX 页数:29 大小:83.96KB
下载 相关 举报
课程设计报告课程信息管理系统.docx_第1页
第1页 / 共29页
课程设计报告课程信息管理系统.docx_第2页
第2页 / 共29页
课程设计报告课程信息管理系统.docx_第3页
第3页 / 共29页
课程设计报告课程信息管理系统.docx_第4页
第4页 / 共29页
课程设计报告课程信息管理系统.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

课程设计报告课程信息管理系统.docx

《课程设计报告课程信息管理系统.docx》由会员分享,可在线阅读,更多相关《课程设计报告课程信息管理系统.docx(29页珍藏版)》请在冰豆网上搜索。

课程设计报告课程信息管理系统.docx

课程设计报告课程信息管理系统

 

课程设计报告

 

学院:

信息科学与工程学院

专业:

计算机科学与技术

班级:

计————班

学号:

201212000002012120000020121200000

学生姓名:

郑——李——李——

指导教师:

李——

课程名称:

程序设计基础

设计名称:

课程信息管理系统

一、

设计内容及要求

本系统以个人课程信息为背景,设计和实现了一个小型个人课程信息管理系统。

主要有以下功能:

1.系统以菜单方式运行工作,界面清晰直观,便于用户操作。

2.系统需使用个人密码登陆,较好的保护了用户隐私。

3.课程信息查看,查看当前所有课程信息。

4.课程信息录入,包括课程名称、性质、教师、时间以及教室。

5.课程信息查找,分别按课程名称、时间或性质查找相关课程。

6.课程信息修改,核对后可对指定课程的指定项目进行修改。

7.课程信息删除,核对后可删除指定课程信息。

8.个人密码修改,验证原密码后可设置新密码。

二、设计思路

系统概览

1.数据结构设计

结构体:

用结构体接收课程信息。

文件:

用文件储存数据。

2.模块接口设计

Voidsign()

Voidlogin()

Voidrpw()

Voidopen()

Voidreorder()

Voidsave()

Voidinpt()

Voidlook()

Intfind()

Voidfind2()

Voidfind3()

Voiddel(inti)

Voidrevise(inti)

打印欢迎界面

登录模块

密码修改

打开文件并读取信息

按时间对信息排序

将内存中信息保存到文件

添加信息

查看所有信息

按名称查找信息

按时间查找信息

按性质查找信息

删除指定信息

修改指定信息

 

3.流程图

 

 

三、设计结果及分析.(相关测试图片已删除)

1.初始密码的设置

测试误输入、设置初始密码为000

2.第二次登录

测试错误密码,输入000后登陆成功,出现主菜单

3.修改密码

测试错误密码

输入正确密码、测试误输入、设置密码为147

 

重新登录,测试新密码147登录成功

4.查看课程信息

能正确输出当前课程信息,排列整齐

5.添加课程信息

添加并保存

查看所有课程,已成功添加,并且排序正常

 

添加并放弃保存

 

查看所有课程,未造成影响

6.查找课程信息

 

测试按名称查找高数,查找成功并输出正常

 

按时间查找周五,查找成功并输出正常

 

按性质查找必修,查找成功并输出正常

7.修改课程信息

 

成功找到对应课程信息并输出,尝试修改教室位置

 

修改成功,返回主菜单,提示是否保存,尝试保存

 

查看所有课程,已成功修改

 

若放弃保存,查看所有课程,未造成影响

8.删除课程信息

 

尝试删除大物,成功找到并输出信息,取消删除

 

查看所有课程,未造成影响

 

再次尝试删除并确定

查看所有课程,已成功删除

9.退出系统

测试退出系统,成功输出提示信息并退出

10.其他测试

测试过程中在每个需要读入字符的地方都做了连续输入回车、随机输入单个字符,随机输入字符串的测试,系统运行稳定,提示正常。

主要是因为在要读入字符的部分加入了

while((getchar())!

='\n');

以读掉无用字符、字符串。

加入了

while((getchar())=='\n');

以读掉连续回车或之前操作中输入的回车。

四、总结

通过本次课程设计,使我对《程序设计基础》这门课程有了更深入的理解。

《程序设计基础》是一门实践性较强的课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。

一个人的力量是有限的,要想把课程设计做的更好,就要学会参考一定的资料,吸取别人的经验,让自己和别人的思想有机的结合起来,得出属于你自己的灵感。

程序的编写需要有耐心,有些事情看起来很复杂,但问题需要一点一点去解决,分析问题,把问题一个一个划分,划分成小块以后就逐个去解决。

再总体解决大的问题。

这样做起来不仅有条理也使问题得到了轻松的解决。

在这个过程中,我也曾经因为实践经验的缺乏失落过,也曾经仿真成功而热情高涨。

生活就是这样,汗水预示着结果也见证着收获。

劳动是人类生存生活永恒不变的话题。

虽然这只是一次的极简单的课程制作,可是平心而论,也耗费了我不少的心血,这就让我不得不佩服开发技术的前辈,才意识到老一辈对我们社会的付出,为了人们的生活更美好,他们为我们社会所付出多少心血啊!

对我而言,知识上的收获重要,精神上的丰收更加可喜。

让我知道了学无止境的道理。

我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。

挫折是一份财富,经历是一份拥有。

这次课程设计必将成为我人生旅途上一个非常美好的回忆!

通过这次的课程设计我对于专业课的学习有了更加深刻的认识,以为现在学的知识用不上就加以怠慢,等到想用的时候却发现自己的学习原来是那么的不扎实。

以后努力学好每门专业课,让自己拥有更多的知识,才能解决更多的问题!

 

五、附录(源代码)

#include

#include

#include

FILE*fp;

intcount;

structlesson

{

charname[10];

charnature[10];

charteacher[10];

inttime;

charroom[10];

}lesson[21];

voidsign()

{

puts("");

puts("\t╔═════════════════════════════╗");

puts("\t║║");

puts("\t║║");

puts("\t║欢迎使用本课程信息管理系统!

║");

puts("\t║║");

puts("\t║║");

puts("\t║第五组设计人员:

║");

puts("\t║║");

puts("\t║郑晨阳║");

puts("\t║李丛渊║");

puts("\t║李振鹏║");

puts("\t║║");

puts("\t║║");

puts("\t╚═════════════════════════════╝");}

voidlogin()

{

charpws[20],pwt[20];

fp=fopen("password","rb");

if(fp==NULL)

{

puts("您是第一次登录本系统,请设置您的密码");

fp=fopen("password","wb+");

while

(1)

{

do

{

gets(pws);

}while(pws[0]=='\0');

puts("请再次输入以确认您的密码");

gets(pwt);

if(strcmp(pwt,pws)!

=0)

puts("您两次输入的密码不一致!

请重新输入");

else

{

fputs(pws,fp);

fclose(fp);

puts("已成功设置您的密码,请牢记");

getchar();

system("CLS");

break;

}

}

}

else

{

fgets(pws,20,fp);

puts("请输入密码");

while

(1)

{

gets(pwt);

if(strcmp(pwt,pws)!

=0)

puts("您输入的密码不正确!

请重新输入");

else

{

system("CLS");

puts("登录成功!

");

break;

}

}

}

fclose(fp);

}

voidrpw()

{

charpws[20],pwt[20];

fp=fopen("password","rb");

if(fp==NULL)

puts("运行出错!

");

else

{

fgets(pws,20,fp);

puts("请输入原密码");

while

(1)

{

do

{

gets(pwt);

}while(pwt[0]=='\0');

if(strcmp(pwt,pws)!

=0)

{

system("CLS");

puts("您输入的密码不正确!

");

return0;

}

else

{

system("CLS");

puts("请输入新密码");

while

(1)

{

do

{

gets(pws);

}while(pws[0]=='\0');

puts("请再次输入以确认您的密码");

gets(pwt);

if(strcmp(pwt,pws)!

=0)

puts("您两次输入的密码不一致!

请重新输入");

else

{

fp=fopen("password","wb+");

fputs(pws,fp);

fclose(fp);

puts("已成功设置您的密码,请牢记");

getchar();

system("CLS");

return0;

break;

}

}

}

}

}

}

voidopen()

{

if((fp=fopen("lessonlist","rb"))==NULL)

{

printf("当前没有课程信息,请添加!

\n");

return0;

}

while(fread(&lesson[count++],sizeof(structlesson),1,fp)==1);

count--;

fclose(fp);

}

voidreorder()

{

inti,j;

for(i=0;i

for(j=0;j

{

if(lesson[j].time>lesson[j+1].time)

{

lesson[20]=lesson[j];

lesson[j]=lesson[j+1];

lesson[j+1]=lesson[20];

}

}

}

voidsave()

{

inti;

fp=fopen("lessonlist","wb");

for(i=0;i

fwrite(&lesson[i],sizeof(structlesson),1,fp);

fclose(fp);

printf("保存成功!

\n");

}

voidinpt()

{

inti=count,j=0,m,n;

puts("");

while

(1)

{

m=n=0;

puts("输入课程名称:

");

scanf("%s",lesson[count].name);

while

(1)

{

puts("选择课程性质:

");

puts("1:

必修");

puts("2:

选修");

scanf("%d",&j);

while((getchar())!

='\n');

if(j==1)

{

strcpy(lesson[count].nature,"必修");

break;

}

if(j==2)

{

strcpy(lesson[count].nature,"选修");

break;

}

}

puts("输入教师姓名:

");

scanf("%s",lesson[count].teacher);

puts("输入上课时间:

");

while(m<1||m>7)

{

puts("周几?

(请直接输入一位数字)");

scanf("%d",&m);

while(getchar()!

='\n');

}

while(n<1||n>9)

{

puts("第几节课?

(请直接输入一位数字)");

scanf("%d",&n);

while(getchar()!

='\n');

}

lesson[count].time=m*10+n;

puts("输入教室位置:

");

scanf("%s",lesson[count].room);

count++;

getchar();

while

(1)

{

puts("是否继续添加?

(y/n)");

while((j=getchar())=='\n');

while(getchar()!

='\n');

if(j=='n'||j=='N'||j=='y'||j=='Y')

break;

}

if(j=='n'||j=='N')

break;

}

while

(1)

{

puts("添加成功,是否保存?

(y/n)");

while((j=getchar())=='\n');

while(getchar()!

='\n');

if(j=='n'||j=='N'||j=='y'||j=='Y')

break;

}

system("CLS");

if(j=='y'||j=='Y')

{

reorder();

save();

}

else

count=i;

}

voidlook()

{

inti,m,n;

system("CLS");

puts("-----------------------------------------------------------------------------");

puts("课程\t\t性质\t\t教师\t\t时间\t\t教室\n");

for(i=0;i

{

m=lesson[i].time/10;

n=lesson[i].time%10;

printf("%s\t\t%s\t\t%s\t\t周%d第%d节\t%s\n",lesson[i].name,lesson[i].nature,lesson[i].teacher,m,n,lesson[i].room);

}

}

intfind()

{

charclas[20],j;

inti,m,n;

while

(1)

{

printf("请输入课程名称:

");

scanf("%s",clas);

for(i=0;i

{

if(strcmp(clas,lesson[i].name)==0)

{

system("CLS");

puts("-----------------------------------------------------------------------------");

puts("课程\t\t性质\t\t教师\t\t时间\t\t教室\n");

m=lesson[i].time/10;

n=lesson[i].time%10;

printf("%s\t\t%s\t\t%s\t\t周%d第%d节\t%s\n",lesson[i].name,lesson[i].nature,lesson[i].teacher,m,n,lesson[i].room);

returni;

}

}

while

(1)

{

puts("没有找到此课程,是否继续查询?

(y/n)");

while((j=getchar())=='\n');

while(getchar()!

='\n');

if(j=='n'||j=='N'||j=='y'||j=='Y')

break;

}

if(j=='n'||j=='N')

{

system("CLS");

return0;

}

}

}

voidfind2()

{

inti,j=-1,m,n,p,a[20];

while(j<1||j>7)

{

puts("要查询周几的课程?

(请直接输入一位数字)");

scanf("%d",&j);

while((getchar())!

='\n');

}

for(i=0,p=0,a[0]=-1;i

{

if(lesson[i].time/10==j)

a[p++]=i;

}

system("CLS");

if(a[0]==-1)

{

puts("当天没有课程!

");

}

else

{

puts("-----------------------------------------------------------------------------");

puts("课程\t\t性质\t\t教师\t\t时间\t\t教室\n");

for(i=0;i

{

m=lesson[a[i]].time/10;

n=lesson[a[i]].time%10;

printf("%s\t\t%s\t\t%s\t\t周%d第%d节\t%s\n",lesson[a[i]].name,lesson[a[i]].nature,lesson[a[i]].teacher,m,n,lesson[a[i]].room);

}

}

}

voidfind3()

{

inti,j,p,m,n,a[20];

charb[5];

while

(1)

{

puts("选择要查询的课程性质:

");

puts("1:

必修");

puts("2:

选修");

scanf("%d",&j);

while((getchar())!

='\n');

if(j==1)

{

strcpy(b,"必修");

break;

}

if(j==2)

{

strcpy(b,"选修");

break;

}

}

for(i=0,p=0,a[0]=-1;i

{

if(strcmp(b,lesson[i].nature)==0)

a[p++]=i;

}

system("CLS");

if(a[0]==-1)

{

puts("没有查找到相关课程!

");

}

else

{

puts("-----------------------------------------------------------------------------");

puts("课程\t\t性质\t\t教师\t\t时间\t\t教室\n");

for(i=0;i

{

m=lesson[a[i]].time/10;

n=lesson[a[i]].time%10;

printf("%s\t\t%s\t\t%s\t\t周%d第%d节\t%s\n",lesson[a[i]].name,lesson[a[i]].nature,lesson[a[i]].teacher,m,n,lesson[a[i]].room);

}

}

}

voiddel(inti)

{

charj;

while

(1)

{

puts("确定要删除吗?

(y/n)");

while((j=getchar())=='\n');

while(getchar()!

='\n');

if(j=='n'||j=='N'||j=='y'||j=='Y')

break;

}

system("CLS");

if(j=='n'||j=='N')

return0;

count--;

for(i;i

lesson[i]=lesson[i+1];

save();

}

voidrevise(inti)

{

intj,t,k=0,m,n;

charp,str[10];

lesson[20]=lesson[i];

do

{

m=n=0;

puts("\n-------------------------------------主菜单----------------------------------\n");

puts("\t\t\t\t1:

修改课程名称\n");

puts("\t\t\t\t2:

修改课程性质\n");

puts("\t\t\t\t3:

修改课程教师\n");

puts("\t\t\t\t4:

修改课程时间\n");

puts("\t\t\t\t5:

修改课程教室\n");

puts("\t\t\t\t0:

返回主菜单\n");

puts("-----------------------------------------------------------------------------");

puts("请选择操作:

");

scanf("%d",&j);

if(j>0&&j<6)

k=1;

while((getchar())!

='\n');

switch(j)

{

case1:

puts("请输入新的课程名称:

");

scanf("%s",lesson[i].name);

break;

case2:

while

(1)

{

puts("选择课程性质:

");

puts("1:

必修");

puts("2:

选修");

scanf("%d",

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 自然景观

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1