版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上一、 课程设计目的 加深对C语言课程所学知识的理解,进一步巩固C语言语法规则。学会编制结构清晰、风格良好、数据结构适当的语言程序,从而具备解决综合性实际问题的能力, 使学生通过系统分析、系统设计、编程调试,写实验报告等环节,初步掌握软件系统设计的方法和步骤,训练灵活运用程序设计语言进行软件开发的能力,提高分析问题和解决问题的能力,提高程序设计水平,培养必要的工程实践动手能力二、课程设计内容 学生学籍管理系统1, 输入并验证密码;2, 设计菜单进行选择相应的操作;3, 用链表录入并输出数据,包括学生的户籍、成绩、奖惩信息;4, 将录入的数据存放在文件里面并读取
2、文件;5, 对录入的数据进行修改;6, 删除个人信息;7, 查找个人信息;8, 对录入的成绩进行排序;9, 统计不及格的成绩;10, 释放链表;三、需求分析对所开发系统功能、性能的描述,想要实现的目标。输入并验证密码的正确性,定义结构体类型来存放学生的基本信息(包括学生的姓名、学号、性别、出生日期等),然后建立链表存放信息,将信息存入文件中,以便以后的各个功能模块调试时直接调用,对数据进行修改、删除、查找、排序操作,然后对输入的数据进行统计,查出不及格的学生成绩。实现的目标是对学生的学籍进行管理,更新并统计数据。 四、概要设计输入数据函数输出数据函数查找数据函数删除数据函数输 入 密 码修改数
3、据函数主 菜 单保存文件函数读取文件函数排序函数统计函数退出系统功能模块说明:输入密码:从键盘输入密码,判断输入的密码是否与系统设定的密码相同,若相同则进入主菜单,不相同则继续输入; 主菜单:显示系统的各项功能与相对应的数字选项。输入数据函数:从键盘输入数据,并将数据存入链表。输出数据函数:对存储的数据进行输出。查找数据函数:对存储的数据进行查询并显示查询结果。删除数据函数:对存入的数据进行删除。修改数据函数:对存入的数据进行修改。保存数据函数:将从键盘输入的数据存入到文件中读取数据函数:从文件中读取个人信息。排序函数:对平均成绩进行排序并显示排序结果统计函数:对不及格成绩进行统计并显示统计结
4、果。退出系统:退出系统五、详细设计及运行结果流程图错误 判断正确性主菜单正确 修改数据是选择5选择1选择3选择2选择4否否否否是是是是从键盘输入数据并存入链表输出数据查找个人信息删除数据否是保存文件选择6否是读取文件选择7否 是对成绩进行排序选择8否是统计不合格的成绩选择9选择0退出六、调试情况,设计技巧及体会 通过两周的课程设计,我对学过的C语言基本知识进行了巩固,并且还对知识进行了扩展。在本次实习时,刚开始完全没有头绪,不知道从何入手,感觉难度很大.但是逐渐开始编写程序慢慢发现,原来不是想象中的那么难.在一个个模块成功编写出来的同时,获得了巨大的成就感,并且掌握的许多上课遗漏和不很了解的知
5、识.。对一些细节以前不太注意,常常忽略,真正操作起来时发现一些小问题也会导致程序无法进行。要想运行正常,必须保证零错误。 同时,这两周的实习使我对链表更熟悉了。以前总感觉链表很难,这次程序设计中,我用链表存取数据,并进行删除修改等操作,慢慢对链表熟悉。另外,在程序运行编译的过程中出现一些错误,需要耐心的去检查错误,调试程序。七、参考文献C语言程序设计 谭浩强 清华大学出版社C语言程序设计教程 张毅坤 曹锰 张亚玲 西安交通大学出版社C语言程序设计 王曙燕 曹锰 科学出版社 #include <conio.h>#include <dos.h>#include <st
6、dio.h>#include <stdlib.h>#include <malloc.h>#include <math.h>#include <string.h>#define LEN sizeof(struct student)typedef struct int year; int month; int day; DATE; struct student int num; char name10; char sex; DATE birthday; int math; int C; int physic; int English; floa
7、t average; DATE time; char reason50; char result50; char unit50; struct student *next;struct student * read_file(); /*读取文件*/void save_file(); /*保存*/void input(); /*创建链表,输入数据*/void output(struct student *head); /*输出*/void seek(struct student *h); /*查找*/void del() ; /*删除*/void change (); /*修改*/void so
8、rt() ; /*对成绩进行排序*/void summarise(); /*对不及格成绩进行统计*/void free_linklist(void); /*释放链表*/void print(struct student *p); /*输出函数*/void menu(); /*菜单*/void password(); /*密码*/struct student *head=NULL;int number=0;main() password(); getch(); system("cls"); printf("nnnnnttt*欢迎进入学生学籍管理系统*nnn"
9、;); getch(); menu();void password() char s8,ch; int i; s0='0's1='4' s2='0' s3='8' ; s4='2' s5='0' s6='4' s7='1' ; printf("nnnnnttt*nn"); printf("ttt*nn"); printf("ttt*nnnnn"); do printf("ttttplease inp
10、ut password: nttttt"); for(i=0;i<8;i+) ch=getch(); if(ch!=si) break; printf("*"); printf("nn"); if(i!=8) printf("It's error!n"); printf("please input again!n"); else break; while(1);void menu() int select=-1; head=NULL; while (select!=0) system(&qu
11、ot;cls"); printf("ttt*n"); printf("ttt *1 Input n"); printf("ttt *2 Output n"); printf("ttt *3 seek n"); printf("ttt *4 delete n"); printf("ttt *5 change n"); printf("ttt *6 save n"); printf("ttt *7 read n"); printf
12、("ttt *8 sort n"); printf("ttt *9 summarise n"); printf("ttt *0 Exit n"); printf("ttt*n"); printf("Please input select(0-8):"); scanf("%d",&select); switch(select) case 1: input(); break; case 2: output( head); break; case 3: seek(head)
13、; break; case 4: del(); break; case 5: change(); break; case 6: save_file(); break; case 7: head=read_file(); break; case 8: sort(); break; case 9: summarise(); break; case 0: free_linklist(); break; void input() /*创建链表,输入数据*/ struct student *p1,*p2; p1=(struct student *)malloc (LEN); printf ("
14、please input the student's information:n"); printf ("address information:n"); printf ("num name sex year month day n"); scanf("%d", &p1->num); fflush(stdin); scanf ("%s",p1->name); fflush(stdin); scanf ("%c",&p1->sex); fflus
15、h(stdin); scanf ("%d%d%d",&p1->birthday.year,&p1->birthday.month,&p1->birthday.day); printf ("score information:n"); printf ("math C physic Englishn"); scanf ("%d%d%d%d",&p1->math,&p1->C,&p1->physic,&p1->English
16、); p1->average=(float)(p1->math+p1->C+p1->physic+p1->English)/4; printf(" rewards and punishments:n"); printf (" time(year month day )n"); scanf ("%d%d%d",&p1->time.year,&p1->time.month,&p1->time.day); printf ("reason: "); f
17、flush(stdin); scanf ("%s",p1->reason); printf ("result: "); fflush(stdin); scanf ("%s",p1->result); printf ("unit: "); fflush(stdin); scanf ("%s",p1->unit); p1->next=NULL; number+; if(head=NULL) head=p1; else p2=head; while (p2->next )
18、 p2=p2->next; p2->next=p1; getch();void output(struct student *head) /*输出链表*/ struct student *p; int kind,flag=1; char choice='a' if (head=NULL) printf("Not Input before!n"); getch(); return; while (flag) printf ("students' information input before as fowllow:n"
19、); printf ("1:address; 2:score; 3:rewards and punishments 0:exitn"); printf ("please choice: "); scanf ("%d",&kind); p=head; do switch(kind) case 1: printf ("address information:n"); printf ("num name sex year month day n"); printf ("%d %s %
20、c ",p->num,p->name,p->sex); printf (" %d %d %dn",p->birthday.year,p->birthday.month,p->birthday.day); break; case 2: printf ("score information:n"); printf ("num name math C physic English averagn"); printf ("%d %s %d %d %d %d ",p->nu
21、m ,p->name , p->math,p->C,p->physic,p->English); printf ("%2.2fn",p->average); break; case 3: printf(" rewards and punishments:"); printf ("num : %d name %s n",p->num,p->name); printf ("time: year/%d month/%d day/%d n",p->time.year,p
22、->time.month,p->time.day); printf("reason: %sn",p->reason); printf("result: %sn",p->result); printf ("unit: %sn",p->unit); break; p=p->next; while(p); printf ("continue to choice (y/n) "); fflush(stdin); choice=getchar(); if(choice='n'
23、;) flag=0; printf("Display finish!n"); getch();void seek(struct student *h) /*查找链表*/ struct student *p; int seeknum; printf ("please input the num what you look for :"); scanf ("%d",&seeknum); p=h; while (p&&seeknum!=p->num) p=p->next; if(!p) printf (&
24、quot;the num you look for don't exist!n"); else print(p); getch();void del () /*删除链表*/ int delnum; struct student *p1,*p2; p1=head; printf("input delete num:n"); scanf("%d",&delnum); while (delnum!=p1->num&&p1->next!=NULL) p2=p1; p1=p1->next; if (del
25、num=p1->num) if (p1=head) head=p1->next; else p2->next=p1->next; printf ("the student's information you input have been deleted!n"); number-; else printf ("the student you what to delete don't exist!n"); getch();void change() /*修改链表*/ int changenum,kind; int c
26、hoice,flag=1; char select=1; struct student *p; p=head; while (flag!=0) printf ("please input the num you want to change:n"); scanf ("%d",&changenum); while (changenum!=p->num) p=p->next; if (changenum=p->num) printf ("input the new information:n"); printf
27、("1:address ; 2:score ;3: rewards and punishments; 0:exit;n"); printf("input the kind you want to change:"); fflush(stdin); scanf("%d",&kind); switch(kind) case 1: printf ("1: name; 2:sex; 3:birthday;"); printf ("please choice :"); fflush(stdin);
28、 scanf ("%d",&choice); switch (choice) case 1: printf ("input the new name:"); fflush(stdin); scanf ("%s",p->name); break; case 2: printf ("input the new sex:"); fflush(stdin); scanf("%c",&p->sex); break; case 3: printf ("input the
29、 new birthday:"); fflush(stdin); scanf("%d%d%d",&p->birthday.year,&p->birthday.month,&p->birthday.day); break; break; case 2: printf ("1:math; 2:C; 3: physics; 4:English;"); printf ("please choice :"); fflush(stdin); scanf ("%d",&
30、choice ); switch (choice) case 1: printf ("input the new math:"); fflush(stdin); scanf ("%d",&p->math); break; case 2: printf ("input the new C:"); fflush(stdin); scanf ("%d",&p->C); break; case 3: printf ("input the new physic:"); fflu
31、sh(stdin); scanf ("%d",&p->physic); break; case 4: printf ("input the new English:"); fflush(stdin); scanf ("%d",&p->English); break; break; case 3: printf ("1: time; 2:reson; 3: result; 4: unit;"); printf ("please choice:"); fflush(std
32、in); scanf ("%d",&choice); switch (choice) case 1: printf ("input the new time:"); fflush(stdin); scanf ("%d%d%d",&p->time.year,&p->time.month,&p->time.day); break; case 2: printf ("input the new reason:"); fflush(stdin); scanf ("
33、%s",p->reason); break; case 3: printf (" input the new result :"); fflush(stdin); scanf ("%s",p->result); break; case 4: printf ("input the new unit:"); fflush(stdin); scanf ("%s",p->unit); break; else printf ("the num you want to change don
34、't exist!n"); printf(" continue to change ?(y/n)"); fflush(stdin); select=getchar(); if(select='n') flag=0; else printf ("continue!n"); print(p); getch();void save_file() /*保存文件*/ FILE *fp; struct student *stu; char filename10; printf ("input infile name:n&q
35、uot;); scanf ("%s",filename); if (fp=fopen(filename,"wb+")=NULL) printf ("cannot open file!"); exit(0); stu=head; do if(fwrite(stu,LEN,1,fp)!=1) printf ("file write error!"); stu=stu->next; while(stu); printf ("the file has been kept!n"); fclose (
36、fp); getch();struct student * read_file() /*读取文件*/ FILE *fp; char filename10; struct student *p,*head=NULL,*stu; printf ("please input filename:n"); scanf("%s",filename); if (fp=fopen(filename,"rb+")=NULL) printf ("the file don't exist!"); exit(0); stu=p=(
37、struct student *) malloc(LEN); if(head=NULL) fread(stu,LEN,1,fp); head=stu; while (p->next!=NULL) p->next=stu; p=stu; stu=(struct student *) malloc(LEN); fread(stu,LEN,1,fp); p->next=NULL; fclose (fp); printf("read sucess!n"); return (head); getch();void print(struct student *p) /
38、*输出*/ printf ("the new information is:n"); printf ("address information:n"); printf ("num: %d name %s sex %cn" ,p->num ,p->name ,p->sex); printf ("year: %d month %d day %d n",p->birthday.year,p->birthday.month,p->birthday.day); printf ("
39、score information:n"); printf ("math: %d C: %d physic: %d English: %d ",p->math,p->C,p->physic,p->English); printf(" average: %2.2f n",p->average); printf(" rewards and punishments:n"); printf ("time: year/%d month/%d day/%d n",p->time.y
40、ear,p->time.month,p->time.day); printf("reason: %sn",p->reason); printf("result: %sn",p->result); printf ("unit: %sn",p->unit);void sort() /*对成绩进行排序*/ int i=0,j,k,n=0; struct student stu50,t,*p; head=read_file(); for(p=head;p;p=p->next) stui.num =p->
41、;num ; strcpy(,p->name ); stui.math =p->math ; stui.C =p->C ; stui.physic =p->physic ; stui.English =p->English ; stui.average =p->average ; i+; n+; for(j=0;j<n;j+) for(k=j+1;k<n-1;k+) if(stuj.average<stuk.average) t=stuj; stuj=stuk; stuk=t; for(i=0;i<n;i+) printf("No: %dn",i+1); printf("num name math C physic English averagen"); printf("%d %s %d %d %d %d %2.2fn",stui.num, ,stui.math,stui.C,stui.physic,stui.English,stui.average); getch();void summarise() /*对不及格成绩进行统计*/ struct
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 场地租赁及餐饮合作合同
- 食品销售合同模板范文
- 洗车店合作合同
- 简单机械设备租赁合同范本
- 体育赛事运营合作合同
- 可再生能源项目开发合同2024
- 智慧医院综合智能化系统设计汇报方案
- 船用铜-钢梯度材料双丝等离子增材制造工艺及组织性能调控研究
- 铅铋共晶合金中Po-210的测定及蒸发行为研究
- 考虑需求响应的无人车队轨迹优化研究
- 校园保洁培训课件
- 渠道管理就这样做
- 大客户销售这样说这样做
- 精装修样板房房屋使用说明
- 乔迁新居结婚典礼主持词
- 小学四年级数学竞赛试题(附答案)
- 鲁科版高中化学必修2全册教案
- 《病理学基础》知识考核试题题库与答案
- 人口分布 高一地理下学期人教版 必修第二册
- 四年级上册英语试题-Module 9 Unit 1 What happened to your head--外研社(一起)(含答案)
- 子宫内膜异位症诊疗指南
评论
0/150
提交评论