备忘录设计.docx
- 文档编号:12485612
- 上传时间:2023-04-19
- 格式:DOCX
- 页数:21
- 大小:63.19KB
备忘录设计.docx
《备忘录设计.docx》由会员分享,可在线阅读,更多相关《备忘录设计.docx(21页珍藏版)》请在冰豆网上搜索。
备忘录设计
目录
1.设计任务书………………………………………………………3
1.1题目与要求…………………………………………………….3
1.2本程序涉及的知识点………………………………………..4
2.功能设计…………………………………………………………..4
2.2部分模块流程图………………………………………………..5
3.C程序设计总结…………………………………………
4.致谢………………………………………………………
5、参考文献……………………………………………………
6、程序源代码……………………………………………….
1、设计任务书
1.1、题目与要求
备忘录设计
要求有备忘录的输入,输出,修改以及查询功能
1.2、本程序涉及的知识点
变量的定义、输入和输出函数,结构体,图形界面设置等
2、功能设计
2.1、主要设计
1、本程序实现的功能要求:
利用switch语句完成所示的主菜单。
根据提示选择
根据提示输入
查询
修改
2.2、部分模块图
3、C程序设计总结
本程序在刚开始调试时有许多错误,但在我的努力及同学的帮助下都被一一克服,现在在操作本程序时可根据提示进行相关操作,能正确输出结果。
在刚开始的几次调试中曾经出现过不能运行、不能产生十以内随机数字、不能随机出现加减、不会正确输出结果、不能进行循环练习等等问题。
经过我的努力及同学的帮助,这些问题得到克服,并且使程序的功能也得到了一定的完善。
现在它能对出错的题目发出报警声,并且给出正确答案。
最后还能分别输出对错的题数及所得分数。
在这次设计过程中,不仅复习课本上所学知识,还通过查资料、问同学学到了课本上没有的知识。
从而启发我,要想写好程序,在写好课本知识的同时还需要多读和专业有关的一些书籍,同时还需要多动脑子,尽量把所学的知识综合起来应用,力争写出完美的程序。
除此之外,我还得到了一些有用的教训:
写程序时必须要细心,不能输错一个字符标点,就连全角半角也得注意。
在修改时要有耐心,编译出错后必须逐个错误去改正,绝不能心急浮躁,否则修改之后还会有新的错误。
4、致谢
能够完成这次课程设计必须感谢C语言课程老师杨先卫(是他教会了我C语言这门课程)、任江成同学(他帮我修改了几处重要错误,同时启发我完善了该程序的功能)。
5、参考文献
(1)《C语言程序设计教程》第三版谭浩强张基温编著
(2)《C语言习题集与上机指导》第三版谭浩强张基温编著
6、程序源代码
#include
#include
#include
#include
#defineN100
#defineM999999
voidfirstscreen(void)
{
printf("\n☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");
printf("☆☆\n");
printf("☆☆\n");
printf("☆☆\n");
printf("☆☆☆备忘录☆☆☆\n");
printf("☆☆\n");
printf("☆姓名:
柯亭儒☆\n");
printf("☆学号:
2010142136☆\n");
printf("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");
}
voidsecondscreen()
{
printf(">");
}
voidkaishi()
{
inti,j,k=40000000;
system("color5A");
printf("\n\n\n---------------高级语言程序设计-------------\n");
firstscreen();
printf("\n----------------正在进入,请稍后---------------\n");
printf("");
for(i=1;i<50;i++)
{
for(j=0;j secondscreen(); } } inti=0; structT0/*写备忘时间*/ { intyear0; intmonth0; intday0; inthour0; intminute0; intsecond0; charweek0; }; structT/*提醒时间*//**/ { intyear; intmonth; intday; inthour; intminute; intsecond; charweek; }; structevent/*提醒内容*//**/ { T0recod; Tremind; charcontent[M]; intgrade; }call[N]; menu(); input(); operate(); query(); order(); time_order(); grate_order(); amend(); output(); main() {kaishi(); operate(); return0; } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// operate() { intselect,w; menu(); printf("\n\t\t\t请选择: "); scanf("%d",&select); switch(select) { case1: input();break; case2: query();break; case3: order();break; case4: amend();break; case5: output();break; default: w=1; } if(w==1) { printf("\n输入有误,按任意键重新选怿."); getchar(); operate(); } } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// menu() { system("cls"); system("color5A"); printf("请注意必须正确退出,否则将失去数据"); printf("\n\n\n\n\n\n\t\t\t\31.备忘输入\n\t\t\t\32.备忘查询\n\t\t\t\33.重要事件排序\n\t\t\t\34.备忘修改\n\t\t\t\35.退出\n"); } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// input()/*输入*/ { i++; intn; chara; FILE*fp; time_tt; tm*local; t=time(NULL); local=localtime(&t); charch; system("cls"); printf("\n\n\n\n\n请输入提醒时间(年月日格式如2011-12-01): "); scanf("%d-%d-%d",&call[i].remind.year,&call[i].remind.month,&call[i].remind.day); printf("\n请输入星期_: "); scanf("%s",&call[i].remind.week); printf("\n是否要输入精确时间时分秒(y/n? )"); a=getchar(); getchar(); if(a=='y') { printf("请输入精确时间(时分秒格式如12: 12: 12): "); scanf("%d: %d: %d",&call[i].remind.hour,&call[i].remind.minute,&call[i].remind.second); } else printf("%4d-%2d-%2d\n",call[i].remind.year,call[i].remind.month,call[i].remind.day); printf("请输入提醒内容: \n"); scanf("%s",&call[i].content); printf("请输入备忘级别(1~10): "); scanf("%d",&call[i].grade); printf("恭喜你备忘成功! ! ! \n"); if((fp=fopen("备忘录.txt","a+"))==NULL) { printf("connotopenthisfile.\n"); exit (1); } for(n=1;n<=i;n++) { fprintf(fp,"\n时间到了: %d-%d-%d",call[n].remind.year,call[n].remind.month,call[n].remind.day); fprintf(fp,"星期_%c\n",call[n].remind.week); fprintf(fp,"我要处理: %s\n",call[n].content); fprintf(fp,"记录时间: %s\n",asctime(local)); } fclose(fp); getchar(); getchar(); main(); } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// query()/*查询*/ { intj; inta,b,c; system("cls"); printf("\n请输入要查询的年月日(年月日格式如2011-12-01): "); scanf("%4d-%2d-%2d",&a,&b,&c); for(j=1;j<=i;j++) { if(a==call[i].remind.year&&b==call[i].remind.month&&c==call[i].remind.day) { printf("在%4d-%2d-%2d",call[i].remind.year,call[i].remind.month,call[i].remind.day); printf("%d: %d: %d",call[i].remind.hour,call[i].remind.minute,call[i].remind.second); printf("星期%c\n",call[i].remind.week); printf("我要处理: %s\n",call[i].content); printf("备忘级别: %d\n",call[i].grade); } else printf("没有该时间内的备忘事件? ? ? \n"); } getchar(); getchar(); //getchar(); main(); } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// order()/*排序*/ { system("cls"); system("colorf6"); intm,w; printf("请选择排序方式: \n"); printf("\n\n\n\t\t\t1.按时间排序\n"); printf("\t\t\t2.按备忘级别排序\n"); printf("\t\t请选择: "); scanf("%d",&m); switch(m) { case1: time_order();break; case2: grate_order();break; default: w=1; } if(w==1) { printf("\n输入有误,按任意键重新选怿."); getchar(); order(); } } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// time_order() { system("cls"); system("colorc5"); intm,n,a,b; for(m=i;m>0;m--) for(n=1;n { if(call[n].remind.year { call[0]=call[n]; call[n]=call[n+1]; call[n+1]=call[0]; } } for(m=n;m>0;m--) for(a=1;a { if(call[a].remind.month { call[0]=call[a]; call[a]=call[a+1]; call[a+1]=call[0]; } } for(m=a;m>0;m--) for(b=1;b { if(call[b].remind.day { call[0]=call[b]; call[b]=call[b+1]; call[b+1]=call[0]; } } printf("按备忘排序后: \n"); for(b=1;b<=i;b++) { printf("%d.\n",b); printf("在%4d-%2d-%2d",call[b].remind.year,call[b].remind.month,call[b].remind.day); printf("%d: %d: %d",call[b].remind.hour,call[b].remind.minute,call[b].remind.second); printf("星期%c\n",call[b].remind.week); printf("我要处理: %s\n",call[b].content); printf("备忘级别: %d\n",call[b].grade); } printf("以上为备忘事件时间排序."); getchar(); getchar(); //getchar(); main(); } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// grate_order() { system("cls"); system("color6f"); intm,n; for(m=i;m>0;m--) for(n=1;n { if(call[n].grade { call[0]=call[n]; call[n]=call[n+1]; call[n+1]=call[0]; } } printf("按备忘等级排序后: \n"); for(n=1;n<=i;n++) { printf("%d.\n",n); printf("在%4d-%2d-%2d",call[n].remind.year,call[n].remind.month,call[n].remind.day); printf("%d: %d: %d",call[n].remind.hour,call[n].remind.minute,call[n].remind.second); printf("星期%c\n",call[n].remind.week); printf("我要处理: %s\n",call[n].content); printf("备忘级别: %d\n",call[n].grade); } printf("以上为备忘等级排序."); getchar(); getchar(); //getchar(); main(); } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// amend()/*修改*/ { intj; inta,b,c,d,e,f,n; system("cls"); printf("\n请输入要修改的年月日(年月日格式如2011-12-01): "); scanf("%4d-%2d-%2d",&a,&b,&c); for(j=1;j<=i;j++) { if(a==call[i].remind.year&&b==call[i].remind.month&&c==call[i].remind.day) { printf("%d.\n",j); printf("在%4d-%2d-%2d",call[i].remind.year,call[i].remind.month,call[i].remind.day); printf("%d: %d: %d",call[i].remind.hour,call[i].remind.minute,call[i].remind.second); printf("星期%c\n",call[i].remind.week); printf("我要处理: %s\n",call[i].content); printf("备忘级别: %d\n",call[i].grade); } else { printf("没有该时间内的备忘事件? ? ? \n"); getchar(); getchar(); //getchar(); main(); } } printf("请输入要修改的序号: "); scanf("%d",&n); printf("\n请输入提醒时间(年月日格式如2011-12-01): "); scanf("%d-%d-%d",&call[n].remind.year,&call[n].remind.month,&call[n].remind.day); printf("\n请输入星期_: "); scanf("%s",&call[n].remind.week); printf("\n是否要输入精确时间时分秒(y/n? )"); a=getchar(); getchar(); if(a=='y') { printf("请输入精确时间(时分秒格式如12: 12: 12): "); scanf("%d: %d: %d",&call[n].remind.hour,&call[n].remind.minute,&call[n].remind.second); } else printf("%4d-%2d-%2d\n",call[n].remind.year,call[n].remind.month,call[n].remind.day); printf("请输入提醒内容: \n"); scanf("%s",&call[n].content); printf("请输入备忘级别(1~10): "); scanf("%d",&call[n].grade); printf("\n你已经成功修改! ! ! \n\n"); printf("在%4d-%2d-%2d",call[n].remind.year,call[n].remind.month,call[n].remind.day); printf("%d: %d: %d",call[n].remind.hour,call[n].remind.minute,call[n].remind.second); printf("星期%c\n",call[n].remind.week); printf("我要处理: %s\n",call[n].content); printf("备忘级别: %d\n",call[n].grade); getchar(); getchar(); //getchar(); main(); } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// output()/*退出函数。 */ { system("cls"); exit(0); }........忽略此处.......
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 备忘录 设计