當前位置:首頁 » 編程語言 » c語言怎樣添加學生信息
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言怎樣添加學生信息

發布時間: 2023-05-20 03:22:28

c語言中學生信息的錄入功能

1。根據學生信息定義一個結構體類型,再說明一個該結構體類型的數組。*/
struct stu_info{
char stuNo[10];/* No */
char stuName[30];/* Name */
float stuScore[3];/* the three scores */
float aveScore; /* average score */
float totalScore; /* total score */
}stu[10];
/* 2。用input函數從鍵盤上輸入10個學生的數據。 */
void input()
{ int i = 0;
printf("Input the students' infomation(FORMAT LIKE:No Name score1 score2 score3):\n");
while(i < 10)
{ printf("Input %d:",i + 1);
scanf("%s%s%f%f%f",stu[i].stuNo,stu[i].stuName,&stu[i].stuScore[0],&stu[i].stuScore[1],&stu[i].stuScore[2]);
i++;
}
}

㈡ 求用C語言怎麼實現學生信息錄入功能

* 1。根據學生信息定義一個結構體類型,再說明一個該結構體類型的數組。*/
struct stu_info{
char stuNo[10];/* No */
char stuName[30];/* Name */
float stuScore[3];/* the three scores */
float aveScore; /* average score */
float totalScore; /* total score */
}stu[10];
/* 2。用input函數從鍵盤上輸入10個學生的數據。 */
void input()
{ int i = 0;
printf("Input the students' infomation(FORMAT LIKE:No Name score1 score2 score3):\n");
while(i < 10)
{ printf("Input %d:",i + 1);
scanf("%s%s%f%f%f",stu[i].stuNo,stu[i].stuName,&stu[i].stuScore[0],&stu[i].stuScore[1],&stu[i].stuScore[2]);
i++;
}
}

㈢ c語言程序設計學生信息管理系統中如何插入學生信息

真有點累人啊,汗~~~~~~
不過,你的要求這些代碼都能滿足了,
可能會有點小錯誤,我這兒也無法驗證,總之總體的思路是完全正確的。
#include <stdio.h>
#include <string.h> //字元串頭文件
#include <windows.h> //Sleep函數的頭文件
#include <conio.h> //getch函數的頭文件
#define N 50

//定義全局變數

//定義學員結構體
typedef struct Student
{

char name[10];//姓名
int NO;//學號
char sex[10];//性別
char subject[20];//專業
int phone;//電話
char jianli[200];//簡歷

}STU;

//聲明這種學員類型的數組
STU stu[N];
//計數器n
int n=0; //代表數組的實際人數

