Advertisement
Guest User

Untitled

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