# include & ltstdio.h & gt
# include & ltmalloc.h & gt
# include & ltstdlib.h & gt
# include & ltstring.h & gt
# include & ltconio.h & gt
Typedef結構檢查//考生信息結構
{?char exampno[20];//準考證號
字符名稱[10];//名稱
char sex[4];//性別
年齡小;//年齡
char exam type[10];//報考科目
} ElemType
Typedef結構節點//定義壹個鏈表節點。
{
元素類型數據;//數據字段
結構節點* next//指針字段
}節點,*列表,*位置;
List make _ empty(List L);//創建壹個帶有前導節點的空表。
int是_ empty(List L);//測試鏈表是否為空。
int是_last(位置p,列表L);//測試當前位置是否是頁腳。
position make_node( position p,int n);//創建壹個節點,輸入考生信息。
void put_information(位置p);//是否輸出候選人的信息?
void put_name_information(列表L);//輸出姓名為xx的候選人信息。
int put_pos_information(位置p);//在此地址輸出候選人信息。
void link_to_tail(列表L,位置p);//將節點連接到頁腳
int ciculation _ make();//循環創建考生信息。
int judge _ put _ all();//是否輸出所有候選人的信息
void put _ all(List L);//輸出所有候選人的信息。
位置查找(列表L);//找到第壹個名為xx的元素,返回位置。
位置find_previous(列表L);//找到第壹個名為xx的元素,返回其直接前任的位置。
//int judge _ delete _ val();//詢問是否刪除候選人數據。
int delete _ val(List L);//刪除指定候選人的信息並輸出。
void菜單(列表L);//菜單功能
列表L;
//位置p;
(同Internationalorganizations)國際組織
main( void)?
{
List L = NULL//定義頭節點指針
位置p =空;//定義表格工作指針
L = make _ empty(L);//創建壹個空表
Printf ("\ t \ t \ t ★★★考生報名管理程序★ \ n \ t \ t -。
菜單(左);
返回0;
}
//創建壹個帶有前導節點的空表。
目錄
make_empty(列表L)
{
l =(List)malloc(sizeof(Node));
if(NULL == L)
{
Printf("內存分配失敗");
退出(1);
}
l-& gt;next = NULL
//printf("空表創建成功。\ n ");
返回L;
}
//創建壹個節點,輸入考生信息。
位置
make_node(位置p,整數n)
{
如果(n) //n為1,則創建並輸入節點,n為0,則修改節點。
{
p =(位置)malloc ( sizeof(節點));
p->;next = NULL
}
Printf("請輸入考生的準考證號:");
獲取(p-& gt;data . exam no);
Printf("請輸入候選人姓名:");
獲取(p-& gt;data . name);
做
{
Printf("請輸入考生性別,只能是"男"或"女":);
獲取(p-& gt;data . sex);
}
而(0!= strcmp(p-& gt;Data.sex,“男”)&;& amp0 != strcmp(p-& gt;Data.sex,“女”);//判斷性別是否錯誤。
Printf("請輸入求職者的年齡:");
scanf("%hd ",& ampp->;data . age);
getchar();?//如果刪除這句話,將無法實現以下應用類別。
/*下面的do while用於判斷應用類別是否輸入錯誤*/
做
{
Printf("請輸入報名類別,只能是"數學"或"英語"或"數據結構":);
獲取(p-& gt;data . exam type);
}
而(0!= strcmp("英語",p-& gt;data . exam type)& amp;& amp0 != strcmp("數學",p-& gt;data . exam type)& amp;& amp0 != strcmp("數據結構",p-& gt;data . exam type));
如果(n)
{
Printf("註冊成功\ n ");
}
其他
{
Printf("修改成功\ n ");
}
返回p;
}
//預插入方法;
空的
link_to_tail(列表L,位置p)
{
p->;next = L-& gt;接下來;
l-& gt;next = p;
}
//找到第壹個名為xx的元素,返回位置。
位置
查找(列表L)
{
位置p = L-& gt;接下來;
字符名稱[10];
Printf("請輸入您要找的候選人姓名:");
獲取(名稱);
而(p!= NULL & amp& amp0 != strcmp(p-& gt;data.name,name))
{
p = p-& gt;接下來;
}
返回p;
}
//測試鏈表是否為空。
(同Internationalorganizations)國際組織
is_empty(列表L)
{
返回L-& gt;next = = NULL
}
//測試當前位置是否是頁腳。
(同Internationalorganizations)國際組織
is_last(位置p,列表L)
{
返回p-& gt;next = = NULL
}
//輸出姓名為xx的候選人信息。
空的
上傳姓名信息(列表L)
{
位置p = find(L);
如果(p!=空)
{
Printf("妳要找的候選人信息:\ n ");
Printf("入學編號:% s \ t姓名:% s \ t性別:% s \ t性別:% HD \主題:%s\n\n ",p-& gt;data.examno,p-& gt;data.name,p-& gt;data.sex,p-& gt;data.age,p-& gt;data . exam type);
}
其他
{
Printf("沒有妳要找的學生。\ n ");
}
}
//循環創建考生信息。
(同Internationalorganizations)國際組織
ciculation_make()
{
int n = 2;
做
{
Printf("是否要繼續創建候選人信息?有請輸入“1”,無請輸入“0”:);
scanf("%d ",& ampn);
getchar();
}
而(n!= 0 & amp& ampn!= 1);
返回n;
}
//是否輸出考生信息?
空的
put_information(位置p)
{
int n = 2;
做
{
Printf("是否要輸出候選人的信息?有請輸入“1”,無請輸入“0”:);
scanf("%d ",& ampn);
getchar();
}
而(n!= 0 & amp& ampn!= 1);
如果(n)
{
Printf("錄取編號:% s \ t姓名:% s \ t性別:% s \ t主題:% HD \主題:%s\n ",p-& gt;data.examno,p-& gt;data.name,p-& gt;data.sex,p-& gt;data.age,p-& gt;data . exam type);
}
}
//是否輸出所有候選人的信息
(同Internationalorganizations)國際組織
judge_put_all()
{
int n = 2;
做
{
Printf("是否要輸出所有候選人的信息?有請輸入“1”,無請輸入“0”:);
scanf("%d ",& ampn);
getchar();
}
而(n!= 0 & amp& ampn!= 1);
返回n;
}
//輸出所有候選人的信息。
空的
put_all(列表L)
{
如果(L-& gt;next == NULL)
{
Printf("現在沒有候選人報名!\ n ");
}
其他
{
位置p = L-& gt;接下來;
而(p!=空)
{
Printf("錄取編號:% s \ t姓名:% s \ t性別:% s \ t主題:% HD \主題:%s\n ",p-& gt;data.examno,p-& gt;data.name,p-& gt;data.sex,p-& gt;data.age,p-& gt;data . exam type);
p = p-& gt;接下來;
}
}
//getchar();
}
//詢問是否刪除候選人數據。
(同Internationalorganizations)國際組織
法官刪除值()
{
int n = 2;
做
{
Printf("是否要刪除候選人的數據?可以,請輸入“1”而不是“0”:);
scanf("%d ",& ampn);
getchar();
}
而(n!= 0 & amp& ampn!= 1);
返回n;
}
//找到第壹個名為xx的元素,返回其直接前任的位置。
位置
find_previous(列表L)
{
位置q = L;
位置p = L-& gt;接下來;
字符名稱[10];
Printf("請輸入您要找的候選人姓名:");
獲取(名稱);
而(p!= NULL & amp& amp0 != strcmp(p-& gt;data.name,name))
{
q = p;
p = p-& gt;接下來;
}
如果(p!=空)
{
返回q;
}
其他
返回p;
}
//刪除指定候選人的信息並輸出。
(同Internationalorganizations)國際組織
刪除值(列表L)
{
int n = 2;
位置q =空;
position p = find _ previous(L);//返回候選人的信息地址。
if( NULL == p)
{
Printf("您要刪除的候選人不存在\ n ");
返回0;
}
其他
{
q = p->;接下來;
p->;next = q-& gt;接下來;
Printf("刪除成功。\ n刪除的候選人信息是:\ n”);
Printf("錄取編號:% s \ t姓名:% s \ t性別:% s \ t主題:% HD \主題:%s\n ",q-& gt;data.examno,q-& gt;data.name,q-& gt;data.sex,q-& gt;data.age,q-& gt;data . exam type);
免費(q);
返回1;
}
}
//輸出該地址的檢查信息。
(同Internationalorganizations)國際組織
放置位置信息(位置p)
{
如果(p!=空)
{
Printf("入學編號:% s \ t姓名:% s \ t性別:% s \ t性別:% HD \主題:%s\n\n ",p-& gt;data.examno,p-& gt;data.name,p-& gt;data.sex,p-& gt;data.age,p-& gt;data . exam type);
返回1;
}
其他
{
Printf("沒有妳要找的學生。");
返回0;
}
}
//菜單功能
空的
菜單(列表L)
{
printf("\t\t\t?a .考生入學\ n ");
printf("\t\t\t?b .查詢考生信息\ n ");
printf("\t\t\t?c .修改候選人信息\ n ");
printf("\t\t\t?d .刪除候選人信息\ n”);
printf("\t\t\t?e .所有候選人的信息\ n ");
printf("\t\t\t?f .程序作者信息\ n ");
printf("\t\t\t?g?退出程序\ n ");
char n = ' h
而(n!= 'g ')
{
做什麽?//確認輸入正確。
{
Printf("請按字母編號選擇功能:");
n = getchar();
getchar();
putchar(' \ n ');
如果(n & lta ' | | n & gtg’)
{
Printf("錯誤的字母編號。\ n ");
}
}
while(n & lt;a ' | | n & gtg’);
開關(n)
{
案例“a”:
{
Printf("請輸入已註冊考生的信息:\ n ");
位置p = make_node( p,1);//創建新節點
link_to_tail( L,p);//將新節點連接到表
put _ information(p);?//是否輸出候選人的信息?
putchar(' \ n ');
}
打破;
案例“b”:
{
put _ name _ information(L);
putchar(' \ n ');
}
打破;
案例“c”:
{
int n = 0;
位置p =空;
Printf("您正在修改。\ n ");
p = find(L);
n = put _ pos _ information(p);
如果(n)
{
make_node( p,0);
put _ information(p);?//是否輸出候選人的信息?
}
putchar(' \ n ');
}
打破;
案例“d”:
{
Printf("您正在刪除。\ n ");
delete _ val(L);
putchar(' \ n ');
}
打破;
案例“e”:
{
put _ all(L);
putchar(' \ n ');
}
打破;
案例“f”:
{
printf("?修改日期版本號?修改者?修改內容\ n ");
printf("-\ n ");
printf("?2018.6.19 v2.0?陳百川添加主菜單\ n”);
printf("?2018.6.23 v3.0?陳百川?增加生成文件的功能\ n \ n”);
Printf("版本號是v 2.0 \ n ");
putchar(' \ n ');
}
打破;
默認值:
打破;
}
}
Printf("感謝您的使用,祝您生活愉快。");
getch();
}
擴展數據:
c語言是壹種通用的計算機編程語言,廣泛應用於底層開發。C語言的設計目標是提供壹種能夠以簡單的方式編譯處理低級內存,生成少量機器碼,無需任何運行環境支持即可運行的編程語言。
C語言雖然提供了很多底層處理功能,但仍然保持了良好的跨平臺特性。用標準規範編寫的c語言程序可以在許多計算機平臺上編譯,甚至包括壹些嵌入式處理器(單片機或MCU)和超級計算機。
上世紀80年代,為了避免不同開發者使用的C語言語法存在差異,美國國家標準局制定了壹套完整的C語言美國國家標準語法,稱為ANSI C,作為C語言的原始標準。[1]?目前,20111年2月8日,國際標準化組織(ISO)和國際電工委員會(IEC)發布的標準C11是C語言的第三個官方標準,也是C語言的最新標準,更好地支持漢字函數名和漢字標識符,壹定程度上實現了漢字編程。
C語言是面向過程的計算機編程語言,不同於C++和Java等面向對象的編程語言。
其編譯器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
參考資料:
百度百科-C語言