㈠ 一個系統的(登錄頁面)的c語言程序是
用C做登陸界面 一般要求不高 不需要圖形化
直接用printf列印出一些提示信息就可以了
比如
printf("歡迎使用xxxx系統 ");
printf("請選擇要執行的功能 ");
printf("1xxxx ");
printf("2yyyy ");
printf("3zzzz ");
,,,,,,
這樣的。
㈡ 用C語言編寫學生管理系統界面
已經在VC6.0上運行確認:
#include<stdio.h>
#include<malloc.h>
#include<conio.h>
#include<string.h>
typedef struct STUDENT
{
char studentNumber[20];/*學生學號*/
char studentName[20];/*學生姓名*/
char className[20];/*班級名稱*/
float mark1;/*第1門成績*/
float mark2;/*第2門成績*/
float mark3;/*第3門成績*/
struct STUDENT *next;
}STUDENT;
STUDENT *headLink; /*鏈表表頭指針*/
/*函數聲明*/
void ReadInfoFormFile();
void Menu();
void CreateHeadLink();
STUDENT *MallocNode();
void GetInformation(STUDENT *t);
void OutputInformation();
void DesplayInfoBystudentName();
void DesplayInfoBystudentNumber();
void DesplayOneNode(STUDENT *t);
void InsertOneNode(STUDENT *t);
void DeleteNodeBystudentNumber();
void ChangeMarkByName();
void ChangeMarkByNumber();
void SaveLinkToFile();
void paixu();
void DesplayMarkSegment();
int choose;/*用於接受用戶的選擇*/
/*主函數*/
void main()
{
printf("\n\t\t\t歡迎進入學生成績管理系統\n\n\n");
printf("\t\t\t\tO(∩_∩)O\n\n\n\n");
printf("\t\t\t^_^\t\t\t^_^\n\n");
printf("\n\t\t 注意:請按照要求輸入相應信息,謝謝!\n\n\n\n\n");
printf("\t\t\t 按任意鍵進入…………");
getch();
CreateHeadLink();
ReadInfoFormFile();
Menu();
}
/*從文件中讀學生信息到鏈表中*/
void ReadInfoFormFile(void)
{
FILE *fp;
STUDENT *p;
fp=fopen("student.txt","r");
if(!fp)
{
printf("\n");
return;
}
p=MallocNode();
while(fscanf(fp,"%s%s%s%f%f%f",p->studentNumber,p->studentName,p->className,&(p->mark1),&(p->mark2),&(p->mark3))>0)
{
InsertOneNode(p);
p=MallocNode();
}
fclose(fp);
}
/*顯示菜單,根據用戶的輸入完成相應的功能*/
void Menu(void)
{
STUDENT *p;
printf("\t\t (^o^)歡迎使用學生成績管理系統(^o^)\n\n");
printf("\t ※--------------------請選擇相應功能---------------------※\n\n");
printf("\t 1: 顯示所有學生的信息 |");
printf(" \t 2: 按姓名查詢 |\n\n");
printf("\t 3: 按學號查詢 |");
printf(" \t\t 4: 增加學生 |\n\n");
printf("\t 5: 刪除學生 |");
printf(" \t\t 6: 按姓名修改學生成績 |\n\n");
printf("\t 7: 按學號修改學生成績 |");
printf(" \t 8: 保存所有學生信息 |\n\n");
printf("\t 9: 按成績輸出學生信息 |");
printf("\t 10: 顯示不及格及優秀學生 |\n\n");
printf("\t 11: 返回主菜單 |");
printf("\t\t 12: 退出 |\n\n");
printf("\t ※----------------------O(∩_∩)O------------------------※\n\n");
printf("\t 請輸入對應數字:");
scanf("%d",&choose);/*取得用戶的選擇*/
switch(choose)
{
case 1:
OutputInformation();/*顯示所有學生的信息*/
break;
case 2:
DesplayInfoBystudentName();
break;
case 3:
DesplayInfoBystudentNumber();/*根據用戶輸入的學號顯示該學生的信息*/
break;
case 4:
p=MallocNode();/*先申請一個新結點*/
GetInformation(p);/*要求用戶輸入信息到新結點中*/
InsertOneNode(p);/*將新結點加到鏈表中*/
break;
case 5:
DeleteNodeBystudentNumber();/*根據用戶輸入的學號刪除該學生*/
break;
case 6:
ChangeMarkByName();/*根據用戶輸入的姓名修改學生成績*/
break;
case 7:
ChangeMarkByNumber();/*根據用戶輸入的學號修改學生成績*/
break;
case 8:
SaveLinkToFile();/*保存數據*/
break;
case 9:
paixu();break;
case 10:
DesplayMarkSegment();break;
case 11:
break;
case 12:
SaveLinkToFile();/*保存數據後再退出*/
free(headLink);
break;
default: break;
}
Menu();/*遞歸調用*/
}
/*建立鏈表表頭*/
void CreateHeadLink(void)
{
STUDENT *p;
p=(STUDENT*)malloc(sizeof(STUDENT));
headLink=p;
p->next=NULL;
}
/*申請一個新結點,並將其初始化*/
STUDENT *MallocNode(void)
{
STUDENT *p;
int i;
p=(STUDENT*)malloc(sizeof(STUDENT));
if(p==NULL)
return NULL;
for(i=0;i<10;i++)
memset(p->studentNumber,NULL,20);
for(i=0;i<20;i++)
memset(p->studentName,NULL,20);
for(i=0;i<20;i++)
memset(p->className,NULL,20);
p->mark1=0.0;
p->mark2=0.0;
p->mark3=0.0;
p->next=NULL;
return p;
}
/*取得用戶輸入的學生信息*/
void GetInformation(STUDENT *t)
{
printf("請輸入學生學號:");
scanf("%s",t->studentNumber);
printf("請輸入學生姓名:");
scanf("%s",t->studentName);
printf("請輸入該生所在班級:");
scanf("%s",t->className);
printf("請輸入第1門成績:");
scanf("%f",&(t->mark1));
printf("請輸入第2門成績:");
scanf("%f",&(t->mark2));
printf("請輸入第3門成績:");
scanf("%f",&(t->mark3));
}
/*在鏈表的結尾處增加一個結點*/
void InsertOneNode(STUDENT *t)
{
STUDENT *p;
p=headLink;
while(p->next)
{
p=p->next;
}
p->next=t;
}
/*根據用戶輸入的學生姓名顯示該學生的信息*/
void DesplayInfoBystudentName(void)
{
STUDENT *p;
char studentName[20];
char flag=0;
p=headLink->next;
printf("請輸入學生姓名:");
scanf("%s",studentName);
while(p)
{
if(strcmp(p->studentName,studentName)==0)
{
printf("\t學號\t姓名\t班級\t成績1\t成績2\t成績3\t總成績\t平均成績\n");
DesplayOneNode(p);
flag=1;
break;
}
p=p->next;
}
if(!flag) {
printf("\t 對不起,不存在姓名為 %s 的學生\n",studentName);}
}
/*根據用戶輸入的學號顯示該學生的信息*/
void DesplayInfoBystudentNumber(void)
{
STUDENT *p;
char studentNumber[20];
char flag=0;
p=headLink->next;
printf("請輸入學生學號:");
scanf("%s",studentNumber);
while(p)
{
if(strcmp(p->studentNumber,studentNumber)==0)
{
printf("\t學號\t姓名\t班級\t成績1\t成績2\t成績3\t總成績\t平均成績\n");
DesplayOneNode(p);
flag=1;
break;
}
p=p->next;
}
if(!flag) {
printf("\t 對不起,不存在學號為 %s 的學生\n",studentNumber);
}}
/*輸出一個結點的信息*/
void DesplayOneNode(STUDENT *t)
{
printf("\t%s\t",t->studentNumber);
printf("%s\t",t->studentName);
printf("%s\t",t->className);
printf("%.2f\t",t->mark1);
printf("%.2f\t",t->mark2);
printf("%.2f\t",t->mark3);
printf("%.2f\t",t->mark1+t->mark2+t->mark3);
printf("%.2f\t\n",(t->mark1+t->mark2+t->mark3)/3);
}
/*根據用戶輸入的學號刪除該學生*/
void DeleteNodeBystudentNumber(void)
{
char studentNumber[10];
STUDENT *p,*q;
char flag=0;
printf("請輸入要刪除的學生學號:");
scanf("%s",studentNumber);
p=headLink;
q=headLink->next;
while(q)
{
if(strcmp(q->studentNumber,studentNumber)==0)
{
p->next=q->next;
free(q);
flag=1;
break;
}
p=p->next;
q=q->next;
}
if(!flag)
{
printf("\t 不存在該學號的學生\n");
return;
}
printf("\t 成功刪除\n");
}
/*顯示所有學生的信息*/
void OutputInformation(void)
{
STUDENT *p;
p=headLink->next;
if(p==NULL)
{
printf("\t 現在沒有學生信息,請先輸入學生信息\n\n");
return;
}
printf("\t學號\t姓名\t班級\t成績1\t成績2\t成績3\t總成績\t平均成績\n");
while(p)
{
DesplayOneNode(p);
p=p->next;
}
}
/*根據輸入的姓名修改成績*/
void ChangeMarkByName(void)
{
STUDENT *p;
char studentName[20];
char flag=0;
float mark1,mark2,mark3;
p=headLink->next;
printf("請輸入學生姓名:");
scanf("%s",studentName);
while(p)
{
if(strcmp(p->studentName,studentName)==0)
{
printf("請輸入新的第1門成績:\n");
scanf("%f",&mark1);
printf("請輸入新的第2門成績:\n");
scanf("%f",&mark2);
printf("請輸入新的第3門成績:\n");
scanf("%f",&mark3);
p->mark1=mark1;
p->mark2=mark2;
p->mark3=mark3;
flag=1;
printf("修改成功\n");
break;
}
p=p->next;
}
if(!flag) {
printf("\t 對不起,不存在姓名為 %s 的學生\n",studentName);
} }
/*根據輸入的姓名修改成績*/
void ChangeMarkByNumber(void)
{
STUDENT *p;
char studentNumber[20];
char flag=0;
float mark1,mark2,mark3;
p=headLink->next;
printf("請輸入學生學號:");
scanf("%s",studentNumber);
while(p)
{
if(strcmp(p->studentNumber,studentNumber)==0)
{
printf("請輸入新的第1門成績:\n");
scanf("%f",&mark1);
printf("請輸入新的第2門成績:\n");
scanf("%f",&mark2);
printf("請輸入新的第3門成績:\n");
scanf("%f",&mark3);
p->mark1=mark1;
p->mark2=mark2;
p->mark3=mark3;
flag=1;
printf("修改成功\n");
break;
}
p=p->next;
}
if(!flag){
printf("\t 對不起,不存在學號為 %s 的學生\n",studentNumber);
}}
/*保存鏈表數據到文件中*/
void SaveLinkToFile(void)
{
STUDENT *p;
FILE *fp;
p=headLink->next;
if(p==NULL)
{
printf("\t 現在沒有學生信息,請先輸入學生信息\n\n");
return;
}
fp=fopen("student.txt","w+");
if(!fp)
{
printf("文件不存在\n");
return;
}
while(p)
{
fprintf(fp,"%s %s %s %f %f %f\n",p->studentNumber,p->studentName,p->className,p->mark1,p->mark2,p->mark3);
p=p->next;
}
fclose(fp);
}
/*顯示優秀和不及格學生成績*/
void DesplayMarkSegment(void)
{
STUDENT *p;
int count=0;
p=headLink->next;
printf("\t60分以下(不及格)的學生成績如下:\n");
printf("\t學號\t姓名\t班級\t成績1\t成績2\t成績3\t總成績\t平均成績\n\n");
while(p)
{
if((6>((int)(p->mark1/10)))||(6>((int)(p->mark2/10)))||(6>((int)(p->mark3/10))))/*只要有一科不及格就認為該生不及格*/
{
count++;
DesplayOneNode(p);
}
p=p->next;
}
printf("\t不及格的學生一共有%d人\n",count);
p=headLink->next;
printf("\t成績優秀的學生成績如下:\n");
printf("\t學號\t姓名\t班級\t成績1\t成績2\t成績3\t總成績\t平均成績\n\n");
count=0;
while(p)
{
if((8<=((int)(p->mark1/10)))&&(8<=((int)(p->mark2/10)))&&(8<=((int)(p->mark3/10))))
{
count++;
DesplayOneNode(p);
}
p=p->next;
}
printf("\t成績優秀的學生一共有%d人\n",count);
}
/*按總成績排序*/
void paixu(void)
{
STUDENT exchange,*r,*p,*q;
r=headLink->next;
if(r==NULL)
{
printf("\t 現在還沒學生信息,請先輸入學生信息\n");
return;
}
while(r)/*兩層while循環實現排序*/
{
p=r;
q=r->next;
while(q)
{
if((q->mark1+q->mark2+q->mark3)>(p->mark1+p->mark2+p->mark3))
{
strcpy(exchange.studentNumber,q->studentNumber);/*先復制q結點信息到exchange*/
strcpy(exchange.studentName,q->studentName);
strcpy(exchange.className,q->className);
exchange.mark1=q->mark1;
exchange.mark2=q->mark2;
exchange.mark3=q->mark3;
strcpy(q->studentNumber,p->studentNumber);/*再復制p結點信息到q*/
strcpy(q->studentName,p->studentName);
strcpy(q->className,p->className);
q->mark1=p->mark1;
q->mark2=p->mark3;
q->mark3=p->mark3;
strcpy(p->studentNumber,exchange.studentNumber);/*最後復制exchange結點信息到p*/
strcpy(p->studentName,exchange.studentName);
strcpy(p->className,exchange.className);
p->mark1=exchange.mark1;
p->mark2=exchange.mark2;
p->mark3=exchange.mark3;
}
q=q->next;
}
r=r->next;
}
OutputInformation();
}
㈢ 用C語言編的用戶登錄系統
輸入密碼時顯示*的效果可以用下面這個程序得到:#include<stdio.h>
main(){
int i=0;
char password[50];
printf("Input Password:");
while((password[i++]=getch())!=13)putchar('*'); //主代碼
password[i]='\0';
printf("\n\npassword is :%s\n",password);
}
㈣ 怎麼用C語言編寫個登陸界面
#include "Head.h"
#include "Chinese.c"
#include "Mouse.c"
#include "Login.c"
#include "Exit.c"
#include "Window.c"
#include "OtIT.c"
#include "Scanf.c"void initgr(void) /* BGI初始化 */
{
int gd = DETECT, gm = 0; /* 和gd = VGA,gm = VGAHI是同樣效果 */
registerbgidriver(EGAVGA_driver);/* 注冊BGI驅動後沒成績不需求.BGI文檔的支持運行 */
initgraph(&gd, &gm, "");
if(graphresult())
{
printf ("Graphics isn't available...");
getch();exit(1);
}
MskindMath();/* 計算滑鼠的樣子*/
Msinit();
}void main(void)
{
initgr();/* 初始化*/
Login(); /* 登錄*/
Exit(); /* 退出*/
}
。。。。。。。。。。。
㈤ c語言編寫用戶登錄程序
代碼如下:
#include<stdio.h>
#pragma warning(disable:4996)
#include<string.h>
int main()
{
int i = 0;
char password[10] = { 0 };
printf("請輸入密碼:");
while (i < 3)
{
scanf("%s", password);
printf(" ");
if (strcmp(password, "972816") == 0)
{
printf("登錄成功 ");
break;
}
else
{
i++;
if (i != 3)
printf("再輸入一次");
}
}
if (i == 3)
printf("密碼錯誤三次退出登錄界面 ");
system("pause");
return 0;
(5)c語言登錄系統界面擴展閱讀:
#include後面有兩種方式,<>;和""前者先在標准庫中查找,查找不到在path中查找。後者為文件路徑,若直接是文件名則在項目根目錄下查找。
引用方法:#include<stdio.h>
注意事項:在TC2.0中,允許不引用此頭文件而直接調用其中的函數,但這種做法是不標準的。也不建議這樣做。以避免出現在其他IDE中無法編譯或執行的問題。
㈥ c語言做的登錄界面要怎麼美化如下
printf(" * -----------------------------------------------*\n");
printf(" | |\n");
printf(" |------------------------------------------------|\n");
printf(" | 用戶名: |\n");
printf(" | |\n");
printf(" | 密 碼: |\n");
printf(" |------------------------------------------------|\n");
printf(" | |\n");
printf(" * -----------------------------------------------*\n");
㈦ c語言 商品銷售系統登入界面該怎麼寫
登錄包括檢查數據文件,檢測輸入格式,檢查數據重復性,驗證用戶名密碼。
根據讀取寫入追加數據的不同要求,fopen選項不同參數,比如"r","w","a"。注意每次用完後用fclose函數關閉數據流。
下面是演示代碼:(文件不存在自動創建,登錄失敗提示注冊,輸入驗證,你自己寫,比如:用戶名包含幾字母數字等)。
#include <stdio.h>
#include <string.h>
#define UFPATH "C:\user.data" //文件路徑
#define SMAX 20
typedef struct USER
{
char uName[SMAX];
char pwd[SMAX];
}UR;
UR *logon(char *uName,char *pwd);
int main()
{
UR *ur=NULL;
char uName[SMAX],pwd[SMAX];
printf("請輸入用戶名及密碼: ");
scanf("%s",uName);
scanf("%s",pwd);
if((ur=logon(uName,pwd))==NULL)
printf("登陸失敗");
else
printf("歡迎登錄!%s ",ur->uName);
return 0;
}
UR *logon(char *uName,char *pwd)
{
int isExcept=1;//標識變數,1:該用戶不存在。0:用戶名存在
FILE *fp=NULL;
static UR ur;
char c[2];
if((fp=fopen(UFPATH,"r"))==NULL)
{
printf("該路徑未發現記錄文件,新建文件! ");
if((fp=fopen(UFPATH,"wt"))==NULL)
{
printf("異常!新建文件失敗! ");
return NULL;
}
isExcept=1;
}
else
{
while(fscanf(fp,"%s%s",ur.uName,ur.pwd)!=-1)
{
if(strcmp(ur.uName,uName)==0 && strcmp(ur.pwd,pwd)==0)
{
printf("身份驗證通過! ");
fclose(fp);
return &ur;
}
}
printf("用戶密碼不正確,或用戶不存在! ");
fclose(fp);
isExcept=1;
}
if(isExcept==1)
{
printf("是否注冊用戶?(Y/N) ");
scanf("%s",c);
if(c[0]=='N')
return NULL;
if(c[0]=='Y')
{
while(isExcept)
{
printf("請輸入要注冊的用戶名及密碼: ");
scanf("%s",uName);
scanf("%s",pwd);//輸入驗證在這里添加!!!!!!!!!
//------------驗證新建的用戶名是否重名-------
if((fp=fopen(UFPATH,"r"))==NULL)
{
printf("異常!,文件打開失敗! ");
return NULL;
}
isExcept=0;
while(fscanf(fp,"%s%s",ur.uName,ur.pwd)!=-1)
{
if(strcmp(ur.uName,uName)==0)
{
printf("用戶名已存在,請重新輸入! ");
fclose(fp);
isExcept=1;
break;
}
}
fclose(fp);
//-------------------------------------------------------
}
if((fp=fopen(UFPATH,"a"))==NULL)
{
printf("異常!,文件打開失敗! ");
return NULL;
}
fprintf(fp,"%s %s%s",uName,pwd," ");
printf("用戶注冊成功! ");
strcpy(ur.uName,uName);
strcpy(ur.pwd,pwd);
}
}
fclose(fp);
return &ur;
}
//ps:代碼是按照你問題寫成一個登錄函數,但在一個項目中,對文件的讀寫改,應寫成獨立函數調用。其它函數調用這些函數。
㈧ C語言編寫一個用戶登陸的程序
代碼如下:
#include<stdio.h>
#pragma warning(disable:4996)
#include<string.h>
int main()
{
int i = 0;
char password[10] = { 0 };
printf("請輸入密碼:");
while (i < 3)
{
scanf("%s", password);
printf(" ");
if (strcmp(password, "972816") == 0)
{
printf("登錄成功 ");
break;
}
else
{
i++;
if (i != 3)
printf("再輸入一次");
}
}
if (i == 3)
printf("密碼錯誤三次退出登錄界面 ");
system("pause");
return 0;
(8)c語言登錄系統界面擴展閱讀:
#include後面有兩種方式,<>;和""前者先在標准庫中查找,查找不到在path中查找。後者為文件路徑,若直接是文件名則在項目根目錄下查找。
引用方法:#include<stdio.h>
注意事項:在TC2.0中,允許不引用此頭文件而直接調用其中的函數,但這種做法是不標準的。也不建議這樣做。以避免出現在其他IDE中無法編譯或執行的問題。
㈨ C語言怎樣設置特定的密碼帳號登錄系統
首先需要確定使用的是那種編譯環境,如turbo C,Unix C還是VC,然後在選用編譯器提供的合適的API函數,這樣才能達到事半功倍的效果,寫出高效率的代碼。不過,不管是基於那種編程環境,基本思路是一樣的,就是通過字元串讀取函數gets()從客戶端(命令窗口或對話框)讀取用戶輸入的用戶名和密碼,然後與設置好的用戶名和密碼分別進行比較(可以採用字元串比較函數strcmp()),比較結果為真,則用戶名和密碼匹配,從登陸界面切換到執行界面,否則,提示錯誤。
㈩ 用C語言製作一個登陸界面1 注冊 注冊以後保存在文件中 2登陸時直接輸入用戶名和密碼登陸
這是一個用純C語言和文件操作實現的系統的登錄、注冊和忘記密碼功能。可以用於c語... 登錄:先輸入賬號和密碼。然後按賬號從文件中讀取,如果賬