Advertisement
Guest User

Untitled

a guest
Dec 5th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.77 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<malloc.h>
  4. #include<string.h>
  5. #include "akunmanager.h"
  6.  
  7. int a;
  8. int b;
  9. int vmark[29];
  10. int flagger=0;
  11. int maxstudent=0;
  12.  
  13. int number=0;
  14.  
  15. int rtm=0;
  16.  
  17.  
  18.  
  19. int notloggingout=0;
  20. void menu();
  21.  
  22.  
  23. int strcicmp(char const *a, char const *b);
  24.  
  25. char query[29];
  26.  
  27.  
  28. int adminmode=0;
  29.  
  30. int main()
  31. {
  32.  
  33.  
  34. ///
  35.  
  36.  
  37. ///
  38.  
  39. char query[29];
  40. int i,n,ch,ps,x,k;
  41. k=0;
  42.  
  43.  
  44. struct node *h,*t,*t1,*w,*q, *w1, *u1, *u2;
  45. h=NULL;
  46.  
  47.  
  48. h=t=(struct node *)malloc(sizeof(struct node));
  49. t->roll=maxstudent;
  50. //printf("\nRoll no of a student: %d\t",maxstudent);
  51. //printf("\nName of a student:\t");
  52. strcpy(t->name,"admin");
  53.  
  54. strcpy(t->mark,"admin");
  55. // printf("\nVerify Marks of a student:\t
  56. maxstudent++;
  57. flagger=1;
  58.  
  59.  
  60. t->next=NULL;
  61.  
  62.  
  63.  
  64. while(1)
  65. {
  66. rtm=0;
  67. notloggingout=0;
  68.  
  69. flagger=0;
  70.  
  71. if(adminmode==0){
  72. printf("\nMANAJEMEN DATABASE USER");
  73. printf("\n\n1.Register\n2.Login (khusus user)\n3.Login admin\n6.Bantuan\n0.exit\n");
  74. }
  75. else{
  76. printf("\nMANAJEMEN DATABASE USER");
  77. printf("\n[Admin mode: On]\n1.Register\n2.Login (khusus user, logout terlebih dahulu)\n3.Logout admin\n4.display database (khusus admin)\n5.Delete user (Khusus admin)\n6.Bantuan\n0.exit\n");
  78. }
  79. printf("\nMasukkan pilihan Anda:\t");
  80. scanf("%d",&ch);
  81. switch(ch)
  82.  
  83. {
  84.  
  85. case 4:
  86.  
  87. if(adminmode){
  88. if(h==NULL)
  89. {
  90. printf("no records are available");
  91. }
  92. w=h;
  93. while(w!=NULL)
  94. {
  95. printf("\nID:%d\nUsername:%s\n",
  96. w->roll,w->name);
  97.  
  98. //marks of a student:%s ,w->mark
  99. w=w->next;
  100. }
  101.  
  102. }
  103. else{
  104. printf("Anda tidak pempunyai privilege untuk mengakses ini.");
  105. }
  106. break;
  107.  
  108. case 1:
  109. printf("\n~~REGISTER~~=\t");
  110. if(h==NULL)
  111. {
  112. h=t=(struct node *)malloc(sizeof(struct node));
  113. t->roll=maxstudent;
  114. printf("\nID Anda: %d\t",maxstudent);
  115. printf("\nUsername:\t\t");
  116. scanf("%s",&t->name);
  117.  
  118. do{
  119. printf("\nPassword:\t");
  120. scanf("%s",t->mark);
  121. printf("\nVerifikasi password:\t");
  122. scanf("%s",vmark);
  123.  
  124. if(strcmp(vmark,t->mark)!=0){
  125. printf("Mark doesn't match");
  126. }
  127. else{
  128. maxstudent++;
  129. flagger=1;
  130. }
  131. }while(flagger==0);
  132.  
  133. t->next=NULL;
  134. break;
  135. }
  136. else
  137. {
  138. t1=(struct node *)malloc(sizeof(struct node));
  139.  
  140. t1->roll=maxstudent;
  141. while(flagger==0){
  142. printf("\nID Anda: %d\t",maxstudent);
  143. printf("\nUsername:\t");
  144. scanf("%s",&t1->name);
  145.  
  146. if(strcicmp(t1->name,"admin")==0){
  147. printf("Username sudah ada.");
  148. }
  149. else{
  150. flagger=1;
  151. }
  152.  
  153. }
  154. flagger=0;
  155. do{
  156. printf("\nPassword:\t\t");
  157. scanf("%s",t1->mark);
  158. printf("\nVerifikasi password:\t");
  159. scanf("%s",vmark);
  160.  
  161. if(strcmp(vmark,t1->mark)!=0){
  162. printf("Mark doesn't match");
  163. }
  164. else{
  165. maxstudent++;
  166. flagger=1;
  167. }
  168. }while(flagger==0);
  169.  
  170. t1->next=t->next;
  171. t->next=t1;
  172. t=t1;
  173.  
  174. }
  175.  
  176.  
  177. break;
  178.  
  179. case 5:
  180.  
  181. if(adminmode){
  182. printf("Masukkan ID user yang ingin di-delete.\n");
  183. scanf("%d",&ps);
  184. if(ps==0){
  185. printf("Anda tidak men-delete akun Admin.");
  186. }
  187. else{
  188. t=h;
  189. while(t->roll!=ps-1)
  190. {
  191. if(t->next!=NULL){
  192.  
  193. t=t->next;
  194. }
  195. }
  196. if(t->next!=NULL){
  197. t1=t->next;
  198. }
  199. t->next=t1->next;
  200. free(t1);
  201. }
  202.  
  203. }
  204.  
  205. else{
  206. printf("Anda tidak pempunyai privilege untuk mengakses ini.");
  207. }
  208. break;
  209.  
  210.  
  211. case 4123893:
  212. printf("enter the roll number whose data you want to modifiy\n");
  213. scanf("%d",&ps);
  214. t=h;
  215. while(t->roll!=ps)
  216. {
  217. t=t->next;
  218. }
  219. printf("\nThe New Rollno.of a student:\t");
  220. scanf("%d",&t->roll);
  221. printf("\nThe New Name of a student:\t");
  222. scanf("%s",&t->name);
  223. printf("\nThe New Marks of a student:\t");
  224. scanf("%d",&t->mark);
  225. break;
  226.  
  227.  
  228. case 0:
  229.  
  230. exit(0);
  231.  
  232. break;
  233.  
  234. case 2:
  235.  
  236. if(adminmode){
  237. printf("Silakan logout admin untuk login user.\n");
  238. }
  239. else{
  240. printf("\nLOGIN\n");
  241.  
  242.  
  243. while(flagger==0){
  244. w=h;
  245. w=w->next;
  246. if(w==NULL){
  247. printf("Tidak ada user. Silakan register untuk membuat akun.\n");
  248. flagger=1;
  249. rtm=1;
  250. }
  251. else{
  252.  
  253. printf("Masukkan username\n");
  254. scanf("%s",&query);
  255. do{
  256. //printf("\nchecking:%d\nname of a student:%s\nmarks of a student:%s\n",w->roll,w->name,w->mark);
  257. if(strcicmp(query,w->name)==0){
  258. w1=w;
  259. flagger=1;
  260. }
  261. else{
  262. }
  263. w=w->next;
  264. }while(w!=NULL&&flagger==0);
  265. if(flagger==0){
  266. printf("Username tidak ditemukan.\n1. Coba lagi\nTombol angka lain. Kembali ke menu utama");
  267. scanf("%d",&ch);
  268. switch(ch){
  269. case 1:
  270. break;
  271. default:
  272. flagger=1;
  273. rtm=1;
  274. break;
  275.  
  276.  
  277. }
  278.  
  279. }
  280. }
  281. }
  282. flagger=0;
  283. if(rtm==0){
  284. while(flagger==0){
  285. printf("Masukkan password.");
  286. scanf("%s",&query);
  287. //printf("\nchecking:%d\nname of a student:%s\nmarks of a student:%s\n",w->roll,w->name,w->mark);
  288. if(strcmp(query,w1->mark)==0){
  289. flagger=1;
  290. }
  291. else{
  292. puts("Password salah.\n1. Coba lagi\nTombol lain. Kembali ke menu utama");
  293. scanf("%d",&ch);
  294. switch(ch){
  295. case 1:
  296. break;
  297. default:
  298. flagger=1;
  299. rtm=1;
  300. break;
  301. break;
  302.  
  303. }
  304. }
  305. }
  306. flagger=0;
  307. if(rtm==0){
  308. while(notloggingout==0){
  309. puts("");
  310. printf("Selamat datang, %s\n1. Ubah Password\n2. Hapus akun\n3. Logout\n0. Tutup Program\n",w1->name);
  311. scanf("%d",&ch);
  312. switch(ch){
  313.  
  314. case 1:{
  315. printf("~~Ubah Password~~\nMasukkan password lama. Jika password salah, maka akan kembali ke menu akun.\n");
  316. printf("\nchecking:%d\nname of a student:%s\nmarks of a student:%s\n",w1->roll,w1->name,w1->mark);
  317. scanf("%s",&query);
  318. //printf("\nchecking:%d\nname of a student:%s\nmarks of a student:%s\n",w->roll,w->name,w->mark);
  319. if(strcmp(query,w1->mark)==0){
  320. printf("\nMasukkan password baru\t");
  321. scanf("%s",query);
  322. printf("\nVerifikasikan password baru:\t");
  323. scanf("%s",vmark);
  324.  
  325. if(strcmp(vmark,query)!=0){
  326. printf("\nPassword tidak cocok.\n");
  327. }
  328. else{
  329. strcpy(w1->mark,query);
  330. flagger=1;
  331. }
  332.  
  333. }
  334. else{
  335. puts("\nPassword salah.\n");
  336.  
  337. }
  338. break;
  339. }
  340.  
  341. case 2:{
  342. printf("\nAnda yakin ingin menghapus akun? Akun tidak akan dapat dipulihkan.\n1. Iya\nTombol lain. Tidak:\t");
  343. scanf("%d",&ch);
  344. if(ch==1){
  345. puts("1");
  346. ps=w1->roll;
  347. //puts("2");
  348. u1=h;
  349. //puts("3");
  350. while(u1->roll!=ps-1){
  351.  
  352. //puts("4");
  353. if(u1->next!=NULL){
  354.  
  355. //puts("5");
  356. u1=u1->next;
  357.  
  358. //puts("6");
  359. }
  360. }
  361. if(u1->next!=NULL){
  362. u2=u1->next;
  363. }
  364. u1->next=u2->next;
  365. free(u2);
  366.  
  367.  
  368.  
  369.  
  370.  
  371. printf("Akun berhasil dihapus.\nTekan tombol apa saja untuk kembali ke menu.");
  372. notloggingout=1;
  373. getch();
  374.  
  375.  
  376. }
  377.  
  378. break;
  379. }
  380.  
  381. case 3:{
  382. notloggingout=1;
  383. break;
  384. }
  385. }
  386.  
  387. }
  388. }
  389. }
  390. break;
  391.  
  392. }
  393.  
  394.  
  395.  
  396. break;
  397.  
  398. case 3:{
  399. if(adminmode){
  400. printf("Anda berhasil logout.\n");
  401. system("pause");
  402. system("cls");
  403. adminmode=0;
  404. break;
  405. }
  406. else{
  407.  
  408. printf("\nLOGIN ADMIN\n");
  409.  
  410.  
  411. while(flagger==0){
  412. w=h;
  413. printf("Masukkan username Admin:\t");
  414. scanf("%s",&query);
  415. //printf("\nchecking:%d\nname of a student:%s\nmarks of a student:%s\n",w->roll,w->name,w->mark);
  416. if(strcicmp(query,w->name)==0){
  417. w1=w;
  418. flagger=1;
  419. }
  420. if(flagger==0){
  421. printf("Username Admin salah.\n1. Coba lagi\nTombol angka lain. Kembali ke menu utama\nMasukkan angka:\t");
  422. ch=getch();
  423. switch(ch){
  424. case 1:
  425. break;
  426. default:
  427. flagger=1;
  428. rtm=1;
  429. break;
  430.  
  431.  
  432. }
  433.  
  434. }
  435. }
  436. flagger=0;
  437. if(rtm==0){
  438. while(flagger==0){
  439. printf("Masukkan password:\t\t");
  440. scanf("%s",&query);
  441. //printf("\nchecking:%d\nname of a student:%s\nmarks of a student:%s\n",w->roll,w->name,w->mark);
  442. if(strcmp(query,w1->mark)==0){
  443. system("cls");
  444. printf("\nSelamat datang, %s.\n",w->name);
  445. adminmode=1;
  446. flagger=1;
  447. }
  448. else{
  449. puts("Password salah.\n1. Coba lagi\nTombol lain. Kembali ke menu utama\nMasukkan angka:\t");
  450. ch=getch();
  451. switch(ch){
  452. case 1:
  453. break;
  454. default:
  455. flagger=1;
  456. rtm=1;
  457. break;
  458.  
  459. }
  460. }
  461. }
  462. flagger=0;
  463. break;
  464. }
  465. }
  466. }
  467.  
  468. case 6:{
  469. if(rtm==0){
  470. printf("Bantuan \n");
  471. printf("Pengguna memasukkan nomor pilihan sesuai pilihan yang ada \n");
  472. printf("1. Registrasi -> Pengguna dapat mendaftarkan ID sebagai salah satu pengguna yang terdaftar \n");
  473. printf("2. Login User -> Pengguna memasukkan username dan password yang sebelumnya telah dibuat di register \n");
  474. printf("3. Login Admin -> Hanya admin yang dapat login ke pilihan ini dan dapat mengedit account yang telah ada \n");
  475. system("pause");
  476. }
  477. system("cls");
  478. rtm=0;
  479. break;
  480. }
  481.  
  482. }
  483.  
  484.  
  485. }
  486. }
  487.  
  488.  
  489. int strcicmp(char const *a, char const *b)
  490. {
  491. for (;; a++, b++) {
  492. int d = tolower(*a) - tolower(*b);
  493. if (d != 0 || !*a)
  494. return d;
  495. }
  496. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement