C语言代码程序运行不出

代码无法运行,哪位大神能找出错误!跪谢!

/* Note:Your choice is C IDE */
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#include <io.h>
#include <stdlib.h>
#define NULL 0
#define LEN sizeof(struct student)
#define FILE_DATA_PATH “c:\student.txt”
struct student
{ long int num;
char name[20];
int age;
char sex[4];
char birthday[10];
char address[30];
char tele_num[13];
char E_mail[20];
struct student *next;};
int 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();
void devise(struct student *p);
int main(){
char userPWD[7]; int i;
welcome();
for(i = 0; i < 3; i++) {
printf("\n密码为123\n");
printf("\n请输入您的密码:");
scanf("%s", userPWD);
if (strcmp(userPWD,“123”)0)
{ //密码正确,显示主菜单
mainmenu(); break; }
else
{ if (i < 2)
{ //用户名或密码错误,提示用户重新输入
printf(“密码错误,请重新输入!”); }
else { //连续3次输错用户名或密码,退出系统。
printf(“您已连续3次将密码输错,系统将退出!”);
} } }
return 0;}//显示欢迎信息
void welcome(){
printf("+~+\n");
printf("| |\n");
printf("| 欢迎使用学生信息管理系统 |\n");
printf("| |\n");
printf("+
~+\n");}//系统主菜单
void mainmenu(){ int choice; choice = -1;
readData();
printf("\n温馨提示:为保证您的操作得到保存,请按正常顺序退出系统_\n");
do
{ printf("\n\n\n");
printf("\t\t\t--------------------------------\n");
printf("\t\t\t+ 学生信息管理系统 |\n");
printf("\t\t\t--------------------------------\n");
printf("\t\t\t+ 1----录入学生信息 |\n");
printf("\t\t\t+ 2----浏览学生信息 |\n");
printf("\t\t\t+ 3----查询学生信息 |\n");
printf("\t\t\t+ 4----删除学生信息 |\n");
printf("\t\t\t+ 5----修改学生信息 |\n");
printf("\t\t\t+ 0----退出系统 |\n");
printf("\t\t\t--------------------------------\n");
printf(“请输入您的选择:”);
scanf("%d", &choice);
switch(choice) {
case 0: writeData(); freeAll(); exit(0);
case 1: record(); break;
case 2: displayAll(); break;
case 3: query(); 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(“请输入学生的姓名:”);
scanf("%s",p0->name);
printf(“请输入学生的年龄:”);
scanf("%d",&p0->age);
printf(“请输入学生的性别:”);
scanf("%s",p0->sex);
printf(“请输入学生的出生年月:”);
scanf("%s",p0->birthday);
printf(“请输入学生的地址:”);
scanf("%s",p0->address);
printf(“请输入学生的电话:”);
scanf("%s",p0->tele_num);
printf(“请输入学生的E-mail:”);
scanf("%s",p0->E_mail);
insert(p0);
printf(“该学生的信息为:\n”);
printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
printf(“学号\t姓名\t年龄\t性别\t出生年月\t\t地址\t电话\tE-mail\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((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 = p0; p0->next = NULL; } }
TOTAL_NUM++;}
void display(struct student *p){
printf("%ld\t%s\t%d\t%s\t%s\t%s\t%s\t%s\n", p->num, p->name, p->age, p->sex, p->birthday, p->address, p->tele_num, p->E_mail);}//浏览学生信息
void displayAll(){
struct student *p;
printf(“学生总数:%d\n”, TOTAL_NUM);
p = head;
if(head != NULL) {
printf("\n学号\t姓名\t年龄\t性别\t出生年月\t地址\t电话\tE-mail\n");
printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
do { display§; p = p->next; } while(p != NULL); } printf("\n");}//查询学生信息
void query(){ int choice;
choice = -1;
do { printf("\n");
printf(“±-------------------+\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(); break;
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!=NULL) p1=p1->next;
if(num == p1->num) {
printf("\n学号\t姓名\t年龄\t性别\t出生年月\t地址\t电话\tE-mail\n");
printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
display(p1); } else printf(“没有该学生记录,请核对!”);}//按姓名查询学生信息
void query_by_name(){ char name[20]; struct student p1; printf(“请输入学生的姓名:”);
scanf("%s", name); if(head==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-mail\n");
printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
display(p1); }
else printf(“没有该学生记录,请核对!”);}//写入文件
void writeData(){ FILE
fp;//文件指针
struct student *p;
fp = fopen(FILE_DATA_PATH, “w”);
if (!fp) { printf(“文件打开错误!”); return; }
fprintf(fp,"%d\n", TOTAL_NUM);
for(p = head; p!= NULL; p= p->next) {
fprintf(fp,"%ld\t%s\t%d\t%s\t%s\t%s\t%s\t%s\n",
p->num, p->name, p->age, p->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(“文件打开错误!”); }
fscanf(fp,"%d\n", &TOTAL_NUM);
head = p1 = p2 = (struct student *)malloc(LEN);
fscanf(fp,"%ld\t%s\t%d\t%s\t%s\t%s\t%s\t%s\n", &p1->num, p1->name, &p1->age, p1->sex, p1->birthday, p1->address, &p1->tele_num, p1->E_mail);
while(!feof(fp))
{ p1 = (struct student *)malloc(LEN);
fscanf(fp,"%ld\t%s\t%d\t%s\t%s\t%s\t%s\t%s\n", &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(){ 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(nump1->num)
{ if(p1
head)
head=p1->next;
else p2->next=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 && p1->next != NULL)
{ p2=p1; p1=p1->next; }
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("| 电话 请按 6 |\n");
printf("| E-mail 请按 7 |\n");
printf("| 取消 请按 0 |\n");
printf(“±---------------------+\n”);
printf(“请输入您的选择:”);
scanf("%d", &choice);
switch(choice) { case 0: return;
case 1: printf(“请输入新姓名:”); scanf("%s", 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(“请输入新地址:”); scanf("%s", p->address); break;
case 6: printf(“请输入新电话:”); scanf("%s", &p->tele_num); break;
case 7: printf(“请输入新E-mail:”); scanf("%s", p->E_mail); break;
default:printf("\n无效选项!"); break; } } while(choice != 0);}

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值