学籍管理系统代码(可运行)_第1页
学籍管理系统代码(可运行)_第2页
学籍管理系统代码(可运行)_第3页
学籍管理系统代码(可运行)_第4页
学籍管理系统代码(可运行)_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上#include <stdio.h>#include <>#include <>#include <io.h>#define NULL 0#define LEN sizeof(struct student)#define FILE_DATA_PATH "c:student.txt" struct student long int num; char name20; int age; char sex4; char birthday10; char address30; long int tele_nu

2、m; char E_mail20; struct student *next;int TOTAL_NUM = 0;struct student *head = NULL;void welcome();void ();void record();void insert(struct student *stu);void display(struct student *stu);void displayAll();void query();void query_by_num();void query_by_name();void readData();void writeData();void f

3、reeAll();void del();void change();void (struct student *p);int main() char userName9; char userPWD7; int i; welcome(); for(i = 0; i < 3; i+) printf("n管理员初始用户名和密码均为adminn"); printf("请输入您的用户名:"); scanf("%s", userName); printf("n请输入您的密码:"); scanf("%s"

4、;, userPWD); if (userName,"admin")=0) && (userPWD,"admin")=0) /用户名和密码正确,显示主菜单 (); break; else if (i < 2) /用户名或密码错误,提示用户重新输入 printf("用户名或密码错误,请重新输入!"); else /连续3次输错用户名或密码,退出系统。 printf("您已连续3次将用户名或密码输错,系统将退出!"); return 0;/显示欢迎信息void welcome() printf(&

5、quot;+-+n"); printf("| |n"); printf("| 欢迎使用 |n"); printf("| |n"); printf("+-+n");/系统主菜单void () int choice; choice = -1; readData(); printf("n温馨提示:为保证您的操作得到保存,请按正常顺序退出系统_n"); do printf("nnn"); printf("ttt-n"); printf("ttt

6、+ |n"); printf("ttt-n"); printf("ttt+ 1-录入学生信息 |n"); printf("ttt+ 2-浏览学生信息 |n"); printf("ttt+ 3-查询学生信息 |n"); printf("ttt+ 4-删除学生信息 |n"); printf("ttt+ 5-修改学生信息 |n"); printf("ttt+ 0-退出系统 |n"); printf("ttt+*·*·*&#

7、183;*·*·*·*·*·*·*·|n"); printf("ttt-n"); printf("请输入您的选择:"); scanf("%d", &choice); (choice) case 0: writeData(); freeAll(); exit(0); case 1: record(); break; case 2: displayAll(); break; case 3: query(); break; case 4: del();

8、break; case 5: change(); break; default: printf("n无效选项!"); break; while(choice != 0);/录入学生信息void record() struct student *p0; p0 = (struct student *)(LEN); printf("请输入学生的:"); scanf("%ld",&p0->num); printf("请输入学生的姓名:"); scanf("%s",p0->name);

9、 printf("请输入学生的年龄:"); scanf("%d",&p0->age); printf("请输入学生的性别:"); scanf("%s",p0->sex); printf("请输入学生的出生年月:"); scanf("%s",p0->birthday); printf("请输入学生的地址:"); scanf("%s",p0->address); printf("请输入学生的电话:&

10、quot;); scanf("%ld",&p0->tele_num); printf("请输入学生的E-mail:"); scanf("%s",p0->E_mail); insert(p0); printf("该学生的信息为:n"); printf("-"); printf("t姓名t年龄t性别t出生年月tt地址t电话tE-mailn"); display(p0);void insert(struct student *stu) struct studen

11、t *p0, *p1, *p2; p1 = head; p0 = stu; if(head = NULL) head = p0; p0->next = NULL; else while(p0->num > p1->num)&&(p1->next != NULL) p2 = p1; p1 = p1->next; if(p0->num <= p1->num) if(head = p1) head = p0; else p2->next = p0; p0->next = p1; else p1->next = p

12、0; p0->next = NULL; TOTAL_NUM+;void display(struct student *p) printf("%ldt%st%dt%st%st%st%ldt%sn", p->num, p->name, p->age, p->sex, p->birthday, p->address, p->tele_num, p->E_mail);/浏览学生信息void displayAll() struct student *p; printf("学生总数:%dn", TOTAL_NU

13、M); p = head; if(head != NULL) printf("nt姓名t年龄t性别t出生年月t地址t电话tE-mailn"); printf("-"); do display(p); p = p->next; while(p != NULL); printf("n");/查询学生信息void query() int choice; choice = -1; do printf("n"); printf("+-+n"); printf("| 按学号查询 请按 1 |

14、n"); printf("| 按姓名查询 请按 2 |n"); printf("| 取消 请按 0 |n"); printf("+-+n"); printf("请输入您的选择:"); scanf("%d", &choice); (choice) case 0: return; case 1: query_by_num(); break; case 2: query_by_name(); break; default: printf("n无效选项!"); br

15、eak; while(choice != 0);/按学号查询学生信息void query_by_num() int num; struct student *p1; printf("请输入学生的学号:"); scanf("%ld", &num); if(head=NULL) printf("无学生记录!n"); return; p1=head; while(num!=p1->num && p1->next!=NULL) p1=p1->next; if(num = p1->num) pri

16、ntf("n学号t姓名t年龄t性别t出生年月t地址t电话tE-mailn"); printf("-"); display(p1); else printf("没有该学生记录,请核对!");/按姓名查询学生信息void query_by_name() char name20; struct student *p1; printf("请输入学生的姓名:"); scanf("%s", name); if(head=NULL) printf("无学生记录!n"); return; p

17、1=head; while(name, p1->name) && p1->next!=NULL) p1=p1->next; if(!strcmp(name, p1->name) printf("n学号t姓名t年龄t性别t出生年月t地址t电话tE-mailn"); printf("-"); display(p1); else printf("没有该学生记录,请核对!");/写入文件void writeData() FILE* fp;/ struct student *p; fp = (FILE_D

18、ATA_PATH, "w"); if (!fp) printf("文件打开错误!"); return; (fp,"%dn", TOTAL_NUM); for(p = head; p!= NULL; p= p->next) (fp,"%ldt%st%dt%st%st%st%ldt%sn", p->num, p->name, p->age, p->sex, p->birthday, p->address, p->tele_num, p->E_mail); (fp);

19、 void freeAll() struct student *p1, *p2; p1=p2=head; while(p1) p2=p1->next; free(p1); p1=p2; /读取文件void readData() FILE* fp;/ struct student *p1, *p2; fp = (FILE_DATA_PATH, "r"); if (!fp) printf("文件打开错误!"); return 0; (fp,"%dn", &TOTAL_NUM); head = p1 = p2 = (struc

20、t student *)(LEN); (fp,"%ldt%st%dt%st%st%st%ldt%sn", &p1->num, p1->name, &p1->age, p1->sex, p1->birthday, p1->address, &p1->tele_num, p1->E_mail); while(!feof(fp) p1 = (struct student *)(LEN); (fp,"%ldt%st%dt%st%st%st%ldt%sn", &p1->num,

21、p1->name, &p1->age, p1->sex, p1->birthday, p1->address, &p1->tele_num, p1->E_mail); p2->next = p1; p2 = p1; p2->next = NULL; (fp);/删除学生信息void del() struct student *p1, *p2; long int num; if(head = NULL) printf("无学生记录!n"); return; printf("请输入您要删除的学生的学

22、号:"); 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->next = p1->next; free(p1); TOTAL_NUM-; else printf("没有该学生记录,请核对!n");/修改学生信息void c

23、hange() 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) (p1); else prin

24、tf("没有该学生记录,请核对!n");void (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("|

25、 地址 请按 5 |n"); printf("| 电话 请按 6 |n"); printf("| E-mail 请按 7 |n"); printf("| 取消 请按 0 |n"); printf("+-+n"); printf("请输入您的选择:"); scanf("%d", &choice); (choice) case 0: return; case 1: printf("请输入新姓名:"); scanf("%s"

26、, p->name); break; case 2: printf("请输入新年龄:"); scanf("%d", &p->age); break; case 3: printf("请输入新性别:"); scanf("%s", p->sex); break; case 4: printf("请输入新出生年月:"); scanf("%s", p->birthday); break; case 5: printf("请输入址:"

27、); scanf("%s", p->address); break; case 6: printf("请输入新电话:"); scanf("%ld", &p->tele_num); break; case 7: printf("请输入新E-mail:"); scanf("%s", p->E_mail); break; default: #include <stdio.h>#include <malloc.h>#include <string.

28、h>#include <stdlib.h>#include <io.h>#define NULL 0#define LEN sizeof(struct student)#define FILE_DATA_PATH "c:student.txt" struct student long int num; char name20; int age; char sex4; char birthday10; char address30; long int tele_num; char E_mail20; struct student *next;in

29、t TOTAL_NUM = 0;struct student *head = NULL;void welcome();void mainmenu();void record();void insert(struct student *stu);void display(struct student *stu);void displayAll();void query();void query_by_num();void query_by_name();void readData();void writeData();void freeAll();void del();void change()

30、;void devise(struct student *p);int main() char userName9; char userPWD7; int i; welcome(); for(i = 0; i < 3; i+) printf("n管理员初始用户名和密码均为adminn"); printf("请输入您的用户名:"); scanf("%s", userName); printf("n请输入您的密码:"); scanf("%s", userPWD); if (strcmp(use

31、rName,"admin")=0) && (strcmp(userPWD,"admin")=0) /用户名和密码正确,显示主菜单 mainmenu(); break; else if (i < 2) /用户名或密码错误,提示用户重新输入 printf("用户名或密码错误,请重新输入!"); else /连续3次输错用户名或密码,退出系统。 printf("您已连续3次将用户名或密码输错,系统将退出!"); return 0;/显示欢迎信息void welcome() printf("

32、+-+n"); printf("| |n"); printf("| 欢迎使用学生信息管理系统 |n"); printf("| |n"); printf("+-+n");/系统主菜单void mainmenu() int choice; choice = -1; readData(); printf("n温馨提示:为保证您的操作得到保存,请按正常顺序退出系统_n"); do printf("nnn"); printf("ttt-n"); print

33、f("ttt+ 学生信息管理系统 |n"); printf("ttt-n"); printf("ttt+ 1-录入学生信息 |n"); printf("ttt+ 2-浏览学生信息 |n"); printf("ttt+ 3-查询学生信息 |n"); printf("ttt+ 4-删除学生信息 |n"); printf("ttt+ 5-修改学生信息 |n"); printf("ttt+ 0-退出系统 |n"); printf("t

34、tt+*·*·*·*·*·*·*·*·*·*·|n"); printf("ttt-n"); printf("请输入您的选择:"); scanf("%d", &choice); switch(choice) case 0: writeData(); freeAll(); exit(0); case 1: record(); break; case 2: displayAll(); break; case 3: query

35、(); 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("%ld",&p0->num); printf("请输入学生的姓名:");

36、scanf("%s",p0->name); printf("请输入学生的年龄:"); scanf("%d",&p0->age); printf("请输入学生的性别:"); scanf("%s",p0->sex); printf("请输入学生的出生年月:"); scanf("%s",p0->birthday); printf("请输入学生的地址:"); scanf("%s",p0->

37、;address); printf("请输入学生的电话:"); scanf("%ld",&p0->tele_num); printf("请输入学生的E-mail:"); scanf("%s",p0->E_mail); insert(p0); printf("该学生的信息为:n"); printf("-"); printf("学号t姓名t年龄t性别t出生年月tt地址t电话tE-mailn"); display(p0);void inser

38、t(struct student *stu) struct student *p0, *p1, *p2; p1 = head; p0 = stu; if(head = NULL) head = p0; p0->next = NULL; else while(p0->num > p1->num)&&(p1->next != NULL) p2 = p1; p1 = p1->next; if(p0->num <= p1->num) if(head = p1) head = p0; else p2->next = p0; p0

39、->next = p1; else p1->next = p0; p0->next = NULL; TOTAL_NUM+;void display(struct student *p) printf("%ldt%st%dt%st%st%st%ldt%sn", p->num, p->name, p->age, p->sex, p->birthday, p->address, p->tele_num, p->E_mail);/浏览学生信息void displayAll() struct student *p; p

40、rintf("学生总数:%dn", TOTAL_NUM); p = head; if(head != NULL) printf("n学号t姓名t年龄t性别t出生年月t地址t电话tE-mailn"); printf("-"); do display(p); p = p->next; while(p != NULL); printf("n");/查询学生信息void query() int choice; choice = -1; do printf("n"); printf("+-

41、+n"); printf("| 按学号查询 请按 1 |n"); printf("| 按姓名查询 请按 2 |n"); printf("| 取消 请按 0 |n"); printf("+-+n"); printf("请输入您的选择:"); scanf("%d", &choice); switch(choice) case 0: return; case 1: query_by_num(); break; case 2: query_by_name(); br

42、eak; default: printf("n无效选项!"); break; while(choice != 0);/按学号查询学生信息void query_by_num() int num; struct student *p1; printf("请输入学生的学号:"); scanf("%ld", &num); if(head=NULL) printf("无学生记录!n"); return; p1=head; while(num!=p1->num && p1->next!=NU

43、LL) p1=p1->next; if(num = p1->num) printf("n学号t姓名t年龄t性别t出生年月t地址t电话tE-mailn"); printf("-"); display(p1); else printf("没有该学生记录,请核对!");/按姓名查询学生信息void query_by_name() char name20; struct student *p1; printf("请输入学生的姓名:"); scanf("%s", name); if(head=

44、NULL) printf("无学生记录!n"); return; p1=head; while(strcmp(name, p1->name) && p1->next!=NULL) p1=p1->next; if(!strcmp(name, p1->name) printf("n学号t姓名t年龄t性别t出生年月t地址t电话tE-mailn"); printf("-"); display(p1); else printf("没有该学生记录,请核对!");/写入文件void wri

45、teData() FILE* fp;/文件指针 struct student *p; fp = fopen(FILE_DATA_PATH, "w"); if (!fp) printf("文件打开错误!"); return; fprintf(fp,"%dn", TOTAL_NUM); for(p = head; p!= NULL; p= p->next) fprintf(fp,"%ldt%st%dt%st%st%st%ldt%sn", p->num, p->name, p->age, p-&g

46、t;sex, p->birthday, p->address, p->tele_num, p->E_mail); fclose(fp); void freeAll() struct student *p1, *p2; p1=p2=head; while(p1) p2=p1->next; free(p1); p1=p2; /读取文件void readData() FILE* fp;/文件指针 struct student *p1, *p2; fp = fopen(FILE_DATA_PATH, "r"); if (!fp) printf(&quo

47、t;文件打开错误!"); fscanf(fp,"%dn", &TOTAL_NUM); head = p1 = p2 = (struct student *)malloc(LEN); fscanf(fp,"%ldt%st%dt%st%st%st%ldt%sn", &p1->num, p1->name, &p1->age, p1->sex, p1->birthday, p1->address, &p1->tele_num, p1->E_mail); while(!feo

48、f(fp) p1 = (struct student *)malloc(LEN); fscanf(fp,"%ldt%st%dt%st%st%st%ldt%sn", &p1->num, p1->name, &p1->age, p1->sex, p1->birthday, p1->address, &p1->tele_num, p1->E_mail); p2->next = p1; p2 = p1; p2->next = NULL; fclose(fp);/删除学生信息void del() st

49、ruct 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->next = p1->next; free

温馨提示

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

最新文档

评论

0/150

提交评论