学生管理系统C语言课程设计_第1页
学生管理系统C语言课程设计_第2页
学生管理系统C语言课程设计_第3页
学生管理系统C语言课程设计_第4页
学生管理系统C语言课程设计_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、c 语 言 课 程 设 计实 验 报 告课 题:学生管理系统课程设计:学生管理系统算法思想:此系统有四个功能,查找,添加,删除.此系统的建立要用到多种c语言语句,例如:字符的输入与输出,字符串的定义,字符的比较,结构体的应用,数组,以及大量的循环语句.还有条件选择语句。查找: 在已附值的结构体变量里面进行查找.添加: 把要添加的名字放到原来结构体里面的空数组当中,这样,添加的内容便可以在查找功能里面也能查找的出来.删除: 将输入的名字与结构体中的名字进行比较,如相同,则将其数组给删除,这样在查找功能里面就不能查找已删除的人的资料了.需求分析:查找:查找这个功能不仅能够在原来的基础上进行查找相关

2、的内容,并且还能够链接到其他功能所增加与删除的有关信息。添加:用到此功能的时候,要求输入相关的内容,例如名字,学号等,并且能够将添加到的内容加入到结构体中。删除:删除跟查找功能相类似,就是所要删除的学生的有关信息给清除掉,并且在结构体当中的信息查找不到。其他功能:其他小功能有相同性别的查找以及程序员有关信息。概要设计:查找功能:建立这样的查找功能系统,首先要用结构体来定义多个数组,将有关学生的基本信息表示出来,例如:姓名,学号,地方等。值得注意的就是,定义的数组要足够多,否则在增加这个功能当中就不能多次或者更多次的进行增加了。将要查找的名字x进行输入操作,如果x与已经数组的名字相同时,就打印出

3、该x的有关信息。如果该结构体当中没有与x相同的名字,则打印出其他信息,进行描述错误信息。这种功能的制作,需要用到字符的比较。因为结构体定义了10000个数组,因此避免能增加到第10000个数组。所以,当x不存在时,即将其名字与第10000个相同,则输出错误信息,这样查找功能就完成了。查找功能可以进行多次查找,也可直接进行操作其他功能。 添加功能:为了能够将添加的内容在查找里能够查找得到,因此,要将所要添加的内容插到结构体的空数组当中,插入条件是当学号与空数组的学号为零时,将所添加的信息复制到空数组当中,即可达到添加目的,当然要用到字符的复制语句才能够实现。此外,填写学号的时候要注意,因为结构体

4、里已经定义了三十个数组,有三十号,因此,当学号小于三十时,提示出要输入大于三十的学号,这样的话就能达到学号不一致的效果,学号无重复。添加功能可以进行多次添加,也可直接进行操作其他功能。删除功能:只要将要删除的名字输入到系统当中,进行短暂的查找之后,如果名字与结构体里面的名字相同的话,则显示出所有有关资料已经被删除,数组已清空。当进行查找功能的时候,如果输入的名字与删除的名字相同,则显示错误。删除的方式就是定义第三十号空数组,然后将空数组复制到要删除的名字信息当中。详细设计:查找功能的源代码:if(a=1) printf(please type in your namen); for(j=0;j

5、=1000;j+) /*进行多重查找的循环*/ struct student; scanf(%s,name); for(i=0;i=30;i+)/*对输入的名字进行对比*/ if(strcmp(name,)=0) printf(number:%dnsex:%snname:%snaddr:%snphone:%snn,student1i.number,student1i.sex,,student1i.addr,student1i.phone); break; if(i=31)/*当名字与结构体定义的数组对比不成功,则将其名字附值到第31个空数

6、组当中*/ printf(error,please retype name or choose another functionn); break; 此功能用到循环的嵌套和多重break语句,主要目的是进行多次查找以及当查找成功时能够顺利的打印出来并且跳出循环。添加功能源代码:if(a=2) printf(please fill some detail information to add n); printf(name:n); scanf(%s,); printf(number:n); scanf(%d,&student2.number); for(i=0;i=29

7、;i+)/*查找已用掉的学号*/ for(k=0;k=100;k+) if(student1i.number=student2.number) printf(your number has been used,please use another onen); printf(which is larger than 30n); printf(number:n); scanf(%d,&student2.number); printf(sex:n); scanf(%s,student2.sex); printf(addr:n); scanf(%s,student2.addr); printf(ph

8、one:n); scanf(%s,student2.phone); printf(n); printf(the detail information is belowingnn); for(i=0;i=1000;i+)/*查找空数组*/ if(student1i.number=0) break; strcpy(,); student1i.number=student2.number; strcpy(student1i.sex,student2.sex); strcpy(student1i.addr,student2.addr); strcp

9、y(student1i.phone,student2.phone); printf(number:%dnsex:%snname:%snaddr:%snphone:%snn,student1i.number,student1i.sex,,student1i.addr,student1i.phone); printf(if you want to add more,please press 2 again and againn); printf(or press another butten to use another functionn); 删除功能源代码:if(a

10、=3) printf(please type the name you want to deln); printf(name:n); scanf(%s,&); printf(n); printf(the detail information is belowingnn); for(i=0;i=30;i+)/*将要删除的名字与结构体的名字进行对比*/ if(strcmp(,)=0) strcpy(,); student1i.number=student130.

