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

下载本文档

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

文档简介

1、#include stdio 。h#include malloc 。h#include string 。h include stdlib.h define null 0 #define len sizeof(struct student )struct student char name 20; long int num; char sex 4;int age; char address30 ;double tele_num;char aihao20; struct student next; ;/定义一个结构题int total_num = 0;/学生总数struct student *he

2、ad = null; void welcome (); /欢迎界面void mainmenu (); /主界面void record (); /记录数据void insert ( struct student *stu) ; /插入数据void display (struct student *stu); /显示一个学生的信息void displayall (); / 显示所有学生的信息void query_by_num (); /按学号查询学生信息void readdata (); / 读取文件里学生的信息void writedata (); /向文件写入学生信息void freeall (

3、) ; /清空链表内容void del () ; /删除学生信息void change (); /更改学生信息void devise (struct student *p); /选择更改内容int main (void) welcome () ;/显示主菜单mainmenu ( ); return 0 ; /显示欢迎信息void welcome ()printf (+- - - - -+n); printf (|n” ); printf (” 欢迎使用网络工程学院信息安全092班学生信息管理系统|n ” ); printf (| |n); printf (+- - - - -n” ); /系统

4、主菜单void mainmenu () int choice; choice = -1; readdata () ; printf (n 温馨提示:为保证您的操作得到保存,请按正常顺序退出系统_n ) ;do printf ( ” nnn ” ); printf ( ” ttt- - - - - -n) ;printf (” ttt+ 信息安全 092 班学生信息管理系统|n) ;printf (” ttt- - - - - - n” ) ;printf (ttt+ 1- 录入学生信息n) ;printf (ttt+ 2- 浏览学生信息n ) ;printf (” ttt+ 3 查询学生信息|

5、n); printf (ttt+ 4 -删除学生信息 n” ); printf (” ttt+ 5- 修改学生信息n);printf ( ” ttt+ 0- 退出系统n); printf (ttt+* * * * * * * *n); printf (” ttt - - - - - -n” ); printf (” 请输入您的选择:) ;scanf ( ” %d , choice); switch (choice ) case 0: writedata () ;freeall () ; exit (0); case 1: record () ; break; case 2 :displayal