//登錄函數
void login()
{
system("color 2A");//定義背景和前景顏色
//登錄模塊實現代碼
char Yonghu[30];
char Mima[30];

for(int i=0;i<3;i++)
{
// 列印登陸界面
Sleep(500);//定時列印
printf("\n\n\t\t\t\t學員管理系統平台\n");

Sleep(500);

printf("\n\t\t\n");
Sleep(500);
printf("\n\t\t\t\t用戶名:");
gets(Yonghu);
printf("\n\t\t\t\t密碼:");

char let=NULL;//定義一個字元變數為空值
int j=0; //代表密碼的實際長度

while(j<10 && let!=13)//定義密碼長度和當接收的字元不為回車鍵(回車鍵的ASCLL碼值為13)時
{
let=getch();//獲得字元 不顯示

if(let!=8)//當接收的字元不為退格鍵(退格鍵的ASCLL碼值為8)時
{
Mima[j++]=let;//將接收的字元賦給數組Mima並自加一個長度
printf("*");
}
else
{
if(j>0)//當密碼長度不為0時
{
//刪除字元的操作
putchar(8);
putchar(' ');
putchar(8);
Mima[--j]=NULL;//將空值賦給數組Mima並自減一個長度
}
}
}
Mima[--j]=NULL;
putchar(8);//消除因回車鍵所列印的*
putchar(' ');
putchar(8);
putchar('\0');//字元串結束標記

//驗證密碼
if(strcmp(Yonghu,"姓名")==0 && strcmp(Mima,"123456")==0)//用比較函數判斷用戶輸入的用戶名和密碼是否正確
{
//調用dos命令清空控制台屏幕
system("cls");
printf("\n\n\n\n\n\t\t\t正在登錄菜單界面,請稍候...");
for(int i=0;i<=5;i++)
{
Sleep(666);
printf(">>>");
}

for(int i=0;i<=100;i++)
{
system("cls");
//%%為百分號
printf("\n\n\n\n\n\n\n\t\t\t\t正在載入數據中...%d%%",i);
}
system("cls");
printf("\n\n\n\n\n\n\n\t\t\t\t載入數據成功,loding.....\n");
break;//跳出for循環
}
else
{
if(i<2)//用戶輸入錯誤不超過2次
{
system("cls");
printf("\n\n\n\n\n\n\n\n\n\n");
Sleep(1000);
printf("\t:抱歉,您輸入的用戶名或密碼錯誤,請重新輸入!\n");
}
else//用戶3次輸入都錯誤時
{
system("cls");
printf("\n\n\n\n\n\n\n\n\n\n");
Sleep(1000);
printf("\t:Sorry,您輸入的用戶名或密碼錯誤次數太多,請休息一會再來!\n");break;
}
}
Sleep(2000);
//調用dos命令清空控制台屏幕
system("cls");
}
}

//菜單函數
void menu()
{
Sleep(2000);
//調用dos命令清空控制台屏幕
system("cls");

//列印功能菜單界面
Sleep(500);
printf("\n\n\t\t\t\t學員管理系統平台\n");

Sleep(500);
printf("\n\t\t************************************************\n");
Sleep(500);
printf("\n\t\t功能菜單:\n\n");
Sleep(1000);

printf("\t\t 1、錄入單個學員信息 2、顯示所有學員信息\n");

Sleep(1000);

printf("\t\t 3、排序顯示學員信息 4、插入單個學員信息\n");

Sleep(1000);

printf("\t\t 5、刪除單個學員信息 6、查找單個學員信息\n");

Sleep(1000);

printf("\t\t 7、讀取所有學員信息 8、保存所有學員信息\n");

Sleep(1000);

printf("\t\t 9、清空全部學員信息 0、退出學員管理系統\n");

}

//錄入函數
void input()
{
int i;
char answer;

do
{
//錄入學號
do
{
printf("學號:");
scanf("%d",&stu[n].NO);

// 判斷輸入格式是否有錯
while(stu[n].NO<=0 || stu[n].NO>50)
{
printf("\t:輸入格式有誤,請重新輸入!\n");
fflush(stdin); //判斷輸入其它字元(如:a,b,aa,skd...)時報錯
printf("學號:");
scanf("%d",&stu[n].NO);
}

//循環遍歷輸入的學號是否重復
for(i=0;i<n;i++)
{
if(stu[i].NO==stu[n].NO)
{
printf("\t:學號重復,請重新輸入!\n");
break;
}
}
}while(i<n);

//錄入姓名
do
{
printf("姓名:");
scanf("%s",stu[n].name);

//判斷輸入時姓名是否為空
while(strlen(stu[n].name)==0)
{
printf("\t:姓名不能為空,請重新輸入!\n");
printf("姓名:");
scanf("%s",stu[n].name);
}

// 判斷輸入時姓名是否含有數字
for(i=0;i<strlen(stu[n].name);i++)
{
if(stu[n].name[i]>='0'&&stu[n].name[i]<='9')
{
printf("提示:姓名不能含有數字,請重新輸入!\n");
break;
}
}
}while(i<strlen(stu[n].name));

//錄入性別
do
{
printf("性別");
scanf("%s",stu[n].sex);
}while(i<strlen(stu[n].sex));

//錄入專業
do
{
printf("專業");
scanf("%s",stu[n].subject);
}while(i<strlen(stu[n].subject));

//錄入聯系電話
do
{
printf("電話號碼");
scanf("%s",&stu[n].phone);
}while(i<strlen(stu[n].phone));

//錄入簡歷
do
{
printf("簡歷\n");
scanf("%s",stu[n].jianli);
}while(i<strlen(stu[n].jianli);

n++;//實際的人數自加一次

//判斷輸入成績的實際人數是否超出已定內存空間
if(n<N)
{
printf("是否繼續錄入?(y/n):");
fflush(stdin);//清空緩存
scanf("%c",&answer);
}
else
{
printf("實際人數超出已定存儲空間的內存,程序終止!\n");
break;
}
}while(answer=='Y' || answer=='y');
}

//顯示函數
void display()
{
//列印表頭
printf("********************************************************************************\n");
printf("學號\t姓名\t性別\t專業\n");
printf("********************************************************************************\n");

//循環列印學員信息
for(int i=0;i<n;i++)
{
printf("%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].NO,stu[i].name,stu[i].sex,stu[i].subject);
printf("********************************************************************************\n");
}
printf("\n聯系電話\n");
for(int i=0;i<n;i++)
{
printf("%d\n",stu[i].phone);
printf("********************************************************************************\n");
}
printf("\n學歷\n");
for(int i=0;i<n;i++)
{
printf("%s",stu[i].jianli);
printf("********************************************************************************\n");
}
}

//排序函數
void sort()
{
STU temp;//定義臨時變數
int i,j;

//冒泡排序
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(stu[j].avg<stu[j+1].avg)
{
temp=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp;
}
}
}
}

