C语言课程设计_第1页
C语言课程设计_第2页
C语言课程设计_第3页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、程序设计基础课程设计课题名称 学生考勤信息记录系统专 业计算机科学和技术班 级1102姓 名学 号 111110063 111110077 111110081、111110098指导教师陈世基2012 年 06 月 18 日第1章设计目的第2章总体设计第3章详细设计第4章调试和测试第5章总结和体会附:源程序清单和执行结果 .第1章设计目的本次c语言课程设计是对本学期程序设计基础课程的实际使用,也算是对所学知识的一次检验, 通过本次课程设计能达到的 目的如下:1. 巩固和加深对C课程基本内容和理论知识的理解和掌握。2. 掌握C语言编译和程序调试的基本技能。3. 利用 C 语言进行基本的程序设计从

2、而逐步了解文件的一些相 关操作和掌握函数的使用技巧, 包括函数类型的选择, 含参数的 传递方式。4. 掌握使用数组,指针,引用,文件等编译的方法,提高运用 C 语言解决实际问题的能力。5. 通过对学生考勤系统的设计、编写源代码,以及对 C语言 中各个语法和函数的使用, 使得对比较复杂的结构体、 链接、 文件的操作更加熟悉。6. 通过课程设计, 将本学期所学知识和实际使用联系和结合起来, 培养自己的动手能力, 以及加强各学科之间的联系, 从而提高个 人的团队意识,增强团队之间协调和配合第 2 章 总体设计2.1 学生考勤信息记录系统的要求 通过该系统实现对学生考勤信息进行创建、录入、修改、查询、

3、保存等操作的管理。 实验考勤信息包括学生姓名,学号,学科种类,各科的考勤信息。主要功能:1)、能够完成对考勤的录入和修改2)、创建一个班级的信息3)、设备的查询2.2流程图根据设计要求,画出如下流程图:/*录入函数*/*查询函数_1*/*查询函数2*/2.3设置的主要函数void creat(void);void save(struct Student *,char );struct Student *load(char );void enter(void);void search_1(void);void search_2(void);void add(void);void modify(v

4、oid);/*修改函数*/void back(void);/*退出函数*/void mune_1();/*界面-1*/void mune_2();/*界面-2*/mune_1();mune_2();第3章详细设计3.1函数以及调用关系*菜单函数1*/*菜单函数2*/void mune_1();/void mune_2()退 出 系 统¥录入记创建信*修改信查询整p_>num=a/*查询个人信息*/开始void search_1(void);返回菜单2输入此人所在班级和学号a输出此人的考勤信息返回菜单2void search_2(void); /* 查询班级信息 */广m开始输入

5、要查询的班别假Ifelse结构和 while while(p1- >num!=O) n=n+1;if(n=1)关闭文件head=p1;else p2->next=p1;p2=p1;p1=(struct Student *)malloc(LEN);scanf("%s%d%s",p1->name,&p1->num,p1->sex);p1->math=p1->English=p1->physics=p1->Mks=p1->C=p1->teal=p1->PE=0;p2->next=NULL;p=h

6、ead;while(p!=NULL)fwrite(p,LEN,1,fp);p=p->next;fclose(fp);printf("ttt 创建成功,按任意键返回主菜单 n");getch();system("cls");mune_2();2 switch 结构switch(sub)case 1: p->math+=num;break;case 2: p->English+=num;break;case 3: p->physics+=num;break;case 4: p->Mks+=num;break;case 5: p-