6、l (); break ;case 3: query_by_num (); break; case 4 :del ( ) ;break ;case 5 :change () ; break; default :printf (” n 无效选项 !” ); break; while (choice != 0); /录入学生信息void record ()struct student *p0;p0 = (struct student *) malloc(len ) ;printf (” 请输入学生的姓名:” ) ; scanf (%s,p0 name ) ;printf (” 请输入学生的学号:”

7、 ) ; scanf ( ” %ld” , p0num) ;printf ( ” 请输入学生的性别:) ;scanf (%s,p0-sex ); printf (” 请输入学生的年龄:); scanf ( ” d” ,p0-age) ;printf (” 请输入学生的地址:) ; scanf ( ” s,p0- address) ;printf (” 请输入学生的电话:); scanf ( lf” ,&p0-tele_num); printf (” 请输入学生的爱好:” );scanf ( s,p0- aihao) ;insert (p0);printf ( ” 该学生的信息为:n”

8、);printf (- - - - - - - - - - - -n); printf (姓名 t 学号 tt 年龄 t 性别 t 地址 tt 电话 tt 爱好 n” ); display (p0); void insert (struct student stu) struct student p0, *p1 , p2;p1 = head; p0 = stu; if (head = null) head = p0 ;p0-next = null; else while ((p0num p1num) (p1-next != null) p2 = p1; p1 = p1 next; if (p0

9、num num) if (head = p1) head = p0 ;else p2next = p0 ;p0next = p1 ; else p1 next = p0 ;p0 next = null; total_num+; void display (struct student *p) printf (” st%ldt dt%st stt%.0ft%sn ” , pname, p num, p age , p- sex ,p-address, p tele_num , p-aihao); /浏览学生信息void displayall ()struct student *p;printf

10、( 学生总数: dn” , total_num ) ; p = head ;if (head != null) printf(n 姓名 t 学号 tt 年龄 t 性别 t 地址 tt 电话 tt 爱好 n” );printf(- - - - - - - - - - - - -n);do display (p); p = p next ; while(p != null); printf (n) ; /按学号查询学生信息void query_by_num () int num ;struct student p1;printf ( ” 请输入学生的学号:); scanf( ld, &nu

11、m); if(head=null)printf (无学生记录! n) ;return ;p1 = head ;while (num!=p1-num p1 next !=null )p1 = p1- next ;if (num = p1-num) printf ( ” 姓名 t 学号 tt 年龄 t 性别 t 地址 tt 电话 tt 爱好 n” ); printf (- - - - - - - - - - - n) ;display (p1 ); else printf ( ” 没有该学生记录,请核对! ” ); /写入文件void writedata ()file fp;/文件指针struct

12、 student p; fp = fopen(1.txt” , ” w);if (!fp) printf (” 文件打开错误 !); return ; fprintf (fp,dn, total_num ); for(p = head ; p!= null; p= pnext) fprintf(fp,” st%ldt%st%dtst%.0ft%sn ” , pname, p- num , psex, p-age, p address , p-tele_num , p-aihao ); fclose (fp); void freeall () struct student *p1, *p2; p

13、1 = p2=head; while ( p1) p2=p1-next ;free (p1) ;p1 = p2 ; /读取文件void readdata () file fp;/文件指针struct student p1, *p2 ;fp = fopen (1。txt, r ” ); if (!fp) printf (” 文件打开错误!); return ;fscanf (fp,” %dn, &total_num);head = p1 = p2 = (struct student *)malloc(len ); fscanf (fp,%st%ldt stdt%st%lft sn” ,

14、p1 name , p1-num, p1- sex ,&p1 age, p1 address, &p1- tele_num , p1 aihao) ;while( !feof (fp))p1 = (struct student ) malloc(len ); fscanf(fp,%st%ldt st dt st lft%sn ” ,p1name, &p1- num, p1 sex, &p1- age, p1-address, p1tele_num, p1-aihao ); p2- next = p1 ;p2 = p1 ; p2- next = null ;fcl

15、ose(fp); /删除学生信息void del ()struct student *p1, *p2; long int num ;if (head = null) printf (” 无学生记录!n);return; printf( 请输入您要删除的学生的学号:);scanf( ” %ld ” , &num ) ;p1 = head; while (num != p1 num & p1- next != null) p2 = p1 ;p1 = p1-next;if( num = p1-num) if(p1 = head )head = p1 next; else p2 nex

16、t = p1 next ;free(p1 ); total_num -; else printf ( 没有该学生记录,请核对!n” ); /修改学生信息void change () struct student p1, p2; long int num ;if (head = null)printf (无学生记录!n” ) ; return; printf ( 请输入您要修改的学生的学号:);scanf (ld” , &num); p1 = head; while (num != p1 num & p1next != null )p2 = p1 ;p1 = p1 next ;

17、if( num = p1- num)devise (p1); else printf( 没有该学生记录,请核对!n) ;void devise (struct student p)int choice ;choice = -1 ;do printf ( ” 请选择您要修改的学生的信息内容:n” );printf( ” +- - - -+n” ) ;printf( ” | 姓名请按1 |n ) ;printf ( | 学号请按2 |n) ;printf( 性别请按 3 |n ) ;printf (” | 年龄请按4 |n ” );printf ( 地址请按5 |n); printf( 电话请按

18、6 n” ); printf( 爱好请按7 n);printf (| 取消请按0 |n ); printf ( ” + - - -+n) ;printf ( ” 请输入您的选择:); scanf (d” , choice) ;switch (choice )case 0: return; case 1: printf (请输入新姓名:); scanf( ” s” , pname ) ; break ;case 2 :printf( 请输入新学号:” ) ;scanf( ” %d, pnum) ;break ;case 3 :printf (” 请输入新性别:” ) ;scanf ( ” %s, p sex ) ;break ;case 4: print

温馨提示

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

评论

0/150

提交评论