//插入函數
void insert()
{
int i,j;//定義循環變數
STU newStu;//定義實行插入功能時輸入的類型
char answer;

printf("單個學員信息的循環插入:\n");
do
{
do
{
printf("學號:");
scanf("%d",&newStu.NO);

// 判斷輸入格式是否有錯
while(newStu.NO<=0 || newStu.NO>50)
{
printf("\t:輸入格式有誤,請重新輸入!\n");
fflush(stdin); //判斷輸入其它字元(如:a,b,aa,skd...)時報錯
printf("學號:");
scanf("%d",&newStu.NO);
}

//循環遍歷輸入的學號是否重復
for(i=0;i<n;i++)
{
if(stu[i].NO==newStu.NO)
{
printf("\t:學號重復,請重新輸入!\n");
break;
}
}
}while(i<n);

do
{
printf("姓名:");
scanf("%s",&newStu.name);

//判斷輸入時姓名是否為空
while(strlen(newStu.name)==0)
{
printf("\t:姓名不能為空,請重新輸入!\n");
printf("姓名:");
scanf("%s",newStu.name);
}

// 判斷輸入時姓名是否含有數字
for(i=0;i<strlen(newStu.name);i++)
{
if(newStu.name[i]>='0' && newStu.name[i]<='9')
{
printf("提示:姓名不能含有數字,請重新正確輸入!\n");
break;
}
}
}while(i<strlen(newStu.name));

n++;//實際的人數自加一次

sort();//調用排序函數

//循環遍歷找位置
for(i=0;i<n;i++)
{
if(newStu.avg>stu[i].avg)
{
j=i;
break;
}
}

//移位
for(i=n;i>j;i--)
{
stu[i]=stu[i-1];
}

stu[j]=newStu;//將newStu插入到j的位置

//判斷插入的實際人數是否超出已定內存空間
if(n<N)
{
printf("是否繼續插入?(y/n):");
fflush(stdin);//清空緩存
scanf("%c",&answer);
}
else
{
printf("實際人數超出已定存儲空間的內存,程序終止!\n");
break;
}
}while(answer=='Y' || answer=='y');
}