11、number; strcpy(student1i.sex,student130.sex); strcpy(student1i.addr,student130.addr); strcpy(student1i.phone,student130.phone); printf(number:%dnsex:%snname:%snaddr:%snphone:%snn,student1i.number,student1i.sex,,student1i.addr,student1i.phone); printf(your mission has been accpeted,del

12、done!n);调试分析:查找调试: 制作查找功能时,遇到的问题就是当姓名相同时能输出相应的信息,但如果不相同时,就不能提示错误信息。主要原因就是认为用了if之后,就可以用else了,所以导致有误,后来通过讨论,才想到当姓名于第i个(如:i=31)空数组时就设置错误信息。添加调试:添加功能的制作首先遇到的问题就是直接将有关信息赋值到某个变量当中,这样当查找的时候,就不能查找到已经添加的内容了。因此,经过一段时间的反复思考,才想到将添加的内容赋值到结构体里的空数组当中,这样就能准确无误的查找到新的内容了。还有点的就是在学号问题上的内容。当学号小于30时就要重新输入新的学号。删除调试: 在以上的基

13、础上,删除功能的制作一切顺利。总程序源代码:#include stdio.h#include string.hchar start()printf( n); printf( n); printf( n); printf( *n);printf( * the system of student management *n); printf( * *n); printf(* *n); printf( * 1.search information *n);printf( *n);printf( * 2.add information *n);printf( *n);printf( * 3. del

14、information *n);printf(* *n); printf( * 4. put out the same sex member *n);printf(* *n); printf( * 5.designer information *n);printf( *n);printf( * 6.press 0 to exit system *n);printf( *n);printf( * *n);printf(* *n); printf( *n); return;struct student int number; char name20; char sex6; char addr80;

15、 char phone100;student2,student3,student110000=01,蔡少强,男,潮州,02,李土怀,男,湛江 4,林校平,男,汕尾,5,陈宗华,男,茂名, 6,张炳辉,男,揭阳,7,戴伟强,男,惠州 8,吴东敏,男,清远,9,华伟钦,男,茂名, 10,黄妙间,广州,11,曾小娴,女,广州, 12,叶凤珍,女,中山,13,冯玉莲,女,顺德, 14,叶秀梅,女,广州,15,郑旭泽,男,潮州, 16,庄钦州,男,饶平,17,张晓林,男,饶平, 18,林树扬,男,潮州,19,张鹏广,男,番禺, 20,罗勇,男,潮州,2

16、1,伍坚强,男,东莞, 22,邹海健,男,茂名,23,曹志锋,男,广州, 24,陈卓超,男,广州,25,陈志军,男,广州, 26,邱源彪,男,茂名,27,李国波,男,茂名, 28,周赐康,男,广州,3,吴坤,男,韶关,29,谢小弟,男,番禺 ;void main() int a,b,j,i,k; char name100; char sex2; start(); printf(n); printf(n); printf(please choose the function you liken); for(b=1;b=a;) scanf(%d,&a); if(a=1) printf(please

17、 type in your namen); for(j=0;j=1000;j+) struct student; scanf(%s,name); for(i=0;i=30;i+) if(strcmp(name,)=0) printf(number:%dnsex:%snname:%snaddr:%snphone:%snn,student1i.number,student1i.sex,,student1i.addr,student1i.phone); break; if(i=31) printf(error,please retype nam

18、e or choose another functionn); break; if(a=2) printf(please fill some detail information to add n); printf(name:n); scanf(%s,); printf(number:n); scanf(%d,&student2.number); for(i=0;i=29;i+) for(k=0;k=100;k+) if(student1i.number=student2.number) printf(your number has been used,please

19、use another onen); printf(which is larger than 30n); printf(number:n); scanf(%d,&student2.number); printf(sex:n); scanf(%s,student2.sex); printf(addr:n); scanf(%s,student2.addr); printf(phone:n); scanf(%s,student2.phone); printf(n); printf(the detail information is belowingnn); for(i=0;i=1000;i+) if

20、(student1i.number=0) break; strcpy(,); student1i.number=student2.number; strcpy(student1i.sex,student2.sex); strcpy(student1i.addr,student2.addr); strcpy(student1i.phone,student2.phone); printf(number:%dnsex:%snname:%snaddr:%snphone:%snn,student1i.number,student1i.sex,stud

21、,student1i.addr,student1i.phone); printf(if you want to add more,please press 2 again and againn); printf(or press another butten to use another functionn); if(a=3) printf(please type the name you want to deln); printf(name:n); scanf(%s,&); printf(n); printf(the detail informa

22、tion is belowingnn); for(i=0;i=30;i+) if(strcmp(,)=0) strcpy(,); student1i.number=student130.number; strcpy(student1i.sex,student130.sex); strcpy(student1i.addr,student130.addr); strcpy(student1i.phone,student130.phone); printf(number:%dnsex:%s

23、nname:%snaddr:%snphone:%snn,student1i.number,student1i.sex,,student1i.addr,student1i.phone); printf(your mission has been accpeted,del done!n); if(a=4) printf(please type sexn); scanf(%s,sex); for(i=0;i=100;i+) if(strcmp(sex,student1i.sex)=0) printf(number:%dnsex:%snname:%snaddr:%snpho

24、ne:%snn,student1i.number,student1i.sex,,student1i.addr,student1i.phone); if(a=5) printf(制作:戴伟强 班级:网络051 学号:n ); printf(n); printf(爱好:篮球 电话: n ); 开始start()子函数调用start()结构体student() student1,student2,studentint a,b,j,i,k;b=1;b=a;判断a的值输入aj=0;j=1000 j+输入名字i=0;i=30;i+strcmp(name,)=0a=2流程图i=10000输出name资料输出错误信息a=2 输入,student2.nu

温馨提示

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

评论

0/150

提交评论