7、>C+=num;break;case 6: p->teal+=num;break;case 7: p->PE+=num;break;3while 结构while(p!=NULL)if(p->num=a)prin tf("ntt请重新输入高等数学缺勤节数:");scan f("%d",&p->math);prin tf("ntt请重新输入大学英语缺勤节数:");scan f("%d",&p->E nglish);printf("ntt请输入大学物理缺勤节数

8、:");scan f("%d",&p->physics);prin tf("ntt请重新输入马克思主义基本原理和概论缺勤节数:");scan f("%d",&p->Mks);printf("ntt请重新输入C语言缺勤节数:");scan f("%d",&p->C);prin tf("ntt请重新输入英语口语缺勤节数:");scan f("%d",&p->teal);prin tf("

9、;ntt请重新输入体育缺勤节数目:");scan f("%d",&p->PE);flag=1;save(head,cla);printf("ntt修改成功!ntt");break;p=p->n ext;第4章调试和测试4.1调试执行程序时,显示如下信息选择不同的选项,执行相应的功能性别飞名i仓白岁 nnnrh_l-l12 3000«志蠶亠m请输入本表课缺席同学的座号5話牺 菁祎牺卄構祷 菁 醫弭 普特善* 科蕃牺禅牺 特站普 群 普* 善持骨祷 祷弭普 处貝 斑生MEil 跖当苗;五itiJiW 口古田轴临厂I;五

10、卅吉请输入萝修改的班级:1102请输入要修改的学生的座号認11座号邈亘性别数学英语物理马克思石语言教师口语体肓感谢址的使用是用来做什么的。不过,这些感受都是在对这I门课程不了解的情况下产生的。后来慢慢的接触多了,听老师讲的多了, 了解多了,渐渐的产生了兴趣。尤其是学到语句和函数时, 上机操作程序,经过编译,调试和运行后,出现界面,当时觉得很好奇,想真正的学好这门课程。 通过半个学期的学习, 我掌握了基本知识 下学期开始时,被通知要进行课程设计。当时有点懵,感觉 学的东西很少,很零散,不知该怎么连到一起,就要课程设 计,是不是太难为我们了。第一天基本上都是在看书,把基本知识再熟悉一遍。到了下 午

11、的时候,看了很多练习题,从这些练习题上我得到了不少 启发,然后我们组把整个程序的思路理清了,开始着手写程 序。第一周结束的时候,我感觉自己收获挺大的,从一开始的迷 茫,不知道从何下手到把程序中的几个模块编写出来,心里 挺开心的。但是,接下来,我们又不得不再次陷入困境。在 整个程序的编写过程中, 最难的就是修改和删除这两个模块, 这也是我们要解决的重点问题。开始编写修改和删除时,很头疼,去向其他人寻求帮助,在 别人的帮助和提示下, 我编完了修改程序, 但编译时老出错, 修改后的内容将文本内的信息全部覆盖了。困难之时,我们 组的其他人,帮助了我,完成了修改和删除,这让我认识到 团队的力量。这样的话

12、,整个程序基本上全部完成了,就剩 下完善工作了。我们组写了两个程序,最后,两个程序相互 组合,互补,大功告成虽然设计时完成了,但是我觉得其中还是有一些不足之处:1. 警告句。程序中缺少一些警告句,例如 : “是否真的删除 ( y/n )?”2. 重名的情况。由于考虑的不周全,没有设计遇到重名的 情况该怎么处理。3. 选择单一。我们设计的程序中,只设计了按名字选择, 进行操作,忽略了重名的情况。整个程序完成了,还有很多不完善的地方,希望自己以后办 事的时候要认真,仔细,考虑周全。短短的几周课程设计结束了,但是这段时间里,我又学到了 更多 C 知识,如 : 对象数组, string 类,文件流,链

13、表以及 文件对链表的操作等, 同时我也被提醒以后办事的时候要认 真,仔细,考虑周全,也看到了团队精神和互帮互助的重要 性。这一点会让我终生受益。通过这次课程设计,我觉得自 己肚子里的墨水多了,收获也挺大的,这几周过的挺充实! *附:源程序清单和执行结果#include<stdio.h>#include<stdlib.h>#include <conio.h>#include<string.h>#define LEN sizeof(struct Student)struct Studentint num;char name15;char sex4;i

14、nt math, English,physics,Mks,C,teal,PE;struct Student *next;int n;void main()void creat(void);void save(struct Student *,char ); struct Student *load(char );void enter(void);void search_1(void);void search_2(void);void modify(void);void back(void);void mune_1();void mune_2();mune_1();mune_2();printf

15、("n");/*录入函数 */*查询函数 _1*/*查询函数 _2*/*修改函数 */*退出函数 */*界面 -1*/*界面 -2*/printf("nnnnnn");printf("t*")printf("ttt* I!);printf("ttt*欢迎使用班级考勤*printf("ttt* I!);printf("nt*nnn");*printf("=");printf("nnntttt< 按任意键进入 >nttttt");getc

16、h();system("cls");int option,ch;/*printf("nnn"); /*定义一个选项的数据类型 */制作的一个漂亮的选择界面 */printf("t*n");printf("t*ttttttt printf("t*ttttttt printf("t* 1 勤信息 t *n");printf("t*ttttttt printf("t* 3 *n");printf("t*ttttttt printf("t* 5 系统 t

17、 *n");printf("t*ttttttt printf("t*ttttttt*n");*n");、录入本次课考勤情况 t 2 、查询学生考*n");、创建学生信息 tt 4*n");、查看班级考勤情况*n");*n");、修改学生信息 tt 6 、退出考勤printf("t*n");printf("n");printf("ttt 请输入您所需的操作 (16):ntttt"); while(1)scanf("%d",&am

18、p;option);switch(option)case 1: ch=getchar();system("cls");enter();break;case 2: ch=getchar();system("cls");search_1();break;case 3: ch=getchar();system("cls");creat();break;case 4: ch=getchar();system("cls");modify();break;case 5: ch=getchar();system("cl

19、s");search_2();break;case 6: ch=getchar();system("cls");back();break;default: printf("ttt 输入错误,请重新输入 !");printf("ntttt");ch=getchar();void save(struct Student *head,char filename)FILE *fp;struct Student *p=head;if(fp=fopen(filename,"wb")=NULL)printf("

20、;can not open filen");exit(0);while(p!=NULL)fwrite(p,LEN,1,fp);p=p->next;fclose(fp);struct Student *load(char filename)FILE *fp;struct Student *head,*p1,*p2; head=NULL;p1=NULL;if(fp=fopen(filename,"rb")=NULL) printf("can not open filen");exit(0);while(!feof(fp)p2=(struct

21、Student *)malloc(LEN); if(fread(p2,LEN,1,fp)=1)if(head=NULL) head=p2;if(p1)p1->next=p2;p1=p2;p1->next=NULL;return (head);/*录入void enter()函数*/struct Student *head,*p; char select='y',cla10;int sub,stu,num,flag=0;printf(" 请输入上课班级: "); scanf("%s",cla); strcat(cla,"

22、;.dat");p=head=load(cla);system("cls"); while(select='y'|select='Y') printf("nnn");printf("t* * * * * * * * *n");*n");*n");printf("t*tttttttprintf("t*tttttttprintf("t* 1、高等数学 tt 2、大学英语 tt*n");printf("t* 3、大学物理 tt 4

23、、马克思基本原理*n");printf("t*ttttttt*n");概论 *n");printf("t*tttttttprintf("t* 5、 C 程序设计基础t 6 、教师口语 tt *n");*n");printf("t*tttttttprintf("t*ttttttt *n");printf("t*ttttttt *n");printf("t* * * * * * * * * * * * * * * * * * * * * * * * * * *

24、 *n");printf("n");printf("ttt 请输入科目选项 (17):ntttt");scanf("%d",&sub);while(1)if(sub>0&&sub<8)break;elseprintf("ttt 输入错误, 请重新输入 ntttt"); scanf("%d",&sub);system("cls");printf(" 请输入本次课缺席同学的座号: ");scanf(&quo

25、t;%d",&stu);printf("n");printf(" 请输入该同学的缺课节数: ");scanf("%d",&num);while(p!=NULL)if(p->num=stu) switch(sub)case 1: p->math+=num;break;case 2: p->English+=num;break;case 3: p->physics+=num;break;case 4: p->Mks+=num;break;case 5: p->C+=num;br

26、eak;case 6: p->teal+=num;break;case 7: p->PE+=num;break;p=p->next;printf("nntt* 输入成功 *!n");printf(" 是否继续输入 (yn):");scanf("%c",&select);save(head,cla);getch();system("cls");mune_2();search_1(void)数学 英语 物理void/* 查询个人信息 */struct Student *head,*p;char

27、 select='y',cla10;int num,flag=0;printf(" 请输入上课班级: ");scanf("%s",cla);strcat(cla,".dat");p=head=load(cla);printf(" 请输入要查询同学的座号: ");scanf("%d",&num);system("cls");while(p!=NULL)if(p->num=num)printf("nn");printf("

28、;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n");printf(" 座号 姓名 性别 马克思 C 语言 教师口语 体育 n");printf(" %3d %8s %4s%5d %5d %5d %5d %3d %7d %8dn",p->num,p->name,p->sex,p->math,p->English,p->physics,p->Mks,p->C,p->teal,p->P

29、E);printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n");flag=1;p=p->next;if(flag=0)printf("tt! 没 有 这 个 学 生 信 息 , 请 核 对 后 再 输入!nn");getch();system("cls");mune_2();void search_2(void) /* 查询某班级信息 */char cla10;struct Student *head,*p;p

30、rintf(" 请输入您要查询的班级名: ");gets(cla);system("cls");printf("n ttt%s 班的考勤情况 nn",cla);strcat(cla,".dat");p=head=load(cla);printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n");马克printf(" 座号 姓名 性别 数学 英语 物理 思 C 语言 教师口语

31、 体育 n");while(p!=NULL)printf(" %3d %8s %4s%5d %5d %5d %5d %3d %7d %8d n",p->num,p->name,p->sex,p->math,p->English,p->physics,p->Mks,p->C,p->teal,p->PE);p=p->next;printf("n* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

32、*n");getch();system("cls");mune_2();void modify(void) /* 修改函数 */int a,flag=0;char cla10;struct Student *head,*p;printf("ntt 请输入要修改的班级: ");scanf("%s",cla);strcat(cla,".dat");p=head=load(cla);printf("ntt 请输入要修改的学生的座号 :");scanf("%d",&

33、a);while(p!=NULL)if(p->num=a)printf("ntt请重新输入高等数学缺勤节数 :");scanf("%d",&p->math);printf("ntt请重新输入大学英语缺勤节数 :");scanf("%d",&p->English);printf("ntt请输入大学物理缺勤节数 :");scanf("%d",&p->physics);printf("ntt论缺勤节数 :");sc

34、anf("%d",&p->Mks); printf("ntt scanf("%d",&p->C); printf("ntt scanf("%d",&p->teal); printf("ntt scanf("%d",&p->PE);flag=1; save(head,cla);printf("ntt break;请重新输入马克思主义基本原理和概请重新输入C语言缺勤节数:");请重新输入英语口语缺勤节数 :");请重新输入体育缺勤节数目 :");修改成功 !ntt");p=p-&g

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论