//刪除函數
void remove()
{
int i,j,no;
char answer;

do
{
printf("請輸入要刪除學員的學號:");
scanf("%d",&no);

//循環遍歷找位置
for(i=0;i<n;i++)
{
if(no==stu[i].NO)
{
j=i;
break;
}
}

//移位
if(i<n)
{
for(i=j;i<n-1;i++)
{
stu[i]=stu[i+1];
}

n--;//實際人數自減一個

printf("\n\n系統在第%d個位置找到了學號為%d的學員!\n",j+1,no);
}
else
{
printf("沒有找到您要刪除的學員學號,請重新選擇功能!\n");
}

//判斷是否已經沒有可以刪除的人數
if(n>0)
{
printf("是否繼續刪除?(y/n):");
fflush(stdin);//清空緩存
scanf("%c",&answer);
}
else
{
printf("已經沒有可以刪除的人數了,程序終止!\n");
break;
}
}while(answer=='Y' || answer=='y');
}

//查找函數
void search()
{
int i,no;
char answer;
printf("請輸入您要查找學員的學號:");
scanf("%d",&no);

do
{
//循環遍歷找位置
for(i=0;i<n;i++)
{
if(stu[i].NO==no)
{
break;
}
}
if(i<n)
{
printf("\n\n系統在第%d個位置找到了學號為%d的學員!\n",i+1,no);
printf("該學員的信息如下:\n");
printf("********************************************************************************\n");
printf("學號\t姓名\t成績一\t成績二\t成績三\t平均分\t總分\n");
printf("********************************************************************************\n");
printf("%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].NO,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].avg,stu[i].sum);
printf("********************************************************************************\n");
}
else
{
printf("\n提示:對不起,沒有找到學號為%d的學員\n",no);
}

//判斷是否繼續查詢
printf("是否繼續查詢?(y/n):");
fflush(stdin);//清空緩存
scanf("%c",&answer);
}while(answer=='Y' || answer=='y');
}

//讀取函數
int read()
{
FILE *fp;//定義文件指針變數
fp=fopen("e:\\xueyuanguanlixitong.txt","rt");
int n=fread(stu,sizeof(STU),N,fp);
return n;

}

//保存函數
void save()
{
FILE *fp;//定義文件指針變數
fp=fopen("e:\\xueyuanguanlixitong.txt","wb");
fwrite(stu,sizeof(STU),n,fp);
fclose(fp);
printf("已保存在:e:\\xueyuanguanlixitong.txt\n");
printf("\n\n\n\n\n\t\t\t\t保存成功!O(∩_∩)O~\n");
}

//主函數
void main()
{
login();//調用登錄函數
int choice,i;//定義用戶選擇變數

do
{
//顯示菜單
menu();
printf("\n\t請選擇:");
scanf("%d",&choice); //接受用戶選擇

switch(choice)
{
case 1:
system("cls"); //清屏
printf("\n單個學員信息的循環錄入\n");
input();
display();
system("pause");
break;

case 2:
system("cls");
display();
system("pause"); //暫停一下程序
break;

case 3:
system("cls");

if(n==0)
{
printf("\t\t學員個數為0,無法排序,請先錄入!\n");
system("pause");
break;
}
else
{
sort(); ;//調用排序函數
system("pause");
break;
}

case 4:
system("cls");
insert(); //調用插入函數
system("pause");
break;

case 5:
system("cls");
remove(); //調用刪除函數
system("pause");
break;
case 6:
system("cls");
search(); //調用查找函數
system("pause");
break;

case 7:
system("cls");
n=read(); //調用讀取函數
printf("讀取成功!\n");
system("pause");
break;

case 8:
system("cls");
save(); //調用保存函數
system("pause");
break;

case 9:
system("cls");
n=0; //清空學員個數
printf("清空完成!\n");
system("pause");
break;

case 0: //退出程序
system("cls");

for(i=5;i>=0;i--)
{
Sleep(1000);
system("cls");
printf("\n\n\n\n\n\n\n\n\n\n\n\n\t\t請稍等,還有%d秒推出程序!\n\n\n",i);
}
system("cls");
printf("\n\n\n\n\n\n你已經成功退出程序\n\t\t謝謝使用,歡迎再次登錄!\n");
exit(0);
break;

default:
system("cls");
printf("\n\n\n\n\n\t\t請選擇0-9之間的數!\n");
system("pause");
}
}while(1);
}

㈣ 如何用c語言添加學生信息

構造一個關於學生信息的數據類型
如:
struct studengt_type
{
int number; //學號
char *name; //姓名
char sex; //性別
int score; // 入學成績
}

㈤ c語言怎麼編寫學生信息

#include "stdio.h"
#include <stdlib.h>
#define SIZE 10

struct student{
char id[20];
char sex[10];
int age;
int score[3];
float average;
} stud[SIZE];

void input() /* 輸入學生的信息 */
{
int i;

for(i=0;i<SIZE;i++)
{
printf("第%d個學生的信息:\n",i+1);
scanf("%s%s%d%d%d%d",stud[i].id,stud[i].sex,&stud[i].age,&stud[i].score[0],&stud[i].score[1],&stud[i].score[2]);
stud[i].average=(stud[i].score[0]+stud[i].score[1]+stud[i].score[2])/3.0;
}
}

void output() /* 輸出學生的信息 */
{
int i;

printf("\n");
for(i=0;i<SIZE;i++)
printf("%s %s %d %d %d %d %3.1f\n",stud[i].id,stud[i].sex,stud[i].age,stud[i].score[0],stud[i].score[1],stud[i].score[2],stud[i].average);
}

void sortput() /* 排序輸出學生信息 */
{
int i,j;
struct student temp;

for(i=0;i<SIZE;i++)
{
for(j=0;j<SIZE-i-1;j++)
{
if(stud[j].average<stud[j+1].average)
{
temp=stud[j];
stud[j]=stud[j+1];
stud[j+1]=temp;
}
}
}
printf("\n");
for(i=0;i<SIZE;i++)
printf("%s %s %d %d %d %d %3.1f\n",stud[i].id,stud[i].sex,stud[i].age,stud[i].score[0],stud[i].score[1],stud[i].score[2],stud[i].average);
}

void main()
{
input();
output();
sortput();
}

㈥ c語言用鏈表添加學生信息

#include<stdio.h>
#include<string.h>
#include"stdlib.h"
#defineLENsizeof(structstu)
structstu
{
longnum;
charname[20];
charsex;
intage;
charaddr[30];
structstu*next;
};
intmain()
{
intn;
structstu*head;
structstu*p1,*p2;
head=(structstu*)malloc(LEN);
head->next=NULL;
p1=head;
p2=(structstu*)malloc(LEN);
p2->next=NULL;
printf("學號 姓名 性別 年齡 住址 ");
scanf("%ld, %s, %c, %d, %s",&p2->num,&p2->name,&p2->sex,&p2->age,&p2->addr);
while(p2->num!=0)
{
p1->next=p2;
p1=p2;
fflush(stdin);
p2=(structstu*)malloc(LEN);
printf("學號 姓名 性別 年齡 住址 ");
scanf("%ld,%s,%c,%d,%s",&p2->num,&p2->name,&p2->sex,&p2->age,&p2->addr);
}
}

純手打,希望採納。

㈦ c語言學生管理系統中的增加學生信息

#include<iostream.h>
#include<iomanip.h>
#include<windows.h>
#include <conio.h>
void back();//返回開始菜單
void out();//輸出信息
int w=1; //用於記錄學生人數,全局變數

class Data//日期類
{public:
double Year,Month,Day;
Data()
{ Year=0;Month=0;Day=0; }
};

class student //學生類
{
public:
char name[10]; //姓名
char sex[5]; //性別
char jiguan[10]; //籍貫
int num,age;//學號,年齡
char adr[30];//住址
Data year;
friend class Data;//date作為student的友元 //定義一個日期類
void operator=(student s); //=重載
int operator == (student s);//==重載
}stu[100];

void main()
{
system("cls");//清屏 DOC調用
system("color f4"); //顏色 同樣是調用doc
int i;
void comp();
void input();
void find();
void alt() ;
void del();
void exit();
void show();

cout<<setw(53)<<"歡迎進入學生管理系統!"<<endl;
cout<<setw(55)<<"1 添加學生信息 2 查詢學生信息"<<endl<<endl;
cout<<setw(55)<<"3 刪除學生信息 4 修改學生信息"<<endl<<endl;
cout<<setw(55)<<"5 比較學生信息 6 顯示學生信息"<<endl<<endl;
cout<<setw(45)<<"0 推出系統"<<endl;

cout<<"請選擇:";
cin>>i;
if(i>6||i<0)
{
cout<<"輸入有誤!"<<endl;
back();
}
switch(i)
{
case 1:input();break;
case 2:find();break;
case 3:del();break;
case 4:alt();break;
case 5:comp();break;
case 6:show();break;
case 0:exit();break;
default:cout<<"你的輸入有誤!\n";
}
}

void input() //添加學生
{
system("color 84"); //顏色 同樣是調用doc
system("cls");//清屏
int n;
cout<<"請輸入要添加的學生個數:\n";
cin>>n;
if(n>=100||n<=0)
{cout<<"輸入有誤!<<endl";
main(); }

else
{
for(;n>0;w++,n--)
{
cout<<"請輸入姓名、性別、籍貫,年齡,學號,住址:"<<endl;
cin>>stu[w].name>>stu[w].sex>>stu[w].jiguan>>stu[w].age >>stu[w].num>>stu[w].adr ;
cout<<"請輸入該生生日(年 月 日)"<<endl;
cin>>stu[w].year.Year;
cin>>stu[w].year.Month;
cin>>stu[w].year.Day;
}

out();
}
cout<<"添加完畢2秒後返回"<<endl;
Sleep(2000); //延時2秒
main();
}

void find() //按學號查找學生
{
system("color f4"); //顏色 同樣是調用doc
system("cls");
int i,id,j=0;//j是用以記錄是否有信息被找到
cout<<"請輸入你要查找學生的學號:";
cin>>id;
for(i=1;i<w;i++)
if(stu[i].num ==id)
{
cout<<i<<" "<<stu[i].name<<" "<<stu[i].sex<<" "<<stu[i].jiguan<<" "<<stu[i].age<<" "<<stu[i].num<<" "<<stu[i].year.Year<<" "<<stu[i].year.Month<<" "<<stu[i].year.Day<<stu[i].adr<<endl;
j++;
}
if(j==0)
cout<<"沒有你要查找的信息";
back();
}

void del()//刪除指定學號學生信息
{
system("color f4"); //顏色 同樣是調用doc
int i,a,y=0;
char x;
cout<<"請輸入要刪除的學生學號";
cin>>a;
for(i=1;i<w;i++)
if(stu[i].num==a)
{
cout<<"該生情況:"<<endl;
cout<<i<<" "<<stu[i].name<<" "<<stu[i].sex<<" "<<stu[i].jiguan<<" "<<stu[i].age<<" "<<stu[i].num<<" "<<stu[i].year.Year<<" "<<stu[i].year.Month<<" "<<stu[i].year.Day<<" "<<stu[i].adr<<endl;
cout<<"是否確認刪除?(Y/N)"<<endl;
cin>>x;
if(x=='Y'||x=='y')
{
y++;
for(;i<w-1;i++)
stu[i]=stu[i+1];
w--;//每刪除一個對總是減少一個
}
}

㈧ C語言學生管理系統如何添加多項學生信息

可以用while循環實現的:
while(1){
//輸入學生的姓名
if(strcmp(stu.name,"0") == 0) //如果姓名為「0」則退出循環體
break;
//輸入學生的其他屬性信息
....
//換行
}
希望對你有幫助吧。

㈨ 學生信息錄入模塊C語言

/*主程序功能模塊—-文件名:student.c*/
#define MAX_BAR 4 /*最大菜單數,可以自定*/
#include"io.h"
#include"dos.h"
#include"fcntl.h"
#include"stdio.h"
#include"stdlib.h"
#include"math.h"
#include"graphics.h"
#include"chi_asc.c" /*調用圖形模式下漢字、字元共顯功能*/
#include"public.c" /*按鍵定義功能*/
#include"mypcx.c" /*封面圖象調用滾談功能,此處為pcx圖象*/
#include"stu_frame.c" /*框架繪制功能*/
#include"stu_sub.c"巧春 /*各子菜單功能*/
main()
{
/*old_bar、curr_bar表示上次選中的菜單、當前選中的菜單*/
/*old_sonbar curr_sonbar表示上次選中的子菜單、當前選中的子菜孝備耐單*/
int i,key,key_son,old_bar,curr_bar,curr_sonbar,old_sonbar,size;
int save_startx,save_starty,save_endx,save_endy,sonbar_out=0;
void *buf;
int Driver,Mode;
char *pcx;
struct student_bar{
int start_x,start_y; /*起始橫坐標,起始縱坐標*/
int length_x,length_y; /*菜單的長,菜單的寬*/
int num_son; /*包含子菜單的個數*/
char *p_father; /*菜單項名,*p_son[5]為子菜單名*/
char *p_son[5];}stu_bar[MAX_BAR]={
{10,45,120,25,4,"File Operation",{" Open file"," New file"," Save file","Exit system"}},
{130,45,120,25,3,"Data Edition",{" Add object","Delete object","Modify object"}},
{250,45,120,25,0,"File Print",{""}},
{370,45,120,25,0,"Help Message",{""}}
};/*定義各功能菜單的結構體*/

pcx="stusys4.pcx";
Set_Video_Mode(VGA256); /*轉換屏幕到320*200*256色*/
PCX_Load_Screen(pcx,1); /*讀取封面圖象stusys4.pcx*/

Driver=DETECT,Mode=0;
initgraph(&Driver,&Mode,""); /*設置圖象模式*/
cleardevice();
main_frame(BLUE,LIGHTGRAY); /*繪制主框架圖,底色為藍色*/
/*繪制菜單*/
for(i=0;i<MAX_BAR;i++)
{
setcolor(BLUE);
rectangle(stu_bar[i].start_x, stu_bar[i].start_y, stu_bar[i].start_x+stu_bar[i].length_x, stu_bar[i].start_y+stu_bar[i].length_y);
puthz16(stu_bar[i].start_x+8,stu_bar[i].start_y+5,-8,BLUE,stu_bar[i].p_father);
}puthz16(stu_bar[0].start_x+8,stu_bar[0].start_y+5,-8,WHITE,stu_bar[0].p_father);
old_bar=0;curr_bar=0;

/*讀取按鍵字元,如為ESC則退出*/
while((key=specialkey())!=ESC){
old_bar=curr_bar;
if(sonbar_out==1)sonbar_out=0;
if(key==LEFT){
if(curr_bar==0)curr_bar=3;
else curr_bar=curr_bar-1;
}/*LEFT finished*/
if(key==RIGHT){
if(curr_bar==3)curr_bar=0;
else curr_bar=curr_bar+1;
}/*RIGHT finished*/
/*如按鍵為ENTER,則繪制子菜單*/
if(key==ENTER){
save_startx=stu_bar[curr_bar].start_x;
save_starty=stu_bar[curr_bar].start_y+stu_bar[curr_bar].length_y+1;
save_endx=stu_bar[curr_bar].start_x+stu_bar[curr_bar].length_x;
/*保存子菜單展開後掩蓋住的圖象*/ save_endy=stu_bar[curr_bar].start_y+stu_bar[curr_bar].length_y+stu_bar[curr_bar].num_son*stu_bar[curr_bar].length_y+1;
size=imagesize(save_startx,save_starty,save_endx,save_endy);

if(size!=-1)
{
buf=malloc(size);
if(buf)getimage(save_startx,save_starty,save_endx,save_endy,buf);
else {printf("OUT MEMORY");exit(0);}
}
setviewport(save_startx,save_starty,save_endx,save_endy,1);
setcolor(WHITE);
clearviewport();
for(i=1;i<=stu_bar[curr_bar].num_son;i++)
{
rectangle(0,0,stu_bar[curr_bar].length_x,i*stu_bar[curr_bar].length_y);
setfillstyle(SOLID_FILL,LIGHTGRAY);
floodfill(stu_bar[curr_bar].length_x-1,i*stu_bar[curr_bar].length_y-1,WHITE);
}
for(i=0;i<stu_bar[curr_bar].num_son;i++)
puthz16(8,i*stu_bar[curr_bar].length_y+5,-8,BLUE,stu_bar[curr_bar].p_son[i]);

puthz16(8,5,-8,WHITE,stu_bar[curr_bar].p_son[0]);
old_sonbar=0;curr_sonbar=0;

if(stu_bar[curr_bar].num_son)
while(((key_son=specialkey())!=ESC)&&sonbar_out==0){
old_sonbar=curr_sonbar;
if(key_son==UP){
if(curr_sonbar==0) curr_sonbar=stu_bar[curr_bar].num_son-1;
else curr_sonbar=curr_sonbar-1;
}

if(key_son==DOWN){
if(curr_sonbar==(stu_bar[curr_bar].num_son-1)) curr_sonbar=0;
else curr_sonbar=curr_sonbar+1;
}

puthz16(8,old_sonbar*stu_bar[curr_bar].length_y+5,-8,BLUE,stu_bar[curr_bar].p_son[old_sonbar]);
puthz16(8,curr_sonbar*stu_bar[curr_bar].length_y+5,-8,WHITE,stu_bar[curr_bar].p_son[curr_sonbar]);

if(key_son==ENTER){
setviewport(0,0,639,479,1);
putimage(save_startx,save_starty,buf,COPY_PUT);
free(buf);
sonbar_out=1;
if(curr_bar==0)
switch(curr_sonbar){
case 0:
fil_open(); /*調用stu_sub.c文件中fil_open()函數,打開文件*/
break;
case 1:
fil_new(); /*調用stu_sub.c文件中fil_new()函數,新建文件*/
break;
case 2:
fil_save(); /*調用stu_sub.c文件中fil_save()函數,保存文件*/
break;
case 3:
sys_exit(); /*調用stu_sub.c文件中sys_exit()函數,退出系統*/

}
if(curr_bar==1)
switch(curr_sonbar){
case 0:
dat_add(); /*調用stu_sub.c文件中dat_add()函數,添加記錄*/
break;
case 1:
dat_dele(); /*調用stu_sub.c文件中dat_dele()函數,刪除記錄*/
break;
case 2:
dat_mod(); /*調用stu_sub.c文件中dat_mod()函數,修改記錄*/
break;
}

} /*key_son=ENTER finished*/

}/*key_son all finished*/
if(sonbar_out==0){
setviewport(0,0,639,479,1);
putimage(save_startx,save_starty,buf,COPY_PUT);
free(buf); /*還原子菜單掩蓋住的圖象,並釋放子菜單所佔用的內存*/
}
/*如果子菜單項為0*/
if(!stu_bar[curr_bar].num_son){
if(curr_bar==2)
fil_prn(); /*調用stu_sub.c文件中fil_prn()函數,列印文件*/
if(curr_bar==3)
hel_mess(); /*調用stu_sub.c文件中hel_mess()函數,顯示幫助信息*/
}
} /*ENTER finished*/
puthz16(stu_bar[old_bar].start_x+8,stu_bar[old_bar].start_y+5,-8,BLUE,stu_bar[old_bar].p_father);
puthz16(stu_bar[curr_bar].start_x+8,stu_bar[curr_bar].start_y+5,-8,WHITE,stu_bar[curr_bar].p_father);

}/*key all finished*/

fcloseall(); /*關閉所有文件*/
closegraph(); /*關閉圖形狀態*/
}
自己改改!!!
希望能解決您的問題。

㈩ C語言輸入學生信息

scanf裡面的空格與/